@ductape/sdk 0.1.53 → 0.1.56
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/introspect/index.js
CHANGED
|
@@ -9,6 +9,43 @@ const validators_1 = require("../apps/validators");
|
|
|
9
9
|
const validators_2 = require("../products/validators");
|
|
10
10
|
const enums_1 = require("../types/enums");
|
|
11
11
|
const types_1 = require("../types");
|
|
12
|
+
// Returns true for Joi's sentinel "forbidden" schema (Joi.forbidden() / Joi.any().forbidden()).
|
|
13
|
+
function isForbidden(desc) {
|
|
14
|
+
var _a;
|
|
15
|
+
return !desc || (desc.type === 'any' && ((_a = desc.flags) === null || _a === void 0 ? void 0 : _a.presence) === 'forbidden');
|
|
16
|
+
}
|
|
17
|
+
// Extracts all non-forbidden branch schemas from any Joi alternatives form:
|
|
18
|
+
// .try(a, b, c) → m.schema
|
|
19
|
+
// .when(key, { is, then, otherwise }) → m.then / m.otherwise
|
|
20
|
+
// .conditional(key, { switch: [...] }) → m.switch[n].then / m.otherwise
|
|
21
|
+
function collectAlternativeSchemas(desc) {
|
|
22
|
+
if (!Array.isArray(desc.matches) || desc.matches.length === 0)
|
|
23
|
+
return [];
|
|
24
|
+
const schemas = [];
|
|
25
|
+
for (const m of desc.matches) {
|
|
26
|
+
if (m.schema) {
|
|
27
|
+
if (!isForbidden(m.schema))
|
|
28
|
+
schemas.push(m.schema);
|
|
29
|
+
}
|
|
30
|
+
else if (Array.isArray(m.switch)) {
|
|
31
|
+
for (const sw of m.switch) {
|
|
32
|
+
if (sw.then && !isForbidden(sw.then))
|
|
33
|
+
schemas.push(sw.then);
|
|
34
|
+
if (sw.otherwise && !isForbidden(sw.otherwise))
|
|
35
|
+
schemas.push(sw.otherwise);
|
|
36
|
+
}
|
|
37
|
+
if (m.otherwise && !isForbidden(m.otherwise))
|
|
38
|
+
schemas.push(m.otherwise);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (m.then && !isForbidden(m.then))
|
|
42
|
+
schemas.push(m.then);
|
|
43
|
+
if (m.otherwise && !isForbidden(m.otherwise))
|
|
44
|
+
schemas.push(m.otherwise);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return schemas;
|
|
48
|
+
}
|
|
12
49
|
function describeField(desc) {
|
|
13
50
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
14
51
|
if (!desc || typeof desc !== 'object') {
|
|
@@ -53,11 +90,32 @@ function describeField(desc) {
|
|
|
53
90
|
if (desc.type === 'array' && Array.isArray(desc.items) && desc.items.length > 0) {
|
|
54
91
|
result.items = describeField(desc.items[0]);
|
|
55
92
|
}
|
|
56
|
-
// Alternatives
|
|
93
|
+
// Alternatives: handles .try(), .when(), and .conditional({ switch }) forms
|
|
57
94
|
if (desc.type === 'alternatives' && Array.isArray(desc.matches) && desc.matches.length > 0) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
.
|
|
95
|
+
const schemas = collectAlternativeSchemas(desc);
|
|
96
|
+
if (schemas.length === 0) {
|
|
97
|
+
result.type = 'any';
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
if (schemas.length === 1) {
|
|
101
|
+
// Single non-forbidden branch — inherit its shape, apply outer required flag
|
|
102
|
+
return Object.assign(Object.assign({}, describeField(schemas[0])), { required });
|
|
103
|
+
}
|
|
104
|
+
// If every branch resolves to the same primitive type (e.g. optional string vs required
|
|
105
|
+
// string from Joi.when()), collapse to that type. Requiredness is context-dependent so
|
|
106
|
+
// mark as optional.
|
|
107
|
+
const firstType = schemas[0].type;
|
|
108
|
+
const allSamePrimitive = Boolean(firstType)
|
|
109
|
+
&& firstType !== 'object'
|
|
110
|
+
&& firstType !== 'alternatives'
|
|
111
|
+
&& firstType !== 'array'
|
|
112
|
+
&& schemas.every(s => s.type === firstType);
|
|
113
|
+
if (allSamePrimitive) {
|
|
114
|
+
result.type = firstType;
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
// Multiple distinct shapes (e.g. aws/gcp/azure config objects) — expose all variants
|
|
118
|
+
result.oneOf = schemas.map(s => describeField(s));
|
|
61
119
|
delete result.type;
|
|
62
120
|
}
|
|
63
121
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/introspect/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/introspect/index.ts"],"names":[],"mappings":"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"}
|