diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-05-07 16:29:02 -0400 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-05-07 16:29:02 -0400 |
commit | 14c776b6d30e0bc0d5b3712f28e4b9f1170eae3b (patch) | |
tree | 5255d8cce8a72a5b09cc1ad58661e2176295467a /src/debug/Test.tsx | |
parent | e19fdbba4cf672aee5bfb59b91b6162431d146d3 (diff) | |
parent | 26141a697ae52a7edf3cc6845ce2153111f8860e (diff) |
Merge branch 'master' of github-tsch-brown:browngraphicslab/Dash-Web into new_search
Diffstat (limited to 'src/debug/Test.tsx')
-rw-r--r-- | src/debug/Test.tsx | 91 |
1 files changed, 35 insertions, 56 deletions
diff --git a/src/debug/Test.tsx b/src/debug/Test.tsx index 7d72a1ba0..57221aa39 100644 --- a/src/debug/Test.tsx +++ b/src/debug/Test.tsx @@ -1,48 +1,41 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; -import { serialize, deserialize, map } from 'serializr'; -import { URLField, Doc, createSchema, makeInterface, makeStrictInterface, List, ListSpec } from '../fields/NewDoc'; import { SerializationHelper } from '../client/util/SerializationHelper'; -import { Search } from '../server/Search'; -import { restProperty } from 'babel-types'; -import * as rp from 'request-promise'; +import { createSchema, makeInterface, makeStrictInterface, listSpec } from '../new_fields/Schema'; +import { ImageField } from '../new_fields/URLField'; +import { Doc } from '../new_fields/Doc'; +import { List } from '../new_fields/List'; + const schema1 = createSchema({ hello: "number", test: "string", fields: "boolean", - url: URLField, + url: ImageField, testDoc: Doc }); -const TestDoc = makeInterface(schema1); -type TestDoc = makeInterface<typeof schema1>; +type TestDoc = makeInterface<[typeof schema1]>; +const TestDoc: (doc?: Doc) => TestDoc = makeInterface(schema1); const schema2 = createSchema({ - hello: URLField, + hello: ImageField, test: "boolean", - fields: { List: "number" } as ListSpec<number>, + fields: listSpec("number"), url: "number", - testDoc: URLField + testDoc: ImageField }); const Test2Doc = makeStrictInterface(schema2); type Test2Doc = makeStrictInterface<typeof schema2>; -const schema3 = createSchema({ - test: "boolean", -}); - -const Test3Doc = makeStrictInterface(schema3); -type Test3Doc = makeStrictInterface<typeof schema3>; - const assert = (bool: boolean) => { if (!bool) throw new Error(); }; class Test extends React.Component { onClick = () => { - const url = new URLField(new URL("http://google.com")); + const url = new ImageField(new URL("http://google.com")); const doc = new Doc(); const doc2 = new Doc(); doc.hello = 5; @@ -52,48 +45,34 @@ class Test extends React.Component { //doc.testDoc = doc2; - // const test1: TestDoc = TestDoc(doc); - // const test2: Test2Doc = Test2Doc(doc); - // assert(test1.hello === 5); - // assert(test1.fields === undefined); - // assert(test1.test === "hello doc"); - // assert(test1.url === url); - // //assert(test1.testDoc === doc2); - // test1.myField = 20; - // assert(test1.myField === 20); - - // assert(test2.hello === undefined); - // // assert(test2.fields === "test"); - // assert(test2.test === undefined); - // assert(test2.url === undefined); - // assert(test2.testDoc === undefined); - // test2.url = 35; - // assert(test2.url === 35); - // const l = new List<number>(); - // //TODO push, and other array functions don't go through the proxy - // l.push(1); - // //TODO currently length, and any other string fields will get serialized - // l.length = 3; - // l[2] = 5; - // console.log(l.slice()); - // console.log(SerializationHelper.Serialize(l)); - } + const test1: TestDoc = TestDoc(doc); + assert(test1.hello === 5); + assert(test1.fields === undefined); + assert(test1.test === "hello doc"); + assert(test1.url === url); + assert(test1.testDoc === doc2); + test1.myField = 20; + assert(test1.myField === 20); - onEnter = async (e: any) => { - var key = e.keyCode || e.which; - if (key === 13) { - var query = e.target.value; - await rp.get('http://localhost:1050/search', { - qs: { - query - } - }); - } + const test2: Test2Doc = Test2Doc(doc); + assert(test2.hello === undefined); + // assert(test2.fields === "test"); + assert(test2.test === undefined); + assert(test2.url === undefined); + assert(test2.testDoc === undefined); + test2.url = 35; + assert(test2.url === 35); + const l = new List<Doc>(); + //TODO push, and other array functions don't go through the proxy + l.push(doc2); + //TODO currently length, and any other string fields will get serialized + doc.list = l; + console.log(l.slice()); } render() { return <div><button onClick={this.onClick}>Click me</button> - <input onKeyPress={this.onEnter}></input> + {/* <input onKeyPress={this.onEnter}></input> */} </div>; } } |