jostraca 0.11.1 → 0.13.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/Content.js +3 -1
- package/dist/cmp/Content.js.map +1 -1
- package/dist/cmp/Copy.js.map +1 -1
- package/dist/cmp/Fragment.js +35 -1
- package/dist/cmp/Fragment.js.map +1 -1
- package/dist/cmp/Slot.d.ts +2 -0
- package/dist/cmp/Slot.js +12 -0
- package/dist/cmp/Slot.js.map +1 -0
- package/dist/jostraca.d.ts +4 -2
- package/dist/jostraca.js +53 -15
- package/dist/jostraca.js.map +1 -1
- package/dist/op/ContentOp.js +2 -10
- package/dist/op/ContentOp.js.map +1 -1
- package/dist/op/FragmentOp.d.ts +1 -1
- package/dist/op/FragmentOp.js +3 -30
- package/dist/op/FragmentOp.js.map +1 -1
- package/dist/op/SlotOp.d.ts +6 -0
- package/dist/op/SlotOp.js +18 -0
- package/dist/op/SlotOp.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/utility.d.ts +3 -1
- package/dist/utility.js +119 -27
- package/dist/utility.js.map +1 -1
- package/package.json +4 -4
- package/src/cmp/Content.ts +4 -1
- package/src/cmp/Copy.ts +0 -2
- package/src/cmp/Fragment.ts +47 -2
- package/src/cmp/Slot.ts +19 -0
- package/src/cmp/Slot.ts~ +24 -0
- package/src/jostraca.ts +67 -18
- package/src/op/ContentOp.ts +2 -11
- package/src/op/FragmentOp.ts +3 -38
- package/src/op/SlotOp.ts +30 -0
- package/src/op/SlotOp.ts~ +31 -0
- package/src/types.ts +6 -0
- package/src/utility.ts +117 -21
package/dist/cmp/Content.js
CHANGED
|
@@ -8,7 +8,9 @@ const Content = (0, jostraca_1.cmp)(function Content(props, children) {
|
|
|
8
8
|
let src = null != props.arg ? props.arg :
|
|
9
9
|
null != props.src ? props.src :
|
|
10
10
|
'string' === typeof children ? children : '';
|
|
11
|
-
src = (0, jostraca_1.template)(src, props.ctx$.model
|
|
11
|
+
src = (0, jostraca_1.template)(src, props.ctx$.model, {
|
|
12
|
+
replace: props.replace
|
|
13
|
+
});
|
|
12
14
|
node.content = src;
|
|
13
15
|
node.name = props.name;
|
|
14
16
|
});
|
package/dist/cmp/Content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","sourceRoot":"","sources":["../../src/cmp/Content.ts"],"names":[],"mappings":";;;AAGA,0CAA2C;AAG3C,MAAM,OAAO,GAAG,IAAA,cAAG,EAAC,SAAS,OAAO,CAAC,KAAU,EAAE,QAAa;IAC5D,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACrB,IAAI,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,QAAQ,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"Content.js","sourceRoot":"","sources":["../../src/cmp/Content.ts"],"names":[],"mappings":";;;AAGA,0CAA2C;AAG3C,MAAM,OAAO,GAAG,IAAA,cAAG,EAAC,SAAS,OAAO,CAAC,KAAU,EAAE,QAAa;IAC5D,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACrB,IAAI,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,QAAQ,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAEhD,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAA;IACF,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;AACxB,CAAC,CAAC,CAAA;AAKA,0BAAO"}
|
package/dist/cmp/Copy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/cmp/Copy.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAGjC,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU,EAAE,SAAc;IACvD,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/cmp/Copy.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAGjC,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU,EAAE,SAAc;IACvD,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;AACrE,CAAC,CAAC,CAAA;AAIA,oBAAI"}
|
package/dist/cmp/Fragment.js
CHANGED
|
@@ -1,14 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Fragment = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
4
8
|
const jostraca_1 = require("../jostraca");
|
|
5
9
|
const Fragment = (0, jostraca_1.cmp)(function Fragment(props, children) {
|
|
6
10
|
const node = props.ctx$.node;
|
|
7
11
|
node.kind = 'fragment';
|
|
8
12
|
node.from = props.from;
|
|
9
13
|
node.indent = props.indent;
|
|
10
|
-
node.meta.replace = props.replace
|
|
14
|
+
// const replace = node.meta.replace = props.replace
|
|
15
|
+
const replace = props.replace || {};
|
|
16
|
+
const { fs, folder, model } = props.ctx$;
|
|
17
|
+
let frompath = node.from;
|
|
18
|
+
// TODO: this is relative to the output - but that is just one case - provide more control?
|
|
19
|
+
if (!node_path_1.default.isAbsolute(frompath)) {
|
|
20
|
+
frompath = node_path_1.default.join(folder, ...node.path, frompath);
|
|
21
|
+
}
|
|
22
|
+
let src = fs.readFileSync(frompath, 'utf8');
|
|
23
|
+
const slotnames = {};
|
|
24
|
+
node.filter = (({ props, component }) => (('Slot' === component.name ? slotnames[props.name] = true : null), false));
|
|
11
25
|
(0, jostraca_1.each)(children, { call: true });
|
|
26
|
+
node.filter = undefined;
|
|
27
|
+
replace['/[ \\t]*[-<!/#*]*[ \\t]*<\\[SLOT]>[ \\t]*[->/#*]*[ \\t]*/'] =
|
|
28
|
+
() => {
|
|
29
|
+
node.filter = (({ component }) => 'Slot' !== component.name);
|
|
30
|
+
(0, jostraca_1.each)(children, { call: true });
|
|
31
|
+
node.filter = undefined;
|
|
32
|
+
};
|
|
33
|
+
(0, jostraca_1.each)(slotnames, (slot) => {
|
|
34
|
+
replace['/[ \\t]*[-<!/#*]*[ \\t]*<\\[SLOT:' +
|
|
35
|
+
(0, jostraca_1.escre)(slot.key$) +
|
|
36
|
+
']>[ \\t]*[->/#*]*[ \\t]*/'] = () => {
|
|
37
|
+
node.filter = (({ props, component }) => 'Slot' === component.name && slot.key$ === props.name);
|
|
38
|
+
(0, jostraca_1.each)(children, { call: true });
|
|
39
|
+
node.filter = undefined;
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
(0, jostraca_1.template)(src, model, {
|
|
43
|
+
replace,
|
|
44
|
+
handle: (s) => null == s ? null : (0, jostraca_1.Content)(s)
|
|
45
|
+
});
|
|
12
46
|
});
|
|
13
47
|
exports.Fragment = Fragment;
|
|
14
48
|
//# sourceMappingURL=Fragment.js.map
|
package/dist/cmp/Fragment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../../src/cmp/Fragment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../../src/cmp/Fragment.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAI5B,0CAAiE;AAGjE,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU,EAAE,QAAa;IAC9D,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAElC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1B,oDAAoD;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IAGnC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAA;IACxC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAc,CAAA;IAElC,2FAA2F;IAC3F,IAAI,CAAC,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAG3C,MAAM,SAAS,GAA4B,EAAE,CAAA;IAE7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CACtC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7E,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IAEvB,OAAO,CAAC,2DAA2D,CAAC;QAClE,GAAG,EAAE;YACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,CAAA;YAC5D,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACzB,CAAC,CAAA;IAEH,IAAA,eAAI,EAAC,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE;QAC5B,OAAO,CACL,mCAAmC;YACnC,IAAA,gBAAK,EAAC,IAAI,CAAC,IAAI,CAAC;YAChB,2BAA2B,CAC5B,GAAG,GAAG,EAAE;YACP,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CACtC,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;YACxD,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACzB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,mBAAQ,EAAC,GAAG,EAAE,KAAK,EAAE;QACnB,OAAO;QACP,MAAM,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAO,EAAC,CAAC,CAAC;KACtD,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
|
package/dist/cmp/Slot.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Slot = void 0;
|
|
4
|
+
const jostraca_1 = require("../jostraca");
|
|
5
|
+
const Slot = (0, jostraca_1.cmp)(function Slot(props, children) {
|
|
6
|
+
const node = props.ctx$.node;
|
|
7
|
+
node.kind = 'slot';
|
|
8
|
+
node.name = props.name;
|
|
9
|
+
(0, jostraca_1.each)(children, { call: true });
|
|
10
|
+
});
|
|
11
|
+
exports.Slot = Slot;
|
|
12
|
+
//# sourceMappingURL=Slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slot.js","sourceRoot":"","sources":["../../src/cmp/Slot.ts"],"names":[],"mappings":";;;AAGA,0CAAuC;AAGvC,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU,EAAE,QAAa;IACtD,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAEtB,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAIA,oBAAI"}
|
package/dist/jostraca.d.ts
CHANGED
|
@@ -2,15 +2,17 @@ import type { JostracaOptions, Node, Component } from './types';
|
|
|
2
2
|
import { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre } from './utility';
|
|
3
3
|
import { Content } from './cmp/Content';
|
|
4
4
|
import { Line } from './cmp/Line';
|
|
5
|
+
import { Slot } from './cmp/Slot';
|
|
5
6
|
import { Copy } from './cmp/Copy';
|
|
6
7
|
import { File } from './cmp/File';
|
|
7
8
|
import { Inject } from './cmp/Inject';
|
|
8
9
|
import { Fragment } from './cmp/Fragment';
|
|
9
10
|
import { Folder } from './cmp/Folder';
|
|
10
11
|
import { Project } from './cmp/Project';
|
|
11
|
-
declare
|
|
12
|
+
declare const deep: any;
|
|
13
|
+
declare function Jostraca(gopts?: JostracaOptions): {
|
|
12
14
|
generate: (opts: JostracaOptions, root: Function) => Promise<any>;
|
|
13
15
|
};
|
|
14
16
|
declare function cmp(component: Function): Component;
|
|
15
17
|
export type { JostracaOptions, Component, Node, };
|
|
16
|
-
export { Jostraca, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, Project, Content, File, Inject, Fragment, Folder, Copy, Line, };
|
|
18
|
+
export { Jostraca, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, deep, Project, Content, File, Inject, Fragment, Folder, Copy, Line, Slot, };
|
package/dist/jostraca.js
CHANGED
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.Line = exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.escre = exports.template = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.select = exports.each = void 0;
|
|
40
|
+
exports.Slot = exports.Line = exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.deep = exports.escre = exports.template = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.select = exports.each = void 0;
|
|
41
41
|
exports.Jostraca = Jostraca;
|
|
42
42
|
exports.cmp = cmp;
|
|
43
43
|
// TODO:
|
|
@@ -46,6 +46,8 @@ exports.cmp = cmp;
|
|
|
46
46
|
const Fs = __importStar(require("node:fs"));
|
|
47
47
|
const node_path_1 = __importDefault(require("node:path"));
|
|
48
48
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
49
|
+
const jsonic_1 = require("jsonic");
|
|
50
|
+
const memfs_1 = require("memfs");
|
|
49
51
|
const utility_1 = require("./utility");
|
|
50
52
|
Object.defineProperty(exports, "each", { enumerable: true, get: function () { return utility_1.each; } });
|
|
51
53
|
Object.defineProperty(exports, "select", { enumerable: true, get: function () { return utility_1.select; } });
|
|
@@ -63,6 +65,8 @@ const Content_1 = require("./cmp/Content");
|
|
|
63
65
|
Object.defineProperty(exports, "Content", { enumerable: true, get: function () { return Content_1.Content; } });
|
|
64
66
|
const Line_1 = require("./cmp/Line");
|
|
65
67
|
Object.defineProperty(exports, "Line", { enumerable: true, get: function () { return Line_1.Line; } });
|
|
68
|
+
const Slot_1 = require("./cmp/Slot");
|
|
69
|
+
Object.defineProperty(exports, "Slot", { enumerable: true, get: function () { return Slot_1.Slot; } });
|
|
66
70
|
const Copy_1 = require("./cmp/Copy");
|
|
67
71
|
Object.defineProperty(exports, "Copy", { enumerable: true, get: function () { return Copy_1.Copy; } });
|
|
68
72
|
const File_1 = require("./cmp/File");
|
|
@@ -79,10 +83,13 @@ const CopyOp_1 = require("./op/CopyOp");
|
|
|
79
83
|
const ProjectOp_1 = require("./op/ProjectOp");
|
|
80
84
|
const FolderOp_1 = require("./op/FolderOp");
|
|
81
85
|
const FileOp_1 = require("./op/FileOp");
|
|
86
|
+
const SlotOp_1 = require("./op/SlotOp");
|
|
82
87
|
const InjectOp_1 = require("./op/InjectOp");
|
|
83
88
|
const FragmentOp_1 = require("./op/FragmentOp");
|
|
84
89
|
const ContentOp_1 = require("./op/ContentOp");
|
|
85
90
|
const NoneOp_1 = require("./op/NoneOp");
|
|
91
|
+
const deep = jsonic_1.util.deep;
|
|
92
|
+
exports.deep = deep;
|
|
86
93
|
const GLOBAL = global;
|
|
87
94
|
const DEFAULT_LOGGER = {
|
|
88
95
|
trace: (...args) => console.log(new Date().toISOString(), 'TRACE', ...args),
|
|
@@ -92,18 +99,27 @@ const DEFAULT_LOGGER = {
|
|
|
92
99
|
error: (...args) => console.error(new Date().toISOString(), 'ERROR', ...args),
|
|
93
100
|
fatal: (...args) => console.error(new Date().toISOString(), 'FATAL', ...args),
|
|
94
101
|
};
|
|
95
|
-
function Jostraca() {
|
|
102
|
+
function Jostraca(gopts) {
|
|
96
103
|
GLOBAL.jostraca = new node_async_hooks_1.AsyncLocalStorage();
|
|
97
104
|
async function generate(opts, root) {
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
|
|
105
|
+
const useMemFS = opts.mem || gopts?.mem;
|
|
106
|
+
const memfs = useMemFS ? (0, memfs_1.memfs)(opts.vol || gopts?.vol || {}) : undefined;
|
|
107
|
+
const fs = opts.fs || gopts?.fs || memfs?.fs || Fs;
|
|
108
|
+
const meta = {
|
|
109
|
+
...(gopts?.meta || {}),
|
|
110
|
+
...(opts.meta || {}),
|
|
111
|
+
};
|
|
112
|
+
const folder = opts.folder || gopts?.folder || '.';
|
|
113
|
+
const log = opts.log || gopts?.log || DEFAULT_LOGGER;
|
|
114
|
+
const debug = !!(null == opts.debug ? gopts?.debug : opts.debug);
|
|
115
|
+
const doBuild = null == gopts?.build ? false !== opts.build : false !== gopts?.build;
|
|
116
|
+
const model = opts.model || gopts?.model || {};
|
|
103
117
|
// Component defaults.
|
|
104
|
-
opts.cmp = (
|
|
105
|
-
|
|
106
|
-
|
|
118
|
+
opts.cmp = deep({
|
|
119
|
+
Copy: {
|
|
120
|
+
ignore: [/~$/]
|
|
121
|
+
}
|
|
122
|
+
}, gopts?.cmp, opts.cmp);
|
|
107
123
|
const ctx$ = {
|
|
108
124
|
folder,
|
|
109
125
|
content: null,
|
|
@@ -112,15 +128,17 @@ function Jostraca() {
|
|
|
112
128
|
opts,
|
|
113
129
|
log,
|
|
114
130
|
debug,
|
|
131
|
+
model,
|
|
115
132
|
};
|
|
116
133
|
return GLOBAL.jostraca.run(ctx$, async () => {
|
|
117
134
|
// Define phase
|
|
118
135
|
root();
|
|
119
136
|
const ctx$ = GLOBAL.jostraca.getStore();
|
|
120
|
-
// console.dir(ctx$.node, { depth: null })
|
|
121
137
|
// Build phase
|
|
122
138
|
const buildctx = {
|
|
139
|
+
root: ctx$.root,
|
|
123
140
|
fs,
|
|
141
|
+
vol: memfs?.vol,
|
|
124
142
|
folder,
|
|
125
143
|
current: {
|
|
126
144
|
folder: {
|
|
@@ -128,7 +146,9 @@ function Jostraca() {
|
|
|
128
146
|
}
|
|
129
147
|
}
|
|
130
148
|
};
|
|
131
|
-
|
|
149
|
+
if (doBuild) {
|
|
150
|
+
await build(ctx$, buildctx);
|
|
151
|
+
}
|
|
132
152
|
return buildctx;
|
|
133
153
|
});
|
|
134
154
|
}
|
|
@@ -169,7 +189,16 @@ function Jostraca() {
|
|
|
169
189
|
await op.before(node, ctx$, buildctx);
|
|
170
190
|
if (node.children) {
|
|
171
191
|
for (let childnode of node.children) {
|
|
172
|
-
|
|
192
|
+
try {
|
|
193
|
+
await step(childnode, ctx$, buildctx);
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
console.log('JERR', childnode);
|
|
197
|
+
if (childnode.meta.callsite) {
|
|
198
|
+
err.callsite = childnode.meta.callsite;
|
|
199
|
+
}
|
|
200
|
+
throw err;
|
|
201
|
+
}
|
|
173
202
|
}
|
|
174
203
|
}
|
|
175
204
|
await op.after(node, ctx$, buildctx);
|
|
@@ -191,6 +220,7 @@ function Jostraca() {
|
|
|
191
220
|
fragment: FragmentOp_1.FragmentOp,
|
|
192
221
|
content: ContentOp_1.ContentOp,
|
|
193
222
|
copy: CopyOp_1.CopyOp,
|
|
223
|
+
slot: SlotOp_1.SlotOp,
|
|
194
224
|
none: NoneOp_1.NoneOp,
|
|
195
225
|
};
|
|
196
226
|
return {
|
|
@@ -199,11 +229,18 @@ function Jostraca() {
|
|
|
199
229
|
}
|
|
200
230
|
function cmp(component) {
|
|
201
231
|
const cf = (props, children) => {
|
|
202
|
-
|
|
232
|
+
children = null == children ?
|
|
233
|
+
(('function' === typeof props || Array.isArray(props)) ? props : null) : children;
|
|
203
234
|
if (null == props || 'object' !== typeof props) {
|
|
204
235
|
props = { arg: props };
|
|
205
236
|
}
|
|
206
237
|
props.ctx$ = GLOBAL.jostraca.getStore();
|
|
238
|
+
let parent = props.ctx$.node;
|
|
239
|
+
// console.log('BBB', component, props, parent?.filter?.({ props }))
|
|
240
|
+
if (parent?.filter && !parent.filter({ props, children, component })) {
|
|
241
|
+
// console.log('PF', component, props)
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
207
244
|
children = 'function' === typeof children ? [children] : children;
|
|
208
245
|
let node = {
|
|
209
246
|
kind: 'none',
|
|
@@ -211,11 +248,12 @@ function cmp(component) {
|
|
|
211
248
|
path: [],
|
|
212
249
|
meta: {},
|
|
213
250
|
};
|
|
251
|
+
props.ctx$.root = (props.ctx$.root || node);
|
|
252
|
+
parent = props.ctx$.node || node;
|
|
214
253
|
if (props.ctx$.debug) {
|
|
215
254
|
node.meta.debug = (node.meta.debug || {});
|
|
216
255
|
node.meta.debug.callsite = new Error('component: ' + component.name).stack;
|
|
217
256
|
}
|
|
218
|
-
const parent = props.ctx$.node = (props.ctx$.node || node);
|
|
219
257
|
const siblings = props.ctx$.children = (props.ctx$.children || []);
|
|
220
258
|
siblings.push(node);
|
|
221
259
|
props.ctx$.children = node.children;
|
package/dist/jostraca.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jostraca.js","sourceRoot":"","sources":["../src/jostraca.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"jostraca.js","sourceRoot":"","sources":["../src/jostraca.ts"],"names":[],"mappings":"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"}
|
package/dist/op/ContentOp.js
CHANGED
|
@@ -3,16 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ContentOp = void 0;
|
|
4
4
|
const ContentOp = {
|
|
5
5
|
before(node, _ctx$, buildctx) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
buildctx.current.file.content.push(content.content);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
let contentMap = buildctx.current.file.meta.content_map = (buildctx.current.file.meta.content_map || {});
|
|
12
|
-
contentMap[node.name] = (contentMap[node.name] || []);
|
|
13
|
-
contentMap[node.name].push(node.content);
|
|
14
|
-
// console.log('CN', node.name, contentMap)
|
|
15
|
-
}
|
|
6
|
+
const content = buildctx.current.content = node;
|
|
7
|
+
buildctx.current.file.content.push(content.content);
|
|
16
8
|
},
|
|
17
9
|
after(_node, _ctx$, buildctx) { },
|
|
18
10
|
};
|
package/dist/op/ContentOp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentOp.js","sourceRoot":"","sources":["../../src/op/ContentOp.ts"],"names":[],"mappings":";;;AAKA,MAAM,SAAS,GAAG;IAChB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,
|
|
1
|
+
{"version":3,"file":"ContentOp.js","sourceRoot":"","sources":["../../src/op/ContentOp.ts"],"names":[],"mappings":";;;AAKA,MAAM,SAAS,GAAG;IAChB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QAC/C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,KAAW,EAAE,KAAU,EAAE,QAAa,IAAI,CAAC;CAClD,CAAA;AAIC,8BAAS"}
|
package/dist/op/FragmentOp.d.ts
CHANGED
package/dist/op/FragmentOp.js
CHANGED
|
@@ -1,42 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.FragmentOp = void 0;
|
|
7
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
-
const jostraca_1 = require("../jostraca");
|
|
9
4
|
const FragmentOp = {
|
|
10
5
|
before(node, _ctx$, buildctx) {
|
|
11
6
|
node.meta.fragment_file = buildctx.current.file;
|
|
12
7
|
const cfile = buildctx.current.file = node;
|
|
13
|
-
cfile.filepath = buildctx.current.folder.path.join('/') + '
|
|
8
|
+
cfile.filepath = buildctx.current.folder.path.join('/') + '?fragment=' + node.name;
|
|
14
9
|
cfile.content = [];
|
|
15
10
|
},
|
|
16
|
-
after(node,
|
|
17
|
-
|
|
18
|
-
let frompath = node.from;
|
|
19
|
-
// TODO: this is relative to the output - but that is just one case - provide more control?
|
|
20
|
-
if (!node_path_1.default.isAbsolute(frompath)) {
|
|
21
|
-
frompath = node_path_1.default.join(buildctx.folder, ...node.path, frompath);
|
|
22
|
-
}
|
|
23
|
-
let src = fs.readFileSync(frompath, 'utf8');
|
|
24
|
-
let replace = node.meta.replace || {};
|
|
25
|
-
let content = buildctx.current.file.content;
|
|
26
|
-
if (0 < content.length) {
|
|
27
|
-
// NOTE: RegExp consumes comment markers in same line.
|
|
28
|
-
replace['/[ \\t]*[-</#*]*[ \\t]*<\\[SLOT]>[ \\t]*[-</#*]*[ \\t]*/'] = content.join('');
|
|
29
|
-
}
|
|
30
|
-
const contentMap = node.meta.content_map || {};
|
|
31
|
-
(0, jostraca_1.each)(contentMap, (content) => {
|
|
32
|
-
replace['/[ \\t]*[-</#*]*[ \\t]*<\\[SLOT:' +
|
|
33
|
-
(0, jostraca_1.escre)(content.key$) +
|
|
34
|
-
']>[ \\t]*[-</#*]*[ \\t]*/'] =
|
|
35
|
-
content.join('');
|
|
36
|
-
});
|
|
37
|
-
// console.log('REPLACE', replace)
|
|
38
|
-
src = (0, jostraca_1.template)(src, ctx$.model, { replace });
|
|
39
|
-
// console.log('SRC', src)
|
|
11
|
+
after(node, _ctx$, buildctx) {
|
|
12
|
+
let src = node.content?.join('') || '';
|
|
40
13
|
if ('string' === typeof node.indent) {
|
|
41
14
|
src = src.replace(/([^\n]+\n)/g, node.indent + '$1');
|
|
42
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentOp.js","sourceRoot":"","sources":["../../src/op/FragmentOp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FragmentOp.js","sourceRoot":"","sources":["../../src/op/FragmentOp.ts"],"names":[],"mappings":";;;AAIA,MAAM,UAAU,GAAG;IAEjB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA;QAE/C,MAAM,KAAK,GAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QAC/C,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAA;QAClF,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;IACpB,CAAC;IAGD,KAAK,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QACzC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QAEtC,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QACtD,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;QAC/C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;CAEF,CAAA;AAIC,gCAAU"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SlotOp = void 0;
|
|
4
|
+
const SlotOp = {
|
|
5
|
+
before(node, _ctx$, buildctx) {
|
|
6
|
+
node.meta.fragment_file = buildctx.current.file;
|
|
7
|
+
const cfile = buildctx.current.file = node;
|
|
8
|
+
cfile.filepath = buildctx.current.folder.path.join('/') + '?slot=' + node.name;
|
|
9
|
+
cfile.content = [];
|
|
10
|
+
},
|
|
11
|
+
after(node, ctx$, buildctx) {
|
|
12
|
+
let src = node.content?.join('') || '';
|
|
13
|
+
buildctx.current.file = node.meta.fragment_file;
|
|
14
|
+
buildctx.current.file.content.push(src);
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
exports.SlotOp = SlotOp;
|
|
18
|
+
//# sourceMappingURL=SlotOp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlotOp.js","sourceRoot":"","sources":["../../src/op/SlotOp.ts"],"names":[],"mappings":";;;AAMA,MAAM,MAAM,GAAG;IAEb,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAA;QAE/C,MAAM,KAAK,GAAQ,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QAC/C,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QAC9E,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;IACpB,CAAC;IAGD,KAAK,CAAC,IAAU,EAAE,IAAS,EAAE,QAAa;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QAEtC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;QAC/C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;CAEF,CAAA;AAIC,wBAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/jostraca.ts","../src/types.ts","../src/utility.ts","../src/cmp/content.ts","../src/cmp/copy.ts","../src/cmp/file.ts","../src/cmp/folder.ts","../src/cmp/fragment.ts","../src/cmp/inject.ts","../src/cmp/line.ts","../src/cmp/project.ts","../src/op/contentop.ts","../src/op/copyop.ts","../src/op/fileop.ts","../src/op/folderop.ts","../src/op/fragmentop.ts","../src/op/injectop.ts","../src/op/noneop.ts","../src/op/projectop.ts"],"version":"5.7.2"}
|
|
1
|
+
{"root":["../src/jostraca.ts","../src/types.ts","../src/utility.ts","../src/cmp/content.ts","../src/cmp/copy.ts","../src/cmp/file.ts","../src/cmp/folder.ts","../src/cmp/fragment.ts","../src/cmp/inject.ts","../src/cmp/line.ts","../src/cmp/project.ts","../src/cmp/slot.ts","../src/op/contentop.ts","../src/op/copyop.ts","../src/op/fileop.ts","../src/op/folderop.ts","../src/op/fragmentop.ts","../src/op/injectop.ts","../src/op/noneop.ts","../src/op/projectop.ts","../src/op/slotop.ts"],"version":"5.7.2"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ type JostracaOptions = {
|
|
|
5
5
|
fs?: any;
|
|
6
6
|
log?: Log;
|
|
7
7
|
debug?: boolean;
|
|
8
|
+
model?: any;
|
|
9
|
+
build?: boolean;
|
|
10
|
+
mem?: boolean;
|
|
11
|
+
vol?: any;
|
|
8
12
|
cmp?: {
|
|
9
13
|
Copy?: {
|
|
10
14
|
ignore?: RegExp[];
|
|
@@ -23,6 +27,7 @@ type Node = {
|
|
|
23
27
|
after?: any;
|
|
24
28
|
exclude?: boolean | string | string[];
|
|
25
29
|
indent?: string;
|
|
30
|
+
filter?: (props: any, children: any, component: any) => boolean;
|
|
26
31
|
};
|
|
27
32
|
type OpStep = (node: Node, ctx$: any, buildctx: any) => Promise<any> | void;
|
|
28
33
|
type OpDef = {
|
package/dist/utility.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
declare function each(subject?: any[] | Object, // Iterate over subject.
|
|
2
|
-
|
|
2
|
+
spec?: {
|
|
3
3
|
mark?: boolean;
|
|
4
4
|
oval?: boolean;
|
|
5
5
|
sort?: boolean | string;
|
|
6
6
|
call?: boolean;
|
|
7
|
+
args?: any;
|
|
7
8
|
} | ((...a: any[]) => any), apply?: (...a: any[]) => any): any[];
|
|
8
9
|
declare function select(key: any, map: Record<string, Function>): any;
|
|
9
10
|
declare function getx(root: any, path: string | string[]): any;
|
|
@@ -19,6 +20,7 @@ declare function template(src: string, model: any, spec?: {
|
|
|
19
20
|
ref?: string;
|
|
20
21
|
insert?: RegExp;
|
|
21
22
|
replace?: Record<string, any>;
|
|
23
|
+
handle?: (s?: string) => void;
|
|
22
24
|
}): string;
|
|
23
25
|
declare function cmap(o: any, p: any): any;
|
|
24
26
|
declare namespace cmap {
|