@volcanicminds/backend 2.2.5 → 2.2.6
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"AAKA,wBAAsB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFtD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
1
2
|
import { normalizePatterns } from '../util/path.js';
|
|
2
3
|
import { globSync } from 'glob';
|
|
3
4
|
import path from 'path';
|
|
@@ -13,7 +14,6 @@ export async function apply(server) {
|
|
|
13
14
|
continue;
|
|
14
15
|
try {
|
|
15
16
|
const schemaModule = await import(f);
|
|
16
|
-
const schemaClass = schemaModule.default || schemaModule;
|
|
17
17
|
const schemaNames = Object.keys(schemaModule);
|
|
18
18
|
schemaNames.forEach((name) => {
|
|
19
19
|
const schema = schemaModule[name];
|
|
@@ -27,11 +27,6 @@ export async function apply(server) {
|
|
|
27
27
|
log.w && log.warn(`Could not load custom schema file: ${f}`, e);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
customSchemas.forEach((schema) => {
|
|
31
|
-
log.trace(`* Registering custom schema [${schema.$id}]`);
|
|
32
|
-
server.addSchema(schema);
|
|
33
|
-
schemaCount++;
|
|
34
|
-
});
|
|
35
30
|
log.t && log.trace('Looking for base schemas in ' + baseSchemaPath);
|
|
36
31
|
const baseFiles = globSync(baseSchemaPath, { windowsPathsNoEscape: true });
|
|
37
32
|
for (const f of baseFiles) {
|
|
@@ -42,15 +37,24 @@ export async function apply(server) {
|
|
|
42
37
|
const schemaModule = await import(f);
|
|
43
38
|
const schemaNames = Object.keys(schemaModule);
|
|
44
39
|
schemaNames.forEach((name) => {
|
|
45
|
-
const
|
|
46
|
-
if (
|
|
47
|
-
if (customSchemaIds.has(
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
const baseSchema = schemaModule[name];
|
|
41
|
+
if (baseSchema && typeof baseSchema === 'object' && baseSchema.$id) {
|
|
42
|
+
if (customSchemaIds.has(baseSchema.$id)) {
|
|
43
|
+
const customSchema = customSchemas.find((s) => s.$id === baseSchema.$id);
|
|
44
|
+
if (customSchema) {
|
|
45
|
+
const customRequired = Array.isArray(customSchema.required) ? customSchema.required : [];
|
|
46
|
+
const baseRequired = Array.isArray(baseSchema.required) ? baseSchema.required : [];
|
|
47
|
+
const mergedRequired = [...new Set([...customRequired, ...baseRequired])];
|
|
48
|
+
_.defaultsDeep(customSchema, baseSchema);
|
|
49
|
+
if (mergedRequired.length > 0) {
|
|
50
|
+
customSchema.required = mergedRequired;
|
|
51
|
+
}
|
|
52
|
+
log.d && log.debug(`* Schema [${baseSchema.$id}] deeply merged with core definition.`);
|
|
53
|
+
}
|
|
50
54
|
}
|
|
51
55
|
else {
|
|
52
|
-
log.trace(`* Registering base schema [${
|
|
53
|
-
server.addSchema(
|
|
56
|
+
log.trace(`* Registering base schema [${baseSchema.$id}] from ${schemaFileName}`);
|
|
57
|
+
server.addSchema(baseSchema);
|
|
54
58
|
schemaCount++;
|
|
55
59
|
}
|
|
56
60
|
}
|
|
@@ -63,6 +67,16 @@ export async function apply(server) {
|
|
|
63
67
|
log.w && log.warn(`Could not load base schema file: ${f}`, e);
|
|
64
68
|
}
|
|
65
69
|
}
|
|
70
|
+
customSchemas.forEach((schema) => {
|
|
71
|
+
log.trace(`* Registering custom schema [${schema.$id}]`);
|
|
72
|
+
try {
|
|
73
|
+
server.addSchema(schema);
|
|
74
|
+
schemaCount++;
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
log.e && log.error(`Error registering schema ${schema.$id}: ${e.message}`);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
66
80
|
log.d && log.debug(`Schemas loaded: ${schemaCount} referenceable by $ref`);
|
|
67
81
|
}
|
|
68
82
|
//# sourceMappingURL=schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAW;IACrC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,iBAAiB,CAC1D,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAC9B,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAChC,CAAA;IAED,MAAM,aAAa,GAAU,EAAE,CAAA;IAC/B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAA;IACjC,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,gBAAgB,CAAC,CAAA;IACvE,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAA;IAE9E,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAQ;QAEjC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"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"}
|
package/lib/loader/schemas.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _ from 'lodash'
|
|
1
2
|
import { normalizePatterns } from '../util/path.js'
|
|
2
3
|
import { globSync } from 'glob'
|
|
3
4
|
import path from 'path'
|
|
@@ -20,7 +21,6 @@ export async function apply(server: any): Promise<void> {
|
|
|
20
21
|
|
|
21
22
|
try {
|
|
22
23
|
const schemaModule = await import(f)
|
|
23
|
-
const schemaClass = schemaModule.default || schemaModule
|
|
24
24
|
const schemaNames = Object.keys(schemaModule)
|
|
25
25
|
|
|
26
26
|
schemaNames.forEach((name) => {
|
|
@@ -35,12 +35,6 @@ export async function apply(server: any): Promise<void> {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
customSchemas.forEach((schema) => {
|
|
39
|
-
log.trace(`* Registering custom schema [${schema.$id}]`)
|
|
40
|
-
server.addSchema(schema)
|
|
41
|
-
schemaCount++
|
|
42
|
-
})
|
|
43
|
-
|
|
44
38
|
log.t && log.trace('Looking for base schemas in ' + baseSchemaPath)
|
|
45
39
|
const baseFiles = globSync(baseSchemaPath, { windowsPathsNoEscape: true })
|
|
46
40
|
|
|
@@ -53,16 +47,29 @@ export async function apply(server: any): Promise<void> {
|
|
|
53
47
|
const schemaNames = Object.keys(schemaModule)
|
|
54
48
|
|
|
55
49
|
schemaNames.forEach((name) => {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
50
|
+
const baseSchema = schemaModule[name]
|
|
51
|
+
|
|
52
|
+
if (baseSchema && typeof baseSchema === 'object' && baseSchema.$id) {
|
|
53
|
+
if (customSchemaIds.has(baseSchema.$id)) {
|
|
54
|
+
// SMART DEEP MERGE
|
|
55
|
+
const customSchema = customSchemas.find((s) => s.$id === baseSchema.$id)
|
|
56
|
+
|
|
57
|
+
if (customSchema) {
|
|
58
|
+
const customRequired = Array.isArray(customSchema.required) ? customSchema.required : []
|
|
59
|
+
const baseRequired = Array.isArray(baseSchema.required) ? baseSchema.required : []
|
|
60
|
+
const mergedRequired = [...new Set([...customRequired, ...baseRequired])]
|
|
61
|
+
|
|
62
|
+
_.defaultsDeep(customSchema, baseSchema)
|
|
63
|
+
|
|
64
|
+
if (mergedRequired.length > 0) {
|
|
65
|
+
customSchema.required = mergedRequired
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
log.d && log.debug(`* Schema [${baseSchema.$id}] deeply merged with core definition.`)
|
|
69
|
+
}
|
|
63
70
|
} else {
|
|
64
|
-
log.trace(`* Registering base schema [${
|
|
65
|
-
server.addSchema(
|
|
71
|
+
log.trace(`* Registering base schema [${baseSchema.$id}] from ${schemaFileName}`)
|
|
72
|
+
server.addSchema(baseSchema)
|
|
66
73
|
schemaCount++
|
|
67
74
|
}
|
|
68
75
|
} else if (name !== 'default') {
|
|
@@ -74,5 +81,15 @@ export async function apply(server: any): Promise<void> {
|
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
83
|
|
|
84
|
+
customSchemas.forEach((schema) => {
|
|
85
|
+
log.trace(`* Registering custom schema [${schema.$id}]`)
|
|
86
|
+
try {
|
|
87
|
+
server.addSchema(schema)
|
|
88
|
+
schemaCount++
|
|
89
|
+
} catch (e: any) {
|
|
90
|
+
log.e && log.error(`Error registering schema ${schema.$id}: ${e.message}`)
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
|
|
77
94
|
log.d && log.debug(`Schemas loaded: ${schemaCount} referenceable by $ref`)
|
|
78
95
|
}
|