@based/schema 5.1.2 → 5.1.4
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/dbSchema.js +3 -3
- package/dist/def/fillEmptyMain.js +1 -1
- package/dist/def/typeDef.js +2 -1
- package/dist/def/types.d.ts +5 -4
- package/dist/parse/props.js +12 -6
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/dbSchema.js
CHANGED
|
@@ -6,7 +6,7 @@ function _makeEdgeTypes(newTypes, typeName, props, propPrefix) {
|
|
|
6
6
|
for (const propName in props) {
|
|
7
7
|
const prop = props[propName];
|
|
8
8
|
const propType = getPropType(prop);
|
|
9
|
-
const nextPropPrefix = propPrefix ? `${propPrefix}
|
|
9
|
+
const nextPropPrefix = propPrefix ? `${propPrefix}_${propName}` : propName;
|
|
10
10
|
if (propType === 'object') {
|
|
11
11
|
_makeEdgeTypes(newTypes, typeName, prop.props, nextPropPrefix);
|
|
12
12
|
}
|
|
@@ -16,7 +16,7 @@ function _makeEdgeTypes(newTypes, typeName, props, propPrefix) {
|
|
|
16
16
|
.filter((k) => k[0] === '$')
|
|
17
17
|
.forEach((k) => (edgeProps[k] = prop[k]));
|
|
18
18
|
if (Object.keys(edgeProps).length > 0) {
|
|
19
|
-
putEdgeProps(`${typeName}
|
|
19
|
+
putEdgeProps(`${typeName}_${nextPropPrefix}`, `${prop.ref}_${prop.prop}`, edgeProps);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
else if (propType === 'references') {
|
|
@@ -25,7 +25,7 @@ function _makeEdgeTypes(newTypes, typeName, props, propPrefix) {
|
|
|
25
25
|
.filter((k) => k[0] === '$')
|
|
26
26
|
.forEach((k) => (edgeProps[k] = prop.items[k]));
|
|
27
27
|
if (Object.keys(edgeProps).length > 0) {
|
|
28
|
-
putEdgeProps(`${typeName}
|
|
28
|
+
putEdgeProps(`${typeName}_${nextPropPrefix}`, `${prop.items.ref}_${prop.items.prop}`, edgeProps);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -11,7 +11,7 @@ export const fillEmptyMain = (vals, mainLen) => {
|
|
|
11
11
|
const s = f.start;
|
|
12
12
|
let val = f.default;
|
|
13
13
|
if (t === ENUM) {
|
|
14
|
-
mainEmpty[s] = f.default ?? 0;
|
|
14
|
+
mainEmpty[s] = f.default ? (f.enum?.indexOf(f.default) ?? -1) + 1 : 0;
|
|
15
15
|
}
|
|
16
16
|
else if (t === INT8 || t === UINT8) {
|
|
17
17
|
mainEmpty[s] = val;
|
package/dist/def/typeDef.js
CHANGED
|
@@ -52,7 +52,7 @@ export const updateTypeDefs = (schema) => {
|
|
|
52
52
|
// Update edgeNodeTypeId
|
|
53
53
|
if (!prop.edgeNodeTypeId) {
|
|
54
54
|
if (prop.edges) {
|
|
55
|
-
const edgeTypeName = `_${[`${schema.type}
|
|
55
|
+
const edgeTypeName = `_${[`${schema.type}_${prop.path.join('_')}`, `${dstType.type}_${dstType.props[prop.inversePropName].path.join('_')}`].sort().join(':')}`;
|
|
56
56
|
const edgeType = schemaTypesParsed[edgeTypeName];
|
|
57
57
|
prop.edgeNodeTypeId = edgeType.id;
|
|
58
58
|
dstType.props[prop.inversePropName].edgeNodeTypeId = edgeType.id;
|
|
@@ -201,6 +201,7 @@ const createSchemaTypeDef = (typeName, type, locales, result = createEmptyDef(ty
|
|
|
201
201
|
prop.inversePropName = schemaProp.items.prop;
|
|
202
202
|
prop.inverseTypeName = schemaProp.items.ref;
|
|
203
203
|
prop.dependent = schemaProp.items.dependent;
|
|
204
|
+
prop.referencesCapped = schemaProp.capped ?? 0;
|
|
204
205
|
addEdges(prop, schemaProp.items);
|
|
205
206
|
}
|
|
206
207
|
else if (isPropType('reference', schemaProp)) {
|
package/dist/def/types.d.ts
CHANGED
|
@@ -23,15 +23,16 @@ export type PropDef = {
|
|
|
23
23
|
path: string[];
|
|
24
24
|
start: number;
|
|
25
25
|
len: number;
|
|
26
|
-
inverseTypeName?: string;
|
|
27
|
-
inversePropName?: string;
|
|
28
26
|
compression?: 0 | 1;
|
|
29
|
-
inverseTypeId?: number;
|
|
30
|
-
inversePropNumber?: number;
|
|
31
27
|
enum?: any[];
|
|
32
28
|
dependent?: boolean;
|
|
33
29
|
validation: Validation;
|
|
34
30
|
default: any;
|
|
31
|
+
inverseTypeName?: string;
|
|
32
|
+
inversePropName?: string;
|
|
33
|
+
inverseTypeId?: number;
|
|
34
|
+
inversePropNumber?: number;
|
|
35
|
+
referencesCapped?: number;
|
|
35
36
|
vectorBaseType?: VectorBaseType;
|
|
36
37
|
vectorSize?: number;
|
|
37
38
|
cardinalityMode?: number;
|
package/dist/parse/props.js
CHANGED
|
@@ -149,12 +149,12 @@ export const isDefault = (val, prop, ctx) => {
|
|
|
149
149
|
if (!validation(val, tmpProp)) {
|
|
150
150
|
throw new Error(`Incorrect default for type "${prop.type ?? 'enum'}"`);
|
|
151
151
|
}
|
|
152
|
-
if ('enum' in prop) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
152
|
+
// if ('enum' in prop) {
|
|
153
|
+
// if (val === undefined) {
|
|
154
|
+
// return 0
|
|
155
|
+
// }
|
|
156
|
+
// return prop.enum.findIndex((v) => v === val) + 1
|
|
157
|
+
// }
|
|
158
158
|
return val;
|
|
159
159
|
};
|
|
160
160
|
p.boolean = propParser(STUB, {
|
|
@@ -276,6 +276,12 @@ p.references = propParser({
|
|
|
276
276
|
throw new Error(INVALID_VALUE);
|
|
277
277
|
}
|
|
278
278
|
},
|
|
279
|
+
capped(val) {
|
|
280
|
+
if (val !== undefined &&
|
|
281
|
+
(typeof val !== 'number' || val < 0 || !Number.isInteger(val))) {
|
|
282
|
+
throw Error(INVALID_VALUE);
|
|
283
|
+
}
|
|
284
|
+
},
|
|
279
285
|
}, {
|
|
280
286
|
default(val, prop, ctx) {
|
|
281
287
|
return isDefault(val, prop, ctx);
|
package/dist/types.d.ts
CHANGED