jostraca 0.3.0 → 0.5.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/cmp/Copy.d.ts +2 -0
- package/dist/cmp/Copy.js +26 -0
- package/dist/cmp/Copy.js.map +1 -0
- package/dist/jostraca.d.ts +13 -5
- package/dist/jostraca.js +40 -37
- package/dist/jostraca.js.map +1 -1
- package/dist/op/CopyOp.d.ts +6 -0
- package/dist/op/CopyOp.js +91 -0
- package/dist/op/CopyOp.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +3 -3
- package/src/cmp/Copy.ts +34 -0
- package/src/jostraca.ts +56 -45
- package/src/op/CopyOp.ts +108 -0
- package/src/op/CopyOp.ts~ +12 -0
package/dist/cmp/Copy.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Copy = void 0;
|
|
4
|
+
const jostraca_1 = require("../jostraca");
|
|
5
|
+
const Copy = (0, jostraca_1.cmp)(function Copy(props, children) {
|
|
6
|
+
const fs = props.ctx$.fs;
|
|
7
|
+
const name = props.name;
|
|
8
|
+
const from = props.from;
|
|
9
|
+
const fromStat = fs.statSync(from);
|
|
10
|
+
if (fromStat.isFile()) {
|
|
11
|
+
props.ctx$.node.kind = 'file';
|
|
12
|
+
props.ctx$.node.name = props.name;
|
|
13
|
+
const content = fs.readFileSync(from).toString();
|
|
14
|
+
(0, jostraca_1.Code)(content);
|
|
15
|
+
}
|
|
16
|
+
else if (fromStat.isDirectory()) {
|
|
17
|
+
props.ctx$.node.kind = 'copy';
|
|
18
|
+
props.ctx$.node.name = props.name;
|
|
19
|
+
props.ctx$.node.from = from;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw new Error('Copy: invalid from: ' + from);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
exports.Copy = Copy;
|
|
26
|
+
//# sourceMappingURL=Copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/cmp/Copy.ts"],"names":[],"mappings":";;;AAEA,0CAAuC;AAGvC,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU,EAAE,QAAa;IACtD,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAEvB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAElC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;QAChD,IAAA,eAAI,EAAC,OAAO,CAAC,CAAA;IACf,CAAC;SACI,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAC7B,CAAC;SACI,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAA;IAChD,CAAC;AAEH,CAAC,CAAC,CAAA;AAKA,oBAAI"}
|
package/dist/jostraca.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import { Copy } from './cmp/Copy';
|
|
1
2
|
type JostracaOptions = {
|
|
2
|
-
folder
|
|
3
|
-
fs
|
|
4
|
-
meta
|
|
3
|
+
folder?: string;
|
|
4
|
+
fs?: any;
|
|
5
|
+
meta?: any;
|
|
6
|
+
};
|
|
7
|
+
type Node = {
|
|
8
|
+
kind: string;
|
|
9
|
+
children?: Node[];
|
|
10
|
+
name?: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
from?: string;
|
|
13
|
+
content?: any[];
|
|
5
14
|
};
|
|
6
15
|
type Component = (props: any, children?: any) => void;
|
|
7
16
|
declare function Jostraca(): {
|
|
@@ -9,7 +18,6 @@ declare function Jostraca(): {
|
|
|
9
18
|
};
|
|
10
19
|
declare const Code: Component;
|
|
11
20
|
declare const File: Component;
|
|
12
|
-
declare const Copy: Component;
|
|
13
21
|
declare const Project: Component;
|
|
14
22
|
declare const Folder: Component;
|
|
15
23
|
declare function cmp(component: Function): Component;
|
|
@@ -33,5 +41,5 @@ declare namespace vmap {
|
|
|
33
41
|
var FILTER: (x: any) => any;
|
|
34
42
|
var KEY: (_: any, p: any) => any;
|
|
35
43
|
}
|
|
36
|
-
export type { JostracaOptions, Component, };
|
|
44
|
+
export type { JostracaOptions, Component, Node, };
|
|
37
45
|
export { Jostraca, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, Project, Code, File, Folder, Copy, };
|
package/dist/jostraca.js
CHANGED
|
@@ -39,6 +39,9 @@ exports.vmap = vmap;
|
|
|
39
39
|
exports.names = names;
|
|
40
40
|
const Fs = __importStar(require("node:fs"));
|
|
41
41
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
42
|
+
const Copy_1 = require("./cmp/Copy");
|
|
43
|
+
Object.defineProperty(exports, "Copy", { enumerable: true, get: function () { return Copy_1.Copy; } });
|
|
44
|
+
const CopyOp_1 = require("./op/CopyOp");
|
|
42
45
|
const jsonic_next_1 = require("@jsonic/jsonic-next");
|
|
43
46
|
const { deep } = jsonic_next_1.util;
|
|
44
47
|
const GLOBAL = global;
|
|
@@ -47,24 +50,29 @@ function Jostraca() {
|
|
|
47
50
|
function generate(opts, root) {
|
|
48
51
|
const fs = opts.fs || Fs;
|
|
49
52
|
const meta = opts.meta || {};
|
|
53
|
+
const folder = opts.folder || '.';
|
|
50
54
|
const ctx$ = {
|
|
51
55
|
fs,
|
|
56
|
+
folder,
|
|
52
57
|
content: null,
|
|
53
58
|
meta,
|
|
54
59
|
};
|
|
55
60
|
GLOBAL.jostraca.run(ctx$, () => {
|
|
56
61
|
try {
|
|
62
|
+
// console.log('START ROOT')
|
|
57
63
|
root();
|
|
64
|
+
// console.log('END ROOT')
|
|
58
65
|
const ctx$ = GLOBAL.jostraca.getStore();
|
|
59
|
-
|
|
60
|
-
build(
|
|
66
|
+
// console.log('START BUILD')
|
|
67
|
+
build(ctx$, {
|
|
61
68
|
fs,
|
|
62
69
|
current: {
|
|
63
70
|
folder: {
|
|
64
|
-
parent:
|
|
71
|
+
parent: folder
|
|
65
72
|
}
|
|
66
73
|
}
|
|
67
74
|
});
|
|
75
|
+
// console.log('END BUILD')
|
|
68
76
|
}
|
|
69
77
|
catch (err) {
|
|
70
78
|
console.log('JOSTRACA ERROR:', err);
|
|
@@ -72,69 +80,71 @@ function Jostraca() {
|
|
|
72
80
|
}
|
|
73
81
|
});
|
|
74
82
|
}
|
|
75
|
-
function build(
|
|
76
|
-
|
|
83
|
+
function build(ctx$, buildctx) {
|
|
84
|
+
const topnode = ctx$.node;
|
|
85
|
+
step(topnode, ctx$, buildctx);
|
|
77
86
|
}
|
|
78
|
-
function step(node, ctx) {
|
|
87
|
+
function step(node, ctx$, buildctx) {
|
|
79
88
|
const op = opmap[node.kind];
|
|
80
89
|
if (null == op) {
|
|
81
90
|
throw new Error('missing op: ' + node.kind);
|
|
82
91
|
}
|
|
83
|
-
op.before(node, ctx);
|
|
92
|
+
op.before(node, ctx$, buildctx);
|
|
84
93
|
if (node.children) {
|
|
85
94
|
for (let childnode of node.children) {
|
|
86
|
-
step(childnode, ctx);
|
|
95
|
+
step(childnode, ctx$, buildctx);
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
|
-
op.after(node, ctx);
|
|
98
|
+
op.after(node, ctx$, buildctx);
|
|
90
99
|
}
|
|
91
100
|
const opmap = {
|
|
92
101
|
project: {
|
|
93
|
-
before(node,
|
|
94
|
-
const cproject =
|
|
102
|
+
before(node, _ctx$, buildctx) {
|
|
103
|
+
const cproject = buildctx.current.project = (buildctx.current.project || {});
|
|
95
104
|
cproject.node = node;
|
|
96
105
|
},
|
|
97
|
-
after(_node, _ctx) {
|
|
106
|
+
after(_node, _ctx$, _buildctx) {
|
|
98
107
|
},
|
|
99
108
|
},
|
|
100
109
|
folder: {
|
|
101
|
-
before(node,
|
|
102
|
-
const cfolder =
|
|
110
|
+
before(node, _ctx$, buildctx) {
|
|
111
|
+
const cfolder = buildctx.current.folder = (buildctx.current.folder || {});
|
|
103
112
|
cfolder.node = node;
|
|
104
|
-
cfolder.path = (cfolder.path || [
|
|
113
|
+
cfolder.path = (cfolder.path || [buildctx.current.folder.parent]);
|
|
105
114
|
cfolder.path.push(node.name);
|
|
106
115
|
let fullpath = cfolder.path.join('/');
|
|
107
|
-
|
|
116
|
+
buildctx.fs.mkdirSync(fullpath, { recursive: true });
|
|
108
117
|
},
|
|
109
|
-
after(_node,
|
|
110
|
-
const cfolder =
|
|
118
|
+
after(_node, _ctx$, buildctx) {
|
|
119
|
+
const cfolder = buildctx.current.folder;
|
|
111
120
|
cfolder.path.length = cfolder.path.length - 1;
|
|
112
121
|
},
|
|
113
122
|
},
|
|
114
123
|
file: {
|
|
115
|
-
before(node,
|
|
116
|
-
const cfile =
|
|
117
|
-
cfile.path =
|
|
124
|
+
before(node, _ctx$, buildctx) {
|
|
125
|
+
const cfile = buildctx.current.file = node;
|
|
126
|
+
cfile.path = buildctx.current.folder.path.join('/') + '/' + node.name;
|
|
118
127
|
cfile.content = [];
|
|
119
128
|
},
|
|
120
|
-
after(_node,
|
|
121
|
-
const cfile =
|
|
129
|
+
after(_node, _ctx$, buildctx) {
|
|
130
|
+
const cfile = buildctx.current.file;
|
|
122
131
|
const content = cfile.content.join('');
|
|
123
|
-
|
|
132
|
+
buildctx.fs.writeFileSync(cfile.path, content);
|
|
124
133
|
},
|
|
125
134
|
},
|
|
126
135
|
content: {
|
|
127
|
-
before(node,
|
|
128
|
-
const content =
|
|
129
|
-
|
|
136
|
+
before(node, _ctx$, buildctx) {
|
|
137
|
+
const content = buildctx.current.content = node;
|
|
138
|
+
buildctx.current.file.content.push(content.content);
|
|
130
139
|
},
|
|
131
|
-
after(_node, _ctx) {
|
|
140
|
+
after(_node, _ctx$, buildctx) {
|
|
132
141
|
},
|
|
133
142
|
},
|
|
143
|
+
copy: CopyOp_1.CopyOp,
|
|
134
144
|
none: {
|
|
135
|
-
before(_node, _ctx) {
|
|
145
|
+
before(_node, _ctx$, buildctx) {
|
|
136
146
|
},
|
|
137
|
-
after(_node, _ctx) {
|
|
147
|
+
after(_node, _ctx$, buildctx) {
|
|
138
148
|
},
|
|
139
149
|
},
|
|
140
150
|
};
|
|
@@ -156,13 +166,6 @@ const File = cmp(function File(props, children) {
|
|
|
156
166
|
// Code('// FILE END: ' + props.name + '\n')
|
|
157
167
|
});
|
|
158
168
|
exports.File = File;
|
|
159
|
-
const Copy = cmp(function Copy(props, children) {
|
|
160
|
-
props.ctx$.node.kind = 'file';
|
|
161
|
-
props.ctx$.node.name = props.name;
|
|
162
|
-
const content = props.ctx$.fs.readFileSync(props.from).toString();
|
|
163
|
-
Code(content);
|
|
164
|
-
});
|
|
165
|
-
exports.Copy = Copy;
|
|
166
169
|
const Project = cmp(function Project(props, children) {
|
|
167
170
|
props.ctx$.node.kind = 'project';
|
|
168
171
|
props.ctx$.node.name = props.name;
|
package/dist/jostraca.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jostraca.js","sourceRoot":"","sources":["../src/jostraca.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jostraca.js","sourceRoot":"","sources":["../src/jostraca.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
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.CopyOp = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const jostraca_1 = require("../jostraca");
|
|
9
|
+
const CopyOp = {
|
|
10
|
+
before(node, ctx$, buildctx) {
|
|
11
|
+
const name = node.name;
|
|
12
|
+
const from = node.from;
|
|
13
|
+
// console.log('COPY START', node)
|
|
14
|
+
if (from && name) {
|
|
15
|
+
const state = {
|
|
16
|
+
fileCount: 0,
|
|
17
|
+
folderCount: 0,
|
|
18
|
+
tmCount: 0,
|
|
19
|
+
ctx$,
|
|
20
|
+
buildctx,
|
|
21
|
+
};
|
|
22
|
+
walk(state, from, name);
|
|
23
|
+
// console.log('COPY END', state)
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
after(_node, _ctx$, buildctx) {
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
exports.CopyOp = CopyOp;
|
|
30
|
+
function walk(state, from, to) {
|
|
31
|
+
const buildctx = state.buildctx;
|
|
32
|
+
const fs = buildctx.fs;
|
|
33
|
+
const entries = fs.readdirSync(from);
|
|
34
|
+
for (let name of entries) {
|
|
35
|
+
const frompath = node_path_1.default.join(from, name);
|
|
36
|
+
const topath = node_path_1.default.join(to, name);
|
|
37
|
+
const stat = fs.statSync(frompath);
|
|
38
|
+
if (stat.isDirectory()) {
|
|
39
|
+
state.folderCount++;
|
|
40
|
+
walk(state, frompath, topath);
|
|
41
|
+
}
|
|
42
|
+
else if (isTemplate(name)) {
|
|
43
|
+
const src = fs.readFileSync(frompath, 'utf8');
|
|
44
|
+
const out = genTemplate(state, src, { name, frompath, topath });
|
|
45
|
+
// console.log('writeFileSync', frompath, topath)
|
|
46
|
+
fs.mkdirSync(node_path_1.default.dirname(topath), { recursive: true });
|
|
47
|
+
fs.writeFileSync(topath, out, 'utf8');
|
|
48
|
+
state.fileCount++;
|
|
49
|
+
state.tmCount++;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// console.log('copyFileSync', frompath, topath)
|
|
53
|
+
fs.mkdirSync(node_path_1.default.dirname(topath), { recursive: true });
|
|
54
|
+
fs.copyFileSync(frompath, topath);
|
|
55
|
+
state.fileCount++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function isTemplate(name) {
|
|
60
|
+
return name.match(/\.(ts|js|json|txt|xml|toml|yml|yaml|py|php|rb|go|java|c|cpp|cs|sh|bat)$/i);
|
|
61
|
+
}
|
|
62
|
+
// NOTE: $$foo.bar$$ format used as explicit start and end markers mean regex can be used
|
|
63
|
+
// unambiguously ($fooa would not match `foo`)
|
|
64
|
+
function genTemplate(state, src, spec) {
|
|
65
|
+
let model = state.ctx$.model; // { foo: 'FOO', bar: 'BAR' }
|
|
66
|
+
let out = '';
|
|
67
|
+
let remain = src;
|
|
68
|
+
let nextm = true;
|
|
69
|
+
while (nextm) {
|
|
70
|
+
let m = remain.match(/\$\$([^$]+)\$\$/);
|
|
71
|
+
if (m) {
|
|
72
|
+
let ref = m[1];
|
|
73
|
+
out += remain.substring(0, m.index);
|
|
74
|
+
let insert = (0, jostraca_1.getx)(model, ref);
|
|
75
|
+
if (null == insert) {
|
|
76
|
+
out += '$$' + ref + '$$';
|
|
77
|
+
remain = remain.substring(m.index + 4 + ref.length);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
out += insert;
|
|
81
|
+
remain = remain.substring(m.index + 4 + ref.length);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
out += remain;
|
|
86
|
+
nextm = false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=CopyOp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyOp.js","sourceRoot":"","sources":["../../src/op/CopyOp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/jostraca.ts","../src/cmp/copy.ts","../src/op/copyop.ts"],"version":"5.6.2"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jostraca",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"main": "dist/jostraca.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/jostraca.d.ts",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
],
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@hapi/code": "^9.0.3",
|
|
37
|
-
"@types/node": "22.5.
|
|
37
|
+
"@types/node": "22.5.4",
|
|
38
38
|
"esbuild": "^0.23.1",
|
|
39
39
|
"memfs": "^4.11.1",
|
|
40
|
-
"typescript": "^5.
|
|
40
|
+
"typescript": "^5.6.2"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@jsonic/jsonic-next": "^2.12.1"
|
package/src/cmp/Copy.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import { cmp, Code } from '../jostraca'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
const Copy = cmp(function Copy(props: any, children: any) {
|
|
7
|
+
const fs = props.ctx$.fs
|
|
8
|
+
const name = props.name
|
|
9
|
+
const from = props.from
|
|
10
|
+
|
|
11
|
+
const fromStat = fs.statSync(from)
|
|
12
|
+
|
|
13
|
+
if (fromStat.isFile()) {
|
|
14
|
+
props.ctx$.node.kind = 'file'
|
|
15
|
+
props.ctx$.node.name = props.name
|
|
16
|
+
const content = fs.readFileSync(from).toString()
|
|
17
|
+
Code(content)
|
|
18
|
+
}
|
|
19
|
+
else if (fromStat.isDirectory()) {
|
|
20
|
+
props.ctx$.node.kind = 'copy'
|
|
21
|
+
props.ctx$.node.name = props.name
|
|
22
|
+
props.ctx$.node.from = from
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
throw new Error('Copy: invalid from: ' + from)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
Copy
|
|
34
|
+
}
|
package/src/jostraca.ts
CHANGED
|
@@ -4,6 +4,9 @@ import * as Fs from 'node:fs'
|
|
|
4
4
|
|
|
5
5
|
import { AsyncLocalStorage } from 'node:async_hooks'
|
|
6
6
|
|
|
7
|
+
import { Copy } from './cmp/Copy'
|
|
8
|
+
|
|
9
|
+
import { CopyOp } from './op/CopyOp'
|
|
7
10
|
|
|
8
11
|
import { util as JostracaUtil } from '@jsonic/jsonic-next'
|
|
9
12
|
|
|
@@ -11,9 +14,9 @@ const { deep } = JostracaUtil
|
|
|
11
14
|
|
|
12
15
|
|
|
13
16
|
type JostracaOptions = {
|
|
14
|
-
folder
|
|
15
|
-
fs
|
|
16
|
-
meta
|
|
17
|
+
folder?: string
|
|
18
|
+
fs?: any
|
|
19
|
+
meta?: any
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
|
|
@@ -22,10 +25,19 @@ type Node = {
|
|
|
22
25
|
children?: Node[]
|
|
23
26
|
name?: string
|
|
24
27
|
path?: string
|
|
28
|
+
from?: string
|
|
25
29
|
content?: any[]
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
|
|
33
|
+
type OpStep = (node: Node, ctx$: any, buildctx: any) => void
|
|
34
|
+
|
|
35
|
+
type OpDef = {
|
|
36
|
+
before: OpStep,
|
|
37
|
+
after: OpStep,
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
29
41
|
type Component = (props: any, children?: any) => void
|
|
30
42
|
|
|
31
43
|
|
|
@@ -40,30 +52,35 @@ function Jostraca() {
|
|
|
40
52
|
function generate(opts: JostracaOptions, root: Function) {
|
|
41
53
|
const fs = opts.fs || Fs
|
|
42
54
|
const meta = opts.meta || {}
|
|
55
|
+
const folder = opts.folder || '.'
|
|
43
56
|
|
|
44
57
|
const ctx$ = {
|
|
45
58
|
fs,
|
|
59
|
+
folder,
|
|
46
60
|
content: null,
|
|
47
61
|
meta,
|
|
48
62
|
}
|
|
49
63
|
|
|
50
64
|
GLOBAL.jostraca.run(ctx$, () => {
|
|
51
65
|
try {
|
|
66
|
+
// console.log('START ROOT')
|
|
52
67
|
root()
|
|
68
|
+
// console.log('END ROOT')
|
|
53
69
|
|
|
54
70
|
const ctx$ = GLOBAL.jostraca.getStore()
|
|
55
|
-
const node = ctx$.node
|
|
56
71
|
|
|
72
|
+
// console.log('START BUILD')
|
|
57
73
|
build(
|
|
58
|
-
|
|
74
|
+
ctx$,
|
|
59
75
|
{
|
|
60
76
|
fs,
|
|
61
77
|
current: {
|
|
62
78
|
folder: {
|
|
63
|
-
parent:
|
|
79
|
+
parent: folder
|
|
64
80
|
}
|
|
65
81
|
}
|
|
66
82
|
})
|
|
83
|
+
// console.log('END BUILD')
|
|
67
84
|
}
|
|
68
85
|
catch (err: any) {
|
|
69
86
|
console.log('JOSTRACA ERROR:', err)
|
|
@@ -73,95 +90,98 @@ function Jostraca() {
|
|
|
73
90
|
}
|
|
74
91
|
|
|
75
92
|
|
|
76
|
-
function build(
|
|
77
|
-
|
|
93
|
+
function build(ctx$: any, buildctx: any) {
|
|
94
|
+
const topnode = ctx$.node
|
|
95
|
+
step(topnode, ctx$, buildctx)
|
|
78
96
|
}
|
|
79
97
|
|
|
80
98
|
|
|
81
|
-
function step(node: Node, ctx: any) {
|
|
99
|
+
function step(node: Node, ctx$: any, buildctx: any) {
|
|
82
100
|
const op = opmap[node.kind]
|
|
83
101
|
if (null == op) {
|
|
84
102
|
throw new Error('missing op: ' + node.kind)
|
|
85
103
|
}
|
|
86
104
|
|
|
87
|
-
op.before(node, ctx)
|
|
105
|
+
op.before(node, ctx$, buildctx)
|
|
88
106
|
|
|
89
107
|
if (node.children) {
|
|
90
108
|
for (let childnode of node.children) {
|
|
91
|
-
step(childnode, ctx)
|
|
109
|
+
step(childnode, ctx$, buildctx)
|
|
92
110
|
}
|
|
93
111
|
}
|
|
94
112
|
|
|
95
|
-
op.after(node, ctx)
|
|
113
|
+
op.after(node, ctx$, buildctx)
|
|
96
114
|
}
|
|
97
115
|
|
|
98
116
|
|
|
99
|
-
|
|
100
|
-
const opmap: any = {
|
|
117
|
+
const opmap: Record<string, OpDef> = {
|
|
101
118
|
|
|
102
119
|
project: {
|
|
103
|
-
before(node: Node,
|
|
104
|
-
const cproject: any =
|
|
120
|
+
before(node: Node, _ctx$: any, buildctx: any) {
|
|
121
|
+
const cproject: any = buildctx.current.project = (buildctx.current.project || {})
|
|
105
122
|
cproject.node = node
|
|
106
123
|
},
|
|
107
124
|
|
|
108
|
-
after(_node: Node, _ctx: any) {
|
|
125
|
+
after(_node: Node, _ctx$: any, _buildctx: any) {
|
|
109
126
|
|
|
110
127
|
},
|
|
111
128
|
},
|
|
112
129
|
|
|
113
130
|
|
|
114
131
|
folder: {
|
|
115
|
-
before(node: Node,
|
|
116
|
-
const cfolder =
|
|
132
|
+
before(node: Node, _ctx$: any, buildctx: any) {
|
|
133
|
+
const cfolder = buildctx.current.folder = (buildctx.current.folder || {})
|
|
117
134
|
|
|
118
135
|
cfolder.node = node
|
|
119
|
-
cfolder.path = (cfolder.path || [
|
|
136
|
+
cfolder.path = (cfolder.path || [buildctx.current.folder.parent])
|
|
120
137
|
cfolder.path.push(node.name)
|
|
121
138
|
|
|
122
139
|
let fullpath = cfolder.path.join('/')
|
|
123
|
-
|
|
140
|
+
buildctx.fs.mkdirSync(fullpath, { recursive: true })
|
|
124
141
|
},
|
|
125
142
|
|
|
126
143
|
|
|
127
|
-
after(_node: Node,
|
|
128
|
-
const cfolder =
|
|
144
|
+
after(_node: Node, _ctx$: any, buildctx: any) {
|
|
145
|
+
const cfolder = buildctx.current.folder
|
|
129
146
|
cfolder.path.length = cfolder.path.length - 1
|
|
130
147
|
},
|
|
131
148
|
},
|
|
132
149
|
|
|
133
150
|
|
|
134
151
|
file: {
|
|
135
|
-
before(node: Node,
|
|
136
|
-
const cfile =
|
|
137
|
-
cfile.path =
|
|
152
|
+
before(node: Node, _ctx$: any, buildctx: any) {
|
|
153
|
+
const cfile = buildctx.current.file = node
|
|
154
|
+
cfile.path = buildctx.current.folder.path.join('/') + '/' + node.name
|
|
138
155
|
cfile.content = []
|
|
139
156
|
},
|
|
140
157
|
|
|
141
|
-
after(_node: Node,
|
|
142
|
-
const cfile =
|
|
158
|
+
after(_node: Node, _ctx$: any, buildctx: any) {
|
|
159
|
+
const cfile = buildctx.current.file
|
|
143
160
|
const content = cfile.content.join('')
|
|
144
|
-
|
|
161
|
+
buildctx.fs.writeFileSync(cfile.path, content)
|
|
145
162
|
},
|
|
146
163
|
},
|
|
147
164
|
|
|
148
165
|
|
|
149
166
|
content: {
|
|
150
|
-
before(node: Node,
|
|
151
|
-
const content =
|
|
152
|
-
|
|
167
|
+
before(node: Node, _ctx$: any, buildctx: any) {
|
|
168
|
+
const content = buildctx.current.content = node
|
|
169
|
+
buildctx.current.file.content.push(content.content)
|
|
153
170
|
},
|
|
154
171
|
|
|
155
|
-
after(_node: Node, _ctx: any) {
|
|
172
|
+
after(_node: Node, _ctx$: any, buildctx: any) {
|
|
156
173
|
},
|
|
157
174
|
},
|
|
158
175
|
|
|
159
176
|
|
|
177
|
+
copy: CopyOp,
|
|
178
|
+
|
|
179
|
+
|
|
160
180
|
none: {
|
|
161
|
-
before(_node: Node, _ctx: any) {
|
|
181
|
+
before(_node: Node, _ctx$: any, buildctx: any) {
|
|
162
182
|
},
|
|
163
183
|
|
|
164
|
-
after(_node: Node, _ctx: any) {
|
|
184
|
+
after(_node: Node, _ctx$: any, buildctx: any) {
|
|
165
185
|
},
|
|
166
186
|
},
|
|
167
187
|
|
|
@@ -193,16 +213,6 @@ const File = cmp(function File(props: any, children: any) {
|
|
|
193
213
|
})
|
|
194
214
|
|
|
195
215
|
|
|
196
|
-
const Copy = cmp(function Copy(props: any, children: any) {
|
|
197
|
-
props.ctx$.node.kind = 'file'
|
|
198
|
-
props.ctx$.node.name = props.name
|
|
199
|
-
|
|
200
|
-
const content = props.ctx$.fs.readFileSync(props.from).toString()
|
|
201
|
-
Code(content)
|
|
202
|
-
})
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
216
|
const Project: Component = cmp(function Project(props: any, children: any) {
|
|
207
217
|
props.ctx$.node.kind = 'project'
|
|
208
218
|
props.ctx$.node.name = props.name
|
|
@@ -484,6 +494,7 @@ vmap.KEY = (_: any, p: any) => p.key
|
|
|
484
494
|
export type {
|
|
485
495
|
JostracaOptions,
|
|
486
496
|
Component,
|
|
497
|
+
Node,
|
|
487
498
|
}
|
|
488
499
|
|
|
489
500
|
|
package/src/op/CopyOp.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
|
|
2
|
+
import Path from 'node:path'
|
|
3
|
+
|
|
4
|
+
import type { Node } from '../jostraca'
|
|
5
|
+
|
|
6
|
+
import { getx } from '../jostraca'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
const CopyOp = {
|
|
10
|
+
|
|
11
|
+
before(node: Node, ctx$: any, buildctx: any) {
|
|
12
|
+
const name = node.name
|
|
13
|
+
const from = node.from
|
|
14
|
+
|
|
15
|
+
// console.log('COPY START', node)
|
|
16
|
+
if (from && name) {
|
|
17
|
+
const state = {
|
|
18
|
+
fileCount: 0,
|
|
19
|
+
folderCount: 0,
|
|
20
|
+
tmCount: 0,
|
|
21
|
+
ctx$,
|
|
22
|
+
buildctx,
|
|
23
|
+
}
|
|
24
|
+
walk(state, from, name)
|
|
25
|
+
// console.log('COPY END', state)
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
after(_node: Node, _ctx$: any, buildctx: any) {
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
function walk(state: any, from: string, to: string) {
|
|
36
|
+
const buildctx = state.buildctx
|
|
37
|
+
const fs = buildctx.fs
|
|
38
|
+
const entries = fs.readdirSync(from)
|
|
39
|
+
|
|
40
|
+
for (let name of entries) {
|
|
41
|
+
const frompath = Path.join(from, name)
|
|
42
|
+
const topath = Path.join(to, name)
|
|
43
|
+
const stat = fs.statSync(frompath)
|
|
44
|
+
|
|
45
|
+
if (stat.isDirectory()) {
|
|
46
|
+
state.folderCount++
|
|
47
|
+
walk(state, frompath, topath)
|
|
48
|
+
}
|
|
49
|
+
else if (isTemplate(name)) {
|
|
50
|
+
const src = fs.readFileSync(frompath, 'utf8')
|
|
51
|
+
const out = genTemplate(state, src, { name, frompath, topath })
|
|
52
|
+
// console.log('writeFileSync', frompath, topath)
|
|
53
|
+
fs.mkdirSync(Path.dirname(topath), { recursive: true })
|
|
54
|
+
fs.writeFileSync(topath, out, 'utf8')
|
|
55
|
+
state.fileCount++
|
|
56
|
+
state.tmCount++
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// console.log('copyFileSync', frompath, topath)
|
|
60
|
+
fs.mkdirSync(Path.dirname(topath), { recursive: true })
|
|
61
|
+
fs.copyFileSync(frompath, topath)
|
|
62
|
+
state.fileCount++
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
function isTemplate(name: string) {
|
|
69
|
+
return name.match(/\.(ts|js|json|txt|xml|toml|yml|yaml|py|php|rb|go|java|c|cpp|cs|sh|bat)$/i)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// NOTE: $$foo.bar$$ format used as explicit start and end markers mean regex can be used
|
|
73
|
+
// unambiguously ($fooa would not match `foo`)
|
|
74
|
+
function genTemplate(
|
|
75
|
+
state: any,
|
|
76
|
+
src: any,
|
|
77
|
+
spec: { name: string, frompath: string, topath: string }) {
|
|
78
|
+
|
|
79
|
+
let model = state.ctx$.model // { foo: 'FOO', bar: 'BAR' }
|
|
80
|
+
let out = ''
|
|
81
|
+
let remain = src
|
|
82
|
+
let nextm = true
|
|
83
|
+
while (nextm) {
|
|
84
|
+
let m = remain.match(/\$\$([^$]+)\$\$/)
|
|
85
|
+
if (m) {
|
|
86
|
+
let ref = m[1]
|
|
87
|
+
out += remain.substring(0, m.index)
|
|
88
|
+
let insert = getx(model, ref)
|
|
89
|
+
if (null == insert) {
|
|
90
|
+
out += '$$' + ref + '$$'
|
|
91
|
+
remain = remain.substring(m.index + 4 + ref.length)
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
out += insert
|
|
95
|
+
remain = remain.substring(m.index + 4 + ref.length)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
out += remain
|
|
100
|
+
nextm = false
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return out
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export {
|
|
107
|
+
CopyOp
|
|
108
|
+
}
|