@takeshape/schema 9.30.0 → 9.31.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/dist/schema-util.d.ts +8 -0
- package/dist/schema-util.d.ts.map +1 -1
- package/dist/schema-util.js +39 -2
- package/es/schema-util.js +32 -2
- package/package.json +5 -5
package/dist/schema-util.d.ts
CHANGED
|
@@ -183,5 +183,13 @@ export declare function createShape(name: string, schema: ShapeSchema, rest?: Pa
|
|
|
183
183
|
export declare function queryToPropertySchema(projectSchema: ProjectSchema, query: Query): PropertySchema;
|
|
184
184
|
export declare function getQueriesShape(projectSchema: ProjectSchema, operation: 'query' | 'mutation'): Shape;
|
|
185
185
|
export declare function fieldMappingContainsKey(fieldMapping: FieldMapping, key: string): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Return true if `schemaWithRef` is a ref to a shape named `shapeName`
|
|
188
|
+
*/
|
|
189
|
+
export declare const schemaMatchesShapeName: (workingCopy: ProjectSchema, schemaWithRef: SchemaWithRef, shapeName: string) => boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Return true if `shape` has a property that is an array of refs to `shapeName`
|
|
192
|
+
*/
|
|
193
|
+
export declare const shapeHasArrayPropOfShape: (projectSchema: ProjectSchema, shape: Shape, shapeName: string) => boolean;
|
|
186
194
|
export {};
|
|
187
195
|
//# sourceMappingURL=schema-util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-util.d.ts","sourceRoot":"","sources":["../../src/schema-util.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEd,KAAK,EAEL,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EAGX,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,gBAAgB,EAChB,UAAU,EACV,aAAa,EACd,MAAM,eAAe,CAAC;AASvB,OAAO,EAAC,KAAK,EAA0C,MAAM,iBAAiB,CAAC;
|
|
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
|
@@ -55,7 +55,7 @@ exports.parseMapping = parseMapping;
|
|
|
55
55
|
exports.pathBetween = pathBetween;
|
|
56
56
|
exports.projectSchemaToJSONSchema = projectSchemaToJSONSchema;
|
|
57
57
|
exports.queryToPropertySchema = queryToPropertySchema;
|
|
58
|
-
exports.schemaMetadataKeys = exports.scalarSchemaKeys = void 0;
|
|
58
|
+
exports.shapeHasArrayPropOfShape = exports.schemaMetadataKeys = exports.schemaMatchesShapeName = exports.scalarSchemaKeys = void 0;
|
|
59
59
|
exports.shapeToPropertySchema = shapeToPropertySchema;
|
|
60
60
|
exports.splitMapping = splitMapping;
|
|
61
61
|
exports.visitSchemaProperties = visitSchemaProperties;
|
|
@@ -107,6 +107,8 @@ var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
|
107
107
|
|
|
108
108
|
var _some = _interopRequireDefault(require("lodash/some"));
|
|
109
109
|
|
|
110
|
+
var _tinyInvariant = _interopRequireDefault(require("tiny-invariant"));
|
|
111
|
+
|
|
110
112
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
111
113
|
|
|
112
114
|
const SERVICE_OBJECT_PATTERN_NAME = 'pattern:service-object';
|
|
@@ -1313,4 +1315,39 @@ function fieldMappingContainsKey(fieldMapping, key) {
|
|
|
1313
1315
|
}
|
|
1314
1316
|
|
|
1315
1317
|
return parseMapping(fieldMapping).key === key;
|
|
1316
|
-
}
|
|
1318
|
+
}
|
|
1319
|
+
/**
|
|
1320
|
+
* Return true if `schemaWithRef` is a ref to a shape named `shapeName`
|
|
1321
|
+
*/
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
const schemaMatchesShapeName = (workingCopy, schemaWithRef, shapeName) => {
|
|
1325
|
+
const arrayOfShapeRef = (0, _refs.getRef)(workingCopy, schemaWithRef);
|
|
1326
|
+
(0, _tinyInvariant.default)(arrayOfShapeRef);
|
|
1327
|
+
const arrayOfShapeName = (0, _refs.refItemToShapeName)(arrayOfShapeRef);
|
|
1328
|
+
return arrayOfShapeName === shapeName;
|
|
1329
|
+
};
|
|
1330
|
+
/**
|
|
1331
|
+
* Return true if `shape` has a property that is an array of refs to `shapeName`
|
|
1332
|
+
*/
|
|
1333
|
+
|
|
1334
|
+
|
|
1335
|
+
exports.schemaMatchesShapeName = schemaMatchesShapeName;
|
|
1336
|
+
|
|
1337
|
+
const shapeHasArrayPropOfShape = (projectSchema, shape, shapeName) => {
|
|
1338
|
+
if (shape && (0, _utils.isObjectSchema)(shape.schema)) {
|
|
1339
|
+
for (const propName in shape.schema.properties) {
|
|
1340
|
+
if (Object.prototype.hasOwnProperty.call(shape.schema.properties, propName)) {
|
|
1341
|
+
const propSchema = shape.schema.properties[propName];
|
|
1342
|
+
|
|
1343
|
+
if (propSchema.items && (0, _utils.isRefSchema)(propSchema.items) && schemaMatchesShapeName(projectSchema, propSchema.items, shapeName)) {
|
|
1344
|
+
return true;
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
return false;
|
|
1351
|
+
};
|
|
1352
|
+
|
|
1353
|
+
exports.shapeHasArrayPropOfShape = shapeHasArrayPropOfShape;
|
package/es/schema-util.js
CHANGED
|
@@ -11,7 +11,7 @@ import { defaultWorkflow, getStatusField } from './workflows';
|
|
|
11
11
|
import { CURRENT_API_VERSION, CURRENT_SCHEMA_VERSION } from './versions';
|
|
12
12
|
import { workflowsEnabled } from './api-version';
|
|
13
13
|
import { builtInShapes, builtInForms } from './builtin-schema';
|
|
14
|
-
import { getArgsType, isObjectSchema, isAllOfSchema, isOneOfSchema, isExtendsSchema, isArraySchema, isServiceResolver, isGraphqlResolver } from './types/utils';
|
|
14
|
+
import { getArgsType, isObjectSchema, isAllOfSchema, isOneOfSchema, isExtendsSchema, isArraySchema, isServiceResolver, isGraphqlResolver, isRefSchema } from './types/utils';
|
|
15
15
|
import { getStoredServiceConfig } from './services';
|
|
16
16
|
import { createTemplateShapeName, dereferenceObjectSchema, dereferenceSchema, getRef, getRefOrItemsRef, getRefShapeName, parseReturnShape, refExpressionToRefItem, refItemToShape, refItemToShapeName, refItemToShapeSchema, atRefToRefItem, refToRefItem, parseTemplateShape, isRefItemWithPath, returnShapeToSchema } from './refs';
|
|
17
17
|
import isEqual from 'lodash/isEqual';
|
|
@@ -21,6 +21,7 @@ import { mergeFormProperties, mergeSchemaProperties, getArgs } from './util';
|
|
|
21
21
|
import { NotFoundError } from '@takeshape/errors';
|
|
22
22
|
import isArray from 'lodash/isArray';
|
|
23
23
|
import some from 'lodash/some';
|
|
24
|
+
import invariant from 'tiny-invariant';
|
|
24
25
|
export const SERVICE_OBJECT_PATTERN_NAME = 'pattern:service-object';
|
|
25
26
|
export function isBuiltinShape(shapeName) {
|
|
26
27
|
return Boolean(builtInShapes[shapeName]);
|
|
@@ -1149,4 +1150,33 @@ export function fieldMappingContainsKey(fieldMapping, key) {
|
|
|
1149
1150
|
}
|
|
1150
1151
|
|
|
1151
1152
|
return parseMapping(fieldMapping).key === key;
|
|
1152
|
-
}
|
|
1153
|
+
}
|
|
1154
|
+
/**
|
|
1155
|
+
* Return true if `schemaWithRef` is a ref to a shape named `shapeName`
|
|
1156
|
+
*/
|
|
1157
|
+
|
|
1158
|
+
export const schemaMatchesShapeName = (workingCopy, schemaWithRef, shapeName) => {
|
|
1159
|
+
const arrayOfShapeRef = getRef(workingCopy, schemaWithRef);
|
|
1160
|
+
invariant(arrayOfShapeRef);
|
|
1161
|
+
const arrayOfShapeName = refItemToShapeName(arrayOfShapeRef);
|
|
1162
|
+
return arrayOfShapeName === shapeName;
|
|
1163
|
+
};
|
|
1164
|
+
/**
|
|
1165
|
+
* Return true if `shape` has a property that is an array of refs to `shapeName`
|
|
1166
|
+
*/
|
|
1167
|
+
|
|
1168
|
+
export const shapeHasArrayPropOfShape = (projectSchema, shape, shapeName) => {
|
|
1169
|
+
if (shape && isObjectSchema(shape.schema)) {
|
|
1170
|
+
for (const propName in shape.schema.properties) {
|
|
1171
|
+
if (Object.prototype.hasOwnProperty.call(shape.schema.properties, propName)) {
|
|
1172
|
+
const propSchema = shape.schema.properties[propName];
|
|
1173
|
+
|
|
1174
|
+
if (propSchema.items && isRefSchema(propSchema.items) && schemaMatchesShapeName(projectSchema, propSchema.items, shapeName)) {
|
|
1175
|
+
return true;
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
return false;
|
|
1182
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takeshape/schema",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.31.1",
|
|
4
4
|
"description": "TakeShape Schema",
|
|
5
5
|
"homepage": "https://www.takeshape.io",
|
|
6
6
|
"repository": {
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"p-reduce": "^2.1.0",
|
|
28
28
|
"semver": "^7.3.2",
|
|
29
29
|
"tiny-invariant": "^1.2.0",
|
|
30
|
-
"@takeshape/
|
|
31
|
-
"@takeshape/
|
|
32
|
-
"@takeshape/
|
|
30
|
+
"@takeshape/json-schema": "9.31.1",
|
|
31
|
+
"@takeshape/util": "9.31.1",
|
|
32
|
+
"@takeshape/errors": "9.31.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@takeshape/json-schema-to-typescript": "^11.0.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"meow": "^9.0.0",
|
|
46
46
|
"p-map": "^5.0.0",
|
|
47
47
|
"shortid": "^2.2.15",
|
|
48
|
-
"@takeshape/typescript-jest-junit-reporter": "9.
|
|
48
|
+
"@takeshape/typescript-jest-junit-reporter": "9.31.1"
|
|
49
49
|
},
|
|
50
50
|
"engines": {
|
|
51
51
|
"node": ">=16"
|