@voxgig/system 1.3.1 → 1.6.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/README.md +23 -0
- package/cmd.ts +87 -7
- package/dist/cmd.js +80 -4
- package/dist/cmd.js.map +1 -1
- package/dist/lib/add.d.ts +4 -1
- package/dist/lib/add.js +84 -0
- package/dist/lib/add.js.map +1 -1
- package/dist/lib/template.d.ts +24 -0
- package/dist/lib/template.js +245 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/system.d.ts +10 -2
- package/dist/system.js +10 -1
- package/dist/system.js.map +1 -1
- package/lib/add.ts +98 -1
- package/lib/template.ts +323 -0
- package/package.json +1 -1
- package/system.ts +11 -1
package/README.md
CHANGED
|
@@ -56,3 +56,26 @@ Add.fields(folder, 'thing', ['title', 'done:Boolean'])
|
|
|
56
56
|
## License
|
|
57
57
|
|
|
58
58
|
MIT. Copyright (c) Voxgig Ltd.
|
|
59
|
+
|
|
60
|
+
## Custom generation templates
|
|
61
|
+
|
|
62
|
+
Generation templates resolve in layers — first hit wins:
|
|
63
|
+
|
|
64
|
+
1. `backend/src/gen/<name>.ts` — compiled generator override (deep custom)
|
|
65
|
+
2. `backend/tm/lambda/<frag>` — project fragment (text-level custom)
|
|
66
|
+
3. `@voxgig/build` defaults
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
voxgig-system template list # each template + its providing layer
|
|
70
|
+
voxgig-system template eject srv.yml.frag # copy fragment -> tm/lambda/
|
|
71
|
+
voxgig-system template eject srv_yml --code # copy generator -> src/gen/
|
|
72
|
+
voxgig-system template diff # ejected copies vs installed package
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Fragments are jostraca-style text templates with `$$slot$$` placeholders —
|
|
76
|
+
edit and re-run `npm run model-build`, no compile step. Ejecting records
|
|
77
|
+
provenance (`tm/lambda/.ejected.json`) so `template diff` can flag
|
|
78
|
+
upstream template changes after a `@voxgig/build` upgrade. `--code`
|
|
79
|
+
copies the template source rewired to `@voxgig/build`'s public API; the
|
|
80
|
+
project then owns that generator (`npm run build && npm run model-build`
|
|
81
|
+
after edits).
|
package/cmd.ts
CHANGED
|
@@ -16,24 +16,39 @@
|
|
|
16
16
|
// are found via model/model.jsonic and appended to. Run the project's
|
|
17
17
|
// model build (npm run model-build) afterwards to compile.
|
|
18
18
|
|
|
19
|
-
import { addEntity, addSrv, addMsg, addFields } from './lib/add'
|
|
19
|
+
import { addEntity, addSrv, addMsg, addFields, addEnv } from './lib/add'
|
|
20
|
+
import {
|
|
21
|
+
listTemplates, ejectFragment, ejectCode, diffTemplates,
|
|
22
|
+
} from './lib/template'
|
|
20
23
|
|
|
21
24
|
|
|
22
|
-
const USAGE = `Usage: voxgig-system
|
|
25
|
+
const USAGE = `Usage: voxgig-system <command> [args...]
|
|
23
26
|
|
|
24
27
|
add entity [name|spec] add an entity (name may be zone/name)
|
|
25
28
|
add srv [name|spec] add a service
|
|
26
29
|
add msg [name|spec] add a message (path: thing.save.item)
|
|
27
30
|
add field <entity> [field...] add field(s) to an entity
|
|
28
31
|
add fields <entity> [field...] alias of add field
|
|
32
|
+
add env [name|spec] declare a target environment
|
|
33
|
+
|
|
34
|
+
template list templates + the layer providing each
|
|
35
|
+
template eject <name> copy a fragment into backend/tm/lambda/
|
|
36
|
+
template eject <name> --code copy a generator into backend/src/gen/
|
|
37
|
+
template diff ejected copies vs the installed package
|
|
29
38
|
|
|
30
39
|
name: plain element name - an empty element is added
|
|
31
40
|
spec: jsonic definition with config options, e.g.
|
|
32
41
|
add entity '{name:thing,field:{title:{kind:String}}}'
|
|
33
42
|
add srv '{name:thing,user:{required:false}}'
|
|
34
43
|
add msg '{name:thing.save.item,params:{title:String}}'
|
|
44
|
+
add env aws | add env '{name:aws,region:eu-west-1,stage:prd}'
|
|
35
45
|
add field thing title 'done:Boolean' 'note:{kind:String,valid:Skip}'
|
|
36
46
|
|
|
47
|
+
Generation templates resolve in layers (first hit wins): project
|
|
48
|
+
src/gen/<name>.ts (code override) -> project tm/lambda/<frag> (text
|
|
49
|
+
fragment) -> @voxgig/build defaults. Eject a fragment to customize the
|
|
50
|
+
text shape with no compile step; eject --code for structural changes.
|
|
51
|
+
|
|
37
52
|
Run inside the project (or backend/) folder. Then: npm run model-build
|
|
38
53
|
`
|
|
39
54
|
|
|
@@ -48,14 +63,69 @@ async function main() {
|
|
|
48
63
|
|
|
49
64
|
const [cmd, element, ...args] = argv
|
|
50
65
|
|
|
66
|
+
const start = process.cwd()
|
|
67
|
+
|
|
68
|
+
if ('template' === cmd || 'templates' === cmd) {
|
|
69
|
+
try {
|
|
70
|
+
if ('list' === element) {
|
|
71
|
+
for (const row of listTemplates(start)) {
|
|
72
|
+
console.log(
|
|
73
|
+
row.kind.padEnd(10) + row.name.padEnd(24) + row.layer)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if ('eject' === element) {
|
|
77
|
+
const name = args.filter((a) => !a.startsWith('-'))[0]
|
|
78
|
+
if (null == name) {
|
|
79
|
+
throw new Error('template eject: missing template name')
|
|
80
|
+
}
|
|
81
|
+
if (args.includes('--code')) {
|
|
82
|
+
const dest = ejectCode(start, name)
|
|
83
|
+
console.log('ejected generator: ' + dest)
|
|
84
|
+
console.log('\nThis project copy now owns the ' + name +
|
|
85
|
+
' generator. After editing:')
|
|
86
|
+
console.log(' npm run build && npm run model-build')
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const dest = ejectFragment(start, name)
|
|
90
|
+
console.log('ejected fragment: ' + dest)
|
|
91
|
+
console.log('\nEdit the fragment, then: npm run model-build')
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else if ('diff' === element) {
|
|
95
|
+
const rows = diffTemplates(start)
|
|
96
|
+
if (0 === rows.length) {
|
|
97
|
+
console.log('nothing ejected')
|
|
98
|
+
}
|
|
99
|
+
for (const row of rows) {
|
|
100
|
+
console.log('== ' + row.name + ' (upstream: ' +
|
|
101
|
+
row.upstream + ')')
|
|
102
|
+
if (row.diff) {
|
|
103
|
+
console.log(row.diff)
|
|
104
|
+
}
|
|
105
|
+
else if ('' === row.diff) {
|
|
106
|
+
console.log(' identical to package')
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.error('voxgig-system: unknown template command: ' + element)
|
|
112
|
+
console.log(USAGE)
|
|
113
|
+
process.exit(1)
|
|
114
|
+
}
|
|
115
|
+
process.exit(0)
|
|
116
|
+
}
|
|
117
|
+
catch (e: any) {
|
|
118
|
+
console.error('voxgig-system: ' + e.message)
|
|
119
|
+
process.exit(1)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
51
123
|
if ('add' !== cmd) {
|
|
52
124
|
console.error('voxgig-system: unknown command: ' + cmd)
|
|
53
125
|
console.log(USAGE)
|
|
54
126
|
process.exit(1)
|
|
55
127
|
}
|
|
56
128
|
|
|
57
|
-
const start = process.cwd()
|
|
58
|
-
|
|
59
129
|
try {
|
|
60
130
|
if ('entity' === element) {
|
|
61
131
|
requireArgs(args, 1, 'add entity')
|
|
@@ -72,6 +142,11 @@ async function main() {
|
|
|
72
142
|
const res = addMsg(start, args[0])
|
|
73
143
|
report([res])
|
|
74
144
|
}
|
|
145
|
+
else if ('env' === element) {
|
|
146
|
+
requireArgs(args, 1, 'add env')
|
|
147
|
+
const res = addEnv(start, args[0])
|
|
148
|
+
report([res])
|
|
149
|
+
}
|
|
75
150
|
else if ('field' === element || 'fields' === element) {
|
|
76
151
|
requireArgs(args, 2, 'add field')
|
|
77
152
|
const res = addFields(start, args[0], args.slice(1))
|
|
@@ -98,10 +173,15 @@ function requireArgs(args: string[], n: number, what: string) {
|
|
|
98
173
|
}
|
|
99
174
|
}
|
|
100
175
|
|
|
101
|
-
function report(results: { file: string, text: string }[]) {
|
|
176
|
+
function report(results: { file: string, text: string, skipped?: boolean }[]) {
|
|
102
177
|
for (const res of results) {
|
|
103
|
-
|
|
104
|
-
|
|
178
|
+
if (res.skipped) {
|
|
179
|
+
console.log('already present (no change): ' + res.file)
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
console.log('appended to ' + res.file + ':')
|
|
183
|
+
console.log(res.text)
|
|
184
|
+
}
|
|
105
185
|
}
|
|
106
186
|
}
|
|
107
187
|
|
package/dist/cmd.js
CHANGED
|
@@ -18,21 +18,34 @@ exports.main = main;
|
|
|
18
18
|
// are found via model/model.jsonic and appended to. Run the project's
|
|
19
19
|
// model build (npm run model-build) afterwards to compile.
|
|
20
20
|
const add_1 = require("./lib/add");
|
|
21
|
-
const
|
|
21
|
+
const template_1 = require("./lib/template");
|
|
22
|
+
const USAGE = `Usage: voxgig-system <command> [args...]
|
|
22
23
|
|
|
23
24
|
add entity [name|spec] add an entity (name may be zone/name)
|
|
24
25
|
add srv [name|spec] add a service
|
|
25
26
|
add msg [name|spec] add a message (path: thing.save.item)
|
|
26
27
|
add field <entity> [field...] add field(s) to an entity
|
|
27
28
|
add fields <entity> [field...] alias of add field
|
|
29
|
+
add env [name|spec] declare a target environment
|
|
30
|
+
|
|
31
|
+
template list templates + the layer providing each
|
|
32
|
+
template eject <name> copy a fragment into backend/tm/lambda/
|
|
33
|
+
template eject <name> --code copy a generator into backend/src/gen/
|
|
34
|
+
template diff ejected copies vs the installed package
|
|
28
35
|
|
|
29
36
|
name: plain element name - an empty element is added
|
|
30
37
|
spec: jsonic definition with config options, e.g.
|
|
31
38
|
add entity '{name:thing,field:{title:{kind:String}}}'
|
|
32
39
|
add srv '{name:thing,user:{required:false}}'
|
|
33
40
|
add msg '{name:thing.save.item,params:{title:String}}'
|
|
41
|
+
add env aws | add env '{name:aws,region:eu-west-1,stage:prd}'
|
|
34
42
|
add field thing title 'done:Boolean' 'note:{kind:String,valid:Skip}'
|
|
35
43
|
|
|
44
|
+
Generation templates resolve in layers (first hit wins): project
|
|
45
|
+
src/gen/<name>.ts (code override) -> project tm/lambda/<frag> (text
|
|
46
|
+
fragment) -> @voxgig/build defaults. Eject a fragment to customize the
|
|
47
|
+
text shape with no compile step; eject --code for structural changes.
|
|
48
|
+
|
|
36
49
|
Run inside the project (or backend/) folder. Then: npm run model-build
|
|
37
50
|
`;
|
|
38
51
|
async function main() {
|
|
@@ -42,12 +55,65 @@ async function main() {
|
|
|
42
55
|
process.exit(0 === argv.length ? 1 : 0);
|
|
43
56
|
}
|
|
44
57
|
const [cmd, element, ...args] = argv;
|
|
58
|
+
const start = process.cwd();
|
|
59
|
+
if ('template' === cmd || 'templates' === cmd) {
|
|
60
|
+
try {
|
|
61
|
+
if ('list' === element) {
|
|
62
|
+
for (const row of (0, template_1.listTemplates)(start)) {
|
|
63
|
+
console.log(row.kind.padEnd(10) + row.name.padEnd(24) + row.layer);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if ('eject' === element) {
|
|
67
|
+
const name = args.filter((a) => !a.startsWith('-'))[0];
|
|
68
|
+
if (null == name) {
|
|
69
|
+
throw new Error('template eject: missing template name');
|
|
70
|
+
}
|
|
71
|
+
if (args.includes('--code')) {
|
|
72
|
+
const dest = (0, template_1.ejectCode)(start, name);
|
|
73
|
+
console.log('ejected generator: ' + dest);
|
|
74
|
+
console.log('\nThis project copy now owns the ' + name +
|
|
75
|
+
' generator. After editing:');
|
|
76
|
+
console.log(' npm run build && npm run model-build');
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const dest = (0, template_1.ejectFragment)(start, name);
|
|
80
|
+
console.log('ejected fragment: ' + dest);
|
|
81
|
+
console.log('\nEdit the fragment, then: npm run model-build');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else if ('diff' === element) {
|
|
85
|
+
const rows = (0, template_1.diffTemplates)(start);
|
|
86
|
+
if (0 === rows.length) {
|
|
87
|
+
console.log('nothing ejected');
|
|
88
|
+
}
|
|
89
|
+
for (const row of rows) {
|
|
90
|
+
console.log('== ' + row.name + ' (upstream: ' +
|
|
91
|
+
row.upstream + ')');
|
|
92
|
+
if (row.diff) {
|
|
93
|
+
console.log(row.diff);
|
|
94
|
+
}
|
|
95
|
+
else if ('' === row.diff) {
|
|
96
|
+
console.log(' identical to package');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.error('voxgig-system: unknown template command: ' + element);
|
|
102
|
+
console.log(USAGE);
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
process.exit(0);
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
console.error('voxgig-system: ' + e.message);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
45
112
|
if ('add' !== cmd) {
|
|
46
113
|
console.error('voxgig-system: unknown command: ' + cmd);
|
|
47
114
|
console.log(USAGE);
|
|
48
115
|
process.exit(1);
|
|
49
116
|
}
|
|
50
|
-
const start = process.cwd();
|
|
51
117
|
try {
|
|
52
118
|
if ('entity' === element) {
|
|
53
119
|
requireArgs(args, 1, 'add entity');
|
|
@@ -64,6 +130,11 @@ async function main() {
|
|
|
64
130
|
const res = (0, add_1.addMsg)(start, args[0]);
|
|
65
131
|
report([res]);
|
|
66
132
|
}
|
|
133
|
+
else if ('env' === element) {
|
|
134
|
+
requireArgs(args, 1, 'add env');
|
|
135
|
+
const res = (0, add_1.addEnv)(start, args[0]);
|
|
136
|
+
report([res]);
|
|
137
|
+
}
|
|
67
138
|
else if ('field' === element || 'fields' === element) {
|
|
68
139
|
requireArgs(args, 2, 'add field');
|
|
69
140
|
const res = (0, add_1.addFields)(start, args[0], args.slice(1));
|
|
@@ -88,8 +159,13 @@ function requireArgs(args, n, what) {
|
|
|
88
159
|
}
|
|
89
160
|
function report(results) {
|
|
90
161
|
for (const res of results) {
|
|
91
|
-
|
|
92
|
-
|
|
162
|
+
if (res.skipped) {
|
|
163
|
+
console.log('already present (no change): ' + res.file);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
console.log('appended to ' + res.file + ':');
|
|
167
|
+
console.log(res.text);
|
|
168
|
+
}
|
|
93
169
|
}
|
|
94
170
|
}
|
|
95
171
|
if (require.main === module) {
|
package/dist/cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../cmd.ts"],"names":[],"mappings":";;AACA,+CAA+C;;
|
|
1
|
+
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/add.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export type ModelFiles = {
|
|
|
8
8
|
export type AddResult = {
|
|
9
9
|
file: string;
|
|
10
10
|
text: string;
|
|
11
|
+
skipped?: boolean;
|
|
11
12
|
};
|
|
12
13
|
declare function resolveModelFolder(start: string): string;
|
|
13
14
|
declare function resolveModelFiles(start: string): ModelFiles;
|
|
@@ -16,4 +17,6 @@ declare function addEntity(start: string, arg: string): AddResult;
|
|
|
16
17
|
declare function addSrv(start: string, arg: string): AddResult;
|
|
17
18
|
declare function addMsg(start: string, arg: string): AddResult;
|
|
18
19
|
declare function addFields(start: string, entref: string, fieldargs: string[]): AddResult[];
|
|
19
|
-
export { resolveModelFolder, resolveModelFiles, addEntity, addSrv, addMsg, addFields, fmt, };
|
|
20
|
+
export { resolveModelFolder, resolveModelFiles, addEntity, addSrv, addMsg, addFields, addEnv, ENV_KINDS, fmt, };
|
|
21
|
+
declare const ENV_KINDS: string[];
|
|
22
|
+
declare function addEnv(start: string, arg: string): AddResult;
|
package/dist/lib/add.js
CHANGED
|
@@ -4,12 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ENV_KINDS = void 0;
|
|
7
8
|
exports.resolveModelFolder = resolveModelFolder;
|
|
8
9
|
exports.resolveModelFiles = resolveModelFiles;
|
|
9
10
|
exports.addEntity = addEntity;
|
|
10
11
|
exports.addSrv = addSrv;
|
|
11
12
|
exports.addMsg = addMsg;
|
|
12
13
|
exports.addFields = addFields;
|
|
14
|
+
exports.addEnv = addEnv;
|
|
13
15
|
exports.fmt = fmt;
|
|
14
16
|
// Add elements (entity, srv, msg, field) to a Voxgig system project by
|
|
15
17
|
// appending jsonic blocks to the project's model source files. Appending
|
|
@@ -147,6 +149,21 @@ function parseArg(arg, kind) {
|
|
|
147
149
|
throw new Error('invalid ' + kind + ' argument: ' + arg +
|
|
148
150
|
' - provide a name, {name:...,...spec}, or {thename:{...spec}}');
|
|
149
151
|
}
|
|
152
|
+
// The last compiled model (model.json next to the model source), used to
|
|
153
|
+
// make the add operations idempotent: an element that already exists in
|
|
154
|
+
// the compiled model is skipped rather than appended again. Formatting
|
|
155
|
+
// of the sources is irrelevant since the check is semantic. Returns null
|
|
156
|
+
// when the model has not been compiled yet (adds then simply append -
|
|
157
|
+
// aontu unification of an identical element converges anyway).
|
|
158
|
+
function compiledModel(files) {
|
|
159
|
+
const p = node_path_1.default.join(files.folder, 'model.json');
|
|
160
|
+
try {
|
|
161
|
+
return JSON.parse(node_fs_1.default.readFileSync(p, 'utf8'));
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
150
167
|
// Default zone for entities: the single non-sys zone shape spread already
|
|
151
168
|
// in the entity file (`<zone>: &: ...`), else 'app'.
|
|
152
169
|
function defaultZone(entFile) {
|
|
@@ -160,6 +177,7 @@ function defaultZone(entFile) {
|
|
|
160
177
|
// add entity [String(name)|Jsonic(spec)]
|
|
161
178
|
// Names may be zone-qualified: app/thing. Spec: { name, zone?, ...def }.
|
|
162
179
|
function addEntity(start, arg) {
|
|
180
|
+
var _a, _b, _c;
|
|
163
181
|
const files = resolveModelFiles(start);
|
|
164
182
|
const { name: rawname, def } = parseArg(arg, 'entity');
|
|
165
183
|
let zone = def.zone;
|
|
@@ -171,6 +189,11 @@ function addEntity(start, arg) {
|
|
|
171
189
|
name = parts[1];
|
|
172
190
|
}
|
|
173
191
|
zone = zone || defaultZone(files.ent);
|
|
192
|
+
// Idempotent: entity already in the compiled model.
|
|
193
|
+
const model = compiledModel(files);
|
|
194
|
+
if ((_c = (_b = (_a = model === null || model === void 0 ? void 0 : model.main) === null || _a === void 0 ? void 0 : _a.ent) === null || _b === void 0 ? void 0 : _b[zone]) === null || _c === void 0 ? void 0 : _c[name]) {
|
|
195
|
+
return { file: files.ent, text: '', skipped: true };
|
|
196
|
+
}
|
|
174
197
|
if (null == def.field) {
|
|
175
198
|
def.field = {};
|
|
176
199
|
}
|
|
@@ -188,8 +211,14 @@ function addEntity(start, arg) {
|
|
|
188
211
|
// The plain-name form wires the service to its aim messages and a private
|
|
189
212
|
// web area (matching the standard project scaffold).
|
|
190
213
|
function addSrv(start, arg) {
|
|
214
|
+
var _a, _b;
|
|
191
215
|
const files = resolveModelFiles(start);
|
|
192
216
|
const { name, def } = parseArg(arg, 'srv');
|
|
217
|
+
// Idempotent: service already in the compiled model.
|
|
218
|
+
const model = compiledModel(files);
|
|
219
|
+
if ((_b = (_a = model === null || model === void 0 ? void 0 : model.main) === null || _a === void 0 ? void 0 : _a.srv) === null || _b === void 0 ? void 0 : _b[name]) {
|
|
220
|
+
return { file: files.srv, text: '', skipped: true };
|
|
221
|
+
}
|
|
193
222
|
if (null == def.in) {
|
|
194
223
|
def.in = {
|
|
195
224
|
aim: { [name]: {} },
|
|
@@ -212,6 +241,7 @@ function addSrv(start, arg) {
|
|
|
212
241
|
// 'aim' is prepended if missing. Spec: { name: 'thing.save.item', ...meta }
|
|
213
242
|
// where meta (params, transport, file, ...) lands under the '$' key.
|
|
214
243
|
function addMsg(start, arg) {
|
|
244
|
+
var _a;
|
|
215
245
|
const files = resolveModelFiles(start);
|
|
216
246
|
// A pure message path (thing.save.item, aim:thing:save:item) is taken
|
|
217
247
|
// as-is - jsonic would otherwise parse the colon form as a nested map.
|
|
@@ -244,6 +274,17 @@ function addMsg(start, arg) {
|
|
|
244
274
|
if (path.length < 2) {
|
|
245
275
|
throw new Error('invalid msg path: ' + path.join('.'));
|
|
246
276
|
}
|
|
277
|
+
// Idempotent: message path already in the compiled model.
|
|
278
|
+
const model = compiledModel(files);
|
|
279
|
+
if (null != model) {
|
|
280
|
+
let node = (_a = model.main) === null || _a === void 0 ? void 0 : _a.msg;
|
|
281
|
+
for (const p of path) {
|
|
282
|
+
node = node === null || node === void 0 ? void 0 : node[p];
|
|
283
|
+
}
|
|
284
|
+
if (null != node) {
|
|
285
|
+
return { file: files.msg, text: '', skipped: true };
|
|
286
|
+
}
|
|
287
|
+
}
|
|
247
288
|
const prefix = path.join(': ');
|
|
248
289
|
const text = 0 === Object.keys(meta).length ?
|
|
249
290
|
'\n' + prefix + ': {}' :
|
|
@@ -255,6 +296,7 @@ function addMsg(start, arg) {
|
|
|
255
296
|
// | {name:title,kind:String}
|
|
256
297
|
// A label is derived from the name when not given.
|
|
257
298
|
function addFields(start, entref, fieldargs) {
|
|
299
|
+
var _a, _b, _c, _d, _e;
|
|
258
300
|
const files = resolveModelFiles(start);
|
|
259
301
|
let zone;
|
|
260
302
|
let name;
|
|
@@ -268,6 +310,7 @@ function addFields(start, entref, fieldargs) {
|
|
|
268
310
|
if (0 === fieldargs.length) {
|
|
269
311
|
throw new Error('no fields given');
|
|
270
312
|
}
|
|
313
|
+
const model = compiledModel(files);
|
|
271
314
|
const out = [];
|
|
272
315
|
for (const arg of fieldargs) {
|
|
273
316
|
let parsed;
|
|
@@ -303,6 +346,11 @@ function addFields(start, entref, fieldargs) {
|
|
|
303
346
|
else {
|
|
304
347
|
throw new Error('invalid field argument: ' + arg);
|
|
305
348
|
}
|
|
349
|
+
// Idempotent: field already on the entity in the compiled model.
|
|
350
|
+
if ((_e = (_d = (_c = (_b = (_a = model === null || model === void 0 ? void 0 : model.main) === null || _a === void 0 ? void 0 : _a.ent) === null || _b === void 0 ? void 0 : _b[zone]) === null || _c === void 0 ? void 0 : _c[name]) === null || _d === void 0 ? void 0 : _d.field) === null || _e === void 0 ? void 0 : _e[fname]) {
|
|
351
|
+
out.push({ file: files.ent, text: '', skipped: true });
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
306
354
|
if (null == def.kind) {
|
|
307
355
|
def.kind = 'String';
|
|
308
356
|
}
|
|
@@ -325,4 +373,40 @@ function addFields(start, entref, fieldargs) {
|
|
|
325
373
|
}
|
|
326
374
|
return out;
|
|
327
375
|
}
|
|
376
|
+
// The environment kinds @voxgig/build's EnvGen supports (kind defaults
|
|
377
|
+
// to the env name; an unknown kind fails generation with this list too).
|
|
378
|
+
const ENV_KINDS = ['local', 'basic', 'docker', 'vm', 'aws', 'azure', 'cloudflare'];
|
|
379
|
+
exports.ENV_KINDS = ENV_KINDS;
|
|
380
|
+
// add env [String(name)|Jsonic(spec)]
|
|
381
|
+
// Declares a target environment in the model (main: env: <name>: {...}).
|
|
382
|
+
// Name form: `add env aws`. Spec form: `add env
|
|
383
|
+
// '{name:aws2,kind:aws,region:eu-west-1,stage:prd}'`. Appends to the
|
|
384
|
+
// model file referenced as `main: env: @"..."` when present, else to the
|
|
385
|
+
// root model file.
|
|
386
|
+
function addEnv(start, arg) {
|
|
387
|
+
var _a, _b;
|
|
388
|
+
const files = resolveModelFiles(start);
|
|
389
|
+
const { name, def } = parseArg(arg, 'env');
|
|
390
|
+
const kind = def.kind || name;
|
|
391
|
+
if (!ENV_KINDS.includes(kind)) {
|
|
392
|
+
throw new Error('unknown environment kind: ' + kind +
|
|
393
|
+
' (known: ' + ENV_KINDS.join(', ') +
|
|
394
|
+
'; use {name:..., kind:...} for a custom-named env)');
|
|
395
|
+
}
|
|
396
|
+
// Idempotent: environment already in the compiled model.
|
|
397
|
+
const model = compiledModel(files);
|
|
398
|
+
if ((_b = (_a = model === null || model === void 0 ? void 0 : model.main) === null || _a === void 0 ? void 0 : _a.env) === null || _b === void 0 ? void 0 : _b[name]) {
|
|
399
|
+
return { file: files.model, text: '', skipped: true };
|
|
400
|
+
}
|
|
401
|
+
if (null == def.active) {
|
|
402
|
+
def.active = true;
|
|
403
|
+
}
|
|
404
|
+
// Target: the env model file when referenced, else the root model file.
|
|
405
|
+
const src = node_fs_1.default.readFileSync(files.model, 'utf8');
|
|
406
|
+
const m = src.match(/main:\s*env:\s*@"([^"]+)"/);
|
|
407
|
+
const target = m ? node_path_1.default.join(files.folder, m[1]) : files.model;
|
|
408
|
+
const prefix = m ? '' : 'main: env: ';
|
|
409
|
+
const text = '\n' + prefix + name + ': ' + fmt(def, 0);
|
|
410
|
+
return append(target, text);
|
|
411
|
+
}
|
|
328
412
|
//# sourceMappingURL=add.js.map
|
package/dist/lib/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../lib/add.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../lib/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare const GENERATORS: string[];
|
|
2
|
+
export type Project = {
|
|
3
|
+
backend: string;
|
|
4
|
+
tm: string;
|
|
5
|
+
gen: string;
|
|
6
|
+
pkg: string;
|
|
7
|
+
pkgtm: string;
|
|
8
|
+
};
|
|
9
|
+
declare function resolveProject(start: string): Project;
|
|
10
|
+
export type TemplateRow = {
|
|
11
|
+
name: string;
|
|
12
|
+
kind: 'fragment' | 'generator';
|
|
13
|
+
layer: string;
|
|
14
|
+
};
|
|
15
|
+
declare function listTemplates(start: string): TemplateRow[];
|
|
16
|
+
declare function ejectFragment(start: string, name: string): string;
|
|
17
|
+
declare function ejectCode(start: string, name: string): string;
|
|
18
|
+
export type DiffRow = {
|
|
19
|
+
name: string;
|
|
20
|
+
upstream: 'unchanged' | 'changed' | 'missing';
|
|
21
|
+
diff?: string;
|
|
22
|
+
};
|
|
23
|
+
declare function diffTemplates(start: string): DiffRow[];
|
|
24
|
+
export { resolveProject, listTemplates, ejectFragment, ejectCode, diffTemplates, GENERATORS, };
|