@voxgig/create-sdkgen 0.3.0 → 0.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/bin/create-sdkgen +27 -10
- package/dist/create-sdkgen.d.ts +2 -0
- package/dist/create-sdkgen.js +51 -5
- package/dist/create-sdkgen.js.map +1 -1
- package/dist/project/standard/CreateRoot.d.ts +2 -0
- package/dist/project/standard/CreateRoot.js +50 -0
- package/dist/project/standard/CreateRoot.js.map +1 -0
- package/dist/project/standard/ModelSdk.js +6 -1
- package/dist/project/standard/ModelSdk.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/project/standard/.sdk/model/api/api-info.jsonic +5 -0
- package/project/standard/.sdk/model/config.jsonic +3 -1
- package/project/standard/.sdk/model/{api/api-entity-index.jsonic → entity/entity-index.jsonic} +1 -0
- package/project/standard/.sdk/model/guide/guide.jsonic +8 -0
- package/project/standard/.sdk/model/sdk.fragment.jsonic +7 -11
- package/project/standard/.sdk/package.json +5 -7
- package/project/standard/.sdk/src/BuildSDK.ts +113 -0
- package/project/standard/.sdk/src/Root.ts +19 -7
- package/project/standard/.sdk/src/Top.ts +6 -2
- package/project/standard/.sdk/test/primary/primary-test-index.jsonic +23 -0
- package/project/standard/.sdk/test/struct/merge.jsonic +102 -4
- package/project/standard/.sdk/test/struct/minor.jsonic +106 -38
- package/project/standard/.sdk/test/struct/select.jsonic +86 -5
- package/project/standard/.sdk/test/struct/test.json +16635 -0
- package/project/standard/.sdk/test/struct/test.jsonic +25 -0
- package/project/standard/.sdk/test/struct/transform.jsonic +100 -1
- package/project/standard/.sdk/test/struct/validate.jsonic +82 -45
- package/project/standard/.sdk/test/struct/walk.jsonic +57 -6
- package/project/standard/.sdk/test/test.json +5568 -2838
- package/project/standard/.sdk/test/test.jsonic +2 -43
- package/src/create-sdkgen.ts +74 -7
- package/src/project/standard/{Root.ts → CreateRoot.ts} +11 -6
- package/src/project/standard/ModelSdk.ts +6 -1
- package/dist/project/standard/Root.d.ts +0 -2
- package/dist/project/standard/Root.js +0 -79
- package/dist/project/standard/Root.js.map +0 -1
- package/dist/standard/ModelSdk.d.ts +0 -2
- package/dist/standard/ModelSdk.js +0 -19
- package/dist/standard/ModelSdk.js.map +0 -1
- package/dist/standard/Root.d.ts +0 -2
- package/dist/standard/Root.js +0 -77
- package/dist/standard/Root.js.map +0 -1
- package/dist/utility.d.ts +0 -2
- package/dist/utility.js +0 -5
- package/dist/utility.js.map +0 -1
- package/project/standard/.sdk/model/api/api-def.jsonic +0 -5
- package/project/standard/.sdk/model/guide.jsonic +0 -5
- package/project/standard/.sdk/model/target/target-index.jsonic~ +0 -4
- /package/project/standard/.sdk/test/primary/{contextify.jsonic → context.jsonic} +0 -0
package/bin/create-sdkgen
CHANGED
|
@@ -10,11 +10,10 @@ const Pkg = require('../package.json')
|
|
|
10
10
|
|
|
11
11
|
const { CreateSdkGen } = require('../dist/create-sdkgen.js')
|
|
12
12
|
|
|
13
|
-
const rootpath = require.resolve('../dist/standard/
|
|
13
|
+
// const rootpath = require.resolve('../dist/standard/CreateRoot')
|
|
14
14
|
|
|
15
15
|
let KONSOLE = global['con'+'sole']
|
|
16
16
|
|
|
17
|
-
|
|
18
17
|
run()
|
|
19
18
|
|
|
20
19
|
|
|
@@ -64,12 +63,13 @@ function generate(options) {
|
|
|
64
63
|
|
|
65
64
|
|
|
66
65
|
const spec = {
|
|
67
|
-
root: '
|
|
66
|
+
root: 'CreateRoot',
|
|
68
67
|
|
|
69
68
|
name: options.name,
|
|
70
69
|
def: options.def,
|
|
71
70
|
dryrun: options.dryrun,
|
|
72
71
|
project: options.project,
|
|
72
|
+
folder: options.folder,
|
|
73
73
|
install: options.install,
|
|
74
74
|
target: options.target,
|
|
75
75
|
feature: options.feature,
|
|
@@ -103,14 +103,19 @@ function resolveOptions() {
|
|
|
103
103
|
default: 'standard'
|
|
104
104
|
},
|
|
105
105
|
|
|
106
|
+
folder: {
|
|
107
|
+
type: 'string',
|
|
108
|
+
short: 'f',
|
|
109
|
+
default: ''
|
|
110
|
+
},
|
|
111
|
+
|
|
106
112
|
dryrun: {
|
|
107
113
|
type: 'boolean',
|
|
108
|
-
|
|
114
|
+
default: false,
|
|
109
115
|
},
|
|
110
116
|
|
|
111
117
|
install: {
|
|
112
118
|
type: 'boolean',
|
|
113
|
-
short: 'y',
|
|
114
119
|
default: true,
|
|
115
120
|
},
|
|
116
121
|
|
|
@@ -128,7 +133,6 @@ function resolveOptions() {
|
|
|
128
133
|
|
|
129
134
|
debug: {
|
|
130
135
|
type: 'string',
|
|
131
|
-
short: 'g',
|
|
132
136
|
default: 'info'
|
|
133
137
|
},
|
|
134
138
|
|
|
@@ -168,6 +172,7 @@ function resolveOptions() {
|
|
|
168
172
|
name,
|
|
169
173
|
def: args.values.def,
|
|
170
174
|
project: args.values.project,
|
|
175
|
+
folder: args.values.folder,
|
|
171
176
|
dryrun: !!args.values.dryrun,
|
|
172
177
|
install: !!args.values.install,
|
|
173
178
|
target: targets,
|
|
@@ -178,6 +183,10 @@ function resolveOptions() {
|
|
|
178
183
|
}
|
|
179
184
|
|
|
180
185
|
// console.log('ARGS', args, options)
|
|
186
|
+
|
|
187
|
+
if(null == options.folder || '' == options.folder) {
|
|
188
|
+
options.folder = options.name + '-sdk'
|
|
189
|
+
}
|
|
181
190
|
|
|
182
191
|
return options
|
|
183
192
|
}
|
|
@@ -188,6 +197,7 @@ function validateOptions(rawOptions) {
|
|
|
188
197
|
name: Fault('The first argument must be the project name.', String),
|
|
189
198
|
def: '',
|
|
190
199
|
project: String,
|
|
200
|
+
folder: String,
|
|
191
201
|
dryrun: Boolean,
|
|
192
202
|
install: Boolean,
|
|
193
203
|
target: [String],
|
|
@@ -209,6 +219,9 @@ function validateOptions(rawOptions) {
|
|
|
209
219
|
|
|
210
220
|
|
|
211
221
|
function handleError(err) {
|
|
222
|
+
console.log(err)
|
|
223
|
+
console.trace()
|
|
224
|
+
|
|
212
225
|
KONSOLE.log('Voxgig Create SDK Error: '+err)
|
|
213
226
|
exit(err)
|
|
214
227
|
}
|
|
@@ -237,11 +250,15 @@ Usage: npm create @voxgig/sdkgen@latest <name> <args>
|
|
|
237
250
|
--project Project template (folder or package reference). Default: standard.
|
|
238
251
|
-p
|
|
239
252
|
|
|
240
|
-
--
|
|
241
|
-
-
|
|
253
|
+
--folder Target output folder. Default: ./<name>-sdk.
|
|
254
|
+
-f
|
|
255
|
+
|
|
256
|
+
--install Run installation scripts. Default: install.
|
|
257
|
+
--no-install
|
|
258
|
+
|
|
259
|
+
--dryrun Perform a dry run, where no files are modified. Default: no-dryrun.
|
|
242
260
|
|
|
243
261
|
--debug Set log level (default: info): trace, error, debug, info, warn, fatal.
|
|
244
|
-
-g
|
|
245
262
|
|
|
246
263
|
--help Print this help message.
|
|
247
264
|
-h
|
|
@@ -254,7 +271,7 @@ Examples:
|
|
|
254
271
|
|
|
255
272
|
# Basic usage
|
|
256
273
|
> npm create @voxgig/sdkgen@latest foo
|
|
257
|
-
# Creates the SDK Project in the folder ./foo
|
|
274
|
+
# Creates the SDK Project in the folder ./foo-sdk
|
|
258
275
|
|
|
259
276
|
See also: https://voxgig.com/sdkgen
|
|
260
277
|
`
|
package/dist/create-sdkgen.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ type FullCreateSdkGenOptions = {
|
|
|
6
6
|
};
|
|
7
7
|
type CreateSdkGenOptions = Partial<FullCreateSdkGenOptions>;
|
|
8
8
|
type GenerateSpec = {
|
|
9
|
+
sdk_folder: string;
|
|
9
10
|
name: string;
|
|
10
11
|
def: string;
|
|
11
12
|
root: string;
|
|
@@ -15,6 +16,7 @@ type GenerateSpec = {
|
|
|
15
16
|
target?: string[];
|
|
16
17
|
feature?: string[];
|
|
17
18
|
install?: boolean;
|
|
19
|
+
folder?: string;
|
|
18
20
|
};
|
|
19
21
|
declare function CreateSdkGen(opts: FullCreateSdkGenOptions): {
|
|
20
22
|
generate: (spec: GenerateSpec) => Promise<void>;
|
package/dist/create-sdkgen.js
CHANGED
|
@@ -39,12 +39,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.CreateSdkGen = CreateSdkGen;
|
|
41
41
|
const Fs = __importStar(require("node:fs"));
|
|
42
|
+
const Os = __importStar(require("node:os"));
|
|
42
43
|
const node_path_1 = __importDefault(require("node:path"));
|
|
43
44
|
const child_process_1 = require("child_process");
|
|
44
45
|
const JostracaModule = __importStar(require("jostraca"));
|
|
45
46
|
const util_1 = require("@voxgig/util");
|
|
46
47
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
47
48
|
const { names, Jostraca } = JostracaModule;
|
|
49
|
+
const SDK_FOLDER = '.sdk';
|
|
48
50
|
// TODO: CreateSdkGen opts and generate opts should be mostly the same, and
|
|
49
51
|
// generate should override
|
|
50
52
|
function CreateSdkGen(opts) {
|
|
@@ -65,10 +67,16 @@ function CreateSdkGen(opts) {
|
|
|
65
67
|
const projectFolder = resolveProjectFolder(spec);
|
|
66
68
|
const rootPath = node_path_1.default.join(projectFolder, spec.root);
|
|
67
69
|
const rootModule = require(rootPath);
|
|
68
|
-
const
|
|
70
|
+
const CreateRoot = rootModule.CreateRoot;
|
|
69
71
|
const name = spec.name;
|
|
70
72
|
spec.def = (null == spec.def || '' === spec.def) ? name + '-openapi3.yml' : spec.def;
|
|
71
|
-
|
|
73
|
+
spec.sdk_folder = SDK_FOLDER;
|
|
74
|
+
const cwd = process.cwd();
|
|
75
|
+
const folder = (null == spec.folder || '' == spec.folder) ?
|
|
76
|
+
node_path_1.default.join(cwd, name + (name.endsWith('-sdk') ? '' : '-sdk')) :
|
|
77
|
+
node_path_1.default.isAbsolute(spec.folder) ? spec.folder :
|
|
78
|
+
node_path_1.default.join(cwd, spec.folder);
|
|
79
|
+
logCreate(folder);
|
|
72
80
|
const jopts = {
|
|
73
81
|
fs: () => fs,
|
|
74
82
|
debug,
|
|
@@ -98,8 +106,8 @@ function CreateSdkGen(opts) {
|
|
|
98
106
|
jostraca: jopts,
|
|
99
107
|
note: JSON.stringify(jopts, null, 2)
|
|
100
108
|
});
|
|
101
|
-
const jres = await jostraca.generate(jopts, () =>
|
|
102
|
-
(0, util_1.showChanges)(jopts.log, 'generate-result', jres,
|
|
109
|
+
const jres = await jostraca.generate(jopts, () => CreateRoot({ model, spec }));
|
|
110
|
+
(0, util_1.showChanges)(jopts.log, 'generate-result', jres, process.cwd());
|
|
103
111
|
if (spec.dryrun || !spec.install) {
|
|
104
112
|
log.info({ point: 'generate-install', note: 'skipping npm install' });
|
|
105
113
|
}
|
|
@@ -120,6 +128,44 @@ function CreateSdkGen(opts) {
|
|
|
120
128
|
}
|
|
121
129
|
return projectFolder;
|
|
122
130
|
}
|
|
131
|
+
function escapeShellArg(arg) {
|
|
132
|
+
// If arg contains no special characters, return as-is
|
|
133
|
+
if (/^[~a-zA-Z0-9_\-\.\/]+$/.test(arg)) {
|
|
134
|
+
return arg;
|
|
135
|
+
}
|
|
136
|
+
// Otherwise, wrap in single quotes and escape any single quotes
|
|
137
|
+
return "'" + arg.replace(/'/g, "'\\''") + "'";
|
|
138
|
+
}
|
|
139
|
+
function logCreate(folder) {
|
|
140
|
+
try {
|
|
141
|
+
const logFolder = node_path_1.default.join(folder, SDK_FOLDER, 'log');
|
|
142
|
+
if (!fs.existsSync(logFolder)) {
|
|
143
|
+
fs.mkdirSync(logFolder, { recursive: true });
|
|
144
|
+
}
|
|
145
|
+
const now = new Date();
|
|
146
|
+
const utcTimestamp = '[' + now.toISOString() + ']';
|
|
147
|
+
const timezoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
148
|
+
const localISOString = now.getFullYear() + '-' +
|
|
149
|
+
String(now.getMonth() + 1).padStart(2, '0') + '-' +
|
|
150
|
+
String(now.getDate()).padStart(2, '0') + 'T' +
|
|
151
|
+
String(now.getHours()).padStart(2, '0') + ':' +
|
|
152
|
+
String(now.getMinutes()).padStart(2, '0') + ':' +
|
|
153
|
+
String(now.getSeconds()).padStart(2, '0') + '.' +
|
|
154
|
+
String(now.getMilliseconds()).padStart(3, '0');
|
|
155
|
+
const localTimestamp = timezoneName + '=' + localISOString;
|
|
156
|
+
const homeDir = Os.homedir();
|
|
157
|
+
const command = process.argv
|
|
158
|
+
.map(arg => arg.replace(homeDir, '~'))
|
|
159
|
+
.map(escapeShellArg)
|
|
160
|
+
.join(' ');
|
|
161
|
+
const logLine = `${utcTimestamp} ${localTimestamp} CREATE ${command}\n`;
|
|
162
|
+
const logFile = node_path_1.default.join(logFolder, 'create.log');
|
|
163
|
+
fs.appendFileSync(logFile, logLine, 'utf8');
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
log.debug({ point: 'logCreate-error', err });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
123
169
|
return {
|
|
124
170
|
generate,
|
|
125
171
|
};
|
|
@@ -128,7 +174,7 @@ async function installNpm(spec, opts, model) {
|
|
|
128
174
|
const folder = opts.folder;
|
|
129
175
|
const log = opts.log;
|
|
130
176
|
return new Promise(async (resolve, reject) => {
|
|
131
|
-
const cwd = node_path_1.default.resolve(folder,
|
|
177
|
+
const cwd = node_path_1.default.resolve(folder, SDK_FOLDER);
|
|
132
178
|
const env = {
|
|
133
179
|
...process.env,
|
|
134
180
|
PATH: `${node_path_1.default.dirname(process.execPath)}${node_path_1.default.delimiter}${process.env.PATH}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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.CreateRoot = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
// import * as Fs from 'node:fs'
|
|
9
|
+
const jostraca_1 = require("jostraca");
|
|
10
|
+
const ModelSdk_1 = require("./ModelSdk");
|
|
11
|
+
// TODO: rename to RootSdk
|
|
12
|
+
const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
|
|
13
|
+
const { ctx$, ctx$: { folder }, spec, model } = props;
|
|
14
|
+
const fs = ctx$.fs();
|
|
15
|
+
// TODO: move to @voxgig/util as duplicated
|
|
16
|
+
model.const = { name: model.name };
|
|
17
|
+
(0, jostraca_1.names)(model.const, model.name);
|
|
18
|
+
model.const.year = new Date().getFullYear();
|
|
19
|
+
ctx$.model = model;
|
|
20
|
+
(0, jostraca_1.Project)({ folder }, () => {
|
|
21
|
+
const from = node_path_1.default.resolve(node_path_1.default.join(__dirname + '..', '..', '..', '..', 'project', 'standard'));
|
|
22
|
+
// console.log('FROM', from)
|
|
23
|
+
(0, jostraca_1.Copy)({
|
|
24
|
+
from,
|
|
25
|
+
exclude: [/\.fragment\./]
|
|
26
|
+
});
|
|
27
|
+
const origdef = spec.def;
|
|
28
|
+
const projdef = node_path_1.default.basename(origdef);
|
|
29
|
+
spec.def = projdef;
|
|
30
|
+
(0, jostraca_1.Folder)({ name: spec.sdk_folder }, () => {
|
|
31
|
+
(0, jostraca_1.Folder)({ name: 'def' }, () => {
|
|
32
|
+
// TODO: file existence check should be jostraca util
|
|
33
|
+
if (fs.existsSync(origdef)) {
|
|
34
|
+
(0, jostraca_1.Copy)({ from: origdef, to: projdef });
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
console.log('DEF NOT FOUND: ', origdef);
|
|
38
|
+
(0, jostraca_1.File)({ name: projdef }, () => {
|
|
39
|
+
(0, jostraca_1.Content)('# OpenAPI Definition');
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
(0, jostraca_1.Folder)({ name: 'model' }, () => {
|
|
44
|
+
(0, ModelSdk_1.ModelSdk)({ spec });
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
exports.CreateRoot = CreateRoot;
|
|
50
|
+
//# sourceMappingURL=CreateRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":";;;;;;AAEA,0DAA4B;AAC5B,gCAAgC;AAEhC,uCAUiB;AAGjB,yCAAqC;AAGrC,0BAA0B;AAC1B,MAAM,UAAU,GAAG,IAAA,cAAG,EAAC,SAAS,UAAU,CAAC,KAAU;IACnD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEpB,2CAA2C;IAC3C,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IAClC,IAAA,gBAAK,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAElB,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QACvB,MAAM,IAAI,GACR,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;QAEpF,4BAA4B;QAE5B,IAAA,eAAI,EAAC;YACH,IAAI;YACJ,OAAO,EAAE,CAAC,cAAc,CAAC;SAC1B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAA;QACxB,MAAM,OAAO,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;QAElB,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE;YACrC,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBAC3B,qDAAqD;gBACrD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBACtC,CAAC;qBACI,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;oBAEvC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;wBAC3B,IAAA,kBAAO,EAAC,sBAAsB,CAAC,CAAA;oBACjC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;gBAC7B,IAAA,mBAAQ,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IAEJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAIA,gCAAU"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ModelSdk = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
4
8
|
const jostraca_1 = require("jostraca");
|
|
5
9
|
const ModelSdk = (0, jostraca_1.cmp)(function ModelSdk(props) {
|
|
6
10
|
const { spec } = props;
|
|
11
|
+
const from = node_path_1.default.resolve(node_path_1.default.join(__dirname + '..', '..', '..', '..', 'project', 'standard'));
|
|
7
12
|
(0, jostraca_1.File)({ name: 'sdk.jsonic' }, () => {
|
|
8
13
|
(0, jostraca_1.Fragment)({
|
|
9
|
-
from:
|
|
14
|
+
from: node_path_1.default.join(from, spec.sdk_folder, 'model', 'sdk.fragment.jsonic'),
|
|
10
15
|
replace: {
|
|
11
16
|
ProjectName: spec.name,
|
|
12
17
|
NAME: spec.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../../src/project/standard/ModelSdk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../../src/project/standard/ModelSdk.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAG5B,uCAKiB;AAIjB,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAEtB,MAAM,IAAI,GACR,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;IAEpF,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAChC,IAAA,mBAAQ,EAAC;YACP,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,qBAAqB,CAAC;YACtE,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;aACd;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/create-sdkgen.ts","../src/project/standard/
|
|
1
|
+
{"root":["../src/create-sdkgen.ts","../src/project/standard/createroot.ts","../src/project/standard/modelsdk.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/create-sdkgen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"main": "dist/create-sdkgen.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/create-sdkgen.d.ts",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"build": "tsc --build src test",
|
|
27
27
|
"test-model": "voxgig-model project/.sdk/test/test.jsonic",
|
|
28
28
|
"test-model-watch": "voxgig-model -w project/.sdk/test/test.jsonic",
|
|
29
|
-
"clean": "rm -rf node_modules yarn.lock package-lock.json",
|
|
29
|
+
"clean": "rm -rf dist dist-test node_modules yarn.lock package-lock.json",
|
|
30
30
|
"reset": "npm run clean && npm i && npm run build && npm test",
|
|
31
31
|
"repo-tag": "REPO_VERSION=`node -e \"console.log(require('./package').version)\"` && echo TAG: v$REPO_VERSION && git commit -a -m v$REPO_VERSION && git push && git tag v$REPO_VERSION && git push --tags;",
|
|
32
32
|
"repo-publish": "npm run clean && npm i && npm run repo-publish-quick",
|
|
@@ -42,16 +42,16 @@
|
|
|
42
42
|
],
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@hapi/code": "^9.0.3",
|
|
45
|
-
"@types/node": "
|
|
46
|
-
"esbuild": "^0.
|
|
47
|
-
"memfs": "^4.
|
|
48
|
-
"typescript": "^5.9.
|
|
45
|
+
"@types/node": "25.3.3",
|
|
46
|
+
"esbuild": "^0.27.3",
|
|
47
|
+
"memfs": "^4.56.10",
|
|
48
|
+
"typescript": "^5.9.3"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@voxgig/util": "^0.2.
|
|
52
|
-
"aontu": "^0.
|
|
53
|
-
"chokidar": "^
|
|
51
|
+
"@voxgig/util": "^0.2.2",
|
|
52
|
+
"aontu": "^0.36.0",
|
|
53
|
+
"chokidar": "^5.0.0",
|
|
54
54
|
"gubu": "^9.0.0",
|
|
55
|
-
"jostraca": "^0.
|
|
55
|
+
"jostraca": "^0.25.1"
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
# Generation guide.
|
|
3
|
-
@"guide.jsonic"
|
|
4
|
-
|
|
5
|
-
|
|
6
2
|
# Model definitions.
|
|
7
3
|
@"@voxgig/apidef/model/apidef.jsonic"
|
|
8
4
|
@"@voxgig/sdkgen/model/sdkgen.jsonic"
|
|
@@ -10,22 +6,22 @@
|
|
|
10
6
|
|
|
11
7
|
# SDK Details.
|
|
12
8
|
name: 'NAME'
|
|
13
|
-
origin: 'voxgig'
|
|
9
|
+
origin: 'voxgig-sdk'
|
|
14
10
|
def: 'DEF'
|
|
15
11
|
|
|
16
12
|
|
|
17
|
-
# API
|
|
18
|
-
@"api/api-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
# API Entities
|
|
22
|
-
@"api/api-entity-index.jsonic"
|
|
13
|
+
# API Information
|
|
14
|
+
@"api/api-info.jsonic"
|
|
23
15
|
|
|
24
16
|
|
|
25
17
|
# SDK Configuration.
|
|
26
18
|
@"config.jsonic"
|
|
27
19
|
|
|
28
20
|
|
|
21
|
+
# SDK Entities
|
|
22
|
+
@"entity/entity-index.jsonic"
|
|
23
|
+
|
|
24
|
+
|
|
29
25
|
# SDK Features.
|
|
30
26
|
@"feature/feature-index.jsonic"
|
|
31
27
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"watch": "tsc --build src -w",
|
|
13
13
|
"build": "tsc --build src",
|
|
14
14
|
"test": "echo no-test",
|
|
15
|
-
"clean": "rm -rf node_modules yarn.lock package-lock.json",
|
|
15
|
+
"clean": "rm -rf dist dist-test node_modules yarn.lock package-lock.json",
|
|
16
16
|
"reset": "npm run clean && npm i && npm run build && npm test",
|
|
17
17
|
"add-target": "voxgig-sdkgen target add",
|
|
18
18
|
"dry-add-target": "voxgig-sdkgen -y target add",
|
|
@@ -22,16 +22,14 @@
|
|
|
22
22
|
"author": "$$const.Name$$",
|
|
23
23
|
"license": "$$const.License$$",
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@types/node": ">=
|
|
25
|
+
"@types/node": ">=25",
|
|
26
26
|
"typescript": ">=5",
|
|
27
|
-
"
|
|
28
|
-
},
|
|
29
|
-
"dependencies": {
|
|
30
|
-
"@voxgig/apidef": ">=2",
|
|
27
|
+
"@voxgig/apidef": ">=3",
|
|
31
28
|
"@voxgig/model": ">=7",
|
|
32
29
|
"@voxgig/sdkgen": ">=0",
|
|
33
30
|
"@voxgig/util": ">=0",
|
|
34
31
|
"@voxgig/struct": ">=0",
|
|
35
|
-
"jostraca": ">=0"
|
|
32
|
+
"jostraca": ">=0",
|
|
33
|
+
"aontu": ">=0"
|
|
36
34
|
}
|
|
37
35
|
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
|
|
2
|
+
import { size } from '@voxgig/struct'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
Content,
|
|
7
|
+
File,
|
|
8
|
+
Folder,
|
|
9
|
+
cmp,
|
|
10
|
+
each,
|
|
11
|
+
} from '@voxgig/sdkgen'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import type {
|
|
15
|
+
Model,
|
|
16
|
+
ModelEntity,
|
|
17
|
+
ModelField,
|
|
18
|
+
} from '@voxgig/apidef'
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
import {
|
|
22
|
+
KIT,
|
|
23
|
+
getModelPath,
|
|
24
|
+
nom,
|
|
25
|
+
} from '@voxgig/apidef'
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const BuildSDK = cmp(function BuildSDK(props: any) {
|
|
29
|
+
const ctx$ = props.ctx$
|
|
30
|
+
const model: Model = ctx$.model
|
|
31
|
+
|
|
32
|
+
// TODO: should come from ctx$ options
|
|
33
|
+
const sdkBuildFolder = '.sdk'
|
|
34
|
+
|
|
35
|
+
const entityMap: ModelEntity = getModelPath(model, `main.${KIT}.entity`)
|
|
36
|
+
|
|
37
|
+
Folder({ name: sdkBuildFolder }, () => {
|
|
38
|
+
each(entityMap, (entity: ModelEntity) => {
|
|
39
|
+
Folder({ name: 'test' }, () => {
|
|
40
|
+
Folder({ name: 'entity' }, () => {
|
|
41
|
+
Folder({ name: entity.name }, () => {
|
|
42
|
+
File({ name: nom(entity, 'Name') + 'TestData.json' }, () => {
|
|
43
|
+
const entityTestData = makeEntityTestData(model, entity)
|
|
44
|
+
Content(JSON.stringify(entityTestData, null, 2))
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
function makeEntityTestData(_model: Model, entity: ModelEntity) {
|
|
55
|
+
const data: any = {
|
|
56
|
+
existing: {
|
|
57
|
+
[entity.name]: {}
|
|
58
|
+
},
|
|
59
|
+
new: {
|
|
60
|
+
[entity.name]: {}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const idcount = 3
|
|
65
|
+
|
|
66
|
+
const refs = [...Array(idcount).keys()].reduce((a, _x, i) =>
|
|
67
|
+
(a.push(`${entity.name}${String(i).padStart(2, "0")}`), a), [] as string[])
|
|
68
|
+
|
|
69
|
+
const idmap = refs.reduce((a: any, ref) => (a[ref] = ref.toUpperCase(), a), {})
|
|
70
|
+
|
|
71
|
+
let i = 1
|
|
72
|
+
|
|
73
|
+
refs.map((ref) => {
|
|
74
|
+
const id = idmap[ref]
|
|
75
|
+
const ent: any = data.existing[entity.name][id] = {}
|
|
76
|
+
|
|
77
|
+
makeEntityTestFields(entity, i++, ent)
|
|
78
|
+
ent.id = id
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
let id = entity.name + '_ref01'
|
|
82
|
+
const ent: any = data.new[entity.name][id] = {}
|
|
83
|
+
makeEntityTestFields(entity, i++, ent)
|
|
84
|
+
delete ent.id
|
|
85
|
+
|
|
86
|
+
return data
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
function makeEntityTestFields(entity: ModelEntity, start: number, entdata: Record<string, any>) {
|
|
91
|
+
entdata = entdata ?? {}
|
|
92
|
+
let num = (start * size(entity.fields) * 10)
|
|
93
|
+
each(entity.fields, (field: ModelField) => {
|
|
94
|
+
entdata[field.name] =
|
|
95
|
+
field.name.endsWith('_id') ?
|
|
96
|
+
field.name.substring(0, field.name.length - 3).toUpperCase() + '01' :
|
|
97
|
+
'`$NUMBER`' === field.type ? num :
|
|
98
|
+
'`$BOOLEAN`' === field.type ? 0 === num % 2 :
|
|
99
|
+
'`$OBJECT`' === field.type ? {} :
|
|
100
|
+
'`$MAP`' === field.type ? {} :
|
|
101
|
+
'`$ARRAY`' === field.type ? [] :
|
|
102
|
+
'`$LIST`' === field.type ? [] :
|
|
103
|
+
's' + (num.toString(16))
|
|
104
|
+
num++
|
|
105
|
+
})
|
|
106
|
+
return entdata
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
export {
|
|
111
|
+
BuildSDK
|
|
112
|
+
}
|
|
113
|
+
|