@voxgig/create-sdkgen 0.0.2 → 0.0.5
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/run-create-sdkgen.js +73 -12
- package/dist/create-sdkgen.d.ts +5 -2
- package/dist/create-sdkgen.js +10 -2
- package/dist/create-sdkgen.js.map +1 -1
- package/dist/standard/ModelSdk.js +21 -14
- package/dist/standard/ModelSdk.js.map +1 -1
- package/dist/standard/Root.js +13 -47
- package/dist/standard/Root.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -7
- package/src/create-sdkgen.ts +21 -4
- package/src/standard/ModelSdk.ts +30 -15
- package/src/standard/Root.ts +15 -54
- package/tm/standard/.env.local +2 -0
- package/tm/standard/build/doc.js +23 -0
- package/tm/standard/build/sdk.js +22 -0
- package/tm/standard/def/DEFINITION.md +4 -0
- package/tm/standard/model/.model-config/model-config.jsonic +15 -0
- package/tm/standard/model/go.jsonic +6 -0
- package/tm/standard/model/js.jsonic +6 -0
- package/tm/standard/model/php.jsonic +6 -0
- package/tm/standard/model/py.jsonic +7 -0
- package/tm/standard/model/rb.jsonic +6 -0
- package/tm/standard/package.json +31 -0
- package/tm/standard/src/DocStaticRoot.ts +32 -0
- package/tm/standard/src/Root.ts +62 -0
- package/tm/standard/src/go/Entity_go.ts +226 -0
- package/tm/standard/src/go/MainEntity_go.ts +26 -0
- package/tm/standard/src/go/Main_go.ts +168 -0
- package/tm/standard/src/go/Quick_go.ts +108 -0
- package/tm/standard/src/go/ReadmeInstall_go.ts +19 -0
- package/tm/standard/src/go/ReadmeQuick_go.ts +45 -0
- package/tm/standard/src/go/TestAcceptEntity_go.ts +219 -0
- package/tm/standard/src/go/TestAccept_go.ts +38 -0
- package/tm/standard/src/go/TestEntity_go.ts +79 -0
- package/tm/standard/src/go/TestMain_go.ts +61 -0
- package/tm/standard/src/go/Test_go.ts +20 -0
- package/tm/standard/src/js/Entity_js.ts +196 -0
- package/tm/standard/src/js/MainEntity_js.ts +22 -0
- package/tm/standard/src/js/Main_js.ts +154 -0
- package/tm/standard/src/js/Quick_js.ts +81 -0
- package/tm/standard/src/js/ReadmeInstall_js.ts +19 -0
- package/tm/standard/src/js/ReadmeQuick_js.ts +27 -0
- package/tm/standard/src/js/TestAcceptEntity_js.ts +101 -0
- package/tm/standard/src/js/TestAccept_js.ts +60 -0
- package/tm/standard/src/js/TestEntity_js.ts +24 -0
- package/tm/standard/src/js/TestMain_js.ts +123 -0
- package/tm/standard/src/js/Test_js.ts +24 -0
- package/tm/standard/src/php/Entity_php.ts +97 -0
- package/tm/standard/src/php/MainEntity_php.ts +43 -0
- package/tm/standard/src/php/Main_php.ts +50 -0
- package/tm/standard/src/php/Quick_php.ts +59 -0
- package/tm/standard/src/php/TestAcceptEntity_php.ts +81 -0
- package/tm/standard/src/php/TestAccept_php.ts +33 -0
- package/tm/standard/src/php/TestEntity_php.ts +64 -0
- package/tm/standard/src/php/TestMain_php.ts +120 -0
- package/tm/standard/src/php/Test_php.ts +21 -0
- package/tm/standard/src/py/Entity_py.ts +98 -0
- package/tm/standard/src/py/MainEntity_py.ts +19 -0
- package/tm/standard/src/py/Main_py.ts +211 -0
- package/tm/standard/src/py/Quick_py.ts +133 -0
- package/tm/standard/src/py/TestAcceptEntity_py.ts +47 -0
- package/tm/standard/src/py/TestAccept_py.ts +77 -0
- package/tm/standard/src/py/TestEntity_py.ts +50 -0
- package/tm/standard/src/py/TestMain_py.ts +103 -0
- package/tm/standard/src/py/Test_py.ts +28 -0
- package/tm/standard/src/rb/Client_rb.ts +142 -0
- package/tm/standard/src/rb/Entity_rb.ts +153 -0
- package/tm/standard/src/rb/Error_rb.ts +56 -0
- package/tm/standard/src/rb/MainEntity_rb.ts +16 -0
- package/tm/standard/src/rb/Main_rb.ts +55 -0
- package/tm/standard/src/rb/Quick_rb.ts +65 -0
- package/tm/standard/src/rb/ReadmeInstall_rb.ts +19 -0
- package/tm/standard/src/rb/ReadmeQuick_rb.ts +30 -0
- package/tm/standard/src/rb/TestAcceptEntity_rb.ts +83 -0
- package/tm/standard/src/rb/TestAccept_rb.ts +45 -0
- package/tm/standard/src/rb/TestEntity_rb.ts +82 -0
- package/tm/standard/src/rb/TestMain_rb.ts +67 -0
- package/tm/standard/src/rb/Test_rb.ts +27 -0
- package/tm/standard/src/tsconfig.json +15 -0
- package/tm/standard/tm/go/.env.example +2 -0
- package/tm/standard/tm/go/LICENSE +22 -0
- package/tm/standard/tm/go/go.mod +5 -0
- package/tm/standard/tm/go/go.sum +2 -0
- package/tm/standard/tm/js/LICENSE +22 -0
- package/tm/standard/tm/js/package.json +17 -0
- package/tm/standard/tm/php/LICENSE +22 -0
- package/tm/standard/tm/py/LICENSE +22 -0
- package/tm/standard/tm/py/MANIFEST.in +4 -0
- package/tm/standard/tm/py/Makefile +14 -0
- package/tm/standard/tm/py/pyproject.toml +4 -0
- package/tm/standard/tm/py/pytest.ini +3 -0
- package/tm/standard/tm/py/requirements.txt +4 -0
- package/tm/standard/tm/py/setup.cfg +2 -0
- package/tm/standard/tm/py/setup.py +82 -0
- package/tm/standard/tm/rb/.rspec +1 -0
- package/tm/standard/tm/rb/Gemfile +21 -0
- package/tm/standard/tm/rb/LICENSE +22 -0
- package/tm/standard/tm/rb/Rakefile +6 -0
- package/tm/standard/tm/rb/spec/spec_helper.rb +22 -0
- package/tm/standard/tm/rb/tm.gemspec +39 -0
- package/src/standard/Root.ts~ +0 -3
- /package/{src/standard/ModelSdk.ts~ → bin/run-create-sdkgen.js~} +0 -0
package/bin/run-create-sdkgen.js
CHANGED
|
@@ -5,6 +5,8 @@ const { statSync } = require('node:fs')
|
|
|
5
5
|
const { parseArgs } = require('node:util')
|
|
6
6
|
|
|
7
7
|
const { Gubu, Fault } = require('gubu')
|
|
8
|
+
const { Aontu, Context } = require('aontu')
|
|
9
|
+
|
|
8
10
|
|
|
9
11
|
const Pkg = require('../package.json')
|
|
10
12
|
|
|
@@ -63,18 +65,8 @@ function generate(options) {
|
|
|
63
65
|
})
|
|
64
66
|
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const model = {
|
|
69
|
-
name: options.name,
|
|
70
|
-
year: new Date().getFullYear(),
|
|
71
|
-
def: {
|
|
72
|
-
filepath: options.def || 'def.yml'
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
model.def.filename = Path.basename(model.def.filepath)
|
|
77
|
-
|
|
68
|
+
const model = resolveModel(options)
|
|
69
|
+
|
|
78
70
|
const spec = {
|
|
79
71
|
// TODO: move to CreateSdkGen options
|
|
80
72
|
spec: options.spec,
|
|
@@ -85,6 +77,8 @@ function generate(options) {
|
|
|
85
77
|
if(options.watch) {
|
|
86
78
|
spec.watch = [
|
|
87
79
|
'../tm',
|
|
80
|
+
'../feature',
|
|
81
|
+
'../def',
|
|
88
82
|
'../dist',
|
|
89
83
|
]
|
|
90
84
|
createSdkGen.watch(spec)
|
|
@@ -96,6 +90,57 @@ function generate(options) {
|
|
|
96
90
|
}
|
|
97
91
|
|
|
98
92
|
|
|
93
|
+
function resolveModel(options) {
|
|
94
|
+
|
|
95
|
+
const typespec = `
|
|
96
|
+
name: string
|
|
97
|
+
year: number
|
|
98
|
+
def: filepath: string
|
|
99
|
+
feature: &: {
|
|
100
|
+
active: *false | boolean
|
|
101
|
+
}
|
|
102
|
+
`
|
|
103
|
+
|
|
104
|
+
const features = options.feature.map(name=>`feature:${name}:active:true`)
|
|
105
|
+
|
|
106
|
+
const src = [
|
|
107
|
+
typespec,
|
|
108
|
+
`name: ${options.name}`,
|
|
109
|
+
`year: ${new Date().getFullYear()}`,
|
|
110
|
+
`def: filepath: "${options.def || 'def.yml'}"`,
|
|
111
|
+
'' === options.model ? '' : `@"${options.model}"`,
|
|
112
|
+
...(options.set||[]),
|
|
113
|
+
...(features||[]),
|
|
114
|
+
].join('\n')
|
|
115
|
+
const aopts = {}
|
|
116
|
+
const root = Aontu(src, aopts)
|
|
117
|
+
const hasErr = root.err && 0 < root.err.length
|
|
118
|
+
|
|
119
|
+
// TODO: collect all errors
|
|
120
|
+
if (hasErr) {
|
|
121
|
+
// console.log('ERROR ROOT', root.err)
|
|
122
|
+
throw root.err[0].msg
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
let genctx = new Context({ root })
|
|
126
|
+
const model = root.gen(genctx)
|
|
127
|
+
|
|
128
|
+
// TODO: collect all errors
|
|
129
|
+
if (genctx.err && 0 < genctx.err.length) {
|
|
130
|
+
// console.log(genctx.err)
|
|
131
|
+
// console.log('ERROR GEN', genctx.err)
|
|
132
|
+
throw new Error(JSON.stringify(genctx.err[0]))
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
model.def.filename = Path.basename(model.def.filepath)
|
|
136
|
+
|
|
137
|
+
// console.log('MODEL')
|
|
138
|
+
// console.dir(model,{depth:null})
|
|
139
|
+
|
|
140
|
+
return model
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
|
|
99
144
|
function resolveOptions() {
|
|
100
145
|
|
|
101
146
|
const args = parseArgs({
|
|
@@ -113,12 +158,24 @@ function resolveOptions() {
|
|
|
113
158
|
default: '',
|
|
114
159
|
},
|
|
115
160
|
|
|
161
|
+
set: {
|
|
162
|
+
type: 'string',
|
|
163
|
+
short: 's',
|
|
164
|
+
multiple: true,
|
|
165
|
+
},
|
|
166
|
+
|
|
116
167
|
model: {
|
|
117
168
|
type: 'string',
|
|
118
169
|
short: 'm',
|
|
119
170
|
default: '',
|
|
120
171
|
},
|
|
121
172
|
|
|
173
|
+
feature: {
|
|
174
|
+
type: 'string',
|
|
175
|
+
short: 't',
|
|
176
|
+
multiple: true,
|
|
177
|
+
},
|
|
178
|
+
|
|
122
179
|
watch: {
|
|
123
180
|
type: 'boolean',
|
|
124
181
|
short: 'w',
|
|
@@ -147,6 +204,8 @@ function resolveOptions() {
|
|
|
147
204
|
folder: '' === args.values.folder ? args.positionals[0] : args.values.folder,
|
|
148
205
|
def: args.values.def,
|
|
149
206
|
model: args.values.model,
|
|
207
|
+
feature: args.values.feature,
|
|
208
|
+
set: args.values.set,
|
|
150
209
|
watch: !!args.values.watch,
|
|
151
210
|
debug: !!args.values.debug,
|
|
152
211
|
help: !!args.values.help,
|
|
@@ -163,6 +222,8 @@ function validateOptions(rawOptions) {
|
|
|
163
222
|
folder: String,
|
|
164
223
|
def: '',
|
|
165
224
|
model: '',
|
|
225
|
+
feature: [String],
|
|
226
|
+
set: [String],
|
|
166
227
|
watch: Boolean,
|
|
167
228
|
debug: Boolean,
|
|
168
229
|
help: Boolean,
|
package/dist/create-sdkgen.d.ts
CHANGED
|
@@ -6,9 +6,12 @@ type FullCreateSdkGenOptions = {
|
|
|
6
6
|
rootpath: string;
|
|
7
7
|
};
|
|
8
8
|
type CreateSdkGenOptions = Partial<FullCreateSdkGenOptions>;
|
|
9
|
-
|
|
9
|
+
type GenerateSpec = {
|
|
10
|
+
watch: string[];
|
|
11
|
+
};
|
|
12
|
+
declare function CreateSdkGen(opts: FullCreateSdkGenOptions): {
|
|
10
13
|
generate: (spec: any) => Promise<void>;
|
|
11
|
-
watch: (spec:
|
|
14
|
+
watch: (spec: GenerateSpec) => Promise<void>;
|
|
12
15
|
};
|
|
13
16
|
export type { CreateSdkGenOptions, };
|
|
14
17
|
export { CreateSdkGen, };
|
package/dist/create-sdkgen.js
CHANGED
|
@@ -28,18 +28,20 @@ exports.CreateSdkGen = CreateSdkGen;
|
|
|
28
28
|
const Fs = __importStar(require("node:fs"));
|
|
29
29
|
const chokidar_1 = require("chokidar");
|
|
30
30
|
const JostracaModule = __importStar(require("jostraca"));
|
|
31
|
-
const { Jostraca } = JostracaModule;
|
|
31
|
+
const { each, names, Jostraca } = JostracaModule;
|
|
32
32
|
function CreateSdkGen(opts) {
|
|
33
33
|
const fs = opts.fs || Fs;
|
|
34
34
|
const folder = opts.folder || '.';
|
|
35
35
|
const jostraca = Jostraca();
|
|
36
36
|
const rootpath = opts.rootpath;
|
|
37
37
|
async function generate(spec) {
|
|
38
|
-
|
|
38
|
+
const now = Date.now();
|
|
39
|
+
// console.log('CREATE SDK', now, new Date(now), spec)
|
|
39
40
|
const { model } = spec;
|
|
40
41
|
const ctx$ = { fs, folder, meta: { spec } };
|
|
41
42
|
clear();
|
|
42
43
|
const { Root } = require(rootpath);
|
|
44
|
+
completeModel(model);
|
|
43
45
|
try {
|
|
44
46
|
await jostraca.generate(ctx$, () => Root({ model }));
|
|
45
47
|
}
|
|
@@ -76,6 +78,12 @@ function CreateSdkGen(opts) {
|
|
|
76
78
|
watch,
|
|
77
79
|
};
|
|
78
80
|
}
|
|
81
|
+
function completeModel(model) {
|
|
82
|
+
names(model, model.name);
|
|
83
|
+
each(model.feature, (feature) => {
|
|
84
|
+
names(feature, feature.key$);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
79
87
|
// Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
|
|
80
88
|
function clearRequire(path) {
|
|
81
89
|
let filePath = require.resolve(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ const ModelSdk = (0, jostraca_1.cmp)(function ModelSdk(props) {
|
|
|
9
9
|
// const def = ctx$.fs.readFileSync(model.def.filepath)
|
|
10
10
|
(0, jostraca_1.File)({ name: 'sdk.jsonic' }, () => {
|
|
11
11
|
(0, jostraca_1.Content)(`
|
|
12
|
+
|
|
13
|
+
@"../node_modules/@voxgig/sdkgen/model/sdkgen.jsonic"
|
|
14
|
+
|
|
12
15
|
name: '${model.name}'
|
|
13
16
|
|
|
14
17
|
@"api.jsonic"
|
|
@@ -28,26 +31,14 @@ main: sdk: build: go: @"go.jsonic"
|
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
|
|
31
|
-
main: sdk: test: quick: entity: name:
|
|
34
|
+
main: sdk: test: quick: entity: name: foo
|
|
32
35
|
|
|
33
36
|
|
|
34
37
|
main: sdk: entity: $.main.api.entity
|
|
35
38
|
|
|
36
39
|
|
|
37
|
-
main: sdk: entity: &: {
|
|
38
|
-
name: .$KEY
|
|
39
|
-
publish: *true | boolean
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
main: sdk: options: &: {
|
|
45
|
-
name: .$KEY
|
|
46
|
-
publish: *true | boolean
|
|
47
|
-
}
|
|
48
|
-
|
|
49
40
|
|
|
50
|
-
main: sdk:
|
|
41
|
+
main: sdk: option: {
|
|
51
42
|
|
|
52
43
|
endpoint: {
|
|
53
44
|
kind: *String | string
|
|
@@ -65,6 +56,22 @@ main: sdk: options: {
|
|
|
65
56
|
}
|
|
66
57
|
}
|
|
67
58
|
`);
|
|
59
|
+
(0, jostraca_1.each)(model.feature).filter((feature) => feature.active).map((feature) => {
|
|
60
|
+
(0, jostraca_1.Content)(`
|
|
61
|
+
main: sdk: feature: ${feature.name}: {
|
|
62
|
+
active: true
|
|
63
|
+
config: {
|
|
64
|
+
`);
|
|
65
|
+
(0, jostraca_1.Fragment)({
|
|
66
|
+
from: `${__dirname}/../../feature/standard/${feature.name}/${feature.name}-config.jsonic`,
|
|
67
|
+
indent: ' '
|
|
68
|
+
});
|
|
69
|
+
(0, jostraca_1.Content)(`
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
`);
|
|
74
|
+
});
|
|
68
75
|
});
|
|
69
76
|
});
|
|
70
77
|
exports.ModelSdk = ModelSdk;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../src/standard/ModelSdk.ts"],"names":[],"mappings":";;;AACA,uCAWiB;AAIjB,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAA;IAGvC,mCAAmC;IAEnC,mBAAmB;IACnB,uDAAuD;IAGvD,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAChC,IAAA,kBAAO,EAAC
|
|
1
|
+
{"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../src/standard/ModelSdk.ts"],"names":[],"mappings":";;;AACA,uCAWiB;AAIjB,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAA;IAGvC,mCAAmC;IAEnC,mBAAmB;IACnB,uDAAuD;IAGvD,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAChC,IAAA,kBAAO,EAAC;;;;SAIH,KAAK,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8BL,KAAK,CAAC,IAAI;;;;;cAKV,KAAK,CAAC,IAAI;;;;;;;;CAQvB,CAAC,CAAA;QAGE,IAAA,eAAI,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE;YAEhF,IAAA,kBAAO,EACL;sBACc,OAAO,CAAC,IAAI;;;CAGjC,CAAC,CAAA;YAEI,IAAA,mBAAQ,EAAC;gBACP,IAAI,EACF,GAAG,SAAS,2BAA2B,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,gBAAgB;gBACrF,MAAM,EAAE,MAAM;aACf,CAAC,CAAA;YAEF,IAAA,kBAAO,EAAC;;;;CAIb,CAAC,CAAA;QACE,CAAC,CAAC,CAAA;IAEJ,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
|
package/dist/standard/Root.js
CHANGED
|
@@ -7,70 +7,36 @@ exports.Root = void 0;
|
|
|
7
7
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const jostraca_1 = require("jostraca");
|
|
9
9
|
const ModelSdk_1 = require("./ModelSdk");
|
|
10
|
+
// TODO: rename to RootSdk
|
|
10
11
|
const Root = (0, jostraca_1.cmp)(function Root(props) {
|
|
11
12
|
const { model, ctx$ } = props;
|
|
12
13
|
const { folder, meta } = ctx$;
|
|
13
14
|
const { spec } = meta;
|
|
14
|
-
|
|
15
|
-
// console.log('SPEC', spec)
|
|
16
|
-
(0, jostraca_1.names)(model, model.name);
|
|
17
|
-
// console.log('MODEL')
|
|
18
|
-
// console.dir(model, { depth: null })
|
|
15
|
+
// names(model, model.name)
|
|
19
16
|
ctx$.model = model;
|
|
20
|
-
/*
|
|
21
|
-
let createInfo = { exclude: [], last: Number.MAX_SAFE_INTEGER }
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
try {
|
|
25
|
-
createInfo = JSON.parse(ctx$.fs.readFileSync(
|
|
26
|
-
Path.join(folder, '.voxgig', 'create-sdkgen.json'), 'utf8'))
|
|
27
|
-
}
|
|
28
|
-
catch (err: any) {
|
|
29
|
-
console.log(err)
|
|
30
|
-
// TODO: file not foound ignored, handle others!
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
ctx$.info = createInfo
|
|
34
|
-
|
|
35
|
-
console.log('INFO', ctx$.info)
|
|
36
|
-
*/
|
|
37
17
|
(0, jostraca_1.Project)({ folder }, () => {
|
|
38
|
-
// TODO: perhaps remove the need for this, create top level folder in Project
|
|
39
|
-
// would keep paths indo of project folder name
|
|
40
|
-
// Folder({ name: Path.basename(folder) }, () => {
|
|
41
|
-
// File({ name: 'foo.txt' }, () => {
|
|
42
|
-
// Content('FOO')
|
|
43
|
-
// })
|
|
44
18
|
// console.log('FOLDER', folder)
|
|
45
|
-
(0, jostraca_1.Copy)({
|
|
19
|
+
(0, jostraca_1.Copy)({
|
|
20
|
+
from: __dirname + '/../../tm/standard',
|
|
21
|
+
exclude: ['.env.local']
|
|
22
|
+
});
|
|
46
23
|
const def = model.def.filepath;
|
|
47
24
|
if (null != def && '' !== def) {
|
|
48
25
|
(0, jostraca_1.Folder)({ name: 'def' }, () => {
|
|
49
26
|
(0, jostraca_1.Copy)({ from: def, name: node_path_1.default.basename(def) });
|
|
50
27
|
});
|
|
51
28
|
}
|
|
52
|
-
(0, jostraca_1.Folder)({ name: '.voxgig' }, () => { });
|
|
53
29
|
(0, jostraca_1.Folder)({ name: 'model' }, () => {
|
|
54
30
|
(0, ModelSdk_1.ModelSdk)({});
|
|
55
31
|
});
|
|
32
|
+
(0, jostraca_1.Folder)({ name: 'feature' }, () => {
|
|
33
|
+
(0, jostraca_1.each)(model.feature).map((feature) => {
|
|
34
|
+
(0, jostraca_1.Folder)({ name: feature.name }, () => {
|
|
35
|
+
(0, jostraca_1.Copy)({ from: __dirname + '/../../feature/standard/' + feature.name });
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
56
39
|
});
|
|
57
|
-
/*
|
|
58
|
-
// TODO: need mechanism to ensure this is last
|
|
59
|
-
setTimeout(() => {
|
|
60
|
-
try {
|
|
61
|
-
const info = {
|
|
62
|
-
last: Date.now(),
|
|
63
|
-
exclude: ctx$.info.exclude,
|
|
64
|
-
}
|
|
65
|
-
ctx$.fs.writeFileSync(Path.join(folder, '.voxgig', 'create-sdkgen.json'),
|
|
66
|
-
JSON.stringify(info, null, 2))
|
|
67
|
-
}
|
|
68
|
-
catch (err: any) {
|
|
69
|
-
console.log(err)
|
|
70
|
-
// TODO: file not foound ignored, handle others!
|
|
71
|
-
}
|
|
72
|
-
}, 777)
|
|
73
|
-
*/
|
|
74
40
|
});
|
|
75
41
|
exports.Root = Root;
|
|
76
42
|
//# sourceMappingURL=Root.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","sourceRoot":"","sources":["../../src/standard/Root.ts"],"names":[],"mappings":";;;;;;AAEA,0DAA4B;AAG5B,uCAWiB;AAGjB,yCAAqC;AAGrC,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;IACvC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAE7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAErB,
|
|
1
|
+
{"version":3,"file":"Root.js","sourceRoot":"","sources":["../../src/standard/Root.ts"],"names":[],"mappings":";;;;;;AAEA,0DAA4B;AAG5B,uCAWiB;AAGjB,yCAAqC;AAGrC,0BAA0B;AAC1B,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU;IACvC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAE7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAErB,2BAA2B;IAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAElB,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QAEvB,gCAAgC;QAChC,IAAA,eAAI,EAAC;YACH,IAAI,EAAE,SAAS,GAAG,oBAAoB;YACtC,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAA;QAC9B,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBAC3B,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;YAC7B,IAAA,mBAAQ,EAAC,EAAE,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;YAC/B,IAAA,eAAI,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE;gBACvC,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE;oBAClC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,SAAS,GAAG,0BAA0B,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;gBACvE,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IAEJ,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,oBAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/create-sdkgen.ts","../src/utility.ts","../src/standard/modelsdk.ts","../src/standard/root.ts"],"version":"5.6.
|
|
1
|
+
{"root":["../src/create-sdkgen.ts","../src/utility.ts","../src/standard/modelsdk.ts","../src/standard/root.ts"],"version":"5.6.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/create-sdkgen",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"main": "dist/create-sdkgen.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/create-sdkgen.d.ts",
|
|
@@ -34,19 +34,21 @@
|
|
|
34
34
|
"files": [
|
|
35
35
|
"src",
|
|
36
36
|
"dist",
|
|
37
|
+
"bin",
|
|
38
|
+
"tm",
|
|
37
39
|
"LICENSE"
|
|
38
40
|
],
|
|
39
41
|
"devDependencies": {
|
|
40
42
|
"@hapi/code": "^9.0.3",
|
|
41
|
-
"@types/node": "22.
|
|
42
|
-
"esbuild": "^0.
|
|
43
|
-
"memfs": "^4.
|
|
44
|
-
"typescript": "^5.6.
|
|
43
|
+
"@types/node": "22.7.6",
|
|
44
|
+
"esbuild": "^0.24.0",
|
|
45
|
+
"memfs": "^4.14.0",
|
|
46
|
+
"typescript": "^5.6.3"
|
|
45
47
|
},
|
|
46
48
|
"dependencies": {
|
|
47
49
|
"aontu": "^0.22.0",
|
|
48
|
-
"chokidar": "^4.0.
|
|
50
|
+
"chokidar": "^4.0.1",
|
|
49
51
|
"gubu": "^8.3.0",
|
|
50
|
-
"jostraca": "^0.
|
|
52
|
+
"jostraca": "^0.7.7"
|
|
51
53
|
}
|
|
52
54
|
}
|
package/src/create-sdkgen.ts
CHANGED
|
@@ -19,17 +19,23 @@ type FullCreateSdkGenOptions = {
|
|
|
19
19
|
type CreateSdkGenOptions = Partial<FullCreateSdkGenOptions>
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
type GenerateSpec = {
|
|
23
|
+
watch: string[]
|
|
24
|
+
}
|
|
25
|
+
|
|
23
26
|
|
|
27
|
+
const { each, names, Jostraca } = JostracaModule
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
|
|
30
|
+
function CreateSdkGen(opts: FullCreateSdkGenOptions) {
|
|
26
31
|
const fs = opts.fs || Fs
|
|
27
32
|
const folder = opts.folder || '.'
|
|
28
33
|
const jostraca = Jostraca()
|
|
29
34
|
const rootpath = opts.rootpath as string
|
|
30
35
|
|
|
31
36
|
async function generate(spec: any) {
|
|
32
|
-
|
|
37
|
+
const now = Date.now()
|
|
38
|
+
// console.log('CREATE SDK', now, new Date(now), spec)
|
|
33
39
|
|
|
34
40
|
const { model } = spec
|
|
35
41
|
|
|
@@ -38,6 +44,8 @@ function CreateSdkGen(opts: CreateSdkGenOptions) {
|
|
|
38
44
|
clear()
|
|
39
45
|
const { Root } = require(rootpath)
|
|
40
46
|
|
|
47
|
+
completeModel(model)
|
|
48
|
+
|
|
41
49
|
try {
|
|
42
50
|
await jostraca.generate(ctx$, () => Root({ model }))
|
|
43
51
|
}
|
|
@@ -48,7 +56,7 @@ function CreateSdkGen(opts: CreateSdkGenOptions) {
|
|
|
48
56
|
}
|
|
49
57
|
|
|
50
58
|
|
|
51
|
-
async function watch(spec:
|
|
59
|
+
async function watch(spec: GenerateSpec) {
|
|
52
60
|
const fsw = new FSWatcher()
|
|
53
61
|
let last_change_time = 0
|
|
54
62
|
|
|
@@ -89,6 +97,15 @@ function CreateSdkGen(opts: CreateSdkGenOptions) {
|
|
|
89
97
|
}
|
|
90
98
|
|
|
91
99
|
|
|
100
|
+
function completeModel(model: any) {
|
|
101
|
+
names(model, model.name)
|
|
102
|
+
|
|
103
|
+
each(model.feature, (feature: any) => {
|
|
104
|
+
names(feature, feature.key$)
|
|
105
|
+
})
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
92
109
|
// Adapted from https://github.com/sindresorhus/import-fresh - Thanks!
|
|
93
110
|
function clearRequire(path: string) {
|
|
94
111
|
let filePath = require.resolve(path)
|
package/src/standard/ModelSdk.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
|
|
7
7
|
Project,
|
|
8
8
|
Folder,
|
|
9
|
-
|
|
9
|
+
Fragment,
|
|
10
10
|
File,
|
|
11
11
|
Content,
|
|
12
12
|
|
|
@@ -26,6 +26,9 @@ const ModelSdk = cmp(function ModelSdk(props: any) {
|
|
|
26
26
|
|
|
27
27
|
File({ name: 'sdk.jsonic' }, () => {
|
|
28
28
|
Content(`
|
|
29
|
+
|
|
30
|
+
@"../node_modules/@voxgig/sdkgen/model/sdkgen.jsonic"
|
|
31
|
+
|
|
29
32
|
name: '${model.name}'
|
|
30
33
|
|
|
31
34
|
@"api.jsonic"
|
|
@@ -45,26 +48,14 @@ main: sdk: build: go: @"go.jsonic"
|
|
|
45
48
|
|
|
46
49
|
|
|
47
50
|
|
|
48
|
-
main: sdk: test: quick: entity: name:
|
|
51
|
+
main: sdk: test: quick: entity: name: foo
|
|
49
52
|
|
|
50
53
|
|
|
51
54
|
main: sdk: entity: $.main.api.entity
|
|
52
55
|
|
|
53
56
|
|
|
54
|
-
main: sdk: entity: &: {
|
|
55
|
-
name: .$KEY
|
|
56
|
-
publish: *true | boolean
|
|
57
|
-
}
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
main: sdk: options: &: {
|
|
62
|
-
name: .$KEY
|
|
63
|
-
publish: *true | boolean
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
main: sdk: options: {
|
|
58
|
+
main: sdk: option: {
|
|
68
59
|
|
|
69
60
|
endpoint: {
|
|
70
61
|
kind: *String | string
|
|
@@ -82,6 +73,30 @@ main: sdk: options: {
|
|
|
82
73
|
}
|
|
83
74
|
}
|
|
84
75
|
`)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
each(model.feature).filter((feature: any) => feature.active).map((feature: any) => {
|
|
79
|
+
|
|
80
|
+
Content(
|
|
81
|
+
`
|
|
82
|
+
main: sdk: feature: ${feature.name}: {
|
|
83
|
+
active: true
|
|
84
|
+
config: {
|
|
85
|
+
`)
|
|
86
|
+
|
|
87
|
+
Fragment({
|
|
88
|
+
from:
|
|
89
|
+
`${__dirname}/../../feature/standard/${feature.name}/${feature.name}-config.jsonic`,
|
|
90
|
+
indent: ' '
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
Content(`
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
`)
|
|
98
|
+
})
|
|
99
|
+
|
|
85
100
|
})
|
|
86
101
|
|
|
87
102
|
})
|
package/src/standard/Root.ts
CHANGED
|
@@ -20,53 +20,24 @@ import {
|
|
|
20
20
|
import { ModelSdk } from './ModelSdk'
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
// TODO: rename to RootSdk
|
|
23
24
|
const Root = cmp(function Root(props: any) {
|
|
24
25
|
const { model, ctx$ } = props
|
|
25
26
|
|
|
26
27
|
const { folder, meta } = ctx$
|
|
27
28
|
const { spec } = meta
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// console.log('SPEC', spec)
|
|
32
|
-
|
|
33
|
-
names(model, model.name)
|
|
34
|
-
|
|
35
|
-
// console.log('MODEL')
|
|
36
|
-
// console.dir(model, { depth: null })
|
|
30
|
+
// names(model, model.name)
|
|
37
31
|
|
|
38
32
|
ctx$.model = model
|
|
39
33
|
|
|
40
|
-
/*
|
|
41
|
-
let createInfo = { exclude: [], last: Number.MAX_SAFE_INTEGER }
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
try {
|
|
45
|
-
createInfo = JSON.parse(ctx$.fs.readFileSync(
|
|
46
|
-
Path.join(folder, '.voxgig', 'create-sdkgen.json'), 'utf8'))
|
|
47
|
-
}
|
|
48
|
-
catch (err: any) {
|
|
49
|
-
console.log(err)
|
|
50
|
-
// TODO: file not foound ignored, handle others!
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
ctx$.info = createInfo
|
|
54
|
-
|
|
55
|
-
console.log('INFO', ctx$.info)
|
|
56
|
-
*/
|
|
57
|
-
|
|
58
34
|
Project({ folder }, () => {
|
|
59
35
|
|
|
60
|
-
// TODO: perhaps remove the need for this, create top level folder in Project
|
|
61
|
-
// would keep paths indo of project folder name
|
|
62
|
-
// Folder({ name: Path.basename(folder) }, () => {
|
|
63
|
-
|
|
64
|
-
// File({ name: 'foo.txt' }, () => {
|
|
65
|
-
// Content('FOO')
|
|
66
|
-
// })
|
|
67
|
-
|
|
68
36
|
// console.log('FOLDER', folder)
|
|
69
|
-
Copy({
|
|
37
|
+
Copy({
|
|
38
|
+
from: __dirname + '/../../tm/standard',
|
|
39
|
+
exclude: ['.env.local']
|
|
40
|
+
})
|
|
70
41
|
|
|
71
42
|
const def = model.def.filepath
|
|
72
43
|
if (null != def && '' !== def) {
|
|
@@ -75,30 +46,20 @@ const Root = cmp(function Root(props: any) {
|
|
|
75
46
|
})
|
|
76
47
|
}
|
|
77
48
|
|
|
78
|
-
Folder({ name: '.voxgig' }, () => { })
|
|
79
|
-
|
|
80
49
|
Folder({ name: 'model' }, () => {
|
|
81
50
|
ModelSdk({})
|
|
82
51
|
})
|
|
52
|
+
|
|
53
|
+
Folder({ name: 'feature' }, () => {
|
|
54
|
+
each(model.feature).map((feature: any) => {
|
|
55
|
+
Folder({ name: feature.name }, () => {
|
|
56
|
+
Copy({ from: __dirname + '/../../feature/standard/' + feature.name })
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
})
|
|
60
|
+
|
|
83
61
|
})
|
|
84
62
|
|
|
85
|
-
/*
|
|
86
|
-
// TODO: need mechanism to ensure this is last
|
|
87
|
-
setTimeout(() => {
|
|
88
|
-
try {
|
|
89
|
-
const info = {
|
|
90
|
-
last: Date.now(),
|
|
91
|
-
exclude: ctx$.info.exclude,
|
|
92
|
-
}
|
|
93
|
-
ctx$.fs.writeFileSync(Path.join(folder, '.voxgig', 'create-sdkgen.json'),
|
|
94
|
-
JSON.stringify(info, null, 2))
|
|
95
|
-
}
|
|
96
|
-
catch (err: any) {
|
|
97
|
-
console.log(err)
|
|
98
|
-
// TODO: file not foound ignored, handle others!
|
|
99
|
-
}
|
|
100
|
-
}, 777)
|
|
101
|
-
*/
|
|
102
63
|
})
|
|
103
64
|
|
|
104
65
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
const { DocGen } = require('@voxgig/docgen')
|
|
3
|
+
|
|
4
|
+
try {
|
|
5
|
+
const config = {
|
|
6
|
+
root: __dirname+'/../dist/DocStaticRoot.js',
|
|
7
|
+
folder: __dirname+'/../doc',
|
|
8
|
+
def: __dirname+'/../def/$$def.filename$$',
|
|
9
|
+
meta: {
|
|
10
|
+
name: '$$name$$'
|
|
11
|
+
},
|
|
12
|
+
model: {
|
|
13
|
+
folder: __dirname+'/../model',
|
|
14
|
+
},
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// console.log('DOC BUILD', config)
|
|
18
|
+
|
|
19
|
+
module.exports = DocGen.makeBuild(config)
|
|
20
|
+
}
|
|
21
|
+
catch(e) {
|
|
22
|
+
console.log('DOC ERROR', e)
|
|
23
|
+
}
|