@dxos/echo-db 2.31.5-dev.573190a2 → 2.31.5-dev.c5d930eb

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.
@@ -24,7 +24,7 @@ class Schema {
24
24
  }
25
25
  // TODO(kaplanski): What happens if an item has extra properties?
26
26
  validate(model) {
27
- this.fields.forEach(field => {
27
+ return this.fields.every(field => {
28
28
  const value = model.get(field.key);
29
29
  if (field.required) {
30
30
  if (!value) {
@@ -40,8 +40,8 @@ class Schema {
40
40
  // TODO(kaplanski): Should this class have access to all items in the party to validate?
41
41
  // Or maybe possible values should be provided?
42
42
  }
43
+ return true;
43
44
  });
44
- return true;
45
45
  }
46
46
  // TODO(kaplanski): Should the field be added to each item using the schema in the party? (Empty value?)
47
47
  // TODO(kaplanski): Should the type be infered from the first value added?
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/api/schema.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAIW,QAAA,WAAW,GAAG,kBAAkB,CAAC;AAuB9C;;GAEG;AACH,MAAa,MAAM;IACjB,YACmB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IACpC,CAAC;IAEJ,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM;;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAE,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,iEAAiE;IACjE,QAAQ,CAAE,KAAkB;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,KAAK,CAAC;iBACd;aACF;YAED,IAAI,KAAK,CAAC,IAAI,EAAE;gBACd,IAAI,OAAO,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;oBAC/B,OAAO,KAAK,CAAC;iBACd;aACF;YAED,IAAI,KAAK,CAAC,GAAG,EAAE;gBACb,wFAAwF;gBACxF,+CAA+C;aAChD;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wGAAwG;IACxG,0EAA0E;IAC1E,KAAK,CAAC,QAAQ,CAAE,QAAqB;QACnC,MAAM,SAAS,GAAG;YAChB,GAAG,IAAI,CAAC,MAAM;YACd,QAAQ;SACT,CAAC;QACF,oFAAoF;QACpF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,SAAS,CAAE,UAAkB,EAAE,WAAwB;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxC,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE;gBAC5B,OAAO,WAAW,CAAC;aACpB;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAE,GAAW;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;CACF;AAnED,wBAmEC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/api/schema.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAIW,QAAA,WAAW,GAAG,kBAAkB,CAAC;AAuB9C;;GAEG;AACH,MAAa,MAAM;IACjB,YACmB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IACpC,CAAC;IAEJ,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM;;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAE,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,iEAAiE;IACjE,QAAQ,CAAE,KAAkB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,KAAK,CAAC;iBACd;aACF;YAED,IAAI,KAAK,CAAC,IAAI,EAAE;gBACd,IAAI,OAAO,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;oBAC/B,OAAO,KAAK,CAAC;iBACd;aACF;YAED,IAAI,KAAK,CAAC,GAAG,EAAE;gBACb,wFAAwF;gBACxF,+CAA+C;aAChD;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wGAAwG;IACxG,0EAA0E;IAC1E,KAAK,CAAC,QAAQ,CAAE,QAAqB;QACnC,MAAM,SAAS,GAAG;YAChB,GAAG,IAAI,CAAC,MAAM;YACd,QAAQ;SACT,CAAC;QACF,oFAAoF;QACpF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,SAAS,CAAE,UAAkB,EAAE,WAAwB;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxC,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE;gBAC5B,OAAO,WAAW,CAAC;aACpB;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CAAE,GAAW;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;CACF;AAnED,wBAmEC"}
@@ -1,157 +1,91 @@
1
1
  "use strict";
2
2
  //
3
- // Copyright 2022 DXOS.org
3
+ // Copyright 2021 DXOS.org
4
4
  //
5
5
  var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const columnify_1 = __importDefault(require("columnify"));
11
9
  const expect_1 = __importDefault(require("expect"));
12
- const faker_1 = __importDefault(require("faker"));
13
- const debug_1 = require("@dxos/debug");
14
- const testing_1 = require("../testing");
10
+ const mocha_1 = require("mocha");
11
+ const model_factory_1 = require("@dxos/model-factory");
12
+ const object_model_1 = require("@dxos/object-model");
13
+ const testutils_1 = require("@dxos/testutils");
14
+ const database_1 = require("../database");
15
15
  const schema_1 = require("./schema");
16
- var TestType;
17
- (function (TestType) {
18
- TestType["Org"] = "example:type/org";
19
- TestType["Person"] = "example:type/person";
20
- })(TestType || (TestType = {}));
21
- const schemaDefs = {
22
- [TestType.Org]: {
23
- schema: 'example:type/schema/organization',
24
- fields: [
25
- {
26
- key: 'title',
27
- required: true,
28
- generator: () => faker_1.default.company.companyName()
29
- },
30
- {
31
- key: 'website',
32
- required: false,
33
- generator: () => faker_1.default.internet.url()
34
- },
35
- {
36
- key: 'collaborators',
37
- required: false,
38
- generator: () => faker_1.default.datatype.number().toString()
39
- }
40
- ]
41
- },
42
- [TestType.Person]: {
43
- schema: 'example:type/schema/person',
44
- fields: [
45
- {
46
- key: 'title',
47
- required: true,
48
- generator: () => `${faker_1.default.name.firstName()} ${faker_1.default.name.lastName()}`
49
- }
50
- ]
51
- }
16
+ const SCHEMA = 'example:type/schema/organization';
17
+ const createTestSchema = async (database) => {
18
+ const schemaItem = await database.createItem({
19
+ model: object_model_1.ObjectModel,
20
+ type: schema_1.TYPE_SCHEMA,
21
+ props: {
22
+ schema: SCHEMA
23
+ }
24
+ });
25
+ return new schema_1.Schema(schemaItem.model);
52
26
  };
53
- describe('Schemas', () => {
54
- it('creation of Schema', async () => (0, testing_1.setup)(async (database) => {
55
- const [schema] = await (0, testing_1.createSchemas)(database, [schemaDefs[TestType.Org]]);
56
- (0, expect_1.default)(schema.schema).toBe(schemaDefs[TestType.Org].schema);
57
- (0, expect_1.default)(schema.fields[0].key).toBe('title');
58
- }));
59
- it('add Schema field', async () => (0, testing_1.setup)(async (database) => {
60
- const [schema] = await (0, testing_1.createSchemas)(database, [schemaDefs[TestType.Org]]);
27
+ describe('Schema', () => {
28
+ const setup = async () => {
29
+ const modelFactory = new model_factory_1.ModelFactory().registerModel(object_model_1.ObjectModel);
30
+ const backend = await (0, database_1.createInMemoryDatabase)(modelFactory);
31
+ (0, testutils_1.afterTest)(() => backend.destroy());
32
+ return backend;
33
+ };
34
+ (0, mocha_1.it)('class creation', async () => {
35
+ const database = await setup();
36
+ const schema = await createTestSchema(database);
37
+ (0, expect_1.default)(schema).toBeTruthy();
38
+ (0, expect_1.default)(schema.schema).toBeTruthy();
39
+ });
40
+ (0, mocha_1.it)('add and delete field', async () => {
41
+ const database = await setup();
42
+ const key = 'name';
43
+ const schema = await createTestSchema(database);
61
44
  const newField = {
62
- key: 'location',
45
+ key: key,
63
46
  required: true
64
47
  };
65
48
  await schema.addField(newField);
66
- (0, expect_1.default)(schema.getField('location')).toBeTruthy();
67
- }));
68
- it('add Schema linked field', async () => (0, testing_1.setup)(async (database) => {
69
- const [orgSchema, personSchema] = await (0, testing_1.createSchemas)(database, Object.values(schemaDefs));
70
- const fieldRef = {
71
- key: 'organization',
72
- required: false,
73
- ref: {
74
- schema: orgSchema.schema,
75
- field: orgSchema.fields[0].key
76
- }
49
+ (0, expect_1.default)(schema.fields.length).toBe(1);
50
+ (0, expect_1.default)(schema.getField(key)).toBeTruthy();
51
+ await schema.deleteField(key);
52
+ (0, expect_1.default)(schema.fields.length).toBe(0);
53
+ });
54
+ (0, mocha_1.it)('edit field', async () => {
55
+ var _a;
56
+ const database = await setup();
57
+ const key = 'name';
58
+ const schema = await createTestSchema(database);
59
+ const newField = {
60
+ key: key,
61
+ required: true
77
62
  };
78
- await personSchema.addField(fieldRef);
79
- await (0, testing_1.createData)(database, Object.values(schemaDefs), {
80
- [schemaDefs[TestType.Org].schema]: 8,
81
- [schemaDefs[TestType.Person].schema]: 16
82
- });
83
- const items = await database.select().exec().entities;
84
- [orgSchema, personSchema].forEach(schema => {
85
- items.forEach(item => {
86
- (0, expect_1.default)(schema.validate(item.model)).toBeTruthy();
87
- });
88
- });
89
- }));
90
- it('Use schema to validate the fields of an item', () => (0, testing_1.setup)(async (database) => {
91
- await (0, testing_1.createSchemas)(database, Object.values(schemaDefs));
92
- await (0, testing_1.createData)(database, Object.values(schemaDefs), {
93
- [schemaDefs[TestType.Org].schema]: 8,
94
- [schemaDefs[TestType.Person].schema]: 16
95
- });
96
- const { entities: schemas } = database
97
- .select({ type: schema_1.TYPE_SCHEMA })
98
- .exec();
99
- const { entities: orgs } = database
100
- .select({ type: TestType.Org })
101
- .exec();
102
- const { entities: people } = database
103
- .select({ type: TestType.Person })
104
- .exec();
105
- [...orgs, ...people].forEach(item => {
106
- const schemaItem = schemas.find(schema => schema.model.get('schema') === item.type);
107
- const schema = new schema_1.Schema(schemaItem.model);
108
- (0, expect_1.default)(schema.validate(item.model)).toBeTruthy();
109
- });
110
- // Log tables.
111
- schemas.forEach(schema => {
112
- const type = schema.model.get('schema');
113
- const { entities: items } = database.select({ type }).exec();
114
- (0, testing_1.log)(renderItems(schema, items, database));
63
+ await schema.addField(newField);
64
+ newField.required = false;
65
+ await schema.editField(key, newField);
66
+ (0, expect_1.default)((_a = schema.getField(key)) === null || _a === void 0 ? void 0 : _a.required).toBeFalsy();
67
+ });
68
+ (0, mocha_1.it)('validate data item', async () => {
69
+ const database = await setup();
70
+ const key = 'name';
71
+ const schema = await createTestSchema(database);
72
+ const firstField = {
73
+ key: key,
74
+ required: true
75
+ };
76
+ await schema.addField(firstField);
77
+ const item = await database.createItem({
78
+ model: object_model_1.ObjectModel,
79
+ type: schema.schema
115
80
  });
116
- }));
117
- });
118
- /**
119
- * Log the items for the given schema.
120
- * @param schema
121
- * @param items
122
- * @param [party]
123
- */
124
- const renderItems = (schema, items, database) => {
125
- const fields = Object.values(schema.model.get('fields'));
126
- const columns = fields.map(({ key }) => key);
127
- const logKey = (id) => (0, debug_1.truncateKey)(id, 4);
128
- const logString = (value) => (0, debug_1.truncate)(value, 24, true);
129
- const values = items.map(item => {
130
- return fields.reduce((row, { key, type, ref }) => {
131
- const value = item.model.get(key);
132
- switch (type) {
133
- case 'string': {
134
- row[key] = chalk_1.default.green(logString(value));
135
- break;
136
- }
137
- case 'ref': {
138
- if (database) {
139
- const { field } = ref;
140
- const item = database.getItem(value);
141
- row[key] = chalk_1.default.red(logString(item === null || item === void 0 ? void 0 : item.model.get(field)));
142
- }
143
- else {
144
- row[key] = chalk_1.default.red(logKey(value));
145
- }
146
- break;
147
- }
148
- default: {
149
- row[key] = value;
150
- }
151
- }
152
- return row;
153
- }, { id: chalk_1.default.blue(logKey(item.id)) });
81
+ (0, expect_1.default)(schema.validate(item.model)).toBeFalsy();
82
+ firstField.required = false;
83
+ await schema.editField(key, firstField);
84
+ (0, expect_1.default)(schema.validate(item.model)).toBeTruthy();
85
+ firstField.required = true;
86
+ await schema.editField(key, firstField);
87
+ await item.model.set(key, 'Test');
88
+ (0, expect_1.default)(schema.validate(item.model)).toBeTruthy();
154
89
  });
155
- return (0, columnify_1.default)(values, { columns: ['id', ...columns] });
156
- };
90
+ });
157
91
  //# sourceMappingURL=schema.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../../src/api/schema.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../../src/api/schema.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import debug from 'debug';
2
2
  import { NetworkManagerOptions } from '@dxos/network-manager';
3
3
  import { IStorage } from '@dxos/random-access-multi-storage';
4
- import { Database, Schema, SchemaDef, SchemaField } from '../api';
5
4
  import { ECHO } from '../echo';
6
5
  import { PartyInternal } from '../parties';
7
6
  export declare const log: debug.Debugger;
@@ -25,28 +24,4 @@ export declare const createTestInstance: ({ verboseLogging, initialize, storage,
25
24
  * @returns Party instance on provided test instance.
26
25
  */
27
26
  export declare const inviteTestPeer: (party: PartyInternal, peer: ECHO) => Promise<PartyInternal>;
28
- export declare type SchemaFieldWithGenerator = SchemaField & {
29
- generator: () => string;
30
- };
31
- export declare type SchemaDefWithGenerator = Omit<SchemaDef, 'fields'> & {
32
- fields: SchemaFieldWithGenerator[];
33
- };
34
- declare type Callback = (party: Database) => Promise<void>;
35
- export declare const setup: (callback: Callback) => Promise<void>;
36
- /**
37
- * Create schema items.
38
- */
39
- export declare const createSchemas: (database: Database, schemas: SchemaDefWithGenerator[]) => Promise<Schema[]>;
40
- /**
41
- * Create items for a given schema.
42
- * NOTE: Assumes that referenced items have already been constructed.
43
- */
44
- export declare const createItems: (database: Database, { schema, fields }: SchemaDefWithGenerator, numItems: number) => Promise<import("../api").Item<import("@dxos/model-factory").Model<any, any>>[]>;
45
- /**
46
- * Create data for all schemas.
47
- */
48
- export declare const createData: (database: Database, schemas: SchemaDefWithGenerator[], options?: {
49
- [key: string]: number;
50
- }) => Promise<void>;
51
- export {};
52
27
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAe,MAAM,QAAQ,CAAC;AAE/E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,eAAO,MAAM,GAAG,gBAAgC,CAAC;AAEjD,eAAO,MAAM,aAAa,QAAS,MAAM,eAAe,GAAG,SAE1D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAE7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,8HAS5B,WAAW,kBAuBb,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAiB,aAAa,QAAQ,IAAI,KAAG,QAAQ,aAAa,CAM5F,CAAC;AAEF,oBAAY,wBAAwB,GAAG,WAAW,GAAG;IAAE,SAAS,EAAE,MAAM,MAAM,CAAA;CAAE,CAAA;AAChF,oBAAY,sBAAsB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,wBAAwB,EAAE,CAAA;CAAE,CAAC;AAExG,aAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAElD,eAAO,MAAM,KAAK,aAAoB,QAAQ,kBAQ7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,aAAoB,QAAQ,WAAW,sBAAsB,EAAE,sBAqBxF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,aAAoB,QAAQ,sBAAsB,sBAAsB,YAAY,MAAM,oFA2BjH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,aAAoB,QAAQ,WAAW,sBAAsB,EAAE;;mBAQrF,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAG7D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,eAAO,MAAM,GAAG,gBAAgC,CAAC;AAEjD,eAAO,MAAM,aAAa,QAAS,MAAM,eAAe,GAAG,SAE1D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAE7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,8HAS5B,WAAW,kBAuBb,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAiB,aAAa,QAAQ,IAAI,KAAG,QAAQ,aAAa,CAM5F,CAAC"}
@@ -6,15 +6,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createData = exports.createItems = exports.createSchemas = exports.setup = exports.inviteTestPeer = exports.createTestInstance = exports.messageLogger = exports.log = void 0;
9
+ exports.inviteTestPeer = exports.createTestInstance = exports.messageLogger = exports.log = void 0;
10
10
  const debug_1 = __importDefault(require("debug"));
11
- const faker_1 = __importDefault(require("faker"));
12
11
  const crypto_1 = require("@dxos/crypto");
13
- const model_factory_1 = require("@dxos/model-factory");
14
- const object_model_1 = require("@dxos/object-model");
15
12
  const util_1 = require("@dxos/util");
16
- const api_1 = require("../api");
17
- const database_1 = require("../database");
18
13
  const echo_1 = require("../echo");
19
14
  const util_2 = require("../util");
20
15
  exports.log = (0, debug_1.default)('dxos:echo-db:testing');
@@ -59,83 +54,4 @@ const inviteTestPeer = async (party, peer) => {
59
54
  return peer.joinParty(invitation, async () => Buffer.from('0000'));
60
55
  };
61
56
  exports.inviteTestPeer = inviteTestPeer;
62
- const setup = async (callback) => {
63
- const modelFactory = new model_factory_1.ModelFactory().registerModel(object_model_1.ObjectModel);
64
- const database = await (0, database_1.createInMemoryDatabase)(modelFactory);
65
- try {
66
- await callback(database);
67
- }
68
- finally {
69
- await database.destroy();
70
- }
71
- };
72
- exports.setup = setup;
73
- /**
74
- * Create schema items.
75
- */
76
- const createSchemas = async (database, schemas) => {
77
- (0, exports.log)(`Creating schemas: [${schemas.map(({ schema }) => schema).join()}]`);
78
- const schemaItems = await Promise.all(schemas.map(({ schema, fields }) => {
79
- const schemaFields = fields.map(fieldWithGenerator => {
80
- // eslint-disable-next-line unused-imports/no-unused-vars
81
- const { generator, ...field } = fieldWithGenerator;
82
- return field;
83
- }).flat();
84
- return database.createItem({
85
- model: object_model_1.ObjectModel,
86
- type: api_1.TYPE_SCHEMA,
87
- props: {
88
- schema,
89
- fields: schemaFields
90
- }
91
- });
92
- }));
93
- return schemaItems.map(item => new api_1.Schema(item.model));
94
- };
95
- exports.createSchemas = createSchemas;
96
- /**
97
- * Create items for a given schema.
98
- * NOTE: Assumes that referenced items have already been constructed.
99
- */
100
- const createItems = async (database, { schema, fields }, numItems) => {
101
- (0, exports.log)(`Creating items for: ${schema}`);
102
- return await Promise.all(Array.from({ length: numItems }).map(async () => {
103
- const values = fields.map(field => {
104
- if (field.ref) {
105
- // Look-up item.
106
- const { entities: items } = database.select().filter({ type: field.ref.schema }).exec();
107
- if (items.length) {
108
- return {
109
- [field.key]: faker_1.default.random.arrayElement(items).id
110
- };
111
- }
112
- }
113
- else {
114
- return {
115
- [field.key]: field.generator()
116
- };
117
- }
118
- return undefined;
119
- }).filter(Boolean);
120
- return await database.createItem({
121
- type: schema,
122
- props: Object.assign({}, ...values)
123
- });
124
- }));
125
- };
126
- exports.createItems = createItems;
127
- /**
128
- * Create data for all schemas.
129
- */
130
- const createData = async (database, schemas, options = {}) => {
131
- var _a;
132
- // Synchronous loop.
133
- for (const schema of schemas) {
134
- const count = (_a = options[schema.schema]) !== null && _a !== void 0 ? _a : 0;
135
- if (count) {
136
- await (0, exports.createItems)(database, schema, count);
137
- }
138
- }
139
- };
140
- exports.createData = createData;
141
57
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAA0B;AAE1B,yCAA6C;AAG7C,qCAA0C;AAE1C,kCAA+B;AAE/B,kCAA2C;AAE9B,QAAA,GAAG,GAAG,IAAA,eAAK,EAAC,sBAAsB,CAAC,CAAC;AAE1C,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAY,EAAE,EAAE;IAC7D,IAAA,WAAG,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,mBAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAcF;;GAEG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,cAAc,GAAG,KAAK,EACtB,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,IAAA,uBAAgB,GAAE,EAC5B,UAAU,GAAG,SAAS,EACtB,qBAAqB,EACrB,eAAe,GAAG,IAAA,uBAAgB,GAAE,EACpC,SAAS,GAAG,IAAI,EAChB,gBAAgB,KACD,EAAE,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC;QACpB,WAAW,EAAE,OAAO;QACpB,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,SAAS;QACT,qBAAqB;QACrB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE;QACd,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SAC1B;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhCW,QAAA,kBAAkB,sBAgC7B;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,KAAK,EAAE,KAAoB,EAAE,IAAU,EAA0B,EAAE;IAC/F,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;QAChE,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;KAClC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}