@voxgig/apidef 2.3.1 → 2.4.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 -6
- package/dist/apidef.js +44 -11
- package/dist/apidef.js.map +1 -1
- package/dist/builder/flow/flowHeuristic01.js +1 -1
- package/dist/builder/flow/flowHeuristic01.js.map +1 -1
- package/dist/guide/guide.d.ts +2 -0
- package/dist/guide/guide.js +107 -0
- package/dist/guide/guide.js.map +1 -0
- package/dist/guide/heuristic01.js +149 -218
- package/dist/guide/heuristic01.js.map +1 -1
- package/dist/resolver.js +2 -2
- package/dist/resolver.js.map +1 -1
- package/dist/transform/entity.js +1 -2
- package/dist/transform/entity.js.map +1 -1
- package/dist/transform/field.js +1 -2
- package/dist/transform/field.js.map +1 -1
- package/dist/transform/operation.js +1 -2
- package/dist/transform/operation.js.map +1 -1
- package/dist/transform/top.js +0 -1
- package/dist/transform/top.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +297 -2
- package/dist/types.js +12 -1
- package/dist/types.js.map +1 -1
- package/dist/utility.d.ts +3 -1
- package/dist/utility.js +155 -0
- package/dist/utility.js.map +1 -1
- package/model/apidef.jsonic +1 -50
- package/model/guide.jsonic +53 -0
- package/package.json +6 -5
- package/src/apidef.ts +61 -15
- package/src/builder/flow/flowHeuristic01.ts +1 -1
- package/src/guide/guide.ts +274 -0
- package/src/guide/heuristic01.ts +173 -232
- package/src/{guide.ts → guide.ts.off} +8 -5
- package/src/resolver.ts +2 -2
- package/src/transform/entity.ts +1 -6
- package/src/transform/field.ts +1 -6
- package/src/transform/operation.ts +1 -2
- package/src/transform/top.ts +0 -6
- package/src/types.ts +31 -0
- package/src/utility.ts +184 -37
- package/dist/guide.d.ts +0 -2
- package/dist/guide.js +0 -95
- package/dist/guide.js.map +0 -1
package/dist/apidef.d.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import type { ApiDefOptions,
|
|
1
|
+
import type { ApiDefOptions, ApiDefResult } from './types';
|
|
2
2
|
import { parse } from './parse';
|
|
3
3
|
declare function ApiDef(opts: ApiDefOptions): {
|
|
4
|
-
generate: (spec: any) => Promise<
|
|
5
|
-
ok: boolean;
|
|
6
|
-
name: string;
|
|
7
|
-
apimodel: ApiModel;
|
|
8
|
-
}>;
|
|
4
|
+
generate: (spec: any) => Promise<ApiDefResult>;
|
|
9
5
|
};
|
|
10
6
|
declare namespace ApiDef {
|
|
11
7
|
var makeBuild: (opts: ApiDefOptions) => Promise<{
|
package/dist/apidef.js
CHANGED
|
@@ -44,7 +44,7 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
44
44
|
const jostraca_1 = require("jostraca");
|
|
45
45
|
const util_1 = require("@voxgig/util");
|
|
46
46
|
const types_1 = require("./types");
|
|
47
|
-
const guide_1 = require("./guide");
|
|
47
|
+
const guide_1 = require("./guide/guide");
|
|
48
48
|
const parse_1 = require("./parse");
|
|
49
49
|
Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parse_1.parse; } });
|
|
50
50
|
const transform_1 = require("./transform");
|
|
@@ -67,9 +67,15 @@ function ApiDef(opts) {
|
|
|
67
67
|
opts.strategy = opts.strategy || 'heuristic01';
|
|
68
68
|
async function generate(spec) {
|
|
69
69
|
const start = Date.now();
|
|
70
|
+
const steps = [];
|
|
70
71
|
// dlog('start')
|
|
71
|
-
const
|
|
72
|
-
const
|
|
72
|
+
const ctrl = (0, types_1.OpenControlShape)(spec.ctrl || {});
|
|
73
|
+
const model = (0, types_1.OpenModelShape)(spec.model || {});
|
|
74
|
+
const build = (0, types_1.OpenBuildShape)(spec.build || {});
|
|
75
|
+
// Step: parse (API spec).
|
|
76
|
+
if (!ctrl.step.parse) {
|
|
77
|
+
return { ok: false, steps, start, end: Date.now(), ctrl };
|
|
78
|
+
}
|
|
73
79
|
(0, jostraca_1.names)(model, model.name);
|
|
74
80
|
const apimodel = {
|
|
75
81
|
main: {
|
|
@@ -97,14 +103,27 @@ function ApiDef(opts) {
|
|
|
97
103
|
defpath: node_path_1.default.dirname(defpath),
|
|
98
104
|
model,
|
|
99
105
|
apimodel,
|
|
100
|
-
|
|
106
|
+
guide: {},
|
|
107
|
+
def: undefined,
|
|
108
|
+
note: {}
|
|
101
109
|
};
|
|
102
110
|
const defsrc = (0, utility_1.loadFile)(defpath, 'def', fs, log);
|
|
103
111
|
let def = await (0, parse_1.parse)('OpenAPI', defsrc, { file: defpath });
|
|
104
112
|
def = (0, parse_1.rewrite)(def);
|
|
105
113
|
fs.writeFileSync(defpath + '.full.json', JSON.stringify(def, null, 2));
|
|
106
114
|
ctx.def = def;
|
|
107
|
-
|
|
115
|
+
steps.push('parse');
|
|
116
|
+
// Step: guide (derive).
|
|
117
|
+
if (!ctrl.step.guide) {
|
|
118
|
+
return { ok: false, steps, start, end: Date.now(), ctrl };
|
|
119
|
+
}
|
|
120
|
+
const guideModel = await (0, guide_1.buildGuide)(ctx);
|
|
121
|
+
ctx.guide = guideModel.guide;
|
|
122
|
+
steps.push('guide');
|
|
123
|
+
// Step: transformers (transform spec and guide into core structures).
|
|
124
|
+
if (!ctrl.step.transformers) {
|
|
125
|
+
return { ok: false, steps, start, end: Date.now(), ctrl, guide: ctx.guide };
|
|
126
|
+
}
|
|
108
127
|
// const transformSpec = await resolveTransforms(ctx)
|
|
109
128
|
const transforms = await (0, resolver_1.resolveElements)(ctx, 'transform', 'openapi', {
|
|
110
129
|
top: top_1.topTransform,
|
|
@@ -113,10 +132,20 @@ function ApiDef(opts) {
|
|
|
113
132
|
field: field_1.fieldTransform,
|
|
114
133
|
clean: clean_1.cleanTransform,
|
|
115
134
|
});
|
|
135
|
+
steps.push('transformers');
|
|
136
|
+
// Step: builders (build generated sub models).
|
|
137
|
+
if (!ctrl.step.builders) {
|
|
138
|
+
return { ok: false, steps, start, end: Date.now(), ctrl, guide: ctx.guide };
|
|
139
|
+
}
|
|
116
140
|
const builders = await (0, resolver_1.resolveElements)(ctx, 'builder', 'standard', {
|
|
117
141
|
entity: entity_2.makeEntityBuilder,
|
|
118
142
|
flow: flow_1.makeFlowBuilder,
|
|
119
143
|
});
|
|
144
|
+
steps.push('builders');
|
|
145
|
+
// Step: generate (generate model files).
|
|
146
|
+
if (!ctrl.step.generate) {
|
|
147
|
+
return { ok: false, steps, start, end: Date.now(), ctrl, guide: ctx.guide };
|
|
148
|
+
}
|
|
120
149
|
const jostraca = (0, jostraca_1.Jostraca)({
|
|
121
150
|
now: spec.now,
|
|
122
151
|
fs: () => fs,
|
|
@@ -124,9 +153,6 @@ function ApiDef(opts) {
|
|
|
124
153
|
});
|
|
125
154
|
const jmodel = {};
|
|
126
155
|
const root = () => (0, jostraca_1.Project)({ folder: '.' }, async () => {
|
|
127
|
-
guideBuilder();
|
|
128
|
-
// entityBuilder()
|
|
129
|
-
// flowBuilder()
|
|
130
156
|
for (let builder of builders) {
|
|
131
157
|
builder();
|
|
132
158
|
}
|
|
@@ -143,11 +169,18 @@ function ApiDef(opts) {
|
|
|
143
169
|
log.debug({ point: 'generate-warning', dlogentry, note: String(dlogentry) });
|
|
144
170
|
}
|
|
145
171
|
}
|
|
172
|
+
steps.push('generate');
|
|
146
173
|
log.info({ point: 'generate-end', note: 'success', break: true });
|
|
147
174
|
return {
|
|
148
175
|
ok: true,
|
|
149
|
-
|
|
176
|
+
start,
|
|
177
|
+
end: Date.now(),
|
|
178
|
+
steps,
|
|
179
|
+
ctrl,
|
|
180
|
+
guide: ctx.guide,
|
|
150
181
|
apimodel,
|
|
182
|
+
ctx,
|
|
183
|
+
jres,
|
|
151
184
|
};
|
|
152
185
|
}
|
|
153
186
|
return {
|
|
@@ -156,7 +189,6 @@ function ApiDef(opts) {
|
|
|
156
189
|
}
|
|
157
190
|
ApiDef.makeBuild = async function (opts) {
|
|
158
191
|
let apidef = undefined;
|
|
159
|
-
// const outprefix = null == opts.outprefix ? '' : opts.outprefix
|
|
160
192
|
const config = {
|
|
161
193
|
def: opts.def || 'no-def',
|
|
162
194
|
kind: 'openapi3',
|
|
@@ -175,7 +207,8 @@ ApiDef.makeBuild = async function (opts) {
|
|
|
175
207
|
pino: build.log,
|
|
176
208
|
});
|
|
177
209
|
}
|
|
178
|
-
|
|
210
|
+
const ctrl = build.spec.buildargs?.apidef?.ctrl || {};
|
|
211
|
+
return await apidef.generate({ model, build, config, ctrl });
|
|
179
212
|
};
|
|
180
213
|
build.step = 'pre';
|
|
181
214
|
return build;
|
package/dist/apidef.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4R/C,wBAAM;AA1RR,4CAA6B;AAC7B,0DAA4B;AAG5B,uCAAmD;AAEnD,uCAAyC;AAYzC,mCAIgB;AAGhB,yCAEsB;AAGtB,mCAGgB;AA0Pd,sFA5PA,aAAK,OA4PA;AAvPP,2CAEoB;AAIpB,yCAEmB;AAEnB,uCAGkB;AAElB,yCAA8C;AAC9C,+CAAoD;AACpD,qDAA0D;AAC1D,6CAAkD;AAClD,6CAAkD;AAElD,6CAAoD;AACpD,yCAAgD;AAEhD,2BAA2B;AAC3B,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AAG1C,SAAS,MAAM,CAAC,IAAmB;IAGjC,mBAAmB;IACnB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAA;IAG9C,KAAK,UAAU,QAAQ,CAAC,IAAS;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,gBAAgB;QAEhB,MAAM,IAAI,GAAY,IAAA,wBAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACvD,MAAM,KAAK,GAAU,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QACrD,MAAM,KAAK,GAAU,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAErD,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAA;QAC3D,CAAC;QAED,IAAA,gBAAK,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAExB,MAAM,QAAQ,GAAa;YACzB,IAAI,EAAE;gBACJ,GAAG,EAAE;oBACH,MAAM,EAAE,EAAE;iBACX;gBACD,GAAG,EAAE,EAAE;aACR;SACF,CAAA;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;QAE5B,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAA;QAEvB,gDAAgD;QAChD,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAEzD,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;SAC1D,CAAC,CAAA;QAEF,sBAAsB;QACtB,MAAM,GAAG,GAAG;YACV,EAAE;YACF,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,EAAE,OAAO,EAAP,mBAAO,EAAE;YACjB,OAAO,EAAE,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9B,KAAK;YACL,QAAQ;YACR,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,EAAE;SACT,CAAA;QAED,MAAM,MAAM,GAAG,IAAA,kBAAQ,EAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAEhD,IAAI,GAAG,GAAG,MAAM,IAAA,aAAK,EAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAE3D,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,CAAC,CAAA;QAElB,EAAE,CAAC,aAAa,CAAC,OAAO,GAAG,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAEtE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;QAEb,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAGnB,wBAAwB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAA;QAC3D,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAA,kBAAU,EAAC,GAAG,CAAC,CAAA;QACxC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;QAE5B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAGnB,sEAAsE;QACtE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAC7E,CAAC;QAED,qDAAqD;QACrD,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAe,EAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE;YACpE,GAAG,EAAE,kBAAY;YACjB,MAAM,EAAE,wBAAe;YACvB,SAAS,EAAE,8BAAkB;YAC7B,KAAK,EAAE,sBAAc;YACrB,KAAK,EAAE,sBAAc;SACtB,CAAC,CAAA;QAEF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAE1B,+CAA+C;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAC7E,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAe,EAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE;YACjE,MAAM,EAAE,0BAAiB;YACzB,IAAI,EAAE,sBAAe;SACtB,CAAC,CAAA;QAEF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAGtB,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAC7E,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,mBAAQ,EAAC;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;YACZ,GAAG;SACJ,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,EAAE,CAAA;QAEjB,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;YACrD,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACnC,+CAA+C;YAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;SACnC,EAAE,IAAI,CAAC,CAAA;QAER,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACrB,KAAK,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC5B,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YAC9E,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAEtB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAEjE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK;YACL,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;YACf,KAAK;YACL,IAAI;YAEJ,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ;YACR,GAAG;YACH,IAAI;SACL,CAAA;IACH,CAAC;IAED,OAAO;QACL,QAAQ;KACT,CAAA;AACH,CAAC;AAGD,MAAM,CAAC,SAAS,GAAG,KAAK,WAAU,IAAmB;IACnD,IAAI,MAAM,GAAQ,SAAS,CAAA;IAE3B,MAAM,MAAM,GAAG;QACb,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,QAAQ;QACzB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;KACtB,CAAA;IAED,MAAM,KAAK,GAAG,KAAK,WAAU,KAAU,EAAE,KAAU,EAAE,GAAQ;QAE3D,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,MAAM,CAAC;gBACd,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,KAAK,CAAC,GAAG;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAA;QAErD,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC,CAAA;IAED,KAAK,CAAC,IAAI,GAAG,KAAK,CAAA;IAElB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|
|
@@ -4,7 +4,7 @@ exports.flowHeuristic01 = flowHeuristic01;
|
|
|
4
4
|
const struct_1 = require("@voxgig/struct");
|
|
5
5
|
const jostraca_1 = require("jostraca");
|
|
6
6
|
async function flowHeuristic01(ctx) {
|
|
7
|
-
let entity = ctx.
|
|
7
|
+
let entity = ctx.guide.entity;
|
|
8
8
|
const flows = [];
|
|
9
9
|
(0, jostraca_1.each)(entity, (entity) => {
|
|
10
10
|
flows.push(resolveBasicEntityFlow(ctx, entity));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowHeuristic01.js","sourceRoot":"","sources":["../../../src/builder/flow/flowHeuristic01.ts"],"names":[],"mappings":";;AAsME,0CAAe;AArMjB,2CAAqC;AAErC,uCAAsC;AAGtC,KAAK,UAAU,eAAe,CAAC,GAAQ;IACrC,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"flowHeuristic01.js","sourceRoot":"","sources":["../../../src/builder/flow/flowHeuristic01.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.buildGuide = buildGuide;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const jostraca_1 = require("jostraca");
|
|
9
|
+
const aontu_1 = require("aontu");
|
|
10
|
+
const struct_1 = require("@voxgig/struct");
|
|
11
|
+
const heuristic01_1 = require("./heuristic01");
|
|
12
|
+
const utility_1 = require("../utility");
|
|
13
|
+
// Log non-fatal wierdness.
|
|
14
|
+
const dlog = (0, utility_1.getdlog)('apidef', __filename);
|
|
15
|
+
async function buildGuide(ctx) {
|
|
16
|
+
const errs = [];
|
|
17
|
+
// console.log(ctx)
|
|
18
|
+
const folder = node_path_1.default.resolve(ctx.opts.folder);
|
|
19
|
+
// console.log('GUIDE folder', folder)
|
|
20
|
+
try {
|
|
21
|
+
const basejres = await buildBaseGuide(ctx);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
errs.push(err);
|
|
25
|
+
}
|
|
26
|
+
handleErrors(ctx, errs);
|
|
27
|
+
let src = '';
|
|
28
|
+
let guidePath = node_path_1.default.join(folder, 'guide', (null == ctx.opts.outprefix ? '' : ctx.opts.outprefix) + 'guide.jsonic');
|
|
29
|
+
try {
|
|
30
|
+
src = ctx.fs.readFileSync(guidePath, 'utf8');
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
errs.push(err);
|
|
34
|
+
}
|
|
35
|
+
handleErrors(ctx, errs);
|
|
36
|
+
const opts = {
|
|
37
|
+
path: guidePath
|
|
38
|
+
};
|
|
39
|
+
const guideRoot = (0, aontu_1.Aontu)(src, opts);
|
|
40
|
+
errs.push(...guideRoot.err);
|
|
41
|
+
handleErrors(ctx, errs);
|
|
42
|
+
let genctx = new aontu_1.Context({ root: guideRoot });
|
|
43
|
+
const guideModel = guideRoot.gen(genctx);
|
|
44
|
+
errs.push(...genctx.err);
|
|
45
|
+
handleErrors(ctx, errs);
|
|
46
|
+
return guideModel;
|
|
47
|
+
}
|
|
48
|
+
function handleErrors(ctx, errs) {
|
|
49
|
+
if (0 < errs.length) {
|
|
50
|
+
let topmsg = [];
|
|
51
|
+
for (let err of errs) {
|
|
52
|
+
topmsg.push((err?.message?.split('\n')[0]) || '');
|
|
53
|
+
ctx.log.error({ err });
|
|
54
|
+
}
|
|
55
|
+
throw new Error('SUMMARY: ' + topmsg.join('; '));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function buildBaseGuide(ctx) {
|
|
59
|
+
let baseguide = {};
|
|
60
|
+
if ('heuristic01' === ctx.opts.strategy) {
|
|
61
|
+
baseguide = await (0, heuristic01_1.heuristic01)(ctx);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw new Error('Unknown guide strategy: ' + ctx.opts.strategy);
|
|
65
|
+
}
|
|
66
|
+
const guideBlocks = [
|
|
67
|
+
'# Guide',
|
|
68
|
+
'',
|
|
69
|
+
'guide: {',
|
|
70
|
+
];
|
|
71
|
+
(0, struct_1.items)(baseguide.entity).map(([entityname, entity]) => {
|
|
72
|
+
guideBlocks.push(`
|
|
73
|
+
entity: ${entityname}: {` +
|
|
74
|
+
(0 < entity.why_name.length ? ' # name:' + entity.why_name.join(';') : ''));
|
|
75
|
+
(0, struct_1.items)(entity.path).map(([pathname, path]) => {
|
|
76
|
+
guideBlocks.push(` path: '${pathname}': op: {` +
|
|
77
|
+
(0 < path.why_ent.length ? ' # ent:' + path.why_ent.join(';') : ''));
|
|
78
|
+
(0, struct_1.items)(path.op).map(([opname, op]) => {
|
|
79
|
+
guideBlocks.push(` '${opname}': method: ${op.method}` +
|
|
80
|
+
(0 < op.why_op.length ? ' # ' + op.why_op : ''));
|
|
81
|
+
if (op.transform?.reqform) {
|
|
82
|
+
guideBlocks.push(` '${opname}': transform: reqform: ${JSON.stringify(op.transform.reqform)}`);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
guideBlocks.push(` }`);
|
|
86
|
+
});
|
|
87
|
+
guideBlocks.push(` }`);
|
|
88
|
+
});
|
|
89
|
+
guideBlocks.push('', '}');
|
|
90
|
+
const guideSrc = guideBlocks.join('\n');
|
|
91
|
+
ctx.note.guide = { base: guideSrc };
|
|
92
|
+
const baseGuideFileName = (null == ctx.opts.outprefix ? '' : ctx.opts.outprefix) + 'base-guide.jsonic';
|
|
93
|
+
const jostraca = (0, jostraca_1.Jostraca)({
|
|
94
|
+
folder: ctx.opts.folder + '/guide',
|
|
95
|
+
now: ctx.spec.now,
|
|
96
|
+
fs: () => ctx.fs,
|
|
97
|
+
log: ctx.log,
|
|
98
|
+
});
|
|
99
|
+
const root = () => (0, jostraca_1.Project)({ folder: '.' }, async () => {
|
|
100
|
+
(0, jostraca_1.File)({ name: baseGuideFileName }, () => (0, jostraca_1.Content)(guideSrc));
|
|
101
|
+
});
|
|
102
|
+
const jres = await jostraca.generate({
|
|
103
|
+
existing: { txt: { merge: true } }
|
|
104
|
+
}, root);
|
|
105
|
+
return jres;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/guide/guide.ts"],"names":[],"mappings":"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"}
|