@takeshape/schema 9.104.0 → 9.104.2
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/flatten-templates.js +1 -1
- package/dist/interfaces.d.ts +4 -4
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +12 -8
- package/dist/refs.d.ts +2 -2
- package/dist/refs.d.ts.map +1 -1
- package/dist/refs.js +9 -8
- package/dist/schema-util.d.ts.map +1 -1
- package/dist/schema-util.js +28 -23
- package/dist/template-shapes/templates.d.ts.map +1 -1
- package/dist/template-shapes/templates.js +1 -1
- package/dist/template-shapes/where.js +1 -1
- package/dist/unions.js +1 -1
- package/dist/util/form-config.js +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +16 -13
- package/es/flatten-templates.js +2 -2
- package/es/interfaces.js +13 -9
- package/es/refs.js +8 -7
- package/es/schema-util.js +29 -24
- package/es/template-shapes/templates.js +2 -2
- package/es/template-shapes/where.js +2 -2
- package/es/unions.js +2 -2
- package/es/util/form-config.js +2 -2
- package/es/validate.js +17 -14
- package/examples/dependencies/wordpress-2024-01.json +26894 -0
- package/package.json +5 -5
|
@@ -21,7 +21,7 @@ function flattenTemplates(projectSchema) {
|
|
|
21
21
|
const {
|
|
22
22
|
shapeName,
|
|
23
23
|
dependencies
|
|
24
|
-
} = (0, _templateShapes.resolveTemplate)(newSchema, ref.template, (0, _refs.
|
|
24
|
+
} = (0, _templateShapes.resolveTemplate)(newSchema, ref.template, (0, _refs.refItemToNamespacedShapeName)(ref));
|
|
25
25
|
(0, _set.default)(newSchema, ref.path, ref.path[ref.path.length - 1] === '@ref' ? `local:${shapeName}` : shapeName);
|
|
26
26
|
Object.assign(newSchema.shapes, dependencies);
|
|
27
27
|
}
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { OneOfSchema, ProjectSchemaJSON, PropertySchema, ShapeJSON, ShapeMap } from './project-schema';
|
|
2
|
-
import type { ServicesShapesContext } from './refs';
|
|
2
|
+
import type { RefItem, ServicesShapesContext } from './refs';
|
|
3
3
|
export declare function isInterfaceShape(shape?: ShapeJSON): boolean;
|
|
4
4
|
export type ImplementationShapeMap = Record<string, Set<ShapeJSON>>;
|
|
5
5
|
export type ImplementationShapeNameMap = Record<string, Set<string>>;
|
|
6
6
|
export declare function isInterfaceRef(context: ServicesShapesContext, propertySchema: PropertySchema): boolean;
|
|
7
7
|
export declare function getImplementationShapeMap(shapeMap: ShapeMap): ImplementationShapeMap;
|
|
8
8
|
export declare function getImplementationShapeNameMap(shapeMap: ShapeMap): ImplementationShapeNameMap;
|
|
9
|
-
export declare function pruneUnusedInterfaces(shapeMap: ShapeMap): ShapeMap;
|
|
10
|
-
export declare function getImplementingShapes(
|
|
11
|
-
export declare function interfaceToUnion(context: Pick<ProjectSchemaJSON, 'shapes' | 'services'>,
|
|
9
|
+
export declare function pruneUnusedInterfaces(projectSchema: ProjectSchemaJSON, shapeMap: ShapeMap): ShapeMap;
|
|
10
|
+
export declare function getImplementingShapes(context: Pick<ProjectSchemaJSON, 'services' | 'shapes'>, interfaceRef: RefItem): ShapeJSON[];
|
|
11
|
+
export declare function interfaceToUnion(context: Pick<ProjectSchemaJSON, 'shapes' | 'services'>, interfaceRef: RefItem): OneOfSchema;
|
|
12
12
|
export declare function getPossibleShapeNames(projectSchema: ProjectSchemaJSON, shape: ShapeJSON): string[];
|
|
13
13
|
//# sourceMappingURL=interfaces.d.ts.map
|
package/dist/interfaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1G,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1G,OAAO,KAAK,EAAC,OAAO,EAAE,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAa3D,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAErE,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAGtG;AAqBD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,sBAAsB,CAEpF;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,GAAG,0BAA0B,CAE5F;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAcpG;AAMD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,QAAQ,CAAC,EACvD,YAAY,EAAE,OAAO,GACpB,SAAS,EAAE,CAcb;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,UAAU,CAAC,EACvD,YAAY,EAAE,OAAO,GACpB,WAAW,CAKb;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAgBlG"}
|
package/dist/interfaces.js
CHANGED
|
@@ -45,13 +45,13 @@ function getImplementationShapeMap(shapeMap) {
|
|
|
45
45
|
function getImplementationShapeNameMap(shapeMap) {
|
|
46
46
|
return getImplementationsHelper(shapeMap, shape => shape.name);
|
|
47
47
|
}
|
|
48
|
-
function pruneUnusedInterfaces(shapeMap) {
|
|
48
|
+
function pruneUnusedInterfaces(projectSchema, shapeMap) {
|
|
49
49
|
return (0, _mapValues.default)(shapeMap, shape => {
|
|
50
50
|
const {
|
|
51
51
|
interfaces
|
|
52
52
|
} = shape;
|
|
53
53
|
if (interfaces !== null && interfaces !== void 0 && interfaces.length) {
|
|
54
|
-
const filteredInterfaces = interfaces.filter(
|
|
54
|
+
const filteredInterfaces = interfaces.filter(refExpression => shapeMap[(0, _refs.refItemToNamespacedShapeName)((0, _refs.refExpressionToRefItem)(projectSchema, refExpression))]);
|
|
55
55
|
if (interfaces.length !== filteredInterfaces.length) {
|
|
56
56
|
return {
|
|
57
57
|
...shape,
|
|
@@ -62,18 +62,22 @@ function pruneUnusedInterfaces(shapeMap) {
|
|
|
62
62
|
return shape;
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
function
|
|
65
|
+
function compareRefItems(refItem1, refItem2) {
|
|
66
|
+
return refItem1.typeName === refItem2.typeName && refItem1.serviceKey === refItem2.serviceKey;
|
|
67
|
+
}
|
|
68
|
+
function getImplementingShapes(context, interfaceRef) {
|
|
69
|
+
const shapeMap = context.shapes;
|
|
66
70
|
const implementingShapes = [];
|
|
67
71
|
for (const shape of Object.values(shapeMap)) {
|
|
68
72
|
var _shape$interfaces;
|
|
69
|
-
if ((_shape$interfaces = shape.interfaces) !== null && _shape$interfaces !== void 0 && _shape$interfaces.
|
|
73
|
+
if ((_shape$interfaces = shape.interfaces) !== null && _shape$interfaces !== void 0 && _shape$interfaces.find(interfaceRefExpression => compareRefItems((0, _refs.refExpressionToRefItem)(context, interfaceRefExpression), interfaceRef))) {
|
|
70
74
|
implementingShapes.push(shape);
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
return implementingShapes;
|
|
74
78
|
}
|
|
75
|
-
function interfaceToUnion(context,
|
|
76
|
-
const shapes = getImplementingShapes(context
|
|
79
|
+
function interfaceToUnion(context, interfaceRef) {
|
|
80
|
+
const shapes = getImplementingShapes(context, interfaceRef);
|
|
77
81
|
return {
|
|
78
82
|
oneOf: shapes.map(shape => ({
|
|
79
83
|
'@ref': (0, _refs.shapeNameToRef)(context, shape.name)
|
|
@@ -83,11 +87,11 @@ function interfaceToUnion(context, interfaceName) {
|
|
|
83
87
|
function getPossibleShapeNames(projectSchema, shape) {
|
|
84
88
|
let names;
|
|
85
89
|
if (isInterfaceShape(shape)) {
|
|
86
|
-
names = getImplementingShapes(projectSchema.
|
|
90
|
+
names = getImplementingShapes(projectSchema, (0, _refs.shapeToRefItem)(projectSchema, shape)).map(shape => shape.name);
|
|
87
91
|
} else if ((0, _unions.isUnionSchema)(shape.schema)) {
|
|
88
92
|
names = shape.schema.oneOf.map(member => {
|
|
89
93
|
const ref = (0, _refs.getRef)(projectSchema, member);
|
|
90
|
-
return ref && (0, _refs.
|
|
94
|
+
return ref && (0, _refs.refItemToNamespacedShapeName)(ref);
|
|
91
95
|
}).filter(_util.isDefined);
|
|
92
96
|
} else {
|
|
93
97
|
names = [shape.name];
|
package/dist/refs.d.ts
CHANGED
|
@@ -109,7 +109,7 @@ export declare function shapeToRefItem(context: ServicesContext, shape: ShapeJSO
|
|
|
109
109
|
* returns a `RefItem` suitable for loading a referenced schema...
|
|
110
110
|
*/
|
|
111
111
|
export declare function getRef(context: ServicesContext, refSchema: SchemaWithRef): Maybe<RefItem>;
|
|
112
|
-
export declare function getRefWithPath(context: ServicesContext, refSchema: SchemaWithRef, schemaPath?: SchemaPath): Maybe<RefItemWithPath>;
|
|
112
|
+
export declare function getRefWithPath(context: ServicesContext, refSchema: SchemaWithRef, schemaPath?: SchemaPath, isInterfaceRef?: boolean): Maybe<RefItemWithPath>;
|
|
113
113
|
/**
|
|
114
114
|
* Tests for a `@ref` or `$ref` property directly on the passed schema.
|
|
115
115
|
*
|
|
@@ -128,7 +128,7 @@ export declare function refItemToAtRef(refItem: RefItem): string;
|
|
|
128
128
|
/**
|
|
129
129
|
* Turns a `RefItem` into a standard shape name, namespacing if present.
|
|
130
130
|
*/
|
|
131
|
-
export declare function
|
|
131
|
+
export declare function refItemToNamespacedShapeName(refItem: RefItem): string;
|
|
132
132
|
/**
|
|
133
133
|
* Turns a `RefItem` into a path suitable for `lodash.get`.
|
|
134
134
|
*/
|
package/dist/refs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,GAAG,EACH,iBAAiB,EACjB,IAAI,EACJ,SAAS,EACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,KAAK,EAA4C,MAAM,iBAAiB,CAAC;AAoBjF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAClE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,WAAW,OAAQ,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,IAAI,eAAe,CAEtF;AAGD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAO7G;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAqBtG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,GAAG,cAAc,CAU5G;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,UAAW,MAAM,WAEvC,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAUD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAQrF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,YAOjF;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAQ/F;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAE5G;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAE5G;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAKlD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAalG;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/F;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAqB5E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAU1G;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAElF;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAWzF;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,aAAa,EACxB,UAAU,GAAE,UAAe,
|
|
1
|
+
{"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":"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"}
|
package/dist/refs.js
CHANGED
|
@@ -42,8 +42,8 @@ exports.refExpressionToRefItem = refExpressionToRefItem;
|
|
|
42
42
|
exports.refExpressionToShape = refExpressionToShape;
|
|
43
43
|
exports.refItemListToShapeList = refItemListToShapeList;
|
|
44
44
|
exports.refItemToAtRef = refItemToAtRef;
|
|
45
|
+
exports.refItemToNamespacedShapeName = refItemToNamespacedShapeName;
|
|
45
46
|
exports.refItemToShape = refItemToShape;
|
|
46
|
-
exports.refItemToShapeName = refItemToShapeName;
|
|
47
47
|
exports.refItemToShapePath = refItemToShapePath;
|
|
48
48
|
exports.refItemToShapeSchema = refItemToShapeSchema;
|
|
49
49
|
exports.refItemToShapeWithPath = refItemToShapeWithPath;
|
|
@@ -111,7 +111,7 @@ function parseReturnShape(projectSchema, shape) {
|
|
|
111
111
|
return {
|
|
112
112
|
isArray: true,
|
|
113
113
|
ref,
|
|
114
|
-
shapeName:
|
|
114
|
+
shapeName: refItemToNamespacedShapeName(ref)
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
if (typeof shape.items.type !== 'string') {
|
|
@@ -123,7 +123,7 @@ function parseReturnShape(projectSchema, shape) {
|
|
|
123
123
|
};
|
|
124
124
|
}
|
|
125
125
|
const ref = refExpressionToRefItem(projectSchema, shape);
|
|
126
|
-
const shapeName =
|
|
126
|
+
const shapeName = refItemToNamespacedShapeName(ref);
|
|
127
127
|
return {
|
|
128
128
|
isArray: false,
|
|
129
129
|
shapeName,
|
|
@@ -317,13 +317,14 @@ function getRef(context, refSchema) {
|
|
|
317
317
|
return refToRefItem(context, refSchema.$ref);
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
|
-
function getRefWithPath(context, refSchema, schemaPath = []) {
|
|
320
|
+
function getRefWithPath(context, refSchema, schemaPath = [], isInterfaceRef = false) {
|
|
321
321
|
const refItem = getRef(context, refSchema);
|
|
322
322
|
if (refItem) {
|
|
323
323
|
const refType = (0, _types.getRefType)(refSchema);
|
|
324
324
|
return {
|
|
325
325
|
...refItem,
|
|
326
|
-
path: schemaPath.concat([refType])
|
|
326
|
+
path: schemaPath.concat([refType]),
|
|
327
|
+
isInterfaceRef
|
|
327
328
|
};
|
|
328
329
|
}
|
|
329
330
|
}
|
|
@@ -361,7 +362,7 @@ function refItemToAtRef(refItem) {
|
|
|
361
362
|
/**
|
|
362
363
|
* Turns a `RefItem` into a standard shape name, namespacing if present.
|
|
363
364
|
*/
|
|
364
|
-
function
|
|
365
|
+
function refItemToNamespacedShapeName(refItem) {
|
|
365
366
|
const {
|
|
366
367
|
serviceNamespace,
|
|
367
368
|
typeName
|
|
@@ -373,7 +374,7 @@ function refItemToShapeName(refItem) {
|
|
|
373
374
|
* Turns a `RefItem` into a path suitable for `lodash.get`.
|
|
374
375
|
*/
|
|
375
376
|
function refItemToShapePath(refItem) {
|
|
376
|
-
return ['shapes',
|
|
377
|
+
return ['shapes', refItemToNamespacedShapeName(refItem)];
|
|
377
378
|
}
|
|
378
379
|
|
|
379
380
|
/**
|
|
@@ -416,7 +417,7 @@ function refItemToShapeSchema(context, refItem) {
|
|
|
416
417
|
*/
|
|
417
418
|
function getRefShapeName(context, refSchema) {
|
|
418
419
|
const refItem = getRef(context, refSchema);
|
|
419
|
-
return refItem ?
|
|
420
|
+
return refItem ? refItemToNamespacedShapeName(refItem) : undefined;
|
|
420
421
|
}
|
|
421
422
|
|
|
422
423
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-util.d.ts","sourceRoot":"","sources":["../../src/schema-util.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAEd,SAAS,EAET,SAAS,EACT,QAAQ,EACR,aAAa,EAGb,WAAW,EAEX,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,+BAA+B,EAC/B,UAAU,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAElB,UAAU,EACV,aAAa,EACb,WAAW,EACZ,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAC,KAAK,EAA4C,MAAM,iBAAiB,CAAC;AAiBjF,OAAO,EASL,OAAO,EAIP,eAAe,EACf,eAAe,EACf,qBAAqB,
|
|
1
|
+
{"version":3,"file":"schema-util.d.ts","sourceRoot":"","sources":["../../src/schema-util.ts"],"names":[],"mappings":"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"}
|
package/dist/schema-util.js
CHANGED
|
@@ -484,7 +484,7 @@ const requiredBuiltinShapes = ['Asset', 'TSRelationship', 'TSStaticSite', 'TSUse
|
|
|
484
484
|
*/
|
|
485
485
|
function getBuiltinsUsed(projectSchema) {
|
|
486
486
|
const builtinsUsed = {};
|
|
487
|
-
const shapeNames = (0, _uniq.default)(requiredBuiltinShapes.concat(getAllRefs(projectSchema, refItem => refItem.serviceKey === 'local' && isBuiltinShape(refItem.typeName)).map(_refs.
|
|
487
|
+
const shapeNames = (0, _uniq.default)(requiredBuiltinShapes.concat(getAllRefs(projectSchema, refItem => refItem.serviceKey === 'local' && isBuiltinShape(refItem.typeName)).map(_refs.refItemToNamespacedShapeName)));
|
|
488
488
|
const schemaWithAllBuiltins = {
|
|
489
489
|
...emptySchema('project-id'),
|
|
490
490
|
shapes: _builtinSchema.builtInShapes
|
|
@@ -628,7 +628,7 @@ const createShapeToPropertySchema = (projectSchema, definitions, definitionNames
|
|
|
628
628
|
}
|
|
629
629
|
const refItem = (0, _refs.getRef)(projectSchema, propSchema);
|
|
630
630
|
if (refItem) {
|
|
631
|
-
const shapeName = (0, _refs.
|
|
631
|
+
const shapeName = (0, _refs.refItemToNamespacedShapeName)(refItem);
|
|
632
632
|
const shape = (0, _refs.refItemToShape)(projectSchema, refItem);
|
|
633
633
|
if (shape) {
|
|
634
634
|
delete propSchema['@ref'];
|
|
@@ -776,39 +776,44 @@ function addRef(refs, ref, predicate) {
|
|
|
776
776
|
*/
|
|
777
777
|
function getAllRefsInShapes(projectSchema, predicate) {
|
|
778
778
|
const items = [];
|
|
779
|
-
const refPropNames = ['$ref', '@ref', '@args', 'args'];
|
|
780
|
-
(0, _util.visit)(projectSchema.shapes, refPropNames, (
|
|
779
|
+
const refPropNames = ['$ref', '@ref', '@args', 'args', 'interfaces'];
|
|
780
|
+
(0, _util.visit)(projectSchema.shapes, refPropNames, (interfaces, refPath) => {
|
|
781
|
+
const propName = refPath[refPath.length - 1];
|
|
782
|
+
const path = ['shapes', ...refPath];
|
|
783
|
+
if (propName === 'interfaces' && (0, _isArray.default)(interfaces)) {
|
|
784
|
+
interfaces.forEach((interfaceRefExpression, index) => {
|
|
785
|
+
addRef(items, {
|
|
786
|
+
...(0, _refs.refExpressionToRefItem)(projectSchema, interfaceRefExpression),
|
|
787
|
+
path: [...path, index]
|
|
788
|
+
}, predicate);
|
|
789
|
+
});
|
|
790
|
+
}
|
|
791
|
+
|
|
781
792
|
// The client sometimes generates invalid schemas, like refs that are
|
|
782
793
|
// undefined. Treat ref as unknown and toss those out.
|
|
783
794
|
// See the `useShapeEditor > can deal with renames test`
|
|
784
|
-
if (!(0, _isString.default)(
|
|
795
|
+
if (!(0, _isString.default)(interfaces)) {
|
|
785
796
|
return;
|
|
786
797
|
}
|
|
787
|
-
const propName = refPath[refPath.length - 1];
|
|
788
|
-
const path = ['shapes', ...refPath];
|
|
789
|
-
let refItem = {};
|
|
790
798
|
if (propName === '@ref') {
|
|
791
799
|
const {
|
|
792
800
|
shapeName,
|
|
793
801
|
template
|
|
794
|
-
} = (0, _refs.parseTemplateShape)(
|
|
795
|
-
|
|
802
|
+
} = (0, _refs.parseTemplateShape)(interfaces);
|
|
803
|
+
addRef(items, {
|
|
796
804
|
...(0, _refs.atRefToRefItem)(projectSchema, shapeName, template),
|
|
797
805
|
path
|
|
798
|
-
};
|
|
806
|
+
}, predicate);
|
|
799
807
|
} else if (propName === '$ref') {
|
|
800
|
-
|
|
801
|
-
...(0, _refs.refToRefItem)(projectSchema,
|
|
808
|
+
addRef(items, {
|
|
809
|
+
...(0, _refs.refToRefItem)(projectSchema, interfaces),
|
|
802
810
|
path
|
|
803
|
-
};
|
|
811
|
+
}, predicate);
|
|
804
812
|
} else if (propName === '@args' || propName === 'args') {
|
|
805
|
-
|
|
806
|
-
...(0, _refs.refExpressionToRefItem)(projectSchema,
|
|
813
|
+
addRef(items, {
|
|
814
|
+
...(0, _refs.refExpressionToRefItem)(projectSchema, interfaces),
|
|
807
815
|
path
|
|
808
|
-
};
|
|
809
|
-
}
|
|
810
|
-
if ((0, _refs.isRefItemWithPath)(refItem)) {
|
|
811
|
-
addRef(items, refItem, predicate);
|
|
816
|
+
}, predicate);
|
|
812
817
|
}
|
|
813
818
|
});
|
|
814
819
|
return items;
|
|
@@ -936,7 +941,7 @@ function getShapesById(projectSchema) {
|
|
|
936
941
|
*/
|
|
937
942
|
function getAllNamespaceShapes(projectSchema) {
|
|
938
943
|
const isServiceRef = refItem => Boolean(refItem.serviceNamespace);
|
|
939
|
-
return (0, _uniq.default)(getAllRefs(projectSchema, isServiceRef).map(_refs.
|
|
944
|
+
return (0, _uniq.default)(getAllRefs(projectSchema, isServiceRef).map(_refs.refItemToNamespacedShapeName));
|
|
940
945
|
}
|
|
941
946
|
|
|
942
947
|
/**
|
|
@@ -993,7 +998,7 @@ function filterGraphQLServiceMap(serviceMap) {
|
|
|
993
998
|
*/
|
|
994
999
|
function collectReferencedShapeNames(context, shapeNames) {
|
|
995
1000
|
const addRef = refItem => {
|
|
996
|
-
shapeNames.add((0, _refs.
|
|
1001
|
+
shapeNames.add((0, _refs.refItemToNamespacedShapeName)(refItem));
|
|
997
1002
|
};
|
|
998
1003
|
const collect = schema => {
|
|
999
1004
|
const args = schema['@args'];
|
|
@@ -1206,7 +1211,7 @@ function fieldMappingContainsKey(fieldMapping, key) {
|
|
|
1206
1211
|
const schemaMatchesShapeName = (workingCopy, schemaWithRef, shapeName) => {
|
|
1207
1212
|
const arrayOfShapeRef = (0, _refs.getRef)(workingCopy, schemaWithRef);
|
|
1208
1213
|
(0, _tinyInvariant.default)(arrayOfShapeRef);
|
|
1209
|
-
const arrayOfShapeName = (0, _refs.
|
|
1214
|
+
const arrayOfShapeName = (0, _refs.refItemToNamespacedShapeName)(arrayOfShapeRef);
|
|
1210
1215
|
return arrayOfShapeName === shapeName;
|
|
1211
1216
|
};
|
|
1212
1217
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/template-shapes/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAqB,cAAc,EAAE,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAC/G,OAAO,KAAK,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/template-shapes/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAqB,cAAc,EAAE,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAC/G,OAAO,KAAK,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAiBtC,eAAO,MAAM,SAAS,YAoJH,OAAO,SAAS,SAAS,KAAG,gBAAgB,AApJX,CAAC;AACrD,eAAO,MAAM,kBAAkB,YAmJZ,OAAO,SAAS,SAAS,KAAG,gBAAgB,AAnJO,CAAC;AACvE,eAAO,MAAM,UAAU,YA0WJ,eAAe,SAAS,SAAS,KAAG,gBAAgB,AA1WJ,CAAC;AACpE,eAAO,MAAM,YAAY,YAyWN,eAAe,SAAS,SAAS,KAAG,gBAAgB,AAzWC,CAAC;AACzE,eAAO,MAAM,UAAU,sBAsNI,eAAe,SAAS,SAAS,KAAG,gBAAgB,AAtNF,CAAC;AAC9E,eAAO,MAAM,UAAU,sBAqNI,eAAe,SAAS,SAAS,KAAG,gBAAgB,AArNF,CAAC;AAC9E,eAAO,MAAM,aAAa,sBAoNC,eAAe,SAAS,SAAS,KAAG,gBAAgB,AApNO,CAAC;AACvF,eAAO,MAAM,UAAU,sBAmNI,eAAe,SAAS,SAAS,KAAG,gBAAgB,AAnNF,CAAC;AAC9E,eAAO,MAAM,aAAa,8BAAwB,CAAC;AACnD,eAAO,MAAM,aAAa,8BAAwB,CAAC;AACnD,eAAO,MAAM,YAAY,YA+RN,OAAO,SAAS,SAAS,KAAG,gBAAgB,AA/RQ,CAAC;AACxE,eAAO,MAAM,YAAY,YA8RN,OAAO,SAAS,SAAS,KAAG,gBAAgB,AA9RQ,CAAC;AACxE,eAAO,MAAM,eAAe,YA6RT,OAAO,SAAS,SAAS,KAAG,gBAAgB,AA7Rc,CAAC;AAC9E,eAAO,MAAM,YAAY,YA4RN,OAAO,SAAS,SAAS,KAAG,gBAAgB,AA5RQ,CAAC;AAExE,eAAO,MAAM,iBAAiB,WAU5B,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAqB5D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,YAMzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAKxB,CAAC;AAEF,eAAO,MAAM,uBAAuB,WAsBnC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,gBAAgB,CAe1F;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,gBAAgB,CAmB1F;AAsBD,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,aAChC,OAAO,SAAS,SAAS,KAAG,gBAAgB,CAU9D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,aAAa,eACxC,MAAM,YAG1B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AA2BD;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,uBAM9C,eAAe,SAAS,SAAS,KAAG,gBAAgB,CA4E9E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,aACtC,OAAO,SAAS,SAAS,KAAG,gBAAgB,CAiB9D;AAED,eAAO,MAAM,gBAAgB,EAAE,YAwB9B,CAAC;AAuBF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,aAC5D,eAAe,SAAS,SAAS,KAAG,gBAAgB,CA0BtE"}
|
|
@@ -247,7 +247,7 @@ function rewriteRefs(context, shapeSchema, rewriteShapeName) {
|
|
|
247
247
|
if ((value['@ref'] || value.$ref) && !parentPath.includes('@input') && !parentPath.includes('@output')) {
|
|
248
248
|
const refItem = (0, _refs.getRef)(context, value);
|
|
249
249
|
if (refItem) {
|
|
250
|
-
value['@ref'] = refItem.isForeign ? (0, _refs.refItemToAtRef)(refItem) : `local:${rewriteShapeName((0, _refs.
|
|
250
|
+
value['@ref'] = refItem.isForeign ? (0, _refs.refItemToAtRef)(refItem) : `local:${rewriteShapeName((0, _refs.refItemToNamespacedShapeName)(refItem))}`;
|
|
251
251
|
if (value.$ref) {
|
|
252
252
|
delete value.$ref;
|
|
253
253
|
}
|
|
@@ -231,7 +231,7 @@ function getTypeName(name, prop, shapeName, context) {
|
|
|
231
231
|
const prefix = `TS${relationshipDepth >= MAX_RELATIONSHIP_DEPTH ? 'Shallow' : ''}Where`;
|
|
232
232
|
const fieldName = `${conflictingProperties !== null && conflictingProperties !== void 0 && conflictingProperties.has(name) ? '_' : ''}${(0, _util.formatShapeName)(name)}`;
|
|
233
233
|
const refItem = (0, _refs.getRefOrItemsRef)(projectSchema, prop);
|
|
234
|
-
const suffix = refItem ? (0, _refs.
|
|
234
|
+
const suffix = refItem ? (0, _refs.refItemToNamespacedShapeName)(refItem) : `${shapeName}${fieldName}`;
|
|
235
235
|
return `${prefix}${suffix}`;
|
|
236
236
|
}
|
|
237
237
|
return `TSWhere${(0, _util.pascalCase)(type)}`;
|
package/dist/unions.js
CHANGED
|
@@ -23,7 +23,7 @@ function enumerateOneOfKeys(projectSchema, oneOf) {
|
|
|
23
23
|
for (const child of oneOf) {
|
|
24
24
|
const refItem = (0, _refs.getRef)(projectSchema, child);
|
|
25
25
|
if (refItem) {
|
|
26
|
-
const shapeName = (0, _refs.
|
|
26
|
+
const shapeName = (0, _refs.refItemToNamespacedShapeName)(refItem);
|
|
27
27
|
if (projectSchema.shapes[shapeName]) {
|
|
28
28
|
const shapeId = projectSchema.shapes[shapeName].id;
|
|
29
29
|
result.push({
|
package/dist/util/form-config.js
CHANGED
|
@@ -43,7 +43,7 @@ function normalizeForms(projectSchema) {
|
|
|
43
43
|
if (propSchema) {
|
|
44
44
|
const ref = (0, _refs.getRefOrItemsRef)(projectSchema, propSchema);
|
|
45
45
|
if (ref && propConfig.properties) {
|
|
46
|
-
const nestedShapeName = (0, _refs.
|
|
46
|
+
const nestedShapeName = (0, _refs.refItemToNamespacedShapeName)(ref);
|
|
47
47
|
normalizedForms[nestedShapeName] = {
|
|
48
48
|
default: (0, _util.deepClone)(propConfig)
|
|
49
49
|
};
|
package/dist/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAC,MAAM,KAAK,CAAC;AACvD,OAAO,KAAK,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAC,mBAAmB,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAYlB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAwB,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAC,MAAM,KAAK,CAAC;AACvD,OAAO,KAAK,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAC,mBAAmB,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EAYlB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAwB,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AA+BnF,OAAO,EAEL,YAAY,EAKb,MAAM,iBAAiB,CAAC;AAWzB,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AA82BtC,MAAM,MAAM,sBAAsB,GAC9B;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAC,GAC9D;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,yBAAyB,EAAE,CAAA;CAAC,CAAC;AAE3E,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,yBAAyB,CAuBzE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,sBAAsB,CAAC;CACxF;AACD,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEpE,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAmHrF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,qBAA0B,GAAG,sBAAsB,CAW9G;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgC5G;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAgB7E;AAgBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAQpE;AAgBD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,CAQrE;AAED,MAAM,MAAM,mCAAmC,GAC3C;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAC,GAC7D;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,yBAAyB,EAAE,CAAA;CAAC,CAAC;AAE3E;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,OAAO,GAAG,mCAAmC,CAIrG;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,OAAO,GAAG,mBAAmB,CAQxF"}
|
package/dist/validate.js
CHANGED
|
@@ -471,7 +471,7 @@ function validateLocalRefs(projectSchema) {
|
|
|
471
471
|
message: `Invalid template "${item.template}"`
|
|
472
472
|
});
|
|
473
473
|
}
|
|
474
|
-
const shapeName = (0, _refs.
|
|
474
|
+
const shapeName = (0, _refs.refItemToNamespacedShapeName)(item);
|
|
475
475
|
if (!shapeNames.has(shapeName)) {
|
|
476
476
|
const invalidRef = (0, _get.default)(projectSchema, item.path);
|
|
477
477
|
const path = invalidRef.items ? [...item.path, 'items', '@ref'] : item.path;
|
|
@@ -508,10 +508,15 @@ function isValidRef(context, projectSchema, layer, item) {
|
|
|
508
508
|
const {
|
|
509
509
|
serviceKey: layerId
|
|
510
510
|
} = item;
|
|
511
|
-
const shapeName = (0, _refs.
|
|
511
|
+
const shapeName = (0, _refs.refItemToNamespacedShapeName)(item);
|
|
512
512
|
const localShapeExists = Boolean(projectSchema.shapes[shapeName]) || builtInShapeNames.has(shapeName);
|
|
513
513
|
return layerId === 'local' ? localShapeExists : localShapeExists || isValidShapeReference(context, layer, shapeName);
|
|
514
514
|
}
|
|
515
|
+
function mustBeInterface({
|
|
516
|
+
path
|
|
517
|
+
}) {
|
|
518
|
+
return path[0] === 'shapes' && path[2] === 'interfaces';
|
|
519
|
+
}
|
|
515
520
|
async function validateRefs(context, projectSchema) {
|
|
516
521
|
const {
|
|
517
522
|
resolveLayer
|
|
@@ -536,13 +541,18 @@ async function validateRefs(context, projectSchema) {
|
|
|
536
541
|
const {
|
|
537
542
|
serviceKey: layerId
|
|
538
543
|
} = item;
|
|
539
|
-
const
|
|
544
|
+
const layer = layersById[layerId];
|
|
545
|
+
const valid = isValidRef(context, projectSchema, layer, item);
|
|
540
546
|
if (!valid) {
|
|
541
547
|
errors.push({
|
|
542
548
|
type: 'notFound',
|
|
543
549
|
path: item.path,
|
|
544
550
|
message: `Invalid ref "${(0, _get.default)(projectSchema, item.path)}"`
|
|
545
551
|
});
|
|
552
|
+
} else if (mustBeInterface(item)) {
|
|
553
|
+
const context = (layer === null || layer === void 0 ? void 0 : layer.schema) ?? projectSchema;
|
|
554
|
+
const shape = (0, _get.default)(context, item.path.slice(0, 2));
|
|
555
|
+
errors.push(...validateShapeImplementsInterface(context, shape, item, item.path));
|
|
546
556
|
}
|
|
547
557
|
}
|
|
548
558
|
return errors;
|
|
@@ -647,14 +657,14 @@ function matchesInterface(shape, interfaceShape, path) {
|
|
|
647
657
|
}
|
|
648
658
|
return errors;
|
|
649
659
|
}
|
|
650
|
-
function validateShapeImplementsInterface(projectSchema, shape,
|
|
660
|
+
function validateShapeImplementsInterface(projectSchema, shape, interfaceRefItem, path) {
|
|
651
661
|
const errors = [];
|
|
652
|
-
const interfaceShape = projectSchema
|
|
662
|
+
const interfaceShape = (0, _refs.refItemToShape)(projectSchema, interfaceRefItem);
|
|
653
663
|
if (!interfaceShape) {
|
|
654
664
|
errors.push({
|
|
655
665
|
type: 'notFound',
|
|
656
666
|
path,
|
|
657
|
-
message: `Invalid interface "${
|
|
667
|
+
message: `Invalid interface "${(0, _refs.refItemToAtRef)(interfaceRefItem)}" not found`
|
|
658
668
|
});
|
|
659
669
|
} else if (interfaceShape.type !== 'interface') {
|
|
660
670
|
errors.push({
|
|
@@ -684,13 +694,6 @@ function validateInterfaceImplementations(projectSchema) {
|
|
|
684
694
|
message: `"${shape.name}" must have an object or extends schema to implement interfaces`
|
|
685
695
|
}];
|
|
686
696
|
}
|
|
687
|
-
for (let i = 0; i < shape.interfaces.length; i++) {
|
|
688
|
-
const path = ['shapes', shape.name, 'interfaces', i];
|
|
689
|
-
const interfaceErrors = validateShapeImplementsInterface(projectSchema, shape, shape.interfaces[i], path);
|
|
690
|
-
if (interfaceErrors.length) {
|
|
691
|
-
errors.push(...interfaceErrors);
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
697
|
}
|
|
695
698
|
}
|
|
696
699
|
return errors;
|
package/es/flatten-templates.js
CHANGED
|
@@ -2,7 +2,7 @@ import { resolveTemplate, isValidTemplate } from './template-shapes';
|
|
|
2
2
|
import { getAllRefs } from './schema-util';
|
|
3
3
|
import set from 'lodash/set';
|
|
4
4
|
import { deepClone } from '@takeshape/util';
|
|
5
|
-
import {
|
|
5
|
+
import { refItemToNamespacedShapeName } from './refs';
|
|
6
6
|
export function flattenTemplates(projectSchema) {
|
|
7
7
|
const templateRefs = getAllRefs(projectSchema, ref => Boolean(ref.template));
|
|
8
8
|
if (!templateRefs.length) {
|
|
@@ -14,7 +14,7 @@ export function flattenTemplates(projectSchema) {
|
|
|
14
14
|
const {
|
|
15
15
|
shapeName,
|
|
16
16
|
dependencies
|
|
17
|
-
} = resolveTemplate(newSchema, ref.template,
|
|
17
|
+
} = resolveTemplate(newSchema, ref.template, refItemToNamespacedShapeName(ref));
|
|
18
18
|
set(newSchema, ref.path, ref.path[ref.path.length - 1] === '@ref' ? `local:${shapeName}` : shapeName);
|
|
19
19
|
Object.assign(newSchema.shapes, dependencies);
|
|
20
20
|
}
|
package/es/interfaces.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getRef, refItemToShape,
|
|
1
|
+
import { getRef, refItemToShape, refItemToNamespacedShapeName, shapeNameToRef, shapeToRefItem, refExpressionToRefItem } from './refs';
|
|
2
2
|
import mapValues from 'lodash/mapValues';
|
|
3
3
|
import { isUnionSchema } from './unions';
|
|
4
4
|
import { isDefined } from '@takeshape/util';
|
|
@@ -31,13 +31,13 @@ export function getImplementationShapeMap(shapeMap) {
|
|
|
31
31
|
export function getImplementationShapeNameMap(shapeMap) {
|
|
32
32
|
return getImplementationsHelper(shapeMap, shape => shape.name);
|
|
33
33
|
}
|
|
34
|
-
export function pruneUnusedInterfaces(shapeMap) {
|
|
34
|
+
export function pruneUnusedInterfaces(projectSchema, shapeMap) {
|
|
35
35
|
return mapValues(shapeMap, shape => {
|
|
36
36
|
const {
|
|
37
37
|
interfaces
|
|
38
38
|
} = shape;
|
|
39
39
|
if (interfaces !== null && interfaces !== void 0 && interfaces.length) {
|
|
40
|
-
const filteredInterfaces = interfaces.filter(
|
|
40
|
+
const filteredInterfaces = interfaces.filter(refExpression => shapeMap[refItemToNamespacedShapeName(refExpressionToRefItem(projectSchema, refExpression))]);
|
|
41
41
|
if (interfaces.length !== filteredInterfaces.length) {
|
|
42
42
|
return {
|
|
43
43
|
...shape,
|
|
@@ -48,18 +48,22 @@ export function pruneUnusedInterfaces(shapeMap) {
|
|
|
48
48
|
return shape;
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
function compareRefItems(refItem1, refItem2) {
|
|
52
|
+
return refItem1.typeName === refItem2.typeName && refItem1.serviceKey === refItem2.serviceKey;
|
|
53
|
+
}
|
|
54
|
+
export function getImplementingShapes(context, interfaceRef) {
|
|
55
|
+
const shapeMap = context.shapes;
|
|
52
56
|
const implementingShapes = [];
|
|
53
57
|
for (const shape of Object.values(shapeMap)) {
|
|
54
58
|
var _shape$interfaces;
|
|
55
|
-
if ((_shape$interfaces = shape.interfaces) !== null && _shape$interfaces !== void 0 && _shape$interfaces.
|
|
59
|
+
if ((_shape$interfaces = shape.interfaces) !== null && _shape$interfaces !== void 0 && _shape$interfaces.find(interfaceRefExpression => compareRefItems(refExpressionToRefItem(context, interfaceRefExpression), interfaceRef))) {
|
|
56
60
|
implementingShapes.push(shape);
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
return implementingShapes;
|
|
60
64
|
}
|
|
61
|
-
export function interfaceToUnion(context,
|
|
62
|
-
const shapes = getImplementingShapes(context
|
|
65
|
+
export function interfaceToUnion(context, interfaceRef) {
|
|
66
|
+
const shapes = getImplementingShapes(context, interfaceRef);
|
|
63
67
|
return {
|
|
64
68
|
oneOf: shapes.map(shape => ({
|
|
65
69
|
'@ref': shapeNameToRef(context, shape.name)
|
|
@@ -69,11 +73,11 @@ export function interfaceToUnion(context, interfaceName) {
|
|
|
69
73
|
export function getPossibleShapeNames(projectSchema, shape) {
|
|
70
74
|
let names;
|
|
71
75
|
if (isInterfaceShape(shape)) {
|
|
72
|
-
names = getImplementingShapes(projectSchema
|
|
76
|
+
names = getImplementingShapes(projectSchema, shapeToRefItem(projectSchema, shape)).map(shape => shape.name);
|
|
73
77
|
} else if (isUnionSchema(shape.schema)) {
|
|
74
78
|
names = shape.schema.oneOf.map(member => {
|
|
75
79
|
const ref = getRef(projectSchema, member);
|
|
76
|
-
return ref &&
|
|
80
|
+
return ref && refItemToNamespacedShapeName(ref);
|
|
77
81
|
}).filter(isDefined);
|
|
78
82
|
} else {
|
|
79
83
|
names = [shape.name];
|