@nocobase/database 0.9.1-alpha.1 → 0.9.2-alpha.1
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/lib/collection-group-manager.d.ts +13 -0
- package/lib/collection-group-manager.js +91 -0
- package/lib/collection-importer.js +0 -24
- package/lib/collection.d.ts +26 -4
- package/lib/collection.js +190 -234
- package/lib/database-utils/index.js +3 -15
- package/lib/database.d.ts +9 -0
- package/lib/database.js +171 -299
- package/lib/decorators/must-have-filter-decorator.js +0 -7
- package/lib/decorators/transaction-decorator.js +5 -18
- package/lib/errors/identifier-error.js +0 -3
- package/lib/features/ReferencesMap.js +1 -14
- package/lib/features/referential-integrity-check.js +7 -21
- package/lib/field-repository/array-field-repository.js +5 -45
- package/lib/fields/array-field.js +0 -13
- package/lib/fields/belongs-to-field.js +24 -50
- package/lib/fields/belongs-to-many-field.js +29 -47
- package/lib/fields/boolean-field.js +0 -7
- package/lib/fields/context-field.js +2 -23
- package/lib/fields/date-field.d.ts +4 -0
- package/lib/fields/date-field.js +15 -7
- package/lib/fields/field.js +32 -85
- package/lib/fields/has-many-field.js +16 -49
- package/lib/fields/has-one-field.js +18 -52
- package/lib/fields/index.js +0 -44
- package/lib/fields/json-field.js +0 -12
- package/lib/fields/number-field.js +0 -23
- package/lib/fields/password-field.js +8 -35
- package/lib/fields/radio-field.js +0 -18
- package/lib/fields/relation-field.js +4 -16
- package/lib/fields/set-field.js +0 -8
- package/lib/fields/sort-field.js +84 -73
- package/lib/fields/string-field.js +0 -7
- package/lib/fields/text-field.js +0 -7
- package/lib/fields/time-field.js +0 -7
- package/lib/fields/uid-field.js +4 -22
- package/lib/fields/uuid-field.js +3 -12
- package/lib/fields/virtual-field.js +0 -7
- package/lib/filter-match.js +7 -22
- package/lib/filter-parser.js +38 -102
- package/lib/index.d.ts +3 -0
- package/lib/index.js +36 -42
- package/lib/inherited-collection.js +15 -62
- package/lib/inherited-map.js +7 -48
- package/lib/listeners/adjacency-list.d.ts +3 -0
- package/lib/listeners/adjacency-list.js +91 -0
- package/lib/listeners/index.d.ts +2 -0
- package/lib/listeners/index.js +12 -0
- package/lib/magic-attribute-model.js +58 -114
- package/lib/migration.js +7 -28
- package/lib/mock-database.d.ts +4 -4
- package/lib/mock-database.js +15 -18
- package/lib/model-hook.js +4 -35
- package/lib/model.js +12 -54
- package/lib/operators/array.js +2 -32
- package/lib/operators/association.js +0 -6
- package/lib/operators/boolean.js +0 -6
- package/lib/operators/child-collection.d.ts +2 -0
- package/lib/operators/child-collection.js +32 -0
- package/lib/operators/date.js +123 -60
- package/lib/operators/empty.js +3 -32
- package/lib/operators/eq.d.ts +2 -0
- package/lib/operators/eq.js +26 -0
- package/lib/operators/index.js +4 -7
- package/lib/operators/ne.js +5 -5
- package/lib/operators/notIn.js +0 -5
- package/lib/operators/string.js +0 -11
- package/lib/operators/utils.js +0 -6
- package/lib/options-parser.d.ts +1 -1
- package/lib/options-parser.js +47 -107
- package/lib/playground.js +0 -4
- package/lib/query-interface/mysql-query-interface.d.ts +18 -0
- package/lib/query-interface/mysql-query-interface.js +88 -0
- package/lib/query-interface/postgres-query-interface.d.ts +14 -0
- package/lib/query-interface/postgres-query-interface.js +99 -0
- package/lib/query-interface/query-interface-builder.d.ts +2 -0
- package/lib/query-interface/query-interface-builder.js +18 -0
- package/lib/query-interface/query-interface.d.ts +21 -0
- package/lib/query-interface/query-interface.js +48 -0
- package/lib/query-interface/sqlite-query-interface.d.ts +17 -0
- package/lib/query-interface/sqlite-query-interface.js +89 -0
- package/lib/relation-repository/belongs-to-many-repository.js +21 -78
- package/lib/relation-repository/belongs-to-repository.js +0 -3
- package/lib/relation-repository/hasmany-repository.js +8 -44
- package/lib/relation-repository/hasone-repository.js +0 -3
- package/lib/relation-repository/multiple-relation-repository.js +16 -68
- package/lib/relation-repository/relation-repository.js +5 -42
- package/lib/relation-repository/single-relation-repository.js +6 -43
- package/lib/repository.d.ts +1 -0
- package/lib/repository.js +36 -182
- package/lib/sql-parser/index.js +10527 -0
- package/lib/sql-parser/sql.pegjs +1297 -0
- package/lib/sync-runner.d.ts +1 -1
- package/lib/sync-runner.js +26 -64
- package/lib/update-associations.js +58 -157
- package/lib/update-guard.js +10 -49
- package/lib/utils.js +16 -54
- package/lib/value-parsers/array-value-parser.js +3 -21
- package/lib/value-parsers/base-value-parser.js +0 -13
- package/lib/value-parsers/boolean-value-parser.js +4 -10
- package/lib/value-parsers/date-value-parser.js +0 -23
- package/lib/value-parsers/index.js +0 -10
- package/lib/value-parsers/json-value-parser.js +0 -7
- package/lib/value-parsers/number-value-parser.js +0 -9
- package/lib/value-parsers/string-value-parser.js +3 -20
- package/lib/value-parsers/to-many-value-parser.js +1 -42
- package/lib/value-parsers/to-one-value-parser.js +0 -14
- package/lib/view/field-type-map.d.ts +47 -0
- package/lib/view/field-type-map.js +56 -0
- package/lib/view/view-inference.d.ts +31 -0
- package/lib/view/view-inference.js +92 -0
- package/lib/view-collection.d.ts +6 -0
- package/lib/view-collection.js +24 -0
- package/package.json +4 -3
- package/src/__tests__/collection.test.ts +44 -0
- package/src/__tests__/fields/date.test.ts +75 -0
- package/src/__tests__/fields/sort-field.test.ts +100 -0
- package/src/__tests__/filter.test.ts +60 -0
- package/src/__tests__/group.test.ts +50 -0
- package/src/__tests__/inhertits/collection-inherits.test.ts +114 -0
- package/src/__tests__/operator/date-operator.test.ts +244 -98
- package/src/__tests__/operator/eq.test.ts +76 -0
- package/src/__tests__/operator/ne.test.ts +19 -1
- package/src/__tests__/relation-repository/belongs-to-many-repository.test.ts +82 -0
- package/src/__tests__/repository/find.test.ts +33 -0
- package/src/__tests__/repository.test.ts +88 -0
- package/src/__tests__/sql-parser.test.ts +13 -0
- package/src/__tests__/tree.test.ts +217 -0
- package/src/__tests__/view/list-view.test.ts +34 -0
- package/src/__tests__/view/view-collection.test.ts +199 -0
- package/src/__tests__/view/view-inference.test.ts +145 -0
- package/src/__tests__/view/view-repository.test.ts +67 -0
- package/src/collection-group-manager.ts +94 -0
- package/src/collection.ts +126 -16
- package/src/database-utils/index.ts +1 -0
- package/src/database.ts +98 -17
- package/src/features/ReferencesMap.ts +3 -2
- package/src/fields/belongs-to-many-field.ts +23 -4
- package/src/fields/date-field.ts +18 -0
- package/src/fields/field.ts +17 -7
- package/src/fields/json-field.ts +1 -0
- package/src/fields/sort-field.ts +90 -29
- package/src/filter-parser.ts +2 -1
- package/src/index.ts +3 -1
- package/src/listeners/adjacency-list.ts +60 -0
- package/src/listeners/index.ts +7 -0
- package/src/mock-database.ts +14 -2
- package/src/model.ts +4 -0
- package/src/operators/child-collection.ts +24 -0
- package/src/operators/date.ts +108 -24
- package/src/operators/eq.ts +14 -0
- package/src/operators/index.ts +2 -0
- package/src/operators/ne.ts +12 -7
- package/src/options-parser.ts +25 -11
- package/src/query-interface/mysql-query-interface.ts +72 -0
- package/src/query-interface/postgres-query-interface.ts +103 -0
- package/src/query-interface/query-interface-builder.ts +14 -0
- package/src/query-interface/query-interface.ts +43 -0
- package/src/query-interface/sqlite-query-interface.ts +79 -0
- package/src/relation-repository/belongs-to-many-repository.ts +20 -1
- package/src/relation-repository/hasmany-repository.ts +5 -3
- package/src/relation-repository/multiple-relation-repository.ts +13 -1
- package/src/relation-repository/single-relation-repository.ts +2 -0
- package/src/repository.ts +6 -13
- package/src/sql-parser/index.js +10698 -0
- package/src/sql-parser/readme.md +2 -0
- package/src/sql-parser/sql.pegjs +1297 -0
- package/src/sync-runner.ts +27 -32
- package/src/update-associations.ts +26 -22
- package/src/utils.ts +4 -3
- package/src/view/field-type-map.ts +56 -0
- package/src/view/view-inference.ts +106 -0
- package/src/view-collection.ts +21 -0
package/lib/index.js
CHANGED
|
@@ -32,19 +32,14 @@ Object.defineProperty(exports, "snakeCase", {
|
|
|
32
32
|
return _utils.snakeCase;
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
|
-
|
|
36
35
|
function _sequelize() {
|
|
37
36
|
const data = require("sequelize");
|
|
38
|
-
|
|
39
37
|
_sequelize = function _sequelize() {
|
|
40
38
|
return data;
|
|
41
39
|
};
|
|
42
|
-
|
|
43
40
|
return data;
|
|
44
41
|
}
|
|
45
|
-
|
|
46
42
|
var _collection = require("./collection");
|
|
47
|
-
|
|
48
43
|
Object.keys(_collection).forEach(function (key) {
|
|
49
44
|
if (key === "default" || key === "__esModule") return;
|
|
50
45
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -56,9 +51,7 @@ Object.keys(_collection).forEach(function (key) {
|
|
|
56
51
|
}
|
|
57
52
|
});
|
|
58
53
|
});
|
|
59
|
-
|
|
60
54
|
var _collectionImporter = require("./collection-importer");
|
|
61
|
-
|
|
62
55
|
Object.keys(_collectionImporter).forEach(function (key) {
|
|
63
56
|
if (key === "default" || key === "__esModule") return;
|
|
64
57
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -70,9 +63,7 @@ Object.keys(_collectionImporter).forEach(function (key) {
|
|
|
70
63
|
}
|
|
71
64
|
});
|
|
72
65
|
});
|
|
73
|
-
|
|
74
66
|
var _database = require("./database");
|
|
75
|
-
|
|
76
67
|
Object.keys(_database).forEach(function (key) {
|
|
77
68
|
if (key === "default" || key === "__esModule") return;
|
|
78
69
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -84,9 +75,7 @@ Object.keys(_database).forEach(function (key) {
|
|
|
84
75
|
}
|
|
85
76
|
});
|
|
86
77
|
});
|
|
87
|
-
|
|
88
78
|
var _arrayFieldRepository = require("./field-repository/array-field-repository");
|
|
89
|
-
|
|
90
79
|
Object.keys(_arrayFieldRepository).forEach(function (key) {
|
|
91
80
|
if (key === "default" || key === "__esModule") return;
|
|
92
81
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -98,9 +87,7 @@ Object.keys(_arrayFieldRepository).forEach(function (key) {
|
|
|
98
87
|
}
|
|
99
88
|
});
|
|
100
89
|
});
|
|
101
|
-
|
|
102
90
|
var _fields = require("./fields");
|
|
103
|
-
|
|
104
91
|
Object.keys(_fields).forEach(function (key) {
|
|
105
92
|
if (key === "default" || key === "__esModule") return;
|
|
106
93
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -112,9 +99,7 @@ Object.keys(_fields).forEach(function (key) {
|
|
|
112
99
|
}
|
|
113
100
|
});
|
|
114
101
|
});
|
|
115
|
-
|
|
116
102
|
var _filterMatch = require("./filter-match");
|
|
117
|
-
|
|
118
103
|
Object.keys(_filterMatch).forEach(function (key) {
|
|
119
104
|
if (key === "default" || key === "__esModule") return;
|
|
120
105
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -126,9 +111,7 @@ Object.keys(_filterMatch).forEach(function (key) {
|
|
|
126
111
|
}
|
|
127
112
|
});
|
|
128
113
|
});
|
|
129
|
-
|
|
130
114
|
var _inheritedCollection = require("./inherited-collection");
|
|
131
|
-
|
|
132
115
|
Object.keys(_inheritedCollection).forEach(function (key) {
|
|
133
116
|
if (key === "default" || key === "__esModule") return;
|
|
134
117
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -140,9 +123,7 @@ Object.keys(_inheritedCollection).forEach(function (key) {
|
|
|
140
123
|
}
|
|
141
124
|
});
|
|
142
125
|
});
|
|
143
|
-
|
|
144
126
|
var _magicAttributeModel = require("./magic-attribute-model");
|
|
145
|
-
|
|
146
127
|
Object.keys(_magicAttributeModel).forEach(function (key) {
|
|
147
128
|
if (key === "default" || key === "__esModule") return;
|
|
148
129
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -154,9 +135,7 @@ Object.keys(_magicAttributeModel).forEach(function (key) {
|
|
|
154
135
|
}
|
|
155
136
|
});
|
|
156
137
|
});
|
|
157
|
-
|
|
158
138
|
var _migration = require("./migration");
|
|
159
|
-
|
|
160
139
|
Object.keys(_migration).forEach(function (key) {
|
|
161
140
|
if (key === "default" || key === "__esModule") return;
|
|
162
141
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -168,9 +147,7 @@ Object.keys(_migration).forEach(function (key) {
|
|
|
168
147
|
}
|
|
169
148
|
});
|
|
170
149
|
});
|
|
171
|
-
|
|
172
150
|
var _mockDatabase = require("./mock-database");
|
|
173
|
-
|
|
174
151
|
Object.keys(_mockDatabase).forEach(function (key) {
|
|
175
152
|
if (key === "default" || key === "__esModule") return;
|
|
176
153
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -182,9 +159,7 @@ Object.keys(_mockDatabase).forEach(function (key) {
|
|
|
182
159
|
}
|
|
183
160
|
});
|
|
184
161
|
});
|
|
185
|
-
|
|
186
162
|
var _model = require("./model");
|
|
187
|
-
|
|
188
163
|
Object.keys(_model).forEach(function (key) {
|
|
189
164
|
if (key === "default" || key === "__esModule") return;
|
|
190
165
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -196,9 +171,7 @@ Object.keys(_model).forEach(function (key) {
|
|
|
196
171
|
}
|
|
197
172
|
});
|
|
198
173
|
});
|
|
199
|
-
|
|
200
174
|
var _belongsToManyRepository = require("./relation-repository/belongs-to-many-repository");
|
|
201
|
-
|
|
202
175
|
Object.keys(_belongsToManyRepository).forEach(function (key) {
|
|
203
176
|
if (key === "default" || key === "__esModule") return;
|
|
204
177
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -210,9 +183,7 @@ Object.keys(_belongsToManyRepository).forEach(function (key) {
|
|
|
210
183
|
}
|
|
211
184
|
});
|
|
212
185
|
});
|
|
213
|
-
|
|
214
186
|
var _belongsToRepository = require("./relation-repository/belongs-to-repository");
|
|
215
|
-
|
|
216
187
|
Object.keys(_belongsToRepository).forEach(function (key) {
|
|
217
188
|
if (key === "default" || key === "__esModule") return;
|
|
218
189
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -224,9 +195,7 @@ Object.keys(_belongsToRepository).forEach(function (key) {
|
|
|
224
195
|
}
|
|
225
196
|
});
|
|
226
197
|
});
|
|
227
|
-
|
|
228
198
|
var _hasmanyRepository = require("./relation-repository/hasmany-repository");
|
|
229
|
-
|
|
230
199
|
Object.keys(_hasmanyRepository).forEach(function (key) {
|
|
231
200
|
if (key === "default" || key === "__esModule") return;
|
|
232
201
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -238,9 +207,7 @@ Object.keys(_hasmanyRepository).forEach(function (key) {
|
|
|
238
207
|
}
|
|
239
208
|
});
|
|
240
209
|
});
|
|
241
|
-
|
|
242
210
|
var _multipleRelationRepository = require("./relation-repository/multiple-relation-repository");
|
|
243
|
-
|
|
244
211
|
Object.keys(_multipleRelationRepository).forEach(function (key) {
|
|
245
212
|
if (key === "default" || key === "__esModule") return;
|
|
246
213
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -252,9 +219,7 @@ Object.keys(_multipleRelationRepository).forEach(function (key) {
|
|
|
252
219
|
}
|
|
253
220
|
});
|
|
254
221
|
});
|
|
255
|
-
|
|
256
222
|
var _singleRelationRepository = require("./relation-repository/single-relation-repository");
|
|
257
|
-
|
|
258
223
|
Object.keys(_singleRelationRepository).forEach(function (key) {
|
|
259
224
|
if (key === "default" || key === "__esModule") return;
|
|
260
225
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -266,9 +231,7 @@ Object.keys(_singleRelationRepository).forEach(function (key) {
|
|
|
266
231
|
}
|
|
267
232
|
});
|
|
268
233
|
});
|
|
269
|
-
|
|
270
234
|
var _repository = require("./repository");
|
|
271
|
-
|
|
272
235
|
Object.keys(_repository).forEach(function (key) {
|
|
273
236
|
if (key === "default" || key === "__esModule") return;
|
|
274
237
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -280,9 +243,7 @@ Object.keys(_repository).forEach(function (key) {
|
|
|
280
243
|
}
|
|
281
244
|
});
|
|
282
245
|
});
|
|
283
|
-
|
|
284
246
|
var _updateAssociations = require("./update-associations");
|
|
285
|
-
|
|
286
247
|
Object.keys(_updateAssociations).forEach(function (key) {
|
|
287
248
|
if (key === "default" || key === "__esModule") return;
|
|
288
249
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -294,11 +255,8 @@ Object.keys(_updateAssociations).forEach(function (key) {
|
|
|
294
255
|
}
|
|
295
256
|
});
|
|
296
257
|
});
|
|
297
|
-
|
|
298
258
|
var _utils = require("./utils");
|
|
299
|
-
|
|
300
259
|
var _valueParsers = require("./value-parsers");
|
|
301
|
-
|
|
302
260
|
Object.keys(_valueParsers).forEach(function (key) {
|
|
303
261
|
if (key === "default" || key === "__esModule") return;
|
|
304
262
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -309,4 +267,40 @@ Object.keys(_valueParsers).forEach(function (key) {
|
|
|
309
267
|
return _valueParsers[key];
|
|
310
268
|
}
|
|
311
269
|
});
|
|
270
|
+
});
|
|
271
|
+
var _collectionGroupManager = require("./collection-group-manager");
|
|
272
|
+
Object.keys(_collectionGroupManager).forEach(function (key) {
|
|
273
|
+
if (key === "default" || key === "__esModule") return;
|
|
274
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
275
|
+
if (key in exports && exports[key] === _collectionGroupManager[key]) return;
|
|
276
|
+
Object.defineProperty(exports, key, {
|
|
277
|
+
enumerable: true,
|
|
278
|
+
get: function get() {
|
|
279
|
+
return _collectionGroupManager[key];
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
var _viewCollection = require("./view-collection");
|
|
284
|
+
Object.keys(_viewCollection).forEach(function (key) {
|
|
285
|
+
if (key === "default" || key === "__esModule") return;
|
|
286
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
287
|
+
if (key in exports && exports[key] === _viewCollection[key]) return;
|
|
288
|
+
Object.defineProperty(exports, key, {
|
|
289
|
+
enumerable: true,
|
|
290
|
+
get: function get() {
|
|
291
|
+
return _viewCollection[key];
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
var _viewInference = require("./view/view-inference");
|
|
296
|
+
Object.keys(_viewInference).forEach(function (key) {
|
|
297
|
+
if (key === "default" || key === "__esModule") return;
|
|
298
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
299
|
+
if (key in exports && exports[key] === _viewInference[key]) return;
|
|
300
|
+
Object.defineProperty(exports, key, {
|
|
301
|
+
enumerable: true,
|
|
302
|
+
get: function get() {
|
|
303
|
+
return _viewInference[key];
|
|
304
|
+
}
|
|
305
|
+
});
|
|
312
306
|
});
|
|
@@ -4,51 +4,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.InheritedCollection = void 0;
|
|
7
|
-
|
|
8
7
|
var _collection = require("./collection");
|
|
9
|
-
|
|
10
8
|
function _lodash() {
|
|
11
9
|
const data = _interopRequireDefault(require("lodash"));
|
|
12
|
-
|
|
13
10
|
_lodash = function _lodash() {
|
|
14
11
|
return data;
|
|
15
12
|
};
|
|
16
|
-
|
|
17
13
|
return data;
|
|
18
14
|
}
|
|
19
|
-
|
|
20
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
-
|
|
24
17
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
18
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
20
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
28
21
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
29
|
-
|
|
30
22
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
31
|
-
|
|
32
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
33
|
-
|
|
23
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
34
24
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
|
-
|
|
36
25
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
37
|
-
|
|
38
26
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
39
|
-
|
|
40
27
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
41
|
-
|
|
42
28
|
class InheritedCollection extends _collection.Collection {
|
|
43
29
|
constructor(options, context) {
|
|
44
30
|
if (!options.inherits) {
|
|
45
31
|
throw new Error('InheritedCollection must have inherits option');
|
|
46
32
|
}
|
|
47
|
-
|
|
48
33
|
options.inherits = _lodash().default.castArray(options.inherits);
|
|
49
34
|
super(options, context);
|
|
50
35
|
this.parents = void 0;
|
|
51
|
-
|
|
52
36
|
try {
|
|
53
37
|
this.bindParents();
|
|
54
38
|
} catch (err) {
|
|
@@ -59,43 +43,35 @@ class InheritedCollection extends _collection.Collection {
|
|
|
59
43
|
this.db.removeListener('afterDefineCollection', listener);
|
|
60
44
|
}
|
|
61
45
|
};
|
|
62
|
-
|
|
63
46
|
this.db.addListener('afterDefineCollection', listener);
|
|
64
47
|
} else {
|
|
65
48
|
throw err;
|
|
66
49
|
}
|
|
67
50
|
}
|
|
68
51
|
}
|
|
69
|
-
|
|
70
52
|
bindParents() {
|
|
71
53
|
this.setParents(this.options.inherits);
|
|
72
54
|
this.setParentFields();
|
|
73
55
|
this.setFields(this.options.fields, false);
|
|
74
56
|
this.db.inheritanceMap.setInheritance(this.name, this.options.inherits);
|
|
75
57
|
}
|
|
76
|
-
|
|
77
58
|
setParents(inherits) {
|
|
78
59
|
this.parents = _lodash().default.castArray(inherits).map(name => {
|
|
79
60
|
const existCollection = this.db.collections.get(name);
|
|
80
|
-
|
|
81
61
|
if (!existCollection) {
|
|
82
62
|
throw new ParentCollectionNotFound(name);
|
|
83
63
|
}
|
|
84
|
-
|
|
85
64
|
return existCollection;
|
|
86
65
|
});
|
|
87
66
|
}
|
|
88
|
-
|
|
89
67
|
setParentFields() {
|
|
90
68
|
var _iterator = _createForOfIteratorHelper(this.parentFields()),
|
|
91
|
-
|
|
92
|
-
|
|
69
|
+
_step;
|
|
93
70
|
try {
|
|
94
71
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
95
72
|
const _step$value = _slicedToArray(_step.value, 2),
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
73
|
+
name = _step$value[0],
|
|
74
|
+
fieldOptions = _step$value[1];
|
|
99
75
|
this.setField(name, _objectSpread(_objectSpread({}, fieldOptions), {}, {
|
|
100
76
|
inherit: true
|
|
101
77
|
}));
|
|
@@ -106,31 +82,24 @@ class InheritedCollection extends _collection.Collection {
|
|
|
106
82
|
_iterator.f();
|
|
107
83
|
}
|
|
108
84
|
}
|
|
109
|
-
|
|
110
85
|
getParents() {
|
|
111
86
|
return this.parents;
|
|
112
87
|
}
|
|
113
|
-
|
|
114
88
|
parentFields() {
|
|
115
89
|
const fields = new Map();
|
|
116
|
-
|
|
117
90
|
var _iterator2 = _createForOfIteratorHelper(this.parents),
|
|
118
|
-
|
|
119
|
-
|
|
91
|
+
_step2;
|
|
120
92
|
try {
|
|
121
93
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
122
94
|
const parent = _step2.value;
|
|
123
|
-
|
|
124
95
|
if (parent.isInherited()) {
|
|
125
96
|
var _iterator3 = _createForOfIteratorHelper(parent.parentFields()),
|
|
126
|
-
|
|
127
|
-
|
|
97
|
+
_step3;
|
|
128
98
|
try {
|
|
129
99
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
130
100
|
const _step3$value = _slicedToArray(_step3.value, 2),
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
101
|
+
name = _step3$value[0],
|
|
102
|
+
field = _step3$value[1];
|
|
134
103
|
fields.set(name, field.options);
|
|
135
104
|
}
|
|
136
105
|
} catch (err) {
|
|
@@ -139,18 +108,14 @@ class InheritedCollection extends _collection.Collection {
|
|
|
139
108
|
_iterator3.f();
|
|
140
109
|
}
|
|
141
110
|
}
|
|
142
|
-
|
|
143
111
|
const parentFields = parent.fields;
|
|
144
|
-
|
|
145
112
|
var _iterator4 = _createForOfIteratorHelper(parentFields),
|
|
146
|
-
|
|
147
|
-
|
|
113
|
+
_step4;
|
|
148
114
|
try {
|
|
149
115
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
150
116
|
const _step4$value = _slicedToArray(_step4.value, 2),
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
117
|
+
name = _step4$value[0],
|
|
118
|
+
field = _step4$value[1];
|
|
154
119
|
fields.set(name, field.options);
|
|
155
120
|
}
|
|
156
121
|
} catch (err) {
|
|
@@ -164,24 +129,18 @@ class InheritedCollection extends _collection.Collection {
|
|
|
164
129
|
} finally {
|
|
165
130
|
_iterator2.f();
|
|
166
131
|
}
|
|
167
|
-
|
|
168
132
|
return fields;
|
|
169
133
|
}
|
|
170
|
-
|
|
171
134
|
parentAttributes() {
|
|
172
135
|
const attributes = {};
|
|
173
|
-
|
|
174
136
|
var _iterator5 = _createForOfIteratorHelper(this.parents),
|
|
175
|
-
|
|
176
|
-
|
|
137
|
+
_step5;
|
|
177
138
|
try {
|
|
178
139
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
179
140
|
const parent = _step5.value;
|
|
180
|
-
|
|
181
141
|
if (parent.isInherited()) {
|
|
182
142
|
Object.assign(attributes, parent.parentAttributes());
|
|
183
143
|
}
|
|
184
|
-
|
|
185
144
|
const parentAttributes = parent.model.tableAttributes;
|
|
186
145
|
Object.assign(attributes, parentAttributes);
|
|
187
146
|
}
|
|
@@ -190,21 +149,15 @@ class InheritedCollection extends _collection.Collection {
|
|
|
190
149
|
} finally {
|
|
191
150
|
_iterator5.f();
|
|
192
151
|
}
|
|
193
|
-
|
|
194
152
|
return attributes;
|
|
195
153
|
}
|
|
196
|
-
|
|
197
154
|
isInherited() {
|
|
198
155
|
return true;
|
|
199
156
|
}
|
|
200
|
-
|
|
201
157
|
}
|
|
202
|
-
|
|
203
158
|
exports.InheritedCollection = InheritedCollection;
|
|
204
|
-
|
|
205
159
|
class ParentCollectionNotFound extends Error {
|
|
206
160
|
constructor(name) {
|
|
207
161
|
super(`parent collection ${name} not found`);
|
|
208
162
|
}
|
|
209
|
-
|
|
210
163
|
}
|
package/lib/inherited-map.js
CHANGED
|
@@ -4,25 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
function _lodash() {
|
|
9
8
|
const data = _interopRequireDefault(require("lodash"));
|
|
10
|
-
|
|
11
9
|
_lodash = function _lodash() {
|
|
12
10
|
return data;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
return data;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
15
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
21
|
-
|
|
22
16
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
23
|
-
|
|
24
17
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
25
|
-
|
|
26
18
|
class TableNode {
|
|
27
19
|
constructor(name) {
|
|
28
20
|
this.name = void 0;
|
|
@@ -32,21 +24,16 @@ class TableNode {
|
|
|
32
24
|
this.parents = new Set();
|
|
33
25
|
this.children = new Set();
|
|
34
26
|
}
|
|
35
|
-
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
class InheritanceMap {
|
|
39
29
|
constructor() {
|
|
40
30
|
this.nodes = new Map();
|
|
41
31
|
}
|
|
42
|
-
|
|
43
32
|
removeNode(name) {
|
|
44
33
|
const node = this.nodes.get(name);
|
|
45
34
|
if (!node) return;
|
|
46
|
-
|
|
47
35
|
var _iterator = _createForOfIteratorHelper(node.parents),
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
_step;
|
|
50
37
|
try {
|
|
51
38
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
52
39
|
const parent = _step.value;
|
|
@@ -57,10 +44,8 @@ class InheritanceMap {
|
|
|
57
44
|
} finally {
|
|
58
45
|
_iterator.f();
|
|
59
46
|
}
|
|
60
|
-
|
|
61
47
|
var _iterator2 = _createForOfIteratorHelper(node.children),
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
_step2;
|
|
64
49
|
try {
|
|
65
50
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
66
51
|
const child = _step2.value;
|
|
@@ -71,32 +56,23 @@ class InheritanceMap {
|
|
|
71
56
|
} finally {
|
|
72
57
|
_iterator2.f();
|
|
73
58
|
}
|
|
74
|
-
|
|
75
59
|
this.nodes.delete(name);
|
|
76
60
|
}
|
|
77
|
-
|
|
78
61
|
getOrCreateNode(name) {
|
|
79
62
|
if (!this.nodes.has(name)) {
|
|
80
63
|
this.nodes.set(name, new TableNode(name));
|
|
81
64
|
}
|
|
82
|
-
|
|
83
65
|
return this.getNode(name);
|
|
84
66
|
}
|
|
85
|
-
|
|
86
67
|
getNode(name) {
|
|
87
68
|
return this.nodes.get(name);
|
|
88
69
|
}
|
|
89
|
-
|
|
90
70
|
setInheritance(name, inherits) {
|
|
91
71
|
const node = this.getOrCreateNode(name);
|
|
92
|
-
|
|
93
72
|
const parents = _lodash().default.castArray(inherits).map(name => this.getOrCreateNode(name));
|
|
94
|
-
|
|
95
73
|
node.parents = new Set(parents);
|
|
96
|
-
|
|
97
74
|
var _iterator3 = _createForOfIteratorHelper(parents),
|
|
98
|
-
|
|
99
|
-
|
|
75
|
+
_step3;
|
|
100
76
|
try {
|
|
101
77
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
102
78
|
const parent = _step3.value;
|
|
@@ -108,34 +84,27 @@ class InheritanceMap {
|
|
|
108
84
|
_iterator3.f();
|
|
109
85
|
}
|
|
110
86
|
}
|
|
111
|
-
|
|
112
87
|
isParentNode(name) {
|
|
113
88
|
const node = this.getNode(name);
|
|
114
89
|
return node && node.children.size > 0;
|
|
115
90
|
}
|
|
116
|
-
|
|
117
91
|
getChildren(name, options = {
|
|
118
92
|
deep: true
|
|
119
93
|
}) {
|
|
120
94
|
const results = new Set();
|
|
121
95
|
const node = this.getNode(name);
|
|
122
96
|
if (!node) return results;
|
|
123
|
-
|
|
124
97
|
var _iterator4 = _createForOfIteratorHelper(node.children),
|
|
125
|
-
|
|
126
|
-
|
|
98
|
+
_step4;
|
|
127
99
|
try {
|
|
128
100
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
129
101
|
const child = _step4.value;
|
|
130
102
|
results.add(child.name);
|
|
131
|
-
|
|
132
103
|
if (!options.deep) {
|
|
133
104
|
continue;
|
|
134
105
|
}
|
|
135
|
-
|
|
136
106
|
var _iterator5 = _createForOfIteratorHelper(this.getChildren(child.name)),
|
|
137
|
-
|
|
138
|
-
|
|
107
|
+
_step5;
|
|
139
108
|
try {
|
|
140
109
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
141
110
|
const grandchild = _step5.value;
|
|
@@ -152,32 +121,25 @@ class InheritanceMap {
|
|
|
152
121
|
} finally {
|
|
153
122
|
_iterator4.f();
|
|
154
123
|
}
|
|
155
|
-
|
|
156
124
|
return results;
|
|
157
125
|
}
|
|
158
|
-
|
|
159
126
|
getParents(name, options = {
|
|
160
127
|
deep: true
|
|
161
128
|
}) {
|
|
162
129
|
const results = new Set();
|
|
163
130
|
const node = this.getNode(name);
|
|
164
131
|
if (!node) return results;
|
|
165
|
-
|
|
166
132
|
var _iterator6 = _createForOfIteratorHelper(node.parents),
|
|
167
|
-
|
|
168
|
-
|
|
133
|
+
_step6;
|
|
169
134
|
try {
|
|
170
135
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
171
136
|
const parent = _step6.value;
|
|
172
137
|
results.add(parent.name);
|
|
173
|
-
|
|
174
138
|
if (!options.deep) {
|
|
175
139
|
continue;
|
|
176
140
|
}
|
|
177
|
-
|
|
178
141
|
var _iterator7 = _createForOfIteratorHelper(this.getParents(parent.name)),
|
|
179
|
-
|
|
180
|
-
|
|
142
|
+
_step7;
|
|
181
143
|
try {
|
|
182
144
|
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
183
145
|
const grandparent = _step7.value;
|
|
@@ -194,10 +156,7 @@ class InheritanceMap {
|
|
|
194
156
|
} finally {
|
|
195
157
|
_iterator6.f();
|
|
196
158
|
}
|
|
197
|
-
|
|
198
159
|
return results;
|
|
199
160
|
}
|
|
200
|
-
|
|
201
161
|
}
|
|
202
|
-
|
|
203
162
|
exports.default = InheritanceMap;
|