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.
@@ -0,0 +1,2 @@
1
+ declare const Copy: import("../jostraca").Component;
2
+ export { Copy };
@@ -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"}
@@ -1,7 +1,16 @@
1
+ import { Copy } from './cmp/Copy';
1
2
  type JostracaOptions = {
2
- folder: string;
3
- fs: any;
4
- meta: any;
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
- const node = ctx$.node;
60
- build(node, {
66
+ // console.log('START BUILD')
67
+ build(ctx$, {
61
68
  fs,
62
69
  current: {
63
70
  folder: {
64
- parent: opts.folder
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(topnode, ctx) {
76
- step(topnode, ctx);
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, ctx) {
94
- const cproject = ctx.current.project = (ctx.current.project || {});
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, ctx) {
102
- const cfolder = ctx.current.folder = (ctx.current.folder || {});
110
+ before(node, _ctx$, buildctx) {
111
+ const cfolder = buildctx.current.folder = (buildctx.current.folder || {});
103
112
  cfolder.node = node;
104
- cfolder.path = (cfolder.path || [ctx.current.folder.parent]);
113
+ cfolder.path = (cfolder.path || [buildctx.current.folder.parent]);
105
114
  cfolder.path.push(node.name);
106
115
  let fullpath = cfolder.path.join('/');
107
- ctx.fs.mkdirSync(fullpath, { recursive: true });
116
+ buildctx.fs.mkdirSync(fullpath, { recursive: true });
108
117
  },
109
- after(_node, ctx) {
110
- const cfolder = ctx.current.folder;
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, ctx) {
116
- const cfile = ctx.current.file = node;
117
- cfile.path = ctx.current.folder.path.join('/') + '/' + node.name;
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, ctx) {
121
- const cfile = ctx.current.file;
129
+ after(_node, _ctx$, buildctx) {
130
+ const cfile = buildctx.current.file;
122
131
  const content = cfile.content.join('');
123
- ctx.fs.writeFileSync(cfile.path, content);
132
+ buildctx.fs.writeFileSync(cfile.path, content);
124
133
  },
125
134
  },
126
135
  content: {
127
- before(node, ctx) {
128
- const content = ctx.current.content = node;
129
- ctx.current.file.content.push(content.content);
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;
@@ -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,6 @@
1
+ import type { Node } from '../jostraca';
2
+ declare const CopyOp: {
3
+ before(node: Node, ctx$: any, buildctx: any): void;
4
+ after(_node: Node, _ctx$: any, buildctx: any): void;
5
+ };
6
+ export { CopyOp };
@@ -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.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.1",
37
+ "@types/node": "22.5.4",
38
38
  "esbuild": "^0.23.1",
39
39
  "memfs": "^4.11.1",
40
- "typescript": "^5.5.4"
40
+ "typescript": "^5.6.2"
41
41
  },
42
42
  "dependencies": {
43
43
  "@jsonic/jsonic-next": "^2.12.1"
@@ -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: string
15
- fs: any
16
- meta: any
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
- node,
74
+ ctx$,
59
75
  {
60
76
  fs,
61
77
  current: {
62
78
  folder: {
63
- parent: opts.folder
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(topnode: Node, ctx: any) {
77
- step(topnode, ctx)
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, ctx: any) {
104
- const cproject: any = ctx.current.project = (ctx.current.project || {})
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, ctx: any) {
116
- const cfolder = ctx.current.folder = (ctx.current.folder || {})
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 || [ctx.current.folder.parent])
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
- ctx.fs.mkdirSync(fullpath, { recursive: true })
140
+ buildctx.fs.mkdirSync(fullpath, { recursive: true })
124
141
  },
125
142
 
126
143
 
127
- after(_node: Node, ctx: any) {
128
- const cfolder = ctx.current.folder
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, ctx: any) {
136
- const cfile = ctx.current.file = node
137
- cfile.path = ctx.current.folder.path.join('/') + '/' + node.name
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, ctx: any) {
142
- const cfile = ctx.current.file
158
+ after(_node: Node, _ctx$: any, buildctx: any) {
159
+ const cfile = buildctx.current.file
143
160
  const content = cfile.content.join('')
144
- ctx.fs.writeFileSync(cfile.path, content)
161
+ buildctx.fs.writeFileSync(cfile.path, content)
145
162
  },
146
163
  },
147
164
 
148
165
 
149
166
  content: {
150
- before(node: Node, ctx: any) {
151
- const content = ctx.current.content = node
152
- ctx.current.file.content.push(content.content)
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
 
@@ -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
+ }
@@ -0,0 +1,12 @@
1
+
2
+
3
+
4
+ const CopyOp = {
5
+
6
+
7
+ }
8
+
9
+
10
+ export {
11
+ CopyOp
12
+ }