@json-layout/vocabulary 1.4.2 → 1.5.0
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/package.json +1 -1
- package/src/index.js +1 -1
- package/src/normalize.js +34 -1
- package/src/types.ts +1 -1
- package/types/index.d.ts +1 -1
- package/types/normalize.d.ts +1 -0
- package/types/normalize.d.ts.map +1 -1
- package/types/types.d.ts +1 -1
- package/types/types.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@json-layout/vocabulary",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Main JSON Layout vocabulary as JSON schemas and Typescript types. Also contains some small utility functions to validate and normalize annotations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
package/src/index.js
CHANGED
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
export * from './layout-keyword/index.js'
|
|
5
5
|
export * from './normalized-layout/index.js'
|
|
6
6
|
export * from './components/index.js'
|
|
7
|
-
export { normalizeLayoutFragment, getSchemaFragmentType } from './normalize.js'
|
|
7
|
+
export { normalizeLayoutFragment, getSchemaFragmentType, mergeNullableSubSchema } from './normalize.js'
|
package/src/normalize.js
CHANGED
|
@@ -291,6 +291,35 @@ function getItemsFromSchema (schemaFragment) {
|
|
|
291
291
|
return null
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
+
/**
|
|
295
|
+
* @param {SchemaFragment} schemaFragment
|
|
296
|
+
* @returns {boolean | undefined}
|
|
297
|
+
*/
|
|
298
|
+
export const mergeNullableSubSchema = (schemaFragment) => {
|
|
299
|
+
/** @type {null | 'oneOf' | 'anyOf'} */
|
|
300
|
+
let subTypesKey = null
|
|
301
|
+
if (schemaFragment.oneOf) subTypesKey = 'oneOf'
|
|
302
|
+
else if (schemaFragment.anyOf) subTypesKey = 'anyOf'
|
|
303
|
+
if (subTypesKey) {
|
|
304
|
+
const subTypes = schemaFragment[subTypesKey]
|
|
305
|
+
/* if (subTypes && subTypes.length === 1) {
|
|
306
|
+
const subType = subTypes[0]
|
|
307
|
+
for (const key of Object.keys(schemaFragment)) delete subType[key]
|
|
308
|
+
Object.assign(schemaFragment, subType)
|
|
309
|
+
delete schemaFragment[subTypesKey]
|
|
310
|
+
} */
|
|
311
|
+
if (subTypes && subTypes.length === 2 && subTypes.some(t => t.type === 'null')) {
|
|
312
|
+
const subType = subTypes.find(t => t.type !== 'null')
|
|
313
|
+
if (subType) {
|
|
314
|
+
for (const key of Object.keys(schemaFragment)) delete subType[key]
|
|
315
|
+
Object.assign(schemaFragment, subType)
|
|
316
|
+
delete schemaFragment[subTypesKey]
|
|
317
|
+
return true
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
294
323
|
/**
|
|
295
324
|
* @param {SchemaFragment} schemaFragment
|
|
296
325
|
* @returns {{type: string | undefined, nullable: boolean}}
|
|
@@ -306,7 +335,6 @@ export const getSchemaFragmentType = (schemaFragment) => {
|
|
|
306
335
|
}
|
|
307
336
|
|
|
308
337
|
// case where type is not defined but can be deduced from children oneOf/allOf/anyOf
|
|
309
|
-
/** @type {any[]} */
|
|
310
338
|
if (!schemaFragment.type) {
|
|
311
339
|
/** @type {string[]} */
|
|
312
340
|
const combinationTypes = []
|
|
@@ -323,6 +351,10 @@ export const getSchemaFragmentType = (schemaFragment) => {
|
|
|
323
351
|
if (combinationTypes.length === 1) return { type: combinationTypes[0], nullable: false }
|
|
324
352
|
}
|
|
325
353
|
|
|
354
|
+
if (Array.isArray(schemaFragment.type)) {
|
|
355
|
+
throw new Error('multiple types are not supported')
|
|
356
|
+
}
|
|
357
|
+
|
|
326
358
|
return { type: schemaFragment.type, nullable: false }
|
|
327
359
|
}
|
|
328
360
|
|
|
@@ -661,6 +693,7 @@ function normalizeValidLayoutFragment (key, schemaFragment, type, nullable, sche
|
|
|
661
693
|
*/
|
|
662
694
|
export function normalizeLayoutFragment (key, schemaFragment, schemaPath, components, markdown = (src) => src, useDescription, optionsKeys, schemaChild, knownType, knownNullable) {
|
|
663
695
|
const { type, nullable } = knownType ? { type: knownType, nullable: knownNullable ?? false } : getSchemaFragmentType(schemaFragment)
|
|
696
|
+
|
|
664
697
|
/** @type {string[]} */
|
|
665
698
|
const errors = []
|
|
666
699
|
try {
|
package/src/types.ts
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export * from "./normalized-layout/index.js";
|
|
|
3
3
|
export * from "./components/index.js";
|
|
4
4
|
export type SchemaFragment = import("./types.js").SchemaFragment;
|
|
5
5
|
export type ComponentInfo = import("./types.js").ComponentInfo;
|
|
6
|
-
export { normalizeLayoutFragment, getSchemaFragmentType } from "./normalize.js";
|
|
6
|
+
export { normalizeLayoutFragment, getSchemaFragmentType, mergeNullableSubSchema } from "./normalize.js";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/types/normalize.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export function normalizeLayoutFragment(key: string | number, schemaFragment: Sc
|
|
|
15
15
|
layout: NormalizedLayout;
|
|
16
16
|
errors: string[];
|
|
17
17
|
};
|
|
18
|
+
export function mergeNullableSubSchema(schemaFragment: SchemaFragment): boolean | undefined;
|
|
18
19
|
export function getSchemaFragmentType(schemaFragment: SchemaFragment): {
|
|
19
20
|
type: string | undefined;
|
|
20
21
|
nullable: boolean;
|
package/types/normalize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.js"],"names":[],"mappings":"AAwqBA;;;;;;;;;;;;GAYG;AACH,6CAZW,MAAM,GAAG,MAAM,kBACf,cAAc,cACd,MAAM,cACN,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,aAAa,CAAC,aAClD,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,+BACxB,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,gBACnC,MAAM,EAAE,gBACR,OAAO,GAAG,mBAAmB,cAC7B,MAAM,GAAG,SAAS,kBAClB,OAAO,GACL;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAC,CAwBxD;AAlaM,uDAHI,cAAc,GACZ,OAAO,GAAG,SAAS,CAyB/B;AAMM,sDAHI,cAAc,GACZ;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAC,CAkCzD;oBAjWY,OAAO,YAAY,EAAE,KAAK;uBAC1B,OAAO,YAAY,EAAE,QAAQ;6BAC7B,OAAO,YAAY,EAAE,cAAc;yBACnC,OAAO,YAAY,EAAE,UAAU;+BAC/B,OAAO,YAAY,EAAE,gBAAgB;4BACrC,OAAO,YAAY,EAAE,aAAa;8BAClC,OAAO,YAAY,EAAE,eAAe;gCACpC,OAAO,YAAY,EAAE,iBAAiB;6BACtC,OAAO,YAAY,EAAE,cAAc"}
|
package/types/types.d.ts
CHANGED
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,WAAW,CAAC,EAAE,aAAa,CAAA;IAC3B,uBAAuB,CAAC,EAAE,aAAa,CAAA;IACvC,IAAI,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,WAAW,CAAC,EAAE,aAAa,CAAA;IAC3B,uBAAuB,CAAC,EAAE,aAAa,CAAA;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACvC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,GAAG,CAAA;IACR,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,aAAa,EAAE,GAAG,GAAG,aAAa,IAAI,aAAa,CAAA;IACpD,MAAM,EAAE,GAAG,CAAA;CACZ;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,gBAAgB,CAAA;IACzC,MAAM,EAAE,GAAG,CAAA;CACZ"}
|