jostraca 0.8.1 → 0.9.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.
@@ -2,11 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Content = void 0;
4
4
  const jostraca_1 = require("../jostraca");
5
- const Content = (0, jostraca_1.cmp)(function Content(props, _children) {
5
+ const Content = (0, jostraca_1.cmp)(function Content(props, children) {
6
6
  const node = props.ctx$.node;
7
7
  node.kind = 'content';
8
- let src = props.arg;
8
+ let src = null != props.arg ? props.arg :
9
+ null != props.src ? props.src :
10
+ 'string' === typeof children ? children : '';
11
+ src = (0, jostraca_1.template)(src, props.ctx$.model);
9
12
  node.content = src;
13
+ node.name = props.name;
10
14
  });
11
15
  exports.Content = Content;
12
16
  //# sourceMappingURL=Content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Content.js","sourceRoot":"","sources":["../../src/cmp/Content.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAGjC,MAAM,OAAO,GAAG,IAAA,cAAG,EAAC,SAAS,OAAO,CAAC,KAAU,EAAE,SAAc;IAC7D,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACrB,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IACnB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;AACpB,CAAC,CAAC,CAAA;AAKA,0BAAO"}
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;IAChD,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;AACxB,CAAC,CAAC,CAAA;AAKA,0BAAO"}
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Fragment = void 0;
4
4
  const jostraca_1 = require("../jostraca");
5
- const Fragment = (0, jostraca_1.cmp)(function Fragment(props, _children) {
5
+ const Fragment = (0, jostraca_1.cmp)(function Fragment(props, children) {
6
6
  const node = props.ctx$.node;
7
7
  node.kind = 'fragment';
8
8
  node.from = props.from;
9
9
  node.indent = props.indent;
10
+ (0, jostraca_1.each)(children, { call: true });
10
11
  });
11
12
  exports.Fragment = Fragment;
12
13
  //# sourceMappingURL=Fragment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../../src/cmp/Fragment.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAGjC,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU,EAAE,SAAc;IAC/D,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;AAC5B,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
1
+ {"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../../src/cmp/Fragment.ts"],"names":[],"mappings":";;;AAGA,0CAAuC;AAGvC,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;IAE1B,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
@@ -1,5 +1,5 @@
1
1
  import type { JostracaOptions, Node, Component } from './types';
2
- import { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names } from './utility';
2
+ import { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template } from './utility';
3
3
  import { Content } from './cmp/Content';
4
4
  import { Copy } from './cmp/Copy';
5
5
  import { File } from './cmp/File';
@@ -12,4 +12,4 @@ declare function Jostraca(): {
12
12
  };
13
13
  declare function cmp(component: Function): Component;
14
14
  export type { JostracaOptions, Component, Node, };
15
- export { Jostraca, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, Project, Content, File, Inject, Fragment, Folder, Copy, };
15
+ export { Jostraca, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, Project, Content, File, Inject, Fragment, Folder, Copy, };
package/dist/jostraca.js CHANGED
@@ -16,20 +16,33 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
27
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
38
  };
29
39
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.select = exports.each = void 0;
40
+ exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.template = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.select = exports.each = void 0;
31
41
  exports.Jostraca = Jostraca;
32
42
  exports.cmp = cmp;
43
+ // TODO:
44
+ // Need to check file existence in define phase, otherwise error stack is useless
45
+ // Options for each cmp; for copy, option to exclude ~ backups
33
46
  const Fs = __importStar(require("node:fs"));
34
47
  const node_path_1 = __importDefault(require("node:path"));
35
48
  const node_async_hooks_1 = require("node:async_hooks");
@@ -44,6 +57,7 @@ Object.defineProperty(exports, "kebabify", { enumerable: true, get: function ()
44
57
  Object.defineProperty(exports, "cmap", { enumerable: true, get: function () { return utility_1.cmap; } });
45
58
  Object.defineProperty(exports, "vmap", { enumerable: true, get: function () { return utility_1.vmap; } });
46
59
  Object.defineProperty(exports, "names", { enumerable: true, get: function () { return utility_1.names; } });
60
+ Object.defineProperty(exports, "template", { enumerable: true, get: function () { return utility_1.template; } });
47
61
  const Content_1 = require("./cmp/Content");
48
62
  Object.defineProperty(exports, "Content", { enumerable: true, get: function () { return Content_1.Content; } });
49
63
  const Copy_1 = require("./cmp/Copy");
@@ -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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"}
@@ -3,8 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ContentOp = void 0;
4
4
  const ContentOp = {
5
5
  before(node, _ctx$, buildctx) {
6
- const content = buildctx.current.content = node;
7
- buildctx.current.file.content.push(content.content);
6
+ if (null == node.name) {
7
+ const content = buildctx.current.content = node;
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
+ }
8
16
  },
9
17
  after(_node, _ctx$, buildctx) { },
10
18
  };
@@ -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,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"}
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,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;YAC/C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACrD,CAAC;aACI,CAAC;YACJ,IAAI,UAAU,GACZ,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;YACzF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACrD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxC,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAW,EAAE,KAAU,EAAE,QAAa,IAAI,CAAC;CAClD,CAAA;AAIC,8BAAS"}
package/dist/op/FileOp.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FileOp = void 0;
4
4
  const FileOp = {
5
5
  before(node, _ctx$, buildctx) {
6
+ // TODO: error if not inside a folder
6
7
  const cfile = buildctx.current.file = node;
7
8
  cfile.filepath = buildctx.current.folder.path.join('/') + '/' + node.name;
8
9
  cfile.content = [];
@@ -1 +1 @@
1
- {"version":3,"file":"FileOp.js","sourceRoot":"","sources":["../../src/op/FileOp.ts"],"names":[],"mappings":";;;AAMA,MAAM,MAAM,GAAG;IAEb,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,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,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QACzE,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;IACpB,CAAC;IAGD,KAAK,CAAC,IAAU,EAAE,IAAS,EAAE,QAAa;QACxC,sCAAsC;QAEtC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,uCAAuC;QAE1E,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEhD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE1B,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,OAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3D,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1C,EAAE,CAAA;YAEN,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAM;YACR,CAAC;QACH,CAAC;aACI,CAAC;YACJ,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;QAGD,uDAAuD;QAEvD,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnE,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAA;oBACvC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChD,OAAO,GAAG,IAAI,CAAA;wBACd,iFAAiF;oBACnF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,8EAA8E;QAE9E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;aACI,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;CAEF,CAAA;AAIC,wBAAM"}
1
+ {"version":3,"file":"FileOp.js","sourceRoot":"","sources":["../../src/op/FileOp.ts"],"names":[],"mappings":";;;AAMA,MAAM,MAAM,GAAG;IAEb,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,qCAAqC;QAErC,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,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QACzE,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;IACpB,CAAC;IAGD,KAAK,CAAC,IAAU,EAAE,IAAS,EAAE,QAAa;QACxC,sCAAsC;QAEtC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAA;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,uCAAuC;QAE1E,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEhD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE1B,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,OAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3D,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1C,EAAE,CAAA;YAEN,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAM;YACR,CAAC;QACH,CAAC;aACI,CAAC;YACJ,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;QAGD,uDAAuD;QAEvD,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnE,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAA;oBACvC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChD,OAAO,GAAG,IAAI,CAAA;wBACd,iFAAiF;oBACnF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,8EAA8E;QAE9E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;aACI,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;CAEF,CAAA;AAIC,wBAAM"}
@@ -5,22 +5,38 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FragmentOp = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
+ const jostraca_1 = require("../jostraca");
8
9
  const FragmentOp = {
9
10
  before(node, _ctx$, buildctx) {
11
+ node.meta.fragment_file = buildctx.current.file;
12
+ const cfile = buildctx.current.file = node;
13
+ cfile.filepath = buildctx.current.folder.path.join('/') + '#' + node.name;
14
+ cfile.content = [];
10
15
  },
11
16
  after(node, ctx$, buildctx) {
12
17
  const { fs } = buildctx;
13
18
  let frompath = node.from;
14
19
  // TODO: this is relative to the output - but that is just one case - provide more control?
15
20
  if (!node_path_1.default.isAbsolute(frompath)) {
16
- // console.log('FRAG REL', node.folder, node.path, frompath, '|') // , process.cwd(), buildctx)
17
21
  frompath = node_path_1.default.join(buildctx.folder, ...node.path, frompath);
18
- // console.log('FRAG RESOLVED', frompath)
19
22
  }
20
23
  let src = fs.readFileSync(frompath, 'utf8');
24
+ let replace = {};
25
+ let content = buildctx.current.file.content;
26
+ if (0 < content.length) {
27
+ replace['<[SLOT]>'] = content.join('');
28
+ }
29
+ const contentMap = node.meta.content_map || {};
30
+ (0, jostraca_1.each)(contentMap, (content) => {
31
+ replace['<[SLOT:' + content.key$ + ']>'] = content.join('');
32
+ });
33
+ // console.log('REPLACE', replace)
34
+ src = (0, jostraca_1.template)(src, ctx$.model, { replace });
35
+ // console.log('SRC', src)
21
36
  if ('string' === typeof node.indent) {
22
37
  src = src.replace(/([^\n]+\n)/g, node.indent + '$1');
23
38
  }
39
+ buildctx.current.file = node.meta.fragment_file;
24
40
  buildctx.current.file.content.push(src);
25
41
  },
26
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FragmentOp.js","sourceRoot":"","sources":["../../src/op/FragmentOp.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAK5B,MAAM,UAAU,GAAG;IAEjB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;IAC5C,CAAC;IAGD,KAAK,CAAC,IAAU,EAAE,IAAS,EAAE,QAAa;QACxC,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAA;QACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAc,CAAA;QAElC,2FAA2F;QAC3F,IAAI,CAAC,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,+FAA+F;YAC/F,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC7D,yCAAyC;QAC3C,CAAC;QAED,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE3C,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,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;CAEF,CAAA;AAIC,gCAAU"}
1
+ {"version":3,"file":"FragmentOp.js","sourceRoot":"","sources":["../../src/op/FragmentOp.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAE5B,0CAA4C;AAK5C,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,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QACzE,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;IACpB,CAAC;IAGD,KAAK,CAAC,IAAU,EAAE,IAAS,EAAE,QAAa;QACxC,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAA;QACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAc,CAAA;QAElC,2FAA2F;QAC3F,IAAI,CAAC,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE3C,IAAI,OAAO,GAAQ,EAAE,CAAA;QACrB,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;QAC9C,IAAA,eAAI,EAAC,UAAU,EAAE,CAAC,OAAY,EAAE,EAAE;YAChC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,kCAAkC;QAElC,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAE5C,0BAA0B;QAE1B,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"}
@@ -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/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.6.3"}
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/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"}
package/dist/utility.d.ts CHANGED
@@ -12,6 +12,14 @@ declare function camelify(input: any[] | string): string;
12
12
  declare function kebabify(input: any[] | string): string;
13
13
  declare function snakify(input: any[] | string): string;
14
14
  declare function names(base: any, name: string, prop?: string): void;
15
+ declare function escre(s: string): string;
16
+ declare function template(src: string, model: any, spec?: {
17
+ open?: string;
18
+ close?: string;
19
+ ref?: string;
20
+ insert?: RegExp;
21
+ replace?: Record<string, any>;
22
+ }): string;
15
23
  declare function cmap(o: any, p: any): any;
16
24
  declare namespace cmap {
17
25
  var COPY: (x: any) => any;
@@ -25,4 +33,4 @@ declare namespace vmap {
25
33
  var KEY: (_: any, p: any) => any;
26
34
  }
27
35
  declare const BINARY_EXT: string[];
28
- export { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, BINARY_EXT, };
36
+ export { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, BINARY_EXT, };
package/dist/utility.js CHANGED
@@ -12,6 +12,8 @@ exports.kebabify = kebabify;
12
12
  exports.cmap = cmap;
13
13
  exports.vmap = vmap;
14
14
  exports.names = names;
15
+ exports.template = template;
16
+ exports.escre = escre;
15
17
  // Iterate over arrays and objects (opinionated mutation!).
16
18
  function each(subject, // Iterate over subject.
17
19
  flags, apply) {
@@ -107,20 +109,13 @@ function getx(root, path) {
107
109
  else {
108
110
  return undefined;
109
111
  }
110
- // console.log('GETX', JSON.stringify(root).replace(/["\n]/g, ''))
111
- // console.log('TOKENS', tokens)
112
112
  let node = root;
113
113
  let out = undefined;
114
114
  let ancestry = false;
115
115
  for (let i = 0; i < tokens.length && undefined !== node; i++) {
116
116
  let t0 = tokens[i];
117
117
  let t1 = tokens[i + 1];
118
- // let what = ''
119
- // console.log('PART-S ', ancestry ? ':' : ' ', i, t0 + '|' + t1 + '|' + tokens.slice(i + 2),
120
- // ' N=', JSON.stringify(node || '').replace(/["\n]/g, ''),
121
- // ' O=', JSON.stringify(out || '').replace(/["\n]/g, ''))
122
118
  if (t1 && t1.match(/=|!=/)) {
123
- // what = 'O'
124
119
  let val = node[t0];
125
120
  let arg = tokens[i + 2];
126
121
  const argtype = typeof arg;
@@ -174,7 +169,6 @@ function getx(root, path) {
174
169
  }
175
170
  // Retain ancestry in result - getx({a:{b:1}},'a:b'}) === {a:{b:1}}
176
171
  else if (':' === t1) {
177
- // what = 'D'
178
172
  if ('=' !== tokens[i + 2]) {
179
173
  out = !ancestry ? node : out;
180
174
  node = node[t0];
@@ -186,9 +180,7 @@ function getx(root, path) {
186
180
  i++;
187
181
  }
188
182
  else if ('?' === t0) {
189
- // what = '?'
190
183
  let ftokens = tokens.slice(i + 1);
191
- // console.log('FTOKENS A', ftokens)
192
184
  // Two adjacent values marks the end of the filter
193
185
  // TODO: not great, find a better way
194
186
  let j = 0;
@@ -200,7 +192,6 @@ function getx(root, path) {
200
192
  }
201
193
  }
202
194
  ftokens.length = j;
203
- // console.log('FTOKENS B', ftokens)
204
195
  out = each(node)
205
196
  .filter((child) => undefined != getx(child, ftokens));
206
197
  if (null != node && 'object' === typeof node) {
@@ -215,9 +206,6 @@ function getx(root, path) {
215
206
  i += ftokens.length;
216
207
  }
217
208
  else if (null != t1) {
218
- // what = 'N'
219
- // console.log('NNN', dot, t0, out, node)
220
- // out = (dot && undefined !== node) ? out : node
221
209
  node = node[t0];
222
210
  if (ancestry) {
223
211
  ancestry = false;
@@ -226,14 +214,9 @@ function getx(root, path) {
226
214
  }
227
215
  }
228
216
  else {
229
- // what = 'M'
230
217
  node = node[t0];
231
218
  out = (ancestry && undefined !== node) ? out : node;
232
219
  }
233
- // console.log('PART-E', what,
234
- // ancestry ? ':' : ' ', i, t0 + '|' + t1 + '|' + tokens.slice(i + 2),
235
- // ' N=', JSON.stringify(node || '').replace(/["\n]/g, ''),
236
- // ' O=', JSON.stringify(out || '').replace(/["\n]/g, ''))
237
220
  }
238
221
  return out;
239
222
  }
@@ -266,6 +249,7 @@ function snakify(input) {
266
249
  .join('_');
267
250
  }
268
251
  function names(base, name, prop = 'name') {
252
+ name = '' + name;
269
253
  base.name$ = name;
270
254
  base[prop.toLowerCase()] = name.toLowerCase();
271
255
  base[camelify(prop)] = camelify(name);
@@ -273,6 +257,66 @@ function names(base, name, prop = 'name') {
273
257
  base[kebabify(prop)] = kebabify(name);
274
258
  base[prop.toUpperCase()] = name.toUpperCase();
275
259
  }
260
+ function escre(s) { return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); }
261
+ // NOTE: $$foo.bar$$ format used as explicit start and end markers mean regex can be used
262
+ // unambiguously ($fooa would not match `foo`)
263
+ function template(src, model, spec) {
264
+ src = null == src ? '' : '' + src;
265
+ model = null == model ? {} : model;
266
+ let open = null == spec?.open ? '\\$\\$' : spec.open;
267
+ let close = null == spec?.close ? '\\$\\$' : spec.close;
268
+ let ref = null == spec?.ref ? '[^$]+' : spec.ref;
269
+ let insertRE = null == spec?.insert ?
270
+ new RegExp('(' + open + ')(' + ref + ')(' + close + ')' +
271
+ ((Object.keys(spec?.replace || {}))
272
+ .map(k => '|(' + (k.match(/^\/.+\/$/) ? k.substring(1, k.length - 1) : escre(k)) + ')')
273
+ .join(''))) :
274
+ spec.insert;
275
+ let out = '';
276
+ let remain = src;
277
+ let nextm = true;
278
+ while (nextm) {
279
+ let m = remain.match(insertRE);
280
+ if (m) {
281
+ let mi = m.index;
282
+ out += remain.substring(0, mi);
283
+ let insert;
284
+ let skip = 0;
285
+ let ref = m[2];
286
+ if (null != ref) {
287
+ insert = '__insert__' === ref ? '' + insertRE : getx(model, ref);
288
+ skip = m[1].length + m[3].length;
289
+ }
290
+ else {
291
+ ref = '';
292
+ let rI = 4;
293
+ while (rI < m.length &&
294
+ '' === (ref = (null == m[rI] || '' == m[rI] ? '' : m[rI]))) {
295
+ rI++;
296
+ }
297
+ if ('' !== ref && spec?.replace) {
298
+ insert = spec.replace[Object.keys(spec.replace)[rI - 4]];
299
+ }
300
+ }
301
+ let ti = typeof insert;
302
+ if (null == insert || ('number' === ti && isNaN(insert))) {
303
+ out += (0 === skip ? '' : m[1]) + ref + (0 === skip ? '' : m[3]);
304
+ }
305
+ else if ('function' === ti) {
306
+ out += insert({ src, model, spec, ref, index: mi });
307
+ }
308
+ else {
309
+ out += ('object' === ti ? JSON.stringify(insert) : insert);
310
+ }
311
+ remain = remain.substring(mi + skip + ref.length);
312
+ }
313
+ else {
314
+ out += remain;
315
+ nextm = false;
316
+ }
317
+ }
318
+ return out;
319
+ }
276
320
  // Map child objects to new child objects
277
321
  function cmap(o, p) {
278
322
  return Object
@@ -1 +1 @@
1
- {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"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IACL,KAAK;IACL,UAAU;IACV,SAAS;IACT,OAAO;IACP,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,UAAU;IACV,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,UAAU;IACV,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,WAAW;IACX,WAAW;IACX,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,SAAS;IACT,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,OAAO;IACP,GAAG;IACH,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,GAAG;IACH,KAAK;IACL,MAAM;CACP,CAAA;AAgBC,gCAAU"}
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"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AAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,SAAS;IACT,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,OAAO;IACP,GAAG;IACH,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,GAAG;IACH,KAAK;IACL,MAAM;CACP,CAAA;AAkBC,gCAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jostraca",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "main": "dist/jostraca.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/jostraca.d.ts",
@@ -35,11 +35,11 @@
35
35
  ],
36
36
  "devDependencies": {
37
37
  "@hapi/code": "^9.0.3",
38
- "@types/node": "22.9.0",
38
+ "@types/node": "22.10.0",
39
39
  "esbuild": "^0.24.0",
40
40
  "memfs": "^4.14.0",
41
- "oxc-parser": "^0.36.0",
42
- "typescript": "^5.6.3"
41
+ "oxc-parser": "^0.38.0",
42
+ "typescript": "^5.7.2"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "jsonic": ">=2.15.2"
@@ -1,14 +1,18 @@
1
1
 
2
2
  import type { Node } from '../jostraca'
3
3
 
4
- import { cmp } from '../jostraca'
4
+ import { cmp, template } from '../jostraca'
5
5
 
6
6
 
7
- const Content = cmp(function Content(props: any, _children: any) {
7
+ const Content = cmp(function Content(props: any, children: any) {
8
8
  const node: Node = props.ctx$.node
9
9
  node.kind = 'content'
10
- let src = props.arg
10
+ let src = null != props.arg ? props.arg :
11
+ null != props.src ? props.src :
12
+ 'string' === typeof children ? children : ''
13
+ src = template(src, props.ctx$.model)
11
14
  node.content = src
15
+ node.name = props.name
12
16
  })
13
17
 
14
18
 
@@ -16,3 +20,4 @@ const Content = cmp(function Content(props: any, _children: any) {
16
20
  export {
17
21
  Content
18
22
  }
23
+
@@ -1,15 +1,17 @@
1
1
 
2
2
  import type { Node } from '../jostraca'
3
3
 
4
- import { cmp } from '../jostraca'
4
+ import { cmp, each } from '../jostraca'
5
5
 
6
6
 
7
- const Fragment = cmp(function Fragment(props: any, _children: any) {
7
+ const Fragment = cmp(function Fragment(props: any, children: any) {
8
8
  const node: Node = props.ctx$.node
9
9
 
10
10
  node.kind = 'fragment'
11
11
  node.from = props.from
12
12
  node.indent = props.indent
13
+
14
+ each(children, { call: true })
13
15
  })
14
16
 
15
17
 
package/src/jostraca.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  /* Copyright (c) 2024 Richard Rodger, MIT License */
2
2
 
3
+ // TODO:
4
+ // Need to check file existence in define phase, otherwise error stack is useless
5
+ // Options for each cmp; for copy, option to exclude ~ backups
6
+
7
+
3
8
  import * as Fs from 'node:fs'
4
9
  import Path from 'node:path'
5
10
 
@@ -26,6 +31,7 @@ import {
26
31
  cmap,
27
32
  vmap,
28
33
  names,
34
+ template,
29
35
  } from './utility'
30
36
 
31
37
 
@@ -254,6 +260,7 @@ export {
254
260
  cmap,
255
261
  vmap,
256
262
  names,
263
+ template,
257
264
 
258
265
  Project,
259
266
  Content,
@@ -5,8 +5,17 @@ import type { Node } from '../jostraca'
5
5
 
6
6
  const ContentOp = {
7
7
  before(node: Node, _ctx$: any, buildctx: any) {
8
- const content = buildctx.current.content = node
9
- buildctx.current.file.content.push(content.content)
8
+ if (null == node.name) {
9
+ const content = buildctx.current.content = node
10
+ buildctx.current.file.content.push(content.content)
11
+ }
12
+ else {
13
+ let contentMap =
14
+ buildctx.current.file.meta.content_map = (buildctx.current.file.meta.content_map || {})
15
+ contentMap[node.name] = (contentMap[node.name] || [])
16
+ contentMap[node.name].push(node.content)
17
+ // console.log('CN', node.name, contentMap)
18
+ }
10
19
  },
11
20
 
12
21
  after(_node: Node, _ctx$: any, buildctx: any) { },
package/src/op/FileOp.ts CHANGED
@@ -7,6 +7,8 @@ import type { Node } from '../jostraca'
7
7
  const FileOp = {
8
8
 
9
9
  before(node: Node, _ctx$: any, buildctx: any) {
10
+ // TODO: error if not inside a folder
11
+
10
12
  const cfile: any = buildctx.current.file = node
11
13
  cfile.filepath = buildctx.current.folder.path.join('/') + '/' + node.name
12
14
  cfile.content = []
@@ -1,12 +1,19 @@
1
1
 
2
2
  import Path from 'node:path'
3
3
 
4
+ import { each, template } from '../jostraca'
5
+
4
6
  import type { Node } from '../jostraca'
5
7
 
6
8
 
7
9
  const FragmentOp = {
8
10
 
9
11
  before(node: Node, _ctx$: any, buildctx: any) {
12
+ node.meta.fragment_file = buildctx.current.file
13
+
14
+ const cfile: any = buildctx.current.file = node
15
+ cfile.filepath = buildctx.current.folder.path.join('/') + '#' + node.name
16
+ cfile.content = []
10
17
  },
11
18
 
12
19
 
@@ -16,17 +23,33 @@ const FragmentOp = {
16
23
 
17
24
  // TODO: this is relative to the output - but that is just one case - provide more control?
18
25
  if (!Path.isAbsolute(frompath)) {
19
- // console.log('FRAG REL', node.folder, node.path, frompath, '|') // , process.cwd(), buildctx)
20
26
  frompath = Path.join(buildctx.folder, ...node.path, frompath)
21
- // console.log('FRAG RESOLVED', frompath)
22
27
  }
23
28
 
24
29
  let src = fs.readFileSync(frompath, 'utf8')
25
30
 
31
+ let replace: any = {}
32
+ let content = buildctx.current.file.content
33
+ if (0 < content.length) {
34
+ replace['<[SLOT]>'] = content.join('')
35
+ }
36
+
37
+ const contentMap = node.meta.content_map || {}
38
+ each(contentMap, (content: any) => {
39
+ replace['<[SLOT:' + content.key$ + ']>'] = content.join('')
40
+ })
41
+
42
+ // console.log('REPLACE', replace)
43
+
44
+ src = template(src, ctx$.model, { replace })
45
+
46
+ // console.log('SRC', src)
47
+
26
48
  if ('string' === typeof node.indent) {
27
49
  src = src.replace(/([^\n]+\n)/g, node.indent + '$1')
28
50
  }
29
51
 
52
+ buildctx.current.file = node.meta.fragment_file
30
53
  buildctx.current.file.content.push(src)
31
54
  },
32
55
 
package/src/utility.ts CHANGED
@@ -143,9 +143,6 @@ function getx(root: any, path: string | string[]): any {
143
143
  return undefined
144
144
  }
145
145
 
146
- // console.log('GETX', JSON.stringify(root).replace(/["\n]/g, ''))
147
- // console.log('TOKENS', tokens)
148
-
149
146
  let node = root
150
147
  let out = undefined
151
148
  let ancestry = false
@@ -154,13 +151,7 @@ function getx(root: any, path: string | string[]): any {
154
151
  let t0 = tokens[i]
155
152
  let t1 = tokens[i + 1]
156
153
 
157
- // let what = ''
158
- // console.log('PART-S ', ancestry ? ':' : ' ', i, t0 + '|' + t1 + '|' + tokens.slice(i + 2),
159
- // ' N=', JSON.stringify(node || '').replace(/["\n]/g, ''),
160
- // ' O=', JSON.stringify(out || '').replace(/["\n]/g, ''))
161
-
162
154
  if (t1 && t1.match(/=|!=/)) {
163
- // what = 'O'
164
155
  let val = node[t0]
165
156
  let arg: any = tokens[i + 2]
166
157
 
@@ -203,7 +194,6 @@ function getx(root: any, path: string | string[]): any {
203
194
 
204
195
  // Retain ancestry in result - getx({a:{b:1}},'a:b'}) === {a:{b:1}}
205
196
  else if (':' === t1) {
206
- // what = 'D'
207
197
  if ('=' !== tokens[i + 2]) {
208
198
  out = !ancestry ? node : out
209
199
  node = node[t0]
@@ -217,10 +207,7 @@ function getx(root: any, path: string | string[]): any {
217
207
  }
218
208
 
219
209
  else if ('?' === t0) {
220
- // what = '?'
221
-
222
210
  let ftokens = tokens.slice(i + 1)
223
- // console.log('FTOKENS A', ftokens)
224
211
 
225
212
  // Two adjacent values marks the end of the filter
226
213
  // TODO: not great, find a better way
@@ -235,8 +222,6 @@ function getx(root: any, path: string | string[]): any {
235
222
  }
236
223
  ftokens.length = j
237
224
 
238
- // console.log('FTOKENS B', ftokens)
239
-
240
225
  out = each(node)
241
226
  .filter((child: any) => undefined != getx(child, ftokens))
242
227
 
@@ -253,10 +238,6 @@ function getx(root: any, path: string | string[]): any {
253
238
  i += ftokens.length
254
239
  }
255
240
  else if (null != t1) {
256
- // what = 'N'
257
- // console.log('NNN', dot, t0, out, node)
258
- // out = (dot && undefined !== node) ? out : node
259
-
260
241
  node = node[t0]
261
242
 
262
243
  if (ancestry) {
@@ -266,16 +247,10 @@ function getx(root: any, path: string | string[]): any {
266
247
  }
267
248
  }
268
249
  else {
269
- // what = 'M'
270
250
  node = node[t0]
271
251
  out = (ancestry && undefined !== node) ? out : node
272
252
  }
273
253
 
274
- // console.log('PART-E', what,
275
- // ancestry ? ':' : ' ', i, t0 + '|' + t1 + '|' + tokens.slice(i + 2),
276
- // ' N=', JSON.stringify(node || '').replace(/["\n]/g, ''),
277
- // ' O=', JSON.stringify(out || '').replace(/["\n]/g, ''))
278
-
279
254
  }
280
255
 
281
256
  return out
@@ -321,6 +296,7 @@ function snakify(input: any[] | string) {
321
296
 
322
297
 
323
298
  function names(base: any, name: string, prop = 'name') {
299
+ name = '' + name
324
300
  base.name$ = name
325
301
  base[prop.toLowerCase()] = name.toLowerCase()
326
302
  base[camelify(prop)] = camelify(name)
@@ -330,6 +306,89 @@ function names(base: any, name: string, prop = 'name') {
330
306
  }
331
307
 
332
308
 
309
+ function escre(s: string) { return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') }
310
+
311
+
312
+ // NOTE: $$foo.bar$$ format used as explicit start and end markers mean regex can be used
313
+ // unambiguously ($fooa would not match `foo`)
314
+ function template(
315
+ src: string,
316
+ model: any,
317
+ spec?: {
318
+ open?: string,
319
+ close?: string,
320
+ ref?: string,
321
+ insert?: RegExp,
322
+ replace?: Record<string, any>
323
+ }
324
+ ) {
325
+
326
+ src = null == src ? '' : '' + src
327
+ model = null == model ? {} : model
328
+ let open = null == spec?.open ? '\\$\\$' : spec.open
329
+ let close = null == spec?.close ? '\\$\\$' : spec.close
330
+ let ref = null == spec?.ref ? '[^$]+' : spec.ref
331
+ let insertRE = null == spec?.insert ?
332
+ new RegExp('(' + open + ')(' + ref + ')(' + close + ')' +
333
+ ((Object.keys(spec?.replace || {}))
334
+ .map(k => '|(' + (k.match(/^\/.+\/$/) ? k.substring(1, k.length - 1) : escre(k)) + ')')
335
+ .join(''))) :
336
+ spec.insert
337
+ let out = ''
338
+ let remain = src
339
+ let nextm = true
340
+
341
+ while (nextm) {
342
+ let m = remain.match(insertRE)
343
+
344
+ if (m) {
345
+ let mi = (m.index as number)
346
+ out += remain.substring(0, mi)
347
+
348
+ let insert
349
+ let skip = 0
350
+ let ref = m[2]
351
+
352
+ if (null != ref) {
353
+ insert = '__insert__' === ref ? '' + insertRE : getx(model, ref)
354
+ skip = m[1].length + m[3].length
355
+ }
356
+
357
+ else {
358
+ ref = ''
359
+ let rI = 4
360
+ while (rI < m.length &&
361
+ '' === (ref = (null == m[rI] || '' == m[rI] ? '' : m[rI]))) { rI++ }
362
+
363
+ if ('' !== ref && spec?.replace) {
364
+ insert = spec.replace[Object.keys(spec.replace)[rI - 4]]
365
+ }
366
+ }
367
+
368
+ let ti = typeof insert
369
+
370
+ if (null == insert || ('number' === ti && isNaN(insert))) {
371
+ out += (0 === skip ? '' : m[1]) + ref + (0 === skip ? '' : m[3])
372
+ }
373
+ else if ('function' === ti) {
374
+ out += insert({ src, model, spec, ref, index: mi })
375
+ }
376
+ else {
377
+ out += ('object' === ti ? JSON.stringify(insert) : insert)
378
+ }
379
+
380
+ remain = remain.substring(mi + skip + ref.length)
381
+ }
382
+ else {
383
+ out += remain
384
+ nextm = false
385
+ }
386
+ }
387
+
388
+ return out
389
+ }
390
+
391
+
333
392
 
334
393
  // Map child objects to new child objects
335
394
  function cmap(o: any, p: any) {
@@ -663,5 +722,7 @@ export {
663
722
  cmap,
664
723
  vmap,
665
724
  names,
725
+ template,
726
+ escre,
666
727
  BINARY_EXT,
667
728
  }