@voxgig/apidef 8.13.0 → 8.14.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/dist/apidef.d.ts +2 -2
- package/dist/apidef.js +2 -2
- package/dist/apidef.js.map +1 -1
- package/dist/builder/entity/entity.d.ts +5 -1
- package/dist/builder/entity/entity.js +17 -1
- package/dist/builder/entity/entity.js.map +1 -1
- package/dist/builder/flow/flowHeuristic01.js +14 -14
- package/dist/builder/flow/flowHeuristic01.js.map +1 -1
- package/dist/model.d.ts +35 -33
- package/dist/resolved.d.ts +10 -6
- package/dist/resolved.js +65 -15
- package/dist/resolved.js.map +1 -1
- package/dist/transform/args.js +19 -19
- package/dist/transform/args.js.map +1 -1
- package/dist/transform/clean.js +4 -0
- package/dist/transform/clean.js.map +1 -1
- package/dist/transform/contract.d.ts +0 -2
- package/dist/transform/contract.js +6 -75
- package/dist/transform/contract.js.map +1 -1
- package/dist/transform/entity.d.ts +2 -1
- package/dist/transform/entity.js +13 -1
- package/dist/transform/entity.js.map +1 -1
- package/dist/transform/field.js +64 -64
- package/dist/transform/field.js.map +1 -1
- package/dist/transform/flowstep.js +42 -42
- package/dist/transform/flowstep.js.map +1 -1
- package/dist/transform/graphql.js +8 -8
- package/dist/transform/graphql.js.map +1 -1
- package/dist/transform/operation.js +9 -9
- package/dist/transform/operation.js.map +1 -1
- package/dist/transform/select.js +13 -13
- package/dist/transform/select.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utility.d.ts +2 -1
- package/dist/utility.js +5 -0
- package/dist/utility.js.map +1 -1
- package/model/apidef.aon +128 -157
- package/model/guide.aon +3 -2
- package/package.json +5 -3
- package/src/apidef.ts +4 -3
- package/src/builder/entity/entity.ts +18 -1
- package/src/builder/flow/flowHeuristic01.ts +14 -14
- package/src/model.ts +36 -37
- package/src/resolved.ts +62 -17
- package/src/transform/args.ts +20 -20
- package/src/transform/clean.ts +5 -0
- package/src/transform/contract.ts +6 -71
- package/src/transform/entity.ts +13 -1
- package/src/transform/field.ts +66 -69
- package/src/transform/flowstep.ts +42 -42
- package/src/transform/graphql.ts +8 -8
- package/src/transform/operation.ts +9 -9
- package/src/transform/select.ts +13 -13
- package/src/types.ts +1 -1
- package/src/utility.ts +7 -0
package/dist/transform/args.js
CHANGED
|
@@ -12,7 +12,7 @@ const argsTransform = async function (ctx) {
|
|
|
12
12
|
(0, jostraca_1.each)(ment.op, (mop, opname) => {
|
|
13
13
|
(0, jostraca_1.each)(mop.points, (mpoint) => {
|
|
14
14
|
const argdefs = [];
|
|
15
|
-
if ('graphql' === mpoint.
|
|
15
|
+
if ('graphql' === mpoint.k) {
|
|
16
16
|
// GraphQL root-field arguments become 'param' args, so the existing
|
|
17
17
|
// arg machinery (select.exist matching, request typing, test
|
|
18
18
|
// generation) works on them unchanged. Input-object arguments are
|
|
@@ -35,9 +35,9 @@ const argsTransform = async function (ctx) {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
|
-
const pathdef = def.paths[mpoint.
|
|
38
|
+
const pathdef = def.paths[mpoint.o];
|
|
39
39
|
argdefs.push(...(pathdef?.parameters ?? []));
|
|
40
|
-
const opdef = pathdef?.[mpoint.
|
|
40
|
+
const opdef = pathdef?.[mpoint.m.toLowerCase()];
|
|
41
41
|
argdefs.push(...(opdef?.parameters ?? []));
|
|
42
42
|
}
|
|
43
43
|
resolveArgs(ctx, ment, mop, mpoint, argdefs);
|
|
@@ -50,8 +50,8 @@ const argsTransform = async function (ctx) {
|
|
|
50
50
|
exports.argsTransform = argsTransform;
|
|
51
51
|
// Locate the normalised root-field descriptor a GraphQL point came from.
|
|
52
52
|
function graphqlFieldDef(def, mpoint) {
|
|
53
|
-
const field = mpoint.
|
|
54
|
-
return 'mutation' === mpoint.
|
|
53
|
+
const field = mpoint.gq?.field ?? mpoint.o;
|
|
54
|
+
return 'mutation' === mpoint.gq?.optype ?
|
|
55
55
|
def.mutation?.[field] : def.query?.[field];
|
|
56
56
|
}
|
|
57
57
|
function gqlScalarType(typeName) {
|
|
@@ -76,11 +76,11 @@ function resolveArgs(ctx, ment, mop, mpoint, argdefs) {
|
|
|
76
76
|
const ref = argdef?.$ref;
|
|
77
77
|
ctx?.warn?.({
|
|
78
78
|
note: `Parameter with no name on entity=${ment.name} op=${mop.name}` +
|
|
79
|
-
` path=${mpoint.
|
|
79
|
+
` path=${mpoint.o} is dropped` +
|
|
80
80
|
(null == ref ? '.' : `: \`$ref\` "${ref}" resolves to nothing.`) +
|
|
81
81
|
' A parameter needs a `name`, or a reference that resolves to one.',
|
|
82
82
|
entity: ment.name,
|
|
83
|
-
path: mpoint.
|
|
83
|
+
path: mpoint.o,
|
|
84
84
|
op: mop.name,
|
|
85
85
|
});
|
|
86
86
|
return;
|
|
@@ -89,31 +89,31 @@ function resolveArgs(ctx, ment, mop, mpoint, argdefs) {
|
|
|
89
89
|
// Rename map can be keyed by either the spec original (camelCase) or by
|
|
90
90
|
// the snakified form depending on which path went through heuristic01.
|
|
91
91
|
// Try both before falling through to `orig`.
|
|
92
|
-
const renameMap = mpoint.
|
|
92
|
+
const renameMap = mpoint.r[kind];
|
|
93
93
|
const name = renameMap?.[specName] ?? renameMap?.[orig] ?? orig;
|
|
94
94
|
const marg = {
|
|
95
|
-
name,
|
|
96
|
-
orig,
|
|
97
|
-
|
|
98
|
-
kind,
|
|
99
|
-
|
|
95
|
+
n: name,
|
|
96
|
+
or: orig,
|
|
97
|
+
t: (0, utility_1.inferFieldType)(name, (0, utility_1.validator)(argdef.schema?.type)),
|
|
98
|
+
k: kind,
|
|
99
|
+
r: !!argdef.required
|
|
100
100
|
};
|
|
101
101
|
const example = resolveArgExample(argdef);
|
|
102
102
|
if (undefined !== example) {
|
|
103
|
-
marg.
|
|
103
|
+
marg.ex = example;
|
|
104
104
|
}
|
|
105
105
|
if (argdef.nullable) {
|
|
106
|
-
marg.
|
|
106
|
+
marg.t = ['`$ONE`', '`$NULL`', marg.t];
|
|
107
107
|
}
|
|
108
|
-
const argsKey = (marg.
|
|
109
|
-
let kindargs = (mpoint.
|
|
108
|
+
const argsKey = (marg.k === 'param' ? 'params' : marg.k);
|
|
109
|
+
let kindargs = (mpoint.g[argsKey] = mpoint.g[argsKey] ?? []);
|
|
110
110
|
kindargs.push(marg);
|
|
111
111
|
touchedKeys.add(argsKey);
|
|
112
112
|
});
|
|
113
113
|
// Sort once after all args are collected
|
|
114
|
-
const cmp = (a, b) => a.
|
|
114
|
+
const cmp = (a, b) => a.n < b.n ? -1 : a.n > b.n ? 1 : 0;
|
|
115
115
|
for (const key of touchedKeys) {
|
|
116
|
-
mpoint.
|
|
116
|
+
mpoint.g[key]?.sort(cmp);
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
function resolveArgExample(argdef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/transform/args.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAIxC,wCAAqG;AAGrG,oCAA8B;AAoB9B,MAAM,aAAa,GAAc,KAAK,WACpC,GAAQ;IAER,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IAC7B,MAAM,GAAG,GAAa,QAAQ,CAAC,IAAI,CAAC,WAAG,CAAC,CAAA;IAExC,IAAI,GAAG,GAAG,OAAO,CAAA;IAGjB,IAAA,eAAI,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAiB,EAAE,OAAe,EAAE,EAAE;QACtD,IAAA,eAAI,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAY,EAAE,MAAc,EAAE,EAAE;YAC7C,IAAA,eAAI,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAkB,EAAE,EAAE;gBACtC,MAAM,OAAO,GAAmB,EAAE,CAAA;gBAElC,IAAI,SAAS,KAAK,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/transform/args.ts"],"names":[],"mappings":"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"}
|
package/dist/transform/clean.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cleanTransform = void 0;
|
|
4
|
+
const types_1 = require("../types");
|
|
4
5
|
const struct_1 = require("@voxgig/struct");
|
|
5
6
|
const cleanTransform = async function (ctx) {
|
|
6
7
|
const { apimodel } = ctx;
|
|
@@ -36,6 +37,9 @@ const cleanTransform = async function (ctx) {
|
|
|
36
37
|
return v;
|
|
37
38
|
});
|
|
38
39
|
ctx.apimodel = cur[0];
|
|
40
|
+
for (const entity of Object.values(ctx.apimodel.main?.[types_1.KIT]?.entity ?? {})) {
|
|
41
|
+
entity.fields ??= {};
|
|
42
|
+
}
|
|
39
43
|
return { ok: true, msg: 'clean' };
|
|
40
44
|
};
|
|
41
45
|
exports.cleanTransform = cleanTransform;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/transform/clean.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/transform/clean.ts"],"names":[],"mappings":";;;AAEA,oCAA8B;AAE9B,2CAAqE;AAGrE,MAAM,cAAc,GAAc,KAAK,WACrC,GAAQ;IAER,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;IAExB,IAAI,GAAG,GAAU,EAAE,CAAA;IAEnB,kFAAkF;IAClF,gDAAgD;IAChD,IAAA,aAAI,EACF,QAAQ,EACR,CAAC,CAAM,EAAE,CAAM,EAAE,EAAO,EAAE,SAAc,EAAE,EAAE;QAC1C,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAA,cAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,EAAE,GAAG,CAAC,CAAA;QAEV,IAAI,IAAA,eAAM,EAAC,CAAC,CAAC,EAAE,CAAC;YACd,IAAI,IAAA,gBAAO,EAAC,CAAC,CAAC,EAAE,CAAC;gBACf,EAAE,GAAG,SAAS,CAAA;YAChB,CAAC;iBACI,CAAC;gBACJ,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAA,cAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YACjD,CAAC;QAEH,CAAC;QAED,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;QACnC,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC,EAED,CAAC,CAAM,EAAE,CAAM,EAAE,EAAO,EAAE,SAAc,EAAE,EAAE;QAC1C,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpC,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;YAChB,IAAI,IAAA,eAAM,EAAC,EAAE,CAAC,IAAI,IAAA,gBAAO,EAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC,CACF,CAAA;IAED,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IAErB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAG,CAAC,EAAE,MAAM,IAAI,EAAE,CAAU,EAAE,CAAC;QACpF,MAAM,CAAC,MAAM,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;AACnC,CAAC,CAAA;QAIC,cAAc"}
|
|
@@ -1,94 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.contractTransform = void 0;
|
|
4
|
-
exports.contractJSON = contractJSON;
|
|
5
|
-
exports.graphqlInputTypes = graphqlInputTypes;
|
|
6
|
-
const resolved_1 = require("../resolved");
|
|
7
|
-
function contractJSON(value) {
|
|
8
|
-
function walk(root, base) {
|
|
9
|
-
// One memo per fact, so refs stay local to it.
|
|
10
|
-
const seen = new Map();
|
|
11
|
-
function copy(v, path) {
|
|
12
|
-
if (v === null || typeof v !== 'object')
|
|
13
|
-
return v;
|
|
14
|
-
if (seen.has(v))
|
|
15
|
-
return { $ref: seen.get(v) };
|
|
16
|
-
seen.set(v, path);
|
|
17
|
-
const out = Array.isArray(v) ? v.map((item, i) => copy(item, path + '/' + i)) : {};
|
|
18
|
-
if (!Array.isArray(v))
|
|
19
|
-
for (const k of Object.keys(v).sort()) {
|
|
20
|
-
if (!k.endsWith('$') && !k.startsWith('x-') && undefined !== v[k])
|
|
21
|
-
out[k] = copy(v[k], path + '/' + k.replace(/~/g, '~0').replace(/\//g, '~1'));
|
|
22
|
-
}
|
|
23
|
-
return out;
|
|
24
|
-
}
|
|
25
|
-
return copy(root, base);
|
|
26
|
-
}
|
|
27
|
-
if (null === value || 'object' !== typeof value || Array.isArray(value)) {
|
|
28
|
-
return JSON.stringify(walk(value, '#'));
|
|
29
|
-
}
|
|
30
|
-
const out = {};
|
|
31
|
-
for (const k of Object.keys(value).sort()) {
|
|
32
|
-
if (k.endsWith('$') || k.startsWith('x-') || undefined === value[k])
|
|
33
|
-
continue;
|
|
34
|
-
out[k] = walk(value[k], '#/' + k.replace(/~/g, '~0').replace(/\//g, '~1'));
|
|
35
|
-
}
|
|
36
|
-
return JSON.stringify(out);
|
|
37
|
-
}
|
|
38
|
-
// An operation needs its argument types, including recursive input objects.
|
|
39
|
-
// Output types are represented by the field and generated invocation selection;
|
|
40
|
-
// copying the entire connected output graph per operation is quadratic in API size.
|
|
41
|
-
function graphqlInputTypes(field, types) {
|
|
42
|
-
const out = {};
|
|
43
|
-
function visit(name) {
|
|
44
|
-
if (!types[name] || Object.prototype.hasOwnProperty.call(out, name))
|
|
45
|
-
return;
|
|
46
|
-
const type = types[name];
|
|
47
|
-
out[name] = type;
|
|
48
|
-
if (type.kind === 'INPUT_OBJECT') {
|
|
49
|
-
for (const child of Object.values(type.fields || {}))
|
|
50
|
-
visit(child.type);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
for (const arg of field.args || [])
|
|
54
|
-
visit(arg.type);
|
|
55
|
-
return out;
|
|
56
|
-
}
|
|
57
4
|
const contractTransform = async (ctx) => {
|
|
58
5
|
const def = ctx.def || {};
|
|
59
6
|
for (const entity of Object.values(ctx.apimodel.main.kit.entity || {})) {
|
|
60
7
|
for (const op of Object.values(entity.op || {})) {
|
|
61
8
|
for (const point of op?.points || []) {
|
|
62
|
-
const path = def.paths?.[point.
|
|
63
|
-
const method = path?.[point.
|
|
64
|
-
const graphql = def.query?.[point.
|
|
9
|
+
const path = def.paths?.[point.o];
|
|
10
|
+
const method = path?.[point.m.toLowerCase()];
|
|
11
|
+
const graphql = def.query?.[point.o] || def.mutation?.[point.o];
|
|
65
12
|
if (!method && !graphql)
|
|
66
13
|
continue;
|
|
67
|
-
const
|
|
68
|
-
if (null == facts)
|
|
69
|
-
continue;
|
|
70
|
-
// A property of the point, not of the definition.
|
|
71
|
-
if (graphql)
|
|
72
|
-
facts.invocation = point.graphql;
|
|
73
|
-
const guideOp = ctx.guide?.entity?.[entity.name]?.[graphql ? 'field' : 'path']?.[point.orig]?.op?.[op.name];
|
|
14
|
+
const guideOp = ctx.guide?.entity?.[entity.name]?.[graphql ? 'field' : 'path']?.[point.o]?.op?.[op.name];
|
|
74
15
|
const hint = guideOp?.live;
|
|
75
|
-
for (const key of ['requestBody', 'responses', 'parameters', 'security']) {
|
|
76
|
-
if (guideOp?.contract?.[key] !== undefined) {
|
|
77
|
-
facts[key] = guideOp.contract[key];
|
|
78
|
-
(facts.factSources ??= {})[key] = 'guide';
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
16
|
if (hint !== undefined) {
|
|
82
|
-
|
|
83
|
-
point.live = hint;
|
|
17
|
+
point.li = hint;
|
|
84
18
|
}
|
|
85
19
|
// Identity only; facts come from the capability. See
|
|
86
20
|
// docs/design/resolved-spec-capability.md
|
|
87
|
-
point.
|
|
21
|
+
point.co = { version: 2, id: point.m + ' ' + point.o,
|
|
88
22
|
source: graphql ? 'graphql' : def.swagger ? 'swagger2' : 'openapi3' };
|
|
89
|
-
if (ctx.opts?.contractJson) {
|
|
90
|
-
point.contract.json = contractJSON(facts);
|
|
91
|
-
}
|
|
92
23
|
}
|
|
93
24
|
}
|
|
94
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/transform/contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/transform/contract.ts"],"names":[],"mappings":";;;AAGO,MAAM,iBAAiB,GAAc,KAAK,EAAE,GAAQ,EAAE,EAAE;IAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAA;IACzB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAU,EAAE,CAAC;QAChF,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAU,EAAE,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACjC,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;gBAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;oBAAE,SAAQ;gBACjC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;gBACxG,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAA;gBAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,KAAK,CAAC,EAAE,GAAG,IAAI,CAAA;gBACjB,CAAC;gBACD,qDAAqD;gBACrD,0CAA0C;gBAC1C,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;oBAClD,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAA;AACtC,CAAC,CAAA;AAtBY,QAAA,iBAAiB,GAAjB,iBAAiB,CAsB7B"}
|
|
@@ -2,6 +2,7 @@ import type { Transform } from '../transform';
|
|
|
2
2
|
import type { GuideEntity } from '../types';
|
|
3
3
|
import type { PathDesc } from '../desc';
|
|
4
4
|
declare const entityTransform: Transform;
|
|
5
|
+
declare function filterEntityAncestors(entities: Record<string, any>): void;
|
|
5
6
|
declare function mergeCollectionPaths(guide: any, log?: any): void;
|
|
6
7
|
declare function resolvePathList(guideEntity: GuideEntity, def: {
|
|
7
8
|
paths: Record<string, any>;
|
|
@@ -9,4 +10,4 @@ declare function resolvePathList(guideEntity: GuideEntity, def: {
|
|
|
9
10
|
declare function buildRelations(guideEntity: any, paths$: PathDesc[]): {
|
|
10
11
|
ancestors: any[];
|
|
11
12
|
};
|
|
12
|
-
export { resolvePathList, buildRelations, entityTransform, mergeCollectionPaths, };
|
|
13
|
+
export { filterEntityAncestors, resolvePathList, buildRelations, entityTransform, mergeCollectionPaths, };
|
package/dist/transform/entity.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.entityTransform = void 0;
|
|
4
|
+
exports.filterEntityAncestors = filterEntityAncestors;
|
|
4
5
|
exports.resolvePathList = resolvePathList;
|
|
5
6
|
exports.buildRelations = buildRelations;
|
|
6
7
|
exports.mergeCollectionPaths = mergeCollectionPaths;
|
|
@@ -30,15 +31,26 @@ const entityTransform = async function (ctx) {
|
|
|
30
31
|
const modelent = {
|
|
31
32
|
name: entname,
|
|
32
33
|
op: {},
|
|
33
|
-
fields:
|
|
34
|
+
fields: {},
|
|
34
35
|
relations,
|
|
35
36
|
};
|
|
36
37
|
kit.entity[entname] = modelent;
|
|
37
38
|
msg += guideEntity.name + ' ';
|
|
38
39
|
});
|
|
40
|
+
filterEntityAncestors(kit.entity);
|
|
39
41
|
return { ok: true, msg };
|
|
40
42
|
};
|
|
41
43
|
exports.entityTransform = entityTransform;
|
|
44
|
+
function filterEntityAncestors(entities) {
|
|
45
|
+
for (const [name, entity] of Object.entries(entities)) {
|
|
46
|
+
if (null == entity.relations)
|
|
47
|
+
continue;
|
|
48
|
+
entity.relations.ancestors = (entity.relations.ancestors ?? [])
|
|
49
|
+
.map((chain) => chain.filter(ancestor => ancestor !== name &&
|
|
50
|
+
Object.prototype.hasOwnProperty.call(entities, ancestor)))
|
|
51
|
+
.filter((chain) => 0 < chain.length);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
42
54
|
// Move "/X" paths onto the entity that owns "/X/{id}" or "/X/{id}/sub".
|
|
43
55
|
// Only acts when the path "/X" sits on a different entity than the
|
|
44
56
|
// per-instance paths — leaves correctly-classified APIs alone.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/transform/entity.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/transform/entity.ts"],"names":[],"mappings":"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"}
|