@loopback/repository-json-schema 2.2.1 → 2.4.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/CHANGELOG.md +46 -0
- package/dist/build-schema.js +43 -15
- package/dist/build-schema.js.map +1 -1
- package/dist/filter-json-schema.js +10 -6
- package/dist/filter-json-schema.js.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keys.js +1 -0
- package/dist/keys.js.map +1 -1
- package/package.json +12 -12
- package/src/build-schema.ts +50 -16
- package/src/filter-json-schema.ts +1 -1
- package/src/index.ts +27 -0
- package/index.d.ts +0 -6
- package/index.js +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,52 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.4.2](https://github.com/strongloop/loopback-next/compare/@loopback/repository-json-schema@2.4.1...@loopback/repository-json-schema@2.4.2) (2020-05-20)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @loopback/repository-json-schema
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [2.4.1](https://github.com/strongloop/loopback-next/compare/@loopback/repository-json-schema@2.4.0...@loopback/repository-json-schema@2.4.1) (2020-05-19)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **repository-json-schema:** honor excluded "include" property ([3888f60](https://github.com/strongloop/loopback-next/commit/3888f60357be7006fc3aff250d291f53c0ca355e))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [2.4.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository-json-schema@2.3.0...@loopback/repository-json-schema@2.4.0) (2020-05-07)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **repository-json-schema:** improve schema building for null/undefined types ([845914b](https://github.com/strongloop/loopback-next/commit/845914be5a3660edf4833bcccd7e7aa2f2cfb3f2))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [2.3.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository-json-schema@2.2.1...@loopback/repository-json-schema@2.3.0) (2020-04-29)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* **repository-json-schema:** avoid title inheritance ([723bc34](https://github.com/strongloop/loopback-next/commit/723bc3401753e4ba8f4e421e468c0bfca66582c8))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Features
|
|
45
|
+
|
|
46
|
+
* populate x-typescript-type for openapi schema ([02a2633](https://github.com/strongloop/loopback-next/commit/02a26339e8a49b92148aa9c05179458a4bc85a70))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
6
52
|
## [2.2.1](https://github.com/strongloop/loopback-next/compare/@loopback/repository-json-schema@2.2.0...@loopback/repository-json-schema@2.2.1) (2020-04-23)
|
|
7
53
|
|
|
8
54
|
**Note:** Version bump only for package @loopback/repository-json-schema
|
package/dist/build-schema.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.modelToJsonSchema = exports.getNavigationalPropertyForRelation = exports.metaToJsonProperty = exports.isArrayType = exports.stringTypeToWrapper = exports.getJsonSchemaRef = exports.getJsonSchema = exports.buildModelCacheKey = void 0;
|
|
7
8
|
const tslib_1 = require("tslib");
|
|
8
9
|
const context_1 = require("@loopback/context");
|
|
9
10
|
const repository_1 = require("@loopback/repository");
|
|
@@ -132,6 +133,10 @@ function stringTypeToWrapper(type) {
|
|
|
132
133
|
wrapper = Buffer;
|
|
133
134
|
break;
|
|
134
135
|
}
|
|
136
|
+
case 'null': {
|
|
137
|
+
wrapper = repository_1.Null;
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
135
140
|
default: {
|
|
136
141
|
throw new Error('Unsupported type: ' + type);
|
|
137
142
|
}
|
|
@@ -256,17 +261,35 @@ function isEmptyJson(obj) {
|
|
|
256
261
|
return !(obj && Object.keys(obj).length);
|
|
257
262
|
}
|
|
258
263
|
/**
|
|
259
|
-
* Checks the options and generates a descriptive suffix
|
|
260
|
-
*
|
|
264
|
+
* Checks the options and generates a descriptive suffix that contains the
|
|
265
|
+
* TypeScript type and options
|
|
266
|
+
* @param typeName - TypeScript's type name
|
|
267
|
+
* @param options - json schema options
|
|
261
268
|
*/
|
|
262
|
-
function getDescriptionSuffix(rawOptions = {}) {
|
|
269
|
+
function getDescriptionSuffix(typeName, rawOptions = {}) {
|
|
263
270
|
const options = { ...rawOptions };
|
|
264
271
|
delete options.visited;
|
|
265
272
|
if (options.optional && !options.optional.length) {
|
|
266
273
|
delete options.optional;
|
|
267
274
|
}
|
|
275
|
+
const type = typeName;
|
|
276
|
+
let tsType = type;
|
|
277
|
+
if (options.includeRelations) {
|
|
278
|
+
tsType = `${type}WithRelations`;
|
|
279
|
+
}
|
|
280
|
+
if (options.partial) {
|
|
281
|
+
tsType = `Partial<${tsType}>`;
|
|
282
|
+
}
|
|
283
|
+
if (options.exclude) {
|
|
284
|
+
const excludedProps = options.exclude.map(p => `'${p}'`);
|
|
285
|
+
tsType = `Omit<${tsType}, ${excludedProps.join(' | ')}>`;
|
|
286
|
+
}
|
|
287
|
+
if (options.optional) {
|
|
288
|
+
const optionalProps = options.optional.map(p => `'${p}'`);
|
|
289
|
+
tsType = `@loopback/repository-json-schema#Optional<${tsType}, ${optionalProps.join(' | ')}>`;
|
|
290
|
+
}
|
|
268
291
|
return !isEmptyJson(options)
|
|
269
|
-
? `(
|
|
292
|
+
? `(tsType: ${tsType}, schemaOptions: ${stringifyOptions(options)})`
|
|
270
293
|
: '';
|
|
271
294
|
}
|
|
272
295
|
// NOTE(shimks) no metadata for: union, optional, nested array, any, enum,
|
|
@@ -288,18 +311,19 @@ function modelToJsonSchema(ctor, jsonSchemaOptions = {}) {
|
|
|
288
311
|
}
|
|
289
312
|
debug('Creating schema for model %s', ctor.name);
|
|
290
313
|
debug('JSON schema options: %o', options);
|
|
291
|
-
const
|
|
314
|
+
const modelDef = repository_1.ModelMetadataHelper.getModelMetadata(ctor);
|
|
292
315
|
// returns an empty object if metadata is an empty object
|
|
293
|
-
if (
|
|
316
|
+
if (modelDef == null || Object.keys(modelDef).length === 0) {
|
|
294
317
|
return {};
|
|
295
318
|
}
|
|
319
|
+
const meta = modelDef;
|
|
296
320
|
debug('Model settings', meta.settings);
|
|
297
321
|
const title = buildSchemaTitle(ctor, meta, options);
|
|
298
322
|
if (options.visited[title])
|
|
299
323
|
return options.visited[title];
|
|
300
324
|
const result = { title };
|
|
301
325
|
options.visited[title] = result;
|
|
302
|
-
const descriptionSuffix = getDescriptionSuffix(options);
|
|
326
|
+
const descriptionSuffix = getDescriptionSuffix(ctor.name, options);
|
|
303
327
|
if (meta.description) {
|
|
304
328
|
const formatSuffix = descriptionSuffix ? ` ${descriptionSuffix}` : '';
|
|
305
329
|
result.description = meta.description + formatSuffix;
|
|
@@ -309,10 +333,12 @@ function modelToJsonSchema(ctor, jsonSchemaOptions = {}) {
|
|
|
309
333
|
}
|
|
310
334
|
for (const p in meta.properties) {
|
|
311
335
|
if (options.exclude && options.exclude.includes(p)) {
|
|
336
|
+
debug('Property % is excluded by %s', p, options.exclude);
|
|
312
337
|
continue;
|
|
313
338
|
}
|
|
314
|
-
if (
|
|
315
|
-
|
|
339
|
+
if (meta.properties[p].type == null) {
|
|
340
|
+
// Circular import of model classes can lead to this situation
|
|
341
|
+
throw new Error(`Property ${ctor.name}.${p} does not have "type" in its definition`);
|
|
316
342
|
}
|
|
317
343
|
result.properties = (_c = result.properties) !== null && _c !== void 0 ? _c : {};
|
|
318
344
|
result.properties[p] = result.properties[p] || {};
|
|
@@ -342,6 +368,10 @@ function modelToJsonSchema(ctor, jsonSchemaOptions = {}) {
|
|
|
342
368
|
// Do not cascade `partial` to nested properties
|
|
343
369
|
delete propOptions.partial;
|
|
344
370
|
}
|
|
371
|
+
// `title` is the unique identity of a schema,
|
|
372
|
+
// it should be removed from the `options`
|
|
373
|
+
// when generating the relation or property schemas
|
|
374
|
+
delete propOptions.title;
|
|
345
375
|
const propSchema = getJsonSchema(referenceType, propOptions);
|
|
346
376
|
// JSONSchema6Definition allows both boolean and JSONSchema6 types
|
|
347
377
|
if (typeof result.properties[p] !== 'boolean') {
|
|
@@ -365,13 +395,11 @@ function modelToJsonSchema(ctor, jsonSchemaOptions = {}) {
|
|
|
365
395
|
result.properties = (_f = result.properties) !== null && _f !== void 0 ? _f : {};
|
|
366
396
|
const relMeta = meta.relations[r];
|
|
367
397
|
const targetType = repository_1.resolveType(relMeta.target);
|
|
398
|
+
// `title` is the unique identity of a schema,
|
|
399
|
+
// it should be removed from the `options`
|
|
400
|
+
// when generating the relation or property schemas
|
|
368
401
|
const targetOptions = { ...options };
|
|
369
|
-
|
|
370
|
-
// `title` is the unique identity of a schema,
|
|
371
|
-
// it should be removed from the `options`
|
|
372
|
-
// when generating the relation schemas
|
|
373
|
-
delete targetOptions.title;
|
|
374
|
-
}
|
|
402
|
+
delete targetOptions.title;
|
|
375
403
|
const targetSchema = getJsonSchema(targetType, targetOptions);
|
|
376
404
|
const targetRef = { $ref: `#/definitions/${targetSchema.title}` };
|
|
377
405
|
const propDef = getNavigationalPropertyForRelation(relMeta, targetRef);
|
package/dist/build-schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-schema.js","sourceRoot":"","sources":["../src/build-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build-schema.js","sourceRoot":"","sources":["../src/build-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getFieldsJsonSchemaFor = exports.getWhereJsonSchemaFor = exports.getFilterJsonSchemaFor = exports.getScopeFilterJsonSchemaFor = void 0;
|
|
7
8
|
const tslib_1 = require("tslib");
|
|
8
9
|
const repository_1 = require("@loopback/repository");
|
|
9
10
|
/**
|
|
@@ -16,11 +17,14 @@ const repository_1 = require("@loopback/repository");
|
|
|
16
17
|
* @param modelCtor - The model constructor to build the filter schema for.
|
|
17
18
|
*/
|
|
18
19
|
function getScopeFilterJsonSchemaFor(modelCtor, options = {}) {
|
|
19
|
-
let EmptyModel = class
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
let EmptyModel = /** @class */ (() => {
|
|
21
|
+
let EmptyModel = class EmptyModel extends repository_1.Model {
|
|
22
|
+
};
|
|
23
|
+
EmptyModel = tslib_1.__decorate([
|
|
24
|
+
repository_1.model({ settings: { strict: false } })
|
|
25
|
+
], EmptyModel);
|
|
26
|
+
return EmptyModel;
|
|
27
|
+
})();
|
|
24
28
|
const schema = {
|
|
25
29
|
...getFilterJsonSchemaFor(EmptyModel, { setTitle: false }),
|
|
26
30
|
...(options.setTitle !== false && {
|
|
@@ -89,7 +93,7 @@ function getFilterJsonSchemaFor(modelCtor, options = {}) {
|
|
|
89
93
|
};
|
|
90
94
|
const modelRelations = repository_1.getModelRelations(modelCtor);
|
|
91
95
|
const hasRelations = Object.keys(modelRelations).length > 0;
|
|
92
|
-
if (hasRelations) {
|
|
96
|
+
if (hasRelations && !excluded.includes('include')) {
|
|
93
97
|
schema.properties.include = {
|
|
94
98
|
...(options.setTitle !== false && {
|
|
95
99
|
title: `${modelCtor.modelName}.IncludeFilter`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-json-schema.js","sourceRoot":"","sources":["../src/filter-json-schema.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,gDAAgD;AAChD,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"filter-json-schema.js","sourceRoot":"","sources":["../src/filter-json-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,3 +12,25 @@ export { JsonSchema, Model } from '@loopback/repository';
|
|
|
12
12
|
export * from './build-schema';
|
|
13
13
|
export * from './filter-json-schema';
|
|
14
14
|
export * from './keys';
|
|
15
|
+
/**
|
|
16
|
+
* Optional: From `T` make a set of properties by key `K` become optional
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* type Props = {
|
|
21
|
+
* name: string;
|
|
22
|
+
* age: number;
|
|
23
|
+
* visible: boolean;
|
|
24
|
+
* };
|
|
25
|
+
*
|
|
26
|
+
* // Expect: { name?: string; age?: number; visible?: boolean; }
|
|
27
|
+
* type Props = Optional<Props>;
|
|
28
|
+
*
|
|
29
|
+
* // Expect: { name: string; age?: number; visible?: boolean; }
|
|
30
|
+
* type Props = Optional<Props, 'age' | 'visible'>;
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @typeParam T - Type of the object
|
|
34
|
+
* @typeParam K - Keys of the object
|
|
35
|
+
*/
|
|
36
|
+
export declare type Optional<T extends object, K extends keyof T = keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ const tslib_1 = require("tslib");
|
|
|
16
16
|
* @packageDocumentation
|
|
17
17
|
*/
|
|
18
18
|
var repository_1 = require("@loopback/repository");
|
|
19
|
-
exports
|
|
19
|
+
Object.defineProperty(exports, "Model", { enumerable: true, get: function () { return repository_1.Model; } });
|
|
20
20
|
tslib_1.__exportStar(require("./build-schema"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./filter-json-schema"), exports);
|
|
22
22
|
tslib_1.__exportStar(require("./keys"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,gDAAgD;AAChD,+CAA+C;AAC/C,gEAAgE;;;AAEhE;;;;;;;;;GASG;AAEH,mDAAuD;AAAnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,gDAAgD;AAChD,+CAA+C;AAC/C,gEAAgE;;;AAEhE;;;;;;;;;GASG;AAEH,mDAAuD;AAAnC,mGAAA,KAAK,OAAA;AACzB,yDAA+B;AAC/B,+DAAqC;AACrC,iDAAuB"}
|
package/dist/keys.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.JSON_SCHEMA_KEY = void 0;
|
|
7
8
|
const metadata_1 = require("@loopback/metadata");
|
|
8
9
|
/**
|
|
9
10
|
* Metadata key used to set or retrieve repository JSON Schema
|
package/dist/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,gDAAgD;AAChD,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,gDAAgD;AAChD,+CAA+C;AAC/C,gEAAgE;;;AAEhE,iDAAoD;AAGpD;;GAEG;AACU,QAAA,eAAe,GAAG,2BAAgB,CAAC,MAAM,CAGpD,sBAAsB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/repository-json-schema",
|
|
3
|
-
"version": "2.2
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"description": "Converts TS classes into JSON Schemas using TypeScript's reflection API",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
5
7
|
"engines": {
|
|
6
8
|
"node": ">=10"
|
|
7
9
|
},
|
|
@@ -23,25 +25,23 @@
|
|
|
23
25
|
"access": "public"
|
|
24
26
|
},
|
|
25
27
|
"dependencies": {
|
|
26
|
-
"@loopback/context": "^3.
|
|
27
|
-
"@loopback/metadata": "^2.1.
|
|
28
|
-
"@loopback/repository": "^2.
|
|
28
|
+
"@loopback/context": "^3.8.1",
|
|
29
|
+
"@loopback/metadata": "^2.1.5",
|
|
30
|
+
"@loopback/repository": "^2.5.1",
|
|
29
31
|
"@types/json-schema": "^7.0.4",
|
|
30
32
|
"debug": "^4.1.1",
|
|
31
|
-
"tslib": "^
|
|
33
|
+
"tslib": "^2.0.0"
|
|
32
34
|
},
|
|
33
35
|
"devDependencies": {
|
|
34
|
-
"@loopback/build": "^5.
|
|
35
|
-
"@loopback/eslint-config": "^
|
|
36
|
-
"@loopback/testlab": "^3.1.
|
|
36
|
+
"@loopback/build": "^5.4.1",
|
|
37
|
+
"@loopback/eslint-config": "^7.0.1",
|
|
38
|
+
"@loopback/testlab": "^3.1.5",
|
|
37
39
|
"@types/debug": "^4.1.5",
|
|
38
|
-
"@types/node": "^10.17.
|
|
40
|
+
"@types/node": "^10.17.24",
|
|
39
41
|
"ajv": "^6.12.2"
|
|
40
42
|
},
|
|
41
43
|
"files": [
|
|
42
44
|
"README.md",
|
|
43
|
-
"index.js",
|
|
44
|
-
"index.d.ts",
|
|
45
45
|
"dist",
|
|
46
46
|
"src",
|
|
47
47
|
"!*/__tests__"
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"url": "https://github.com/strongloop/loopback-next.git",
|
|
52
52
|
"directory": "packages/repository-json-schema"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "62aea854bf85c5a5995b59e6908fe5409f7eea96"
|
|
55
55
|
}
|
package/src/build-schema.ts
CHANGED
|
@@ -8,13 +8,14 @@ import {
|
|
|
8
8
|
isBuiltinType,
|
|
9
9
|
ModelDefinition,
|
|
10
10
|
ModelMetadataHelper,
|
|
11
|
+
Null,
|
|
11
12
|
PropertyDefinition,
|
|
12
13
|
RelationMetadata,
|
|
13
14
|
resolveType,
|
|
14
15
|
} from '@loopback/repository';
|
|
15
16
|
import debugFactory from 'debug';
|
|
16
|
-
import {JsonSchema} from './index';
|
|
17
17
|
import {inspect} from 'util';
|
|
18
|
+
import {JsonSchema} from './index';
|
|
18
19
|
import {JSON_SCHEMA_KEY} from './keys';
|
|
19
20
|
const debug = debugFactory('loopback:repository-json-schema:build-schema');
|
|
20
21
|
|
|
@@ -226,6 +227,10 @@ export function stringTypeToWrapper(type: string | Function): Function {
|
|
|
226
227
|
wrapper = Buffer;
|
|
227
228
|
break;
|
|
228
229
|
}
|
|
230
|
+
case 'null': {
|
|
231
|
+
wrapper = Null;
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
229
234
|
default: {
|
|
230
235
|
throw new Error('Unsupported type: ' + type);
|
|
231
236
|
}
|
|
@@ -361,10 +366,13 @@ function isEmptyJson(obj: object) {
|
|
|
361
366
|
}
|
|
362
367
|
|
|
363
368
|
/**
|
|
364
|
-
* Checks the options and generates a descriptive suffix
|
|
365
|
-
*
|
|
369
|
+
* Checks the options and generates a descriptive suffix that contains the
|
|
370
|
+
* TypeScript type and options
|
|
371
|
+
* @param typeName - TypeScript's type name
|
|
372
|
+
* @param options - json schema options
|
|
366
373
|
*/
|
|
367
374
|
function getDescriptionSuffix<T extends object>(
|
|
375
|
+
typeName: string,
|
|
368
376
|
rawOptions: JsonSchemaOptions<T> = {},
|
|
369
377
|
) {
|
|
370
378
|
const options = {...rawOptions};
|
|
@@ -374,8 +382,27 @@ function getDescriptionSuffix<T extends object>(
|
|
|
374
382
|
delete options.optional;
|
|
375
383
|
}
|
|
376
384
|
|
|
385
|
+
const type = typeName;
|
|
386
|
+
let tsType = type;
|
|
387
|
+
if (options.includeRelations) {
|
|
388
|
+
tsType = `${type}WithRelations`;
|
|
389
|
+
}
|
|
390
|
+
if (options.partial) {
|
|
391
|
+
tsType = `Partial<${tsType}>`;
|
|
392
|
+
}
|
|
393
|
+
if (options.exclude) {
|
|
394
|
+
const excludedProps = options.exclude.map(p => `'${p}'`);
|
|
395
|
+
tsType = `Omit<${tsType}, ${excludedProps.join(' | ')}>`;
|
|
396
|
+
}
|
|
397
|
+
if (options.optional) {
|
|
398
|
+
const optionalProps = options.optional.map(p => `'${p}'`);
|
|
399
|
+
tsType = `@loopback/repository-json-schema#Optional<${tsType}, ${optionalProps.join(
|
|
400
|
+
' | ',
|
|
401
|
+
)}>`;
|
|
402
|
+
}
|
|
403
|
+
|
|
377
404
|
return !isEmptyJson(options)
|
|
378
|
-
? `(
|
|
405
|
+
? `(tsType: ${tsType}, schemaOptions: ${stringifyOptions(options)})`
|
|
379
406
|
: '';
|
|
380
407
|
}
|
|
381
408
|
|
|
@@ -404,23 +431,24 @@ export function modelToJsonSchema<T extends object>(
|
|
|
404
431
|
debug('Creating schema for model %s', ctor.name);
|
|
405
432
|
debug('JSON schema options: %o', options);
|
|
406
433
|
|
|
407
|
-
const
|
|
434
|
+
const modelDef = ModelMetadataHelper.getModelMetadata(ctor);
|
|
408
435
|
|
|
409
436
|
// returns an empty object if metadata is an empty object
|
|
410
|
-
if (
|
|
437
|
+
if (modelDef == null || Object.keys(modelDef).length === 0) {
|
|
411
438
|
return {};
|
|
412
439
|
}
|
|
413
440
|
|
|
441
|
+
const meta = modelDef as ModelDefinition;
|
|
442
|
+
|
|
414
443
|
debug('Model settings', meta.settings);
|
|
415
444
|
|
|
416
445
|
const title = buildSchemaTitle(ctor, meta, options);
|
|
417
|
-
|
|
418
446
|
if (options.visited[title]) return options.visited[title];
|
|
419
447
|
|
|
420
448
|
const result: JsonSchema = {title};
|
|
421
449
|
options.visited[title] = result;
|
|
422
450
|
|
|
423
|
-
const descriptionSuffix = getDescriptionSuffix(options);
|
|
451
|
+
const descriptionSuffix = getDescriptionSuffix(ctor.name, options);
|
|
424
452
|
|
|
425
453
|
if (meta.description) {
|
|
426
454
|
const formatSuffix = descriptionSuffix ? ` ${descriptionSuffix}` : '';
|
|
@@ -432,11 +460,15 @@ export function modelToJsonSchema<T extends object>(
|
|
|
432
460
|
|
|
433
461
|
for (const p in meta.properties) {
|
|
434
462
|
if (options.exclude && options.exclude.includes(p as keyof T)) {
|
|
463
|
+
debug('Property % is excluded by %s', p, options.exclude);
|
|
435
464
|
continue;
|
|
436
465
|
}
|
|
437
466
|
|
|
438
|
-
if (
|
|
439
|
-
|
|
467
|
+
if (meta.properties[p].type == null) {
|
|
468
|
+
// Circular import of model classes can lead to this situation
|
|
469
|
+
throw new Error(
|
|
470
|
+
`Property ${ctor.name}.${p} does not have "type" in its definition`,
|
|
471
|
+
);
|
|
440
472
|
}
|
|
441
473
|
|
|
442
474
|
result.properties = result.properties ?? {};
|
|
@@ -474,6 +506,10 @@ export function modelToJsonSchema<T extends object>(
|
|
|
474
506
|
// Do not cascade `partial` to nested properties
|
|
475
507
|
delete propOptions.partial;
|
|
476
508
|
}
|
|
509
|
+
// `title` is the unique identity of a schema,
|
|
510
|
+
// it should be removed from the `options`
|
|
511
|
+
// when generating the relation or property schemas
|
|
512
|
+
delete propOptions.title;
|
|
477
513
|
|
|
478
514
|
const propSchema = getJsonSchema(referenceType, propOptions);
|
|
479
515
|
|
|
@@ -502,13 +538,11 @@ export function modelToJsonSchema<T extends object>(
|
|
|
502
538
|
const relMeta = meta.relations[r];
|
|
503
539
|
const targetType = resolveType(relMeta.target);
|
|
504
540
|
|
|
541
|
+
// `title` is the unique identity of a schema,
|
|
542
|
+
// it should be removed from the `options`
|
|
543
|
+
// when generating the relation or property schemas
|
|
505
544
|
const targetOptions = {...options};
|
|
506
|
-
|
|
507
|
-
// `title` is the unique identity of a schema,
|
|
508
|
-
// it should be removed from the `options`
|
|
509
|
-
// when generating the relation schemas
|
|
510
|
-
delete targetOptions.title;
|
|
511
|
-
}
|
|
545
|
+
delete targetOptions.title;
|
|
512
546
|
|
|
513
547
|
const targetSchema = getJsonSchema(targetType, targetOptions);
|
|
514
548
|
const targetRef = {$ref: `#/definitions/${targetSchema.title}`};
|
|
@@ -115,7 +115,7 @@ export function getFilterJsonSchemaFor(
|
|
|
115
115
|
const modelRelations = getModelRelations(modelCtor);
|
|
116
116
|
const hasRelations = Object.keys(modelRelations).length > 0;
|
|
117
117
|
|
|
118
|
-
if (hasRelations) {
|
|
118
|
+
if (hasRelations && !excluded.includes('include')) {
|
|
119
119
|
schema.properties!.include = {
|
|
120
120
|
...(options.setTitle !== false && {
|
|
121
121
|
title: `${modelCtor.modelName}.IncludeFilter`,
|
package/src/index.ts
CHANGED
|
@@ -18,3 +18,30 @@ export {JsonSchema, Model} from '@loopback/repository';
|
|
|
18
18
|
export * from './build-schema';
|
|
19
19
|
export * from './filter-json-schema';
|
|
20
20
|
export * from './keys';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Optional: From `T` make a set of properties by key `K` become optional
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* type Props = {
|
|
28
|
+
* name: string;
|
|
29
|
+
* age: number;
|
|
30
|
+
* visible: boolean;
|
|
31
|
+
* };
|
|
32
|
+
*
|
|
33
|
+
* // Expect: { name?: string; age?: number; visible?: boolean; }
|
|
34
|
+
* type Props = Optional<Props>;
|
|
35
|
+
*
|
|
36
|
+
* // Expect: { name: string; age?: number; visible?: boolean; }
|
|
37
|
+
* type Props = Optional<Props, 'age' | 'visible'>;
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @typeParam T - Type of the object
|
|
41
|
+
* @typeParam K - Keys of the object
|
|
42
|
+
*/
|
|
43
|
+
export type Optional<T extends object, K extends keyof T = keyof T> = Omit<
|
|
44
|
+
T,
|
|
45
|
+
K
|
|
46
|
+
> &
|
|
47
|
+
Partial<Pick<T, K>>;
|
package/index.d.ts
DELETED
package/index.js
DELETED