@dxos/echo-generator 0.6.13 → 0.6.14-main.69511f5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +26 -22
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +25 -14
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +704 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/types/src/data.d.ts.map +1 -1
- package/dist/types/src/generator.d.ts +7 -6
- package/dist/types/src/generator.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +3 -2
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +16 -14
- package/src/data.ts +17 -17
- package/src/generator.test.ts +2 -3
- package/src/generator.ts +17 -17
- package/src/types.ts +3 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/data.ts", "../../../src/generator.ts", "../../../src/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { next as A } from '@dxos/automerge/automerge';\nimport { createDocAccessor, type Space } from '@dxos/client/echo';\nimport {\n create,\n MutableSchema,\n EchoObject,\n ObjectAnnotationId,\n effectToJsonSchema,\n getObjectAnnotation,\n ref,\n StoredSchema,\n S,\n} from '@dxos/echo-schema';\nimport { faker } from '@dxos/random';\n\nimport { SpaceObjectGenerator, TestObjectGenerator } from './generator';\nimport { type TestMutationsMap, type TestGeneratorMap, type TestSchemaMap } from './types';\nimport { randomText } from './util';\n\n// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/aurora/testing.\n// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).\n\n// TODO(burdon): Handle restricted values.\nexport const Status = ['pending', 'active', 'done'];\nexport const Priority = [1, 2, 3, 4, 5];\n\nexport enum TestSchemaType {\n document = 'example.com/type/document',\n organization = 'example.com/type/organization',\n contact = 'example.com/type/contact',\n project = 'example.com/type/project',\n}\n\nconst createDynamicSchema = (typename: string, fields: S.Struct.Fields): MutableSchema => {\n const typeSchema = S.partial(S.Struct(fields)).pipe(EchoObject(typename, '1.0.0'));\n const typeAnnotation = getObjectAnnotation(typeSchema);\n const schemaToStore = create(StoredSchema, {\n typename,\n version: '1.0.0',\n jsonSchema: {},\n });\n const updatedSchema = typeSchema.annotations({\n [ObjectAnnotationId]: { ...typeAnnotation, schemaId: schemaToStore.id },\n });\n schemaToStore.jsonSchema = effectToJsonSchema(updatedSchema);\n return new MutableSchema(schemaToStore);\n};\n\nconst testSchemas = (): TestSchemaMap<TestSchemaType> => {\n const document = createDynamicSchema(TestSchemaType.document, {\n title: S.String.annotations({ description: 'title of the document' }),\n content: S.String,\n });\n\n const organization = createDynamicSchema(TestSchemaType.organization, {\n name: S.String.annotations({ description: 'name of the company or organization' }),\n website: S.String.annotations({ description: 'public website URL' }),\n description: S.String.annotations({ description: 'short summary of the company' }),\n });\n\n const contact = createDynamicSchema(TestSchemaType.contact, {\n name: S.String.annotations({ description: 'name of the person' }),\n email: S.String,\n org: ref(organization),\n lat: S.Number,\n lng: S.Number,\n });\n\n const project = createDynamicSchema(TestSchemaType.project, {\n name: S.String.annotations({ description: 'name of the project' }),\n description: S.String,\n website: S.String,\n repo: S.String,\n status: S.String,\n priority: S.Number,\n active: S.Boolean,\n org: ref(organization),\n });\n\n return {\n [TestSchemaType.document]: document,\n [TestSchemaType.organization]: organization,\n [TestSchemaType.contact]: contact,\n [TestSchemaType.project]: project,\n };\n};\n\nconst testObjectGenerators: TestGeneratorMap<TestSchemaType> = {\n [TestSchemaType.document]: async () => ({\n title: faker.lorem.sentence(3),\n content: faker.lorem.sentences({ min: 1, max: faker.number.int({ min: 1, max: 3 }) }),\n }),\n\n [TestSchemaType.organization]: async () => ({\n name: faker.company.name(),\n website: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n description: faker.lorem.sentences(),\n }),\n\n [TestSchemaType.contact]: async (provider) => {\n const organizations = await provider?.(TestSchemaType.organization);\n const location = faker.datatype.boolean() ? faker.helpers.arrayElement(locations) : undefined;\n return {\n name: faker.person.fullName(),\n email: faker.datatype.boolean({ probability: 0.5 }) ? faker.internet.email() : undefined,\n org:\n organizations?.length && faker.datatype.boolean({ probability: 0.3 })\n ? faker.helpers.arrayElement(organizations)\n : undefined,\n ...location,\n };\n },\n\n [TestSchemaType.project]: async () => ({\n name: faker.commerce.productName(),\n repo: faker.datatype.boolean({ probability: 0.3 }) ? faker.internet.url() : undefined,\n status: faker.helpers.arrayElement(Status),\n priority: faker.helpers.arrayElement(Priority),\n active: faker.datatype.boolean(),\n }),\n};\n\nconst testObjectMutators: TestMutationsMap<TestSchemaType> = {\n [TestSchemaType.document]: async (object, params) => {\n const accessor = createDocAccessor(object, ['content']);\n for (let i = 0; i < params.count; i++) {\n const length = object.content?.content?.length ?? 0;\n accessor.handle.change((doc) => {\n A.splice(\n doc,\n accessor.path.slice(),\n 0,\n params.maxContentLength >= length ? 0 : params.mutationSize,\n randomText(params.mutationSize),\n );\n });\n }\n },\n [TestSchemaType.organization]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.contact]: async () => {\n throw new Error('Method not implemented.');\n },\n [TestSchemaType.project]: async () => {\n throw new Error('Method not implemented.');\n },\n};\n\nexport const createTestObjectGenerator = () => new TestObjectGenerator(testSchemas(), testObjectGenerators);\n\nexport const createSpaceObjectGenerator = (space: Space) =>\n new SpaceObjectGenerator(space, testSchemas(), testObjectGenerators, testObjectMutators);\n\n// TODO(burdon): Move to @dxos/random.\nconst locations = [\n { lat: 139.74946157054467, lng: 35.686962764371174 },\n { lat: -73.98196278740681, lng: 40.75192492259464 },\n { lat: -99.1329340602939, lng: 19.444388301415472 },\n { lat: 72.85504343876647, lng: 19.0189362343566 },\n { lat: -46.62696583905523, lng: -23.55673372837896 },\n { lat: 77.22805816860182, lng: 28.671938757181522 },\n { lat: 121.43455881982015, lng: 31.218398311228327 },\n { lat: 88.32272979950551, lng: 22.49691515689642 },\n { lat: 90.40663360810754, lng: 23.725005570312817 },\n { lat: -58.399477232331435, lng: -34.600555749907414 },\n { lat: -118.18192636994041, lng: 33.99192410876543 },\n { lat: 66.98806305137339, lng: 24.87193814681484 },\n { lat: 31.248022361126118, lng: 30.051906205103705 },\n { lat: -43.22696665284366, lng: -22.923077315615956 },\n { lat: 135.4581989565952, lng: 34.75198107491417 },\n { lat: 116.38633982565943, lng: 39.93083808990906 },\n { lat: 120.9802713035424, lng: 14.606104813440538 },\n { lat: 37.6135769672714, lng: 55.75410998124818 },\n { lat: 29.008055727002613, lng: 41.10694201243979 },\n { lat: 2.33138946713035, lng: 48.86863878981461 },\n { lat: 126.99778513820195, lng: 37.56829495838895 },\n { lat: 3.3895852125984334, lng: 6.445207512093191 },\n { lat: 106.82749176247012, lng: -6.172471846798885 },\n { lat: -87.75200083270931, lng: 41.83193651927843 },\n { lat: 113.32306427226172, lng: 23.14692716047989 },\n { lat: -0.11866770247593195, lng: 51.5019405883275 },\n { lat: -77.05200795343472, lng: -12.04606681752557 },\n { lat: 51.42239817500899, lng: 35.673888627001304 },\n { lat: 15.313026023171744, lng: -4.327778243275986 },\n { lat: -74.08528981377441, lng: 4.598369421147822 },\n { lat: 114.1201772298325, lng: 22.554316369677963 },\n { lat: 114.26807118958311, lng: 30.581977209337822 },\n { lat: 114.18306345846304, lng: 22.30692675357551 },\n { lat: 117.19807322410043, lng: 39.13197212310894 },\n { lat: 80.27805287890033, lng: 13.091933670856292 },\n { lat: 121.568333333333, lng: 25.0358333333333 },\n { lat: 77.55806386521755, lng: 12.97194099507442 },\n { lat: 100.51469879369489, lng: 13.751945064087977 },\n { lat: 74.34807892054346, lng: 31.56191739488844 },\n { lat: 106.59303578916195, lng: 29.566922888044644 },\n { lat: 78.47800771287751, lng: 17.401928991511454 },\n { lat: -70.66898671317483, lng: -33.448067956934096 },\n { lat: -80.22605193945003, lng: 25.789556555021534 },\n { lat: -43.916950376804834, lng: -19.91308016391116 },\n { lat: -3.6852975446125242, lng: 40.40197212311381 },\n { lat: -75.17194183200792, lng: 40.001919022526465 },\n { lat: 72.57805776168215, lng: 23.031998775062675 },\n { lat: 106.69308136207889, lng: 10.781971309193409 },\n { lat: -79.42196665298843, lng: 43.70192573640844 },\n { lat: 103.85387481909902, lng: 1.2949793251059418 },\n { lat: 13.23248118266855, lng: -8.836340255012658 },\n { lat: 44.391922914564134, lng: 33.34059435615865 },\n { lat: 2.181424460619155, lng: 41.385245438547486 },\n { lat: 88.32994665421205, lng: 22.580390440861947 },\n { lat: -96.84196278749818, lng: 32.82196968167733 },\n { lat: 123.44802765120869, lng: 41.80692512604918 },\n { lat: 32.532233380011576, lng: 15.590024084277673 },\n { lat: 73.84805776168719, lng: 18.531963374654026 },\n { lat: 151.1832339501475, lng: -33.91806510862875 },\n { lat: 30.314074200315076, lng: 59.94096036375191 },\n { lat: 91.79802154756635, lng: 22.33193814680459 },\n { lat: 113.74277634138707, lng: 23.050834758613007 },\n { lat: -84.40189524187565, lng: 33.83195971260585 },\n { lat: -71.07195953218684, lng: 42.33190600170229 },\n { lat: 46.770795798688255, lng: 24.642779007816443 },\n { lat: -95.341925149146, lng: 29.821920243188856 },\n { lat: 105.8480683412422, lng: 21.035273107737055 },\n { lat: -77.01136443943716, lng: 38.901495235087054 },\n { lat: -103.33198008081848, lng: 20.671961950508944 },\n { lat: 144.97307037590406, lng: -37.81808545369631 },\n { lat: 29.948050030391755, lng: 31.201965205759393 },\n { lat: 104.06807363094873, lng: 30.671945877957796 },\n { lat: -83.0820016464927, lng: 42.33190600170229 },\n { lat: 96.16473175266185, lng: 16.785299963188777 },\n { lat: 108.89305043760862, lng: 34.27697130928732 },\n { lat: -51.20195790450316, lng: -30.048068770722466 },\n { lat: 121.465, lng: 25.0127777777778 },\n { lat: 72.83809356897484, lng: 21.20192960187819 },\n { lat: 109.60911291406296, lng: 23.09653464659317 },\n { lat: -4.041994118507091, lng: 5.321942826098564 },\n { lat: -47.91799814700306, lng: -15.781394372878992 },\n { lat: 32.862445782356644, lng: 39.929184444075474 },\n { lat: -100.33193064232995, lng: 25.671940995125283 },\n { lat: 139.60202098994017, lng: 35.43065615270891 },\n { lat: 118.77802846499208, lng: 32.05196500231233 },\n { lat: -73.58524281670213, lng: 45.50194506421502 },\n { lat: 106.7180927553083, lng: 26.581988806001448 },\n { lat: -34.91755136960728, lng: -8.073699467249241 },\n { lat: 126.64803904445057, lng: 45.75192980542715 },\n { lat: -38.58192718342411, lng: -3.7480720258257634 },\n { lat: -112.07193755969467, lng: 33.5419257363676 },\n { lat: 117.67001623440774, lng: 24.520375385531167 },\n { lat: -38.48193328693924, lng: -12.968026046044827 },\n { lat: 129.00810170722048, lng: 35.09699877511093 },\n { lat: -122.41716877355225, lng: 37.76919562968743 },\n { lat: 28.028063865019476, lng: -26.16809888138414 },\n { lat: 13.399602764700546, lng: 52.523764522251156 },\n { lat: 3.048606670909237, lng: 36.765010656628135 },\n { lat: 125.75274485499392, lng: 39.02138455800434 },\n { lat: 12.481312562873995, lng: 41.89790148509894 },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Space, Filter } from '@dxos/client/echo';\nimport { type EchoReactiveObject } from '@dxos/echo-db';\nimport {\n create,\n MutableSchema,\n type ReactiveObject,\n getObjectAnnotation,\n getSchema,\n isReactiveObject,\n type S,\n} from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { faker } from '@dxos/random';\n\nimport { type TestSchemaType } from './data';\nimport {\n type MutationsProviderParams,\n type TestGeneratorMap,\n type TestMutationsMap,\n type TestObjectProvider,\n type TestSchemaMap,\n} from './types';\nimport { range } from './util';\n\n/**\n * Typed object generator.\n */\nexport class TestObjectGenerator<T extends string = TestSchemaType> {\n // prettier-ignore\n constructor(\n protected readonly _schemas: TestSchemaMap<T>,\n private readonly _generators: TestGeneratorMap<T>,\n private readonly _provider?: TestObjectProvider<T>,\n ) {}\n\n get schemas(): (MutableSchema | S.Schema<any>)[] {\n return Object.values(this._schemas);\n }\n\n getSchema(type: T): MutableSchema | S.Schema<any> | undefined {\n return this.schemas.find((schema) => getObjectAnnotation(schema)!.typename === type);\n }\n\n protected setSchema(type: T, schema: MutableSchema | S.Schema<any>) {\n this._schemas[type] = schema;\n }\n\n async createObject({ types }: { types?: T[] } = {}): Promise<ReactiveObject<any>> {\n const type = faker.helpers.arrayElement(types ?? (Object.keys(this._schemas) as T[]));\n const data = await this._generators[type](this._provider);\n if (isReactiveObject(data)) {\n return data;\n }\n\n const schema = this.getSchema(type);\n return schema ? create(schema, data) : create(data);\n }\n\n // TODO(burdon): Create batch.\n // TODO(burdon): Based on dependencies (e.g., organization before contact).\n async createObjects(map: Partial<Record<T, number>>) {\n const tasks = Object.entries<number>(map as any)\n .map(([type, count]) => {\n return range(() => this.createObject({ types: [type as T] }), count);\n })\n .flatMap((t) => t);\n\n return Promise.all(tasks);\n }\n}\n\n/**\n * Typed object generator for a space.\n */\nexport class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<T> {\n constructor(\n private readonly _space: Space,\n schemaMap: TestSchemaMap<T>,\n generators: TestGeneratorMap<T>,\n private readonly _mutations?: TestMutationsMap<T>,\n ) {\n super(schemaMap, generators, async (type: T) => {\n const schema = this.getSchema(type);\n return (schema && (await this._space.db.query(Filter.schema(schema)).run()).objects) ?? [];\n });\n\n // TODO(burdon): Map initially are objects that have not been added to the space.\n // Merge existing schema in space with defaults.\n Object.entries<MutableSchema | S.Schema<any>>(schemaMap).forEach(([type, dynamicSchema]) => {\n const schema = this._maybeRegisterSchema(type, dynamicSchema);\n\n this.setSchema(type as T, schema);\n });\n }\n\n addSchemas() {\n const result: (MutableSchema | S.Schema<any>)[] = [];\n for (const [typename, schema] of Object.entries(this._schemas)) {\n result.push(this._maybeRegisterSchema(typename, schema as MutableSchema | S.Schema<any>));\n }\n\n return result;\n }\n\n override async createObject({ types }: { types?: T[] } = {}): Promise<EchoReactiveObject<any>> {\n return this._space.db.add(await super.createObject({ types }));\n }\n\n private _maybeRegisterSchema(typename: string, schema: MutableSchema | S.Schema<any>): MutableSchema | S.Schema<any> {\n if (schema instanceof MutableSchema) {\n const existingSchema = this._space.db.schema.getSchemaByTypename(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n this._space.db.add(schema.serializedSchema);\n return this._space.db.schema.registerSchema(schema.serializedSchema);\n } else {\n const existingSchema = this._space.db.graph.schemaRegistry.getSchema(typename);\n if (existingSchema != null) {\n return existingSchema;\n }\n this._space.db.graph.schemaRegistry.addSchema([schema]);\n return schema;\n }\n }\n\n async mutateObject(object: EchoReactiveObject<any>, params: MutationsProviderParams) {\n invariant(this._mutations, 'Mutations not defined.');\n const type = getObjectAnnotation(getSchema(object)!)!.typename as T;\n invariant(type && this._mutations?.[type], 'Invalid object type.');\n\n await this._mutations;\n }\n\n async mutateObjects(objects: EchoReactiveObject<any>[], params: MutationsProviderParams) {\n for (const object of objects) {\n await this.mutateObject(object, params);\n }\n }\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\n// TODO(burdon): Util.\nexport const range = <T>(fn: (i: number) => T | undefined, length: number): T[] =>\n Array.from({ length })\n .map((_, i) => fn(i))\n .filter(Boolean) as T[];\n\nexport const randomText = (length: number) => {\n let result = '';\n const characters = 'abcdefghijklmnopqrstuvwxyz';\n const charactersLength = characters.length;\n for (let index = 0; index < length; index++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["next", "A", "createDocAccessor", "create", "MutableSchema", "EchoObject", "ObjectAnnotationId", "effectToJsonSchema", "getObjectAnnotation", "ref", "StoredSchema", "S", "faker", "Filter", "create", "MutableSchema", "getObjectAnnotation", "getSchema", "isReactiveObject", "invariant", "faker", "range", "fn", "length", "Array", "from", "map", "_", "i", "filter", "Boolean", "randomText", "result", "characters", "charactersLength", "index", "charAt", "Math", "floor", "random", "TestObjectGenerator", "constructor", "_schemas", "_generators", "_provider", "schemas", "Object", "values", "getSchema", "type", "find", "schema", "getObjectAnnotation", "typename", "setSchema", "createObject", "types", "faker", "helpers", "arrayElement", "keys", "data", "isReactiveObject", "create", "createObjects", "map", "tasks", "entries", "count", "range", "flatMap", "t", "Promise", "all", "SpaceObjectGenerator", "_space", "schemaMap", "generators", "_mutations", "db", "query", "Filter", "run", "objects", "forEach", "dynamicSchema", "_maybeRegisterSchema", "addSchemas", "result", "push", "add", "MutableSchema", "existingSchema", "getSchemaByTypename", "serializedSchema", "registerSchema", "graph", "schemaRegistry", "addSchema", "mutateObject", "object", "params", "invariant", "mutateObjects", "Status", "Priority", "TestSchemaType", "createDynamicSchema", "typename", "fields", "typeSchema", "S", "partial", "Struct", "pipe", "EchoObject", "typeAnnotation", "getObjectAnnotation", "schemaToStore", "create", "StoredSchema", "version", "jsonSchema", "updatedSchema", "annotations", "ObjectAnnotationId", "schemaId", "id", "effectToJsonSchema", "MutableSchema", "testSchemas", "document", "title", "String", "description", "content", "organization", "name", "website", "contact", "email", "org", "ref", "lat", "Number", "lng", "project", "repo", "status", "priority", "active", "Boolean", "testObjectGenerators", "faker", "lorem", "sentence", "sentences", "min", "max", "number", "int", "company", "datatype", "boolean", "probability", "internet", "url", "undefined", "provider", "organizations", "location", "helpers", "arrayElement", "locations", "person", "fullName", "length", "commerce", "productName", "testObjectMutators", "object", "params", "accessor", "createDocAccessor", "i", "count", "handle", "change", "doc", "A", "splice", "path", "slice", "maxContentLength", "mutationSize", "randomText", "Error", "createTestObjectGenerator", "TestObjectGenerator", "createSpaceObjectGenerator", "space", "SpaceObjectGenerator"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"packages/core/echo/echo-generator/src/util.ts":{"bytes":2289,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/generator.ts":{"bytes":16583,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/core/echo/echo-generator/src/data.ts":{"bytes":41270,"imports":[{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"packages/core/echo/echo-generator/src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"},"packages/core/echo/echo-generator/src/types.ts":{"bytes":1565,"imports":[],"format":"esm"},"packages/core/echo/echo-generator/src/index.ts":{"bytes":751,"imports":[{"path":"packages/core/echo/echo-generator/src/data.ts","kind":"import-statement","original":"./data"},{"path":"packages/core/echo/echo-generator/src/generator.ts","kind":"import-statement","original":"./generator"},{"path":"packages/core/echo/echo-generator/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/echo/echo-generator/src/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"packages/core/echo/echo-generator/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29076},"packages/core/echo/echo-generator/dist/lib/node-esm/index.mjs":{"imports":[{"path":"@dxos/automerge/automerge","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/random","kind":"import-statement","external":true}],"exports":["Priority","SpaceObjectGenerator","Status","TestObjectGenerator","TestSchemaType","createSpaceObjectGenerator","createTestObjectGenerator","randomText","range"],"entryPoint":"packages/core/echo/echo-generator/src/index.ts","inputs":{"packages/core/echo/echo-generator/src/data.ts":{"bytesInOutput":11642},"packages/core/echo/echo-generator/src/generator.ts":{"bytesInOutput":3770},"packages/core/echo/echo-generator/src/util.ts":{"bytesInOutput":390},"packages/core/echo/echo-generator/src/index.ts":{"bytesInOutput":0}},"bytes":16369}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/data.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAclE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQxE,eAAO,MAAM,MAAM,UAAgC,CAAC;AACpD,eAAO,MAAM,QAAQ,UAAkB,CAAC;AAExC,oBAAY,cAAc;IACxB,QAAQ,8BAA8B;IACtC,YAAY,kCAAkC;IAC9C,OAAO,6BAA6B;IACpC,OAAO,6BAA6B;CACrC;AAsHD,eAAO,MAAM,yBAAyB,2CAAqE,CAAC;AAE5G,eAAO,MAAM,0BAA0B,UAAW,KAAK,yCACmC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type Space } from '@dxos/client/echo';
|
|
2
|
-
import { type EchoReactiveObject
|
|
2
|
+
import { type EchoReactiveObject } from '@dxos/echo-db';
|
|
3
|
+
import { MutableSchema, type ReactiveObject, type S } from '@dxos/echo-schema';
|
|
3
4
|
import { type TestSchemaType } from './data';
|
|
4
|
-
import { type
|
|
5
|
+
import { type MutationsProviderParams, type TestGeneratorMap, type TestMutationsMap, type TestObjectProvider, type TestSchemaMap } from './types';
|
|
5
6
|
/**
|
|
6
7
|
* Typed object generator.
|
|
7
8
|
*/
|
|
@@ -10,9 +11,9 @@ export declare class TestObjectGenerator<T extends string = TestSchemaType> {
|
|
|
10
11
|
private readonly _generators;
|
|
11
12
|
private readonly _provider?;
|
|
12
13
|
constructor(_schemas: TestSchemaMap<T>, _generators: TestGeneratorMap<T>, _provider?: TestObjectProvider<T> | undefined);
|
|
13
|
-
get schemas(): (
|
|
14
|
-
getSchema(type: T):
|
|
15
|
-
protected setSchema(type: T, schema:
|
|
14
|
+
get schemas(): (MutableSchema | S.Schema<any>)[];
|
|
15
|
+
getSchema(type: T): MutableSchema | S.Schema<any> | undefined;
|
|
16
|
+
protected setSchema(type: T, schema: MutableSchema | S.Schema<any>): void;
|
|
16
17
|
createObject({ types }?: {
|
|
17
18
|
types?: T[];
|
|
18
19
|
}): Promise<ReactiveObject<any>>;
|
|
@@ -25,7 +26,7 @@ export declare class SpaceObjectGenerator<T extends string> extends TestObjectGe
|
|
|
25
26
|
private readonly _space;
|
|
26
27
|
private readonly _mutations?;
|
|
27
28
|
constructor(_space: Space, schemaMap: TestSchemaMap<T>, generators: TestGeneratorMap<T>, _mutations?: TestMutationsMap<T> | undefined);
|
|
28
|
-
addSchemas(): (
|
|
29
|
+
addSchemas(): (MutableSchema | S.Schema<any, any, never>)[];
|
|
29
30
|
createObject({ types }?: {
|
|
30
31
|
types?: T[];
|
|
31
32
|
}): Promise<EchoReactiveObject<any>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAU,MAAM,mBAAmB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAU,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAEL,aAAa,EACb,KAAK,cAAc,EAInB,KAAK,CAAC,EACP,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,cAAc;IAG9D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAFR,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAChC,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,YAAA;IAGpD,IAAI,OAAO,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAE/C;IAED,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;IAI7D,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAI5D,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAa3E,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;CASpD;AAED;;GAEG;AACH,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IAE9E,OAAO,CAAC,QAAQ,CAAC,MAAM;IAGvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAHX,MAAM,EAAE,KAAK,EAC9B,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACd,UAAU,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAA;IAgBnD,UAAU;IASK,YAAY,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAI9F,OAAO,CAAC,oBAAoB;IAkBtB,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,uBAAuB;IAQ7E,aAAa,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,uBAAuB;CAKxF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { type EchoReactiveObject
|
|
1
|
+
import { type EchoReactiveObject } from '@dxos/echo-db';
|
|
2
|
+
import { type MutableSchema, type ReactiveObject, type S } from '@dxos/echo-schema';
|
|
2
3
|
export type TestObject = {
|
|
3
4
|
id: string;
|
|
4
5
|
} & Record<string, any>;
|
|
5
|
-
export type TestSchemaMap<T extends string> = Record<T,
|
|
6
|
+
export type TestSchemaMap<T extends string> = Record<T, MutableSchema | S.Schema<any>>;
|
|
6
7
|
export type TestGeneratorMap<T extends string> = Record<T, (provider: TestObjectProvider<T> | undefined) => any>;
|
|
7
8
|
export type TestObjectProvider<T extends string> = (type: T) => Promise<ReactiveObject<any>[]>;
|
|
8
9
|
export type TestMutationsMap<T extends string> = Record<T, TestObjectMutators>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAEpF,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE9D,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;AAEjH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAE/F,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAE/E,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/echo-generator",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.14-main.69511f5",
|
|
4
4
|
"description": "ECHO data generator for testing.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "info@dxos.org",
|
|
9
|
+
"sideEffects": true,
|
|
9
10
|
"exports": {
|
|
10
11
|
".": {
|
|
12
|
+
"types": "./dist/types/src/index.d.ts",
|
|
11
13
|
"browser": "./dist/lib/browser/index.mjs",
|
|
12
|
-
"node":
|
|
13
|
-
"default": "./dist/lib/node/index.cjs"
|
|
14
|
-
},
|
|
15
|
-
"types": "./dist/types/src/index.d.ts"
|
|
14
|
+
"node": "./dist/lib/node-esm/index.mjs"
|
|
16
15
|
}
|
|
17
16
|
},
|
|
18
17
|
"types": "dist/types/src/index.d.ts",
|
|
@@ -24,16 +23,19 @@
|
|
|
24
23
|
"src"
|
|
25
24
|
],
|
|
26
25
|
"dependencies": {
|
|
27
|
-
"@dxos/automerge": "0.6.
|
|
28
|
-
"@dxos/client": "0.6.
|
|
29
|
-
"@dxos/echo-
|
|
30
|
-
"@dxos/
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
"@dxos/automerge": "0.6.14-main.69511f5",
|
|
27
|
+
"@dxos/client": "0.6.14-main.69511f5",
|
|
28
|
+
"@dxos/echo-schema": "0.6.14-main.69511f5",
|
|
29
|
+
"@dxos/invariant": "0.6.14-main.69511f5",
|
|
30
|
+
"@dxos/node-std": "0.6.14-main.69511f5",
|
|
31
|
+
"@dxos/echo-db": "0.6.14-main.69511f5"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@dxos/random": "0.6.14-main.69511f5"
|
|
35
|
+
},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"@dxos/random": "0.6.14-main.69511f5"
|
|
35
38
|
},
|
|
36
|
-
"devDependencies": {},
|
|
37
39
|
"publishConfig": {
|
|
38
40
|
"access": "public"
|
|
39
41
|
}
|
package/src/data.ts
CHANGED
|
@@ -2,21 +2,18 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/aurora/testing.
|
|
6
|
-
// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).
|
|
7
|
-
|
|
8
5
|
import { next as A } from '@dxos/automerge/automerge';
|
|
9
6
|
import { createDocAccessor, type Space } from '@dxos/client/echo';
|
|
10
7
|
import {
|
|
11
8
|
create,
|
|
12
|
-
|
|
9
|
+
MutableSchema,
|
|
13
10
|
EchoObject,
|
|
14
|
-
|
|
11
|
+
ObjectAnnotationId,
|
|
15
12
|
effectToJsonSchema,
|
|
16
|
-
|
|
13
|
+
getObjectAnnotation,
|
|
17
14
|
ref,
|
|
18
|
-
S,
|
|
19
15
|
StoredSchema,
|
|
16
|
+
S,
|
|
20
17
|
} from '@dxos/echo-schema';
|
|
21
18
|
import { faker } from '@dxos/random';
|
|
22
19
|
|
|
@@ -24,6 +21,9 @@ import { SpaceObjectGenerator, TestObjectGenerator } from './generator';
|
|
|
24
21
|
import { type TestMutationsMap, type TestGeneratorMap, type TestSchemaMap } from './types';
|
|
25
22
|
import { randomText } from './util';
|
|
26
23
|
|
|
24
|
+
// TODO(burdon): Reconcile with @dxos/plugin-debug, @dxos/aurora/testing.
|
|
25
|
+
// TODO(burdon): Bug when adding stale objects to space (e.g., static objects already added in previous story invocation).
|
|
26
|
+
|
|
27
27
|
// TODO(burdon): Handle restricted values.
|
|
28
28
|
export const Status = ['pending', 'active', 'done'];
|
|
29
29
|
export const Priority = [1, 2, 3, 4, 5];
|
|
@@ -35,35 +35,35 @@ export enum TestSchemaType {
|
|
|
35
35
|
project = 'example.com/type/project',
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
const createDynamicSchema = (typename: string, fields: S.Struct.Fields):
|
|
38
|
+
const createDynamicSchema = (typename: string, fields: S.Struct.Fields): MutableSchema => {
|
|
39
39
|
const typeSchema = S.partial(S.Struct(fields)).pipe(EchoObject(typename, '1.0.0'));
|
|
40
|
-
const typeAnnotation =
|
|
40
|
+
const typeAnnotation = getObjectAnnotation(typeSchema);
|
|
41
41
|
const schemaToStore = create(StoredSchema, {
|
|
42
42
|
typename,
|
|
43
43
|
version: '1.0.0',
|
|
44
44
|
jsonSchema: {},
|
|
45
45
|
});
|
|
46
46
|
const updatedSchema = typeSchema.annotations({
|
|
47
|
-
[
|
|
47
|
+
[ObjectAnnotationId]: { ...typeAnnotation, schemaId: schemaToStore.id },
|
|
48
48
|
});
|
|
49
49
|
schemaToStore.jsonSchema = effectToJsonSchema(updatedSchema);
|
|
50
|
-
return new
|
|
50
|
+
return new MutableSchema(schemaToStore);
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const testSchemas = (): TestSchemaMap<TestSchemaType> => {
|
|
54
54
|
const document = createDynamicSchema(TestSchemaType.document, {
|
|
55
|
-
title: S.String.
|
|
55
|
+
title: S.String.annotations({ description: 'title of the document' }),
|
|
56
56
|
content: S.String,
|
|
57
57
|
});
|
|
58
58
|
|
|
59
59
|
const organization = createDynamicSchema(TestSchemaType.organization, {
|
|
60
|
-
name: S.String.
|
|
61
|
-
website: S.String.
|
|
62
|
-
description: S.String.
|
|
60
|
+
name: S.String.annotations({ description: 'name of the company or organization' }),
|
|
61
|
+
website: S.String.annotations({ description: 'public website URL' }),
|
|
62
|
+
description: S.String.annotations({ description: 'short summary of the company' }),
|
|
63
63
|
});
|
|
64
64
|
|
|
65
65
|
const contact = createDynamicSchema(TestSchemaType.contact, {
|
|
66
|
-
name: S.String.
|
|
66
|
+
name: S.String.annotations({ description: 'name of the person' }),
|
|
67
67
|
email: S.String,
|
|
68
68
|
org: ref(organization),
|
|
69
69
|
lat: S.Number,
|
|
@@ -71,7 +71,7 @@ const testSchemas = (): TestSchemaMap<TestSchemaType> => {
|
|
|
71
71
|
});
|
|
72
72
|
|
|
73
73
|
const project = createDynamicSchema(TestSchemaType.project, {
|
|
74
|
-
name: S.String.
|
|
74
|
+
name: S.String.annotations({ description: 'name of the project' }),
|
|
75
75
|
description: S.String,
|
|
76
76
|
website: S.String,
|
|
77
77
|
repo: S.String,
|
package/src/generator.test.ts
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { expect } from '
|
|
5
|
+
import { onTestFinished, describe, expect, test } from 'vitest';
|
|
6
6
|
|
|
7
7
|
import { next as A } from '@dxos/automerge/automerge';
|
|
8
8
|
import { Client } from '@dxos/client';
|
|
9
9
|
import { getObjectCore } from '@dxos/echo-db';
|
|
10
10
|
import { getType, S, TypedObject } from '@dxos/echo-schema';
|
|
11
11
|
import { faker } from '@dxos/random';
|
|
12
|
-
import { afterTest, describe, test } from '@dxos/test';
|
|
13
12
|
|
|
14
13
|
import { createSpaceObjectGenerator, createTestObjectGenerator, TestSchemaType } from './data';
|
|
15
14
|
import { SpaceObjectGenerator } from './generator';
|
|
@@ -117,7 +116,7 @@ describe('TestObjectGenerator', () => {
|
|
|
117
116
|
const setupTest = async () => {
|
|
118
117
|
const client = new Client();
|
|
119
118
|
await client.initialize();
|
|
120
|
-
|
|
119
|
+
onTestFinished(async () => await client.destroy());
|
|
121
120
|
await client.halo.createIdentity();
|
|
122
121
|
const space = await client.spaces.create();
|
|
123
122
|
return { client, space };
|
package/src/generator.ts
CHANGED
|
@@ -3,26 +3,26 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Space, Filter } from '@dxos/client/echo';
|
|
6
|
+
import { type EchoReactiveObject } from '@dxos/echo-db';
|
|
6
7
|
import {
|
|
7
|
-
|
|
8
|
+
create,
|
|
9
|
+
MutableSchema,
|
|
8
10
|
type ReactiveObject,
|
|
9
|
-
|
|
10
|
-
getEchoObjectAnnotation,
|
|
11
|
+
getObjectAnnotation,
|
|
11
12
|
getSchema,
|
|
12
|
-
type S,
|
|
13
13
|
isReactiveObject,
|
|
14
|
+
type S,
|
|
14
15
|
} from '@dxos/echo-schema';
|
|
15
|
-
import { create } from '@dxos/echo-schema';
|
|
16
16
|
import { invariant } from '@dxos/invariant';
|
|
17
17
|
import { faker } from '@dxos/random';
|
|
18
18
|
|
|
19
19
|
import { type TestSchemaType } from './data';
|
|
20
20
|
import {
|
|
21
|
-
type
|
|
21
|
+
type MutationsProviderParams,
|
|
22
22
|
type TestGeneratorMap,
|
|
23
|
+
type TestMutationsMap,
|
|
23
24
|
type TestObjectProvider,
|
|
24
25
|
type TestSchemaMap,
|
|
25
|
-
type MutationsProviderParams,
|
|
26
26
|
} from './types';
|
|
27
27
|
import { range } from './util';
|
|
28
28
|
|
|
@@ -37,15 +37,15 @@ export class TestObjectGenerator<T extends string = TestSchemaType> {
|
|
|
37
37
|
private readonly _provider?: TestObjectProvider<T>,
|
|
38
38
|
) {}
|
|
39
39
|
|
|
40
|
-
get schemas(): (
|
|
40
|
+
get schemas(): (MutableSchema | S.Schema<any>)[] {
|
|
41
41
|
return Object.values(this._schemas);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
getSchema(type: T):
|
|
45
|
-
return this.schemas.find((schema) =>
|
|
44
|
+
getSchema(type: T): MutableSchema | S.Schema<any> | undefined {
|
|
45
|
+
return this.schemas.find((schema) => getObjectAnnotation(schema)!.typename === type);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
protected setSchema(type: T, schema:
|
|
48
|
+
protected setSchema(type: T, schema: MutableSchema | S.Schema<any>) {
|
|
49
49
|
this._schemas[type] = schema;
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -90,7 +90,7 @@ export class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<
|
|
|
90
90
|
|
|
91
91
|
// TODO(burdon): Map initially are objects that have not been added to the space.
|
|
92
92
|
// Merge existing schema in space with defaults.
|
|
93
|
-
Object.entries<
|
|
93
|
+
Object.entries<MutableSchema | S.Schema<any>>(schemaMap).forEach(([type, dynamicSchema]) => {
|
|
94
94
|
const schema = this._maybeRegisterSchema(type, dynamicSchema);
|
|
95
95
|
|
|
96
96
|
this.setSchema(type as T, schema);
|
|
@@ -98,9 +98,9 @@ export class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
addSchemas() {
|
|
101
|
-
const result: (
|
|
101
|
+
const result: (MutableSchema | S.Schema<any>)[] = [];
|
|
102
102
|
for (const [typename, schema] of Object.entries(this._schemas)) {
|
|
103
|
-
result.push(this._maybeRegisterSchema(typename, schema as
|
|
103
|
+
result.push(this._maybeRegisterSchema(typename, schema as MutableSchema | S.Schema<any>));
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
return result;
|
|
@@ -110,8 +110,8 @@ export class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<
|
|
|
110
110
|
return this._space.db.add(await super.createObject({ types }));
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
private _maybeRegisterSchema(typename: string, schema:
|
|
114
|
-
if (schema instanceof
|
|
113
|
+
private _maybeRegisterSchema(typename: string, schema: MutableSchema | S.Schema<any>): MutableSchema | S.Schema<any> {
|
|
114
|
+
if (schema instanceof MutableSchema) {
|
|
115
115
|
const existingSchema = this._space.db.schema.getSchemaByTypename(typename);
|
|
116
116
|
if (existingSchema != null) {
|
|
117
117
|
return existingSchema;
|
|
@@ -130,7 +130,7 @@ export class SpaceObjectGenerator<T extends string> extends TestObjectGenerator<
|
|
|
130
130
|
|
|
131
131
|
async mutateObject(object: EchoReactiveObject<any>, params: MutationsProviderParams) {
|
|
132
132
|
invariant(this._mutations, 'Mutations not defined.');
|
|
133
|
-
const type =
|
|
133
|
+
const type = getObjectAnnotation(getSchema(object)!)!.typename as T;
|
|
134
134
|
invariant(type && this._mutations?.[type], 'Invalid object type.');
|
|
135
135
|
|
|
136
136
|
await this._mutations;
|
package/src/types.ts
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type EchoReactiveObject
|
|
5
|
+
import { type EchoReactiveObject } from '@dxos/echo-db';
|
|
6
|
+
import { type MutableSchema, type ReactiveObject, type S } from '@dxos/echo-schema';
|
|
6
7
|
|
|
7
8
|
export type TestObject = { id: string } & Record<string, any>;
|
|
8
9
|
|
|
9
|
-
export type TestSchemaMap<T extends string> = Record<T,
|
|
10
|
+
export type TestSchemaMap<T extends string> = Record<T, MutableSchema | S.Schema<any>>;
|
|
10
11
|
|
|
11
12
|
export type TestGeneratorMap<T extends string> = Record<T, (provider: TestObjectProvider<T> | undefined) => any>;
|
|
12
13
|
|