jostraca 0.14.0 → 0.15.1

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.
Files changed (46) hide show
  1. package/dist/cmp/Copy.js +16 -1
  2. package/dist/cmp/Copy.js.map +1 -1
  3. package/dist/cmp/Fragment.js +12 -1
  4. package/dist/cmp/Fragment.js.map +1 -1
  5. package/dist/jostraca.d.ts +139 -6
  6. package/dist/jostraca.js +159 -24
  7. package/dist/jostraca.js.map +1 -1
  8. package/dist/op/ContentOp.d.ts +2 -2
  9. package/dist/op/ContentOp.js.map +1 -1
  10. package/dist/op/CopyOp.d.ts +2 -2
  11. package/dist/op/CopyOp.js +61 -82
  12. package/dist/op/CopyOp.js.map +1 -1
  13. package/dist/op/FileOp.d.ts +3 -3
  14. package/dist/op/FileOp.js +15 -12
  15. package/dist/op/FileOp.js.map +1 -1
  16. package/dist/op/FolderOp.d.ts +1 -1
  17. package/dist/op/FolderOp.js +5 -3
  18. package/dist/op/FolderOp.js.map +1 -1
  19. package/dist/op/FragmentOp.js +1 -1
  20. package/dist/op/InjectOp.js +6 -9
  21. package/dist/op/InjectOp.js.map +1 -1
  22. package/dist/op/NoneOp.d.ts +3 -3
  23. package/dist/op/NoneOp.js +2 -2
  24. package/dist/op/NoneOp.js.map +1 -1
  25. package/dist/op/ProjectOp.d.ts +2 -2
  26. package/dist/op/ProjectOp.js +3 -7
  27. package/dist/op/ProjectOp.js.map +1 -1
  28. package/dist/types.d.ts +43 -5
  29. package/dist/utility.d.ts +2 -1
  30. package/dist/utility.js +12 -2
  31. package/dist/utility.js.map +1 -1
  32. package/package.json +8 -4
  33. package/src/cmp/Copy.ts +32 -2
  34. package/src/cmp/Fragment.ts +21 -3
  35. package/src/jostraca.ts +205 -27
  36. package/src/op/ContentOp.ts +2 -2
  37. package/src/op/CopyOp.ts +79 -64
  38. package/src/op/FileOp.ts +14 -17
  39. package/src/op/FolderOp.ts +6 -3
  40. package/src/op/FragmentOp.ts +1 -1
  41. package/src/op/InjectOp.ts +6 -13
  42. package/src/op/NoneOp.ts +3 -3
  43. package/src/op/ProjectOp.ts +5 -12
  44. package/src/types.ts +46 -4
  45. package/src/utility.ts +12 -2
  46. package/src/cmp/List.ts~ +0 -28
package/dist/cmp/Copy.js CHANGED
@@ -2,12 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Copy = void 0;
4
4
  const jostraca_1 = require("../jostraca");
5
+ const gubu_1 = require("gubu");
6
+ const From = (from, _, s) => s.ctx.fs().statSync(from);
7
+ const CopyShape = (0, gubu_1.Gubu)({
8
+ ctx$: Object,
9
+ // The From path is independent of the project folder.
10
+ from: (0, gubu_1.Check)(From).String(),
11
+ // output folder is current folder, this is an optional subfolder,
12
+ // or if copying a file, the output filename, if different.
13
+ to: (0, gubu_1.Optional)(String),
14
+ replace: {},
15
+ exclude: (0, gubu_1.Optional)((0, gubu_1.One)(Boolean, [(0, gubu_1.One)(String, RegExp)]))
16
+ }, { name: 'Copy' });
5
17
  const Copy = (0, jostraca_1.cmp)(function Copy(props, _children) {
18
+ props = CopyShape(props, { fs: props.ctx$.fs });
6
19
  const node = props.ctx$.node;
7
20
  node.kind = 'copy';
8
- node.name = props.name;
9
21
  node.from = props.from;
22
+ // NOTE: props.to is used as the Node name
23
+ node.name = props.to;
10
24
  node.exclude = null == props.exclude ? node.exclude : props.exclude;
25
+ node.replace = props.replace;
11
26
  });
12
27
  exports.Copy = Copy;
13
28
  //# sourceMappingURL=Copy.js.map
@@ -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;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"}
1
+ {"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/cmp/Copy.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAEjC,+BAAiD;AAGjD,MAAM,IAAI,GAAG,CAAC,IAAS,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAErE,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC;IACrB,IAAI,EAAE,MAAM;IAEZ,sDAAsD;IACtD,IAAI,EAAE,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAuB;IAE/C,kEAAkE;IAClE,2DAA2D;IAC3D,EAAE,EAAE,IAAA,eAAQ,EAAC,MAAM,CAAsB;IAEzC,OAAO,EAAE,EAAS;IAElB,OAAO,EAAE,IAAA,eAAQ,EAAC,IAAA,UAAG,EAAC,OAAO,EAAE,CAAC,IAAA,UAAG,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAmB;CACzE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAKpB,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAgB,EAAE,SAAc;IAC7D,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAE/C,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAElC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAEtB,2CAA2C;IAC3C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAA;IAEpB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IAEnE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;AAC9B,CAAC,CAAC,CAAA;AAIA,oBAAI"}
@@ -6,13 +6,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Fragment = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
8
  const jostraca_1 = require("../jostraca");
9
+ const gubu_1 = require("gubu");
10
+ const From = (from, _, s) => s.ctx.fs().statSync(from);
11
+ const FragmentShape = (0, gubu_1.Gubu)({
12
+ ctx$: Object,
13
+ from: (0, gubu_1.Check)(From).String(),
14
+ exclude: (0, gubu_1.Optional)((0, gubu_1.One)(Boolean, [String])),
15
+ indent: (0, gubu_1.Optional)((0, gubu_1.One)(String, Number)),
16
+ replace: {},
17
+ }, { name: 'Fragment' });
9
18
  const Fragment = (0, jostraca_1.cmp)(function Fragment(props, children) {
19
+ props = FragmentShape(props, { fs: props.ctx$.fs });
10
20
  const node = props.ctx$.node;
11
21
  node.kind = 'fragment';
12
22
  node.from = props.from;
13
23
  node.indent = props.indent;
14
24
  const replace = props.replace || {};
15
- const { fs, folder, model } = props.ctx$;
25
+ const { folder, model } = props.ctx$;
26
+ const fs = props.ctx$.fs();
16
27
  let frompath = node.from;
17
28
  // TODO: this is relative to the output - but that is just one case - provide more control?
18
29
  if (!node_path_1.default.isAbsolute(frompath)) {
@@ -1 +1 @@
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;IAE1B,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"}
1
+ {"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../../src/cmp/Fragment.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- import type { JostracaOptions, Node, Component } from './types';
2
- import { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent } from './utility';
1
+ import type { Node, Component, BuildContext } from './types';
2
+ import { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, isbinext } from './utility';
3
+ declare const deep: (...args: any[]) => any;
4
+ declare const omap: (...args: any[]) => any;
3
5
  import { Content } from './cmp/Content';
4
6
  import { Line } from './cmp/Line';
5
7
  import { Slot } from './cmp/Slot';
@@ -10,10 +12,141 @@ import { Fragment } from './cmp/Fragment';
10
12
  import { Folder } from './cmp/Folder';
11
13
  import { Project } from './cmp/Project';
12
14
  import { List } from './cmp/List';
13
- declare const deep: any;
14
- declare function Jostraca(gopts?: JostracaOptions): {
15
- generate: (opts: JostracaOptions, root: Function) => Promise<any>;
15
+ declare const OptionsShape: {
16
+ <V>(root?: V | undefined, ctx?: import("gubu").Context): V & {
17
+ folder: string;
18
+ meta: any;
19
+ fs: any;
20
+ log: any;
21
+ debug: string;
22
+ exclude: boolean;
23
+ existing: {
24
+ write: boolean;
25
+ preserve: boolean;
26
+ present: boolean;
27
+ merge: boolean;
28
+ };
29
+ existingBinary: {
30
+ write: boolean;
31
+ preserve: boolean;
32
+ present: boolean;
33
+ };
34
+ model: {};
35
+ build: boolean;
36
+ mem: boolean;
37
+ vol: {};
38
+ cmp: {
39
+ Copy: {
40
+ ignore: any[];
41
+ };
42
+ };
43
+ };
44
+ valid: <V>(root?: V | undefined, ctx?: import("gubu").Context) => root is V & {
45
+ folder: string;
46
+ meta: any;
47
+ fs: any;
48
+ log: any;
49
+ debug: string;
50
+ exclude: boolean;
51
+ existing: {
52
+ write: boolean;
53
+ preserve: boolean;
54
+ present: boolean;
55
+ merge: boolean;
56
+ };
57
+ existingBinary: {
58
+ write: boolean;
59
+ preserve: boolean;
60
+ present: boolean;
61
+ };
62
+ model: {};
63
+ build: boolean;
64
+ mem: boolean;
65
+ vol: {};
66
+ cmp: {
67
+ Copy: {
68
+ ignore: any[];
69
+ };
70
+ };
71
+ };
72
+ match(root?: any, ctx?: import("gubu").Context): boolean;
73
+ error(root?: any, ctx?: import("gubu").Context): {
74
+ gubu: boolean;
75
+ code: string;
76
+ gname: string;
77
+ props: ({
78
+ path: string;
79
+ type: string;
80
+ value: any;
81
+ }[]);
82
+ desc: () => ({
83
+ name: string;
84
+ code: string;
85
+ err: {
86
+ key: string;
87
+ type: string;
88
+ node: import("gubu").Node<any>;
89
+ value: any;
90
+ path: string;
91
+ why: string;
92
+ check: string;
93
+ args: Record<string, any>;
94
+ mark: number;
95
+ text: string;
96
+ use: any;
97
+ }[];
98
+ ctx: any;
99
+ });
100
+ toJSON(): /*elided*/ any & {
101
+ err: any;
102
+ name: string;
103
+ message: string;
104
+ };
105
+ name: string;
106
+ message: string;
107
+ stack?: string;
108
+ }[];
109
+ spec(): any;
110
+ node(): import("gubu").Node<{
111
+ folder: string;
112
+ meta: any;
113
+ fs: any;
114
+ log: any;
115
+ debug: string;
116
+ exclude: boolean;
117
+ existing: {
118
+ write: boolean;
119
+ preserve: boolean;
120
+ present: boolean;
121
+ merge: boolean;
122
+ };
123
+ existingBinary: {
124
+ write: boolean;
125
+ preserve: boolean;
126
+ present: boolean;
127
+ };
128
+ model: {};
129
+ build: boolean;
130
+ mem: boolean;
131
+ vol: {};
132
+ cmp: {
133
+ Copy: {
134
+ ignore: any[];
135
+ };
136
+ };
137
+ }>;
138
+ stringify(...rest: any[]): string;
139
+ jsonify(): any;
140
+ toString(this: any): string;
141
+ gubu: {
142
+ gubu$: symbol;
143
+ v$: string;
144
+ };
145
+ };
146
+ type JostracaOptions = ReturnType<typeof OptionsShape>;
147
+ declare function Jostraca(gopts_in?: JostracaOptions | {}): {
148
+ generate: (opts_in: JostracaOptions | {}, root: Function) => Promise<any>;
16
149
  };
17
150
  declare function cmp(component: Function): Component;
18
151
  export type { JostracaOptions, Component, Node, };
19
- export { Jostraca, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, deep, Project, Content, File, Inject, Fragment, Folder, Copy, Line, Slot, List, };
152
+ export { Jostraca, BuildContext, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, isbinext, deep, omap, Project, Content, File, Inject, Fragment, Folder, Copy, Line, Slot, List, };
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.List = exports.Slot = exports.Line = exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.deep = exports.indent = 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.List = exports.Slot = exports.Line = exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.omap = exports.deep = exports.isbinext = exports.indent = 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:
@@ -47,6 +47,8 @@ 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
49
  const jsonic_1 = require("jsonic");
50
+ const gubu_1 = require("gubu");
51
+ const Diff = require('diff');
50
52
  const memfs_1 = require("memfs");
51
53
  const utility_1 = require("./utility");
52
54
  Object.defineProperty(exports, "each", { enumerable: true, get: function () { return utility_1.each; } });
@@ -62,6 +64,12 @@ Object.defineProperty(exports, "names", { enumerable: true, get: function () { r
62
64
  Object.defineProperty(exports, "template", { enumerable: true, get: function () { return utility_1.template; } });
63
65
  Object.defineProperty(exports, "escre", { enumerable: true, get: function () { return utility_1.escre; } });
64
66
  Object.defineProperty(exports, "indent", { enumerable: true, get: function () { return utility_1.indent; } });
67
+ Object.defineProperty(exports, "isbinext", { enumerable: true, get: function () { return utility_1.isbinext; } });
68
+ // TODO: the actual signatures
69
+ const deep = jsonic_1.util.deep;
70
+ exports.deep = deep;
71
+ const omap = jsonic_1.util.omap;
72
+ exports.omap = omap;
65
73
  const Content_1 = require("./cmp/Content");
66
74
  Object.defineProperty(exports, "Content", { enumerable: true, get: function () { return Content_1.Content; } });
67
75
  const Line_1 = require("./cmp/Line");
@@ -91,8 +99,6 @@ const InjectOp_1 = require("./op/InjectOp");
91
99
  const FragmentOp_1 = require("./op/FragmentOp");
92
100
  const ContentOp_1 = require("./op/ContentOp");
93
101
  const NoneOp_1 = require("./op/NoneOp");
94
- const deep = jsonic_1.util.deep;
95
- exports.deep = deep;
96
102
  const GLOBAL = global;
97
103
  const DEFAULT_LOGGER = {
98
104
  trace: (...args) => console.log(new Date().toISOString(), 'TRACE', ...args),
@@ -102,12 +108,46 @@ const DEFAULT_LOGGER = {
102
108
  error: (...args) => console.error(new Date().toISOString(), 'ERROR', ...args),
103
109
  fatal: (...args) => console.error(new Date().toISOString(), 'FATAL', ...args),
104
110
  };
105
- function Jostraca(gopts) {
111
+ const OptionsShape = (0, gubu_1.Gubu)({
112
+ folder: '.', // Base output folder for generated files. Default: `.`.
113
+ meta: {}, // Provide meta data to the generation process. Default: `{}`
114
+ fs: (() => undefined), // File system API. Default: `node:fs`.
115
+ log: DEFAULT_LOGGER, // Logging interface.
116
+ debug: 'info', // Generate additional debugging information.
117
+ // TOOD: needs rethink
118
+ exclude: false, // Exclude modified output files. Default: `false`.
119
+ existing: {
120
+ write: true, // Overwrite existing files (unless present=true).
121
+ preserve: false, // Keep a backup copy (.old.) of overwritten files.
122
+ present: false, // Present the new file using .new. name annotation.
123
+ merge: false, // Annotated merge of new generate and existing file.
124
+ },
125
+ existingBinary: {
126
+ write: true, // Overwrite existing files (unless present=true).
127
+ preserve: false, // Keep a backup copy (.old.) of overwritten files.
128
+ present: false, // Present the new file using .new. name annotation.
129
+ // No merge of binary files
130
+ },
131
+ model: {},
132
+ build: true,
133
+ mem: false,
134
+ vol: {},
135
+ // Component specific options.
136
+ cmp: {
137
+ Copy: {
138
+ ignore: []
139
+ }
140
+ }
141
+ });
142
+ function Jostraca(gopts_in) {
106
143
  GLOBAL.jostraca = new node_async_hooks_1.AsyncLocalStorage();
107
- async function generate(opts, root) {
108
- const useMemFS = opts.mem || gopts?.mem;
109
- const memfs = useMemFS ? (0, memfs_1.memfs)(opts.vol || gopts?.vol || {}) : undefined;
110
- const fs = opts.fs || gopts?.fs || memfs?.fs || Fs;
144
+ const gopts = OptionsShape(gopts_in || {});
145
+ async function generate(opts_in, root) {
146
+ const opts = OptionsShape(opts_in);
147
+ const useMemFS = opts.mem || gopts.mem;
148
+ const vol = deep({}, gopts.vol, opts.vol);
149
+ const memfs = useMemFS ? (0, memfs_1.memfs)(vol) : undefined;
150
+ const fs = opts.fs() || gopts.fs() || memfs?.fs || Fs;
111
151
  const meta = {
112
152
  ...(gopts?.meta || {}),
113
153
  ...(opts.meta || {}),
@@ -115,8 +155,10 @@ function Jostraca(gopts) {
115
155
  const folder = opts.folder || gopts?.folder || '.';
116
156
  const log = opts.log || gopts?.log || DEFAULT_LOGGER;
117
157
  const debug = !!(null == opts.debug ? gopts?.debug : opts.debug);
158
+ const existing = deep(gopts.existing, opts.existing);
159
+ const existingBinary = deep(gopts.existingBinary, opts.existingBinary);
118
160
  const doBuild = null == gopts?.build ? false !== opts.build : false !== gopts?.build;
119
- const model = opts.model || gopts?.model || {};
161
+ const model = deep({}, gopts.model, opts.model);
120
162
  // Component defaults.
121
163
  opts.cmp = deep({
122
164
  Copy: {
@@ -124,13 +166,14 @@ function Jostraca(gopts) {
124
166
  }
125
167
  }, gopts?.cmp, opts.cmp);
126
168
  const ctx$ = {
169
+ fs: () => fs,
127
170
  folder,
128
171
  content: null,
129
172
  meta,
130
- fs,
131
173
  opts,
132
174
  log,
133
175
  debug,
176
+ existing,
134
177
  model,
135
178
  };
136
179
  return GLOBAL.jostraca.run(ctx$, async () => {
@@ -140,15 +183,34 @@ function Jostraca(gopts) {
140
183
  // Build phase
141
184
  const buildctx = {
142
185
  root: ctx$.root,
143
- fs,
186
+ when: Date.now(),
144
187
  vol: memfs?.vol,
145
188
  folder,
146
189
  current: {
190
+ project: {
191
+ node: makeNode(),
192
+ },
147
193
  folder: {
148
- parent: folder
149
- }
194
+ node: makeNode(),
195
+ parent: folder,
196
+ path: [],
197
+ },
198
+ // TODI: should be file.node
199
+ file: makeNode(),
200
+ content: undefined,
201
+ },
202
+ log: { exclude: [], last: -1 },
203
+ file: {
204
+ write: [],
205
+ preserve: [],
206
+ present: [],
207
+ merge: [],
208
+ },
209
+ util: {
210
+ save: () => null,
150
211
  }
151
212
  };
213
+ buildctx.util.save = makeSave(fs, existing, existingBinary, buildctx);
152
214
  if (doBuild) {
153
215
  await build(ctx$, buildctx);
154
216
  }
@@ -157,25 +219,21 @@ function Jostraca(gopts) {
157
219
  }
158
220
  async function build(ctx$, buildctx) {
159
221
  const topnode = ctx$.node;
160
- let log = { exclude: [], last: -1 };
161
222
  const logpath = node_path_1.default.join(buildctx.folder, '.jostraca', 'jostraca.json.log');
162
223
  try {
163
- log = JSON.parse(ctx$.fs.readFileSync(logpath, 'utf8'));
224
+ buildctx.log = JSON.parse(ctx$.fs().readFileSync(logpath, 'utf8'));
164
225
  }
165
226
  catch (err) {
166
- // console.log(err)
167
227
  // TODO: file not foound ignored, handle others!
168
228
  }
169
- buildctx.log = log;
170
- // console.log('B-LOG', buildctx.log)
171
229
  await step(topnode, ctx$, buildctx);
172
230
  try {
173
- ctx$.fs.mkdirSync(node_path_1.default.dirname(logpath), { recursive: true });
231
+ ctx$.fs().mkdirSync(node_path_1.default.dirname(logpath), { recursive: true });
174
232
  const log = {
175
233
  last: Date.now(),
176
234
  exclude: buildctx.log.exclude,
177
235
  };
178
- ctx$.fs.writeFileSync(logpath, JSON.stringify(log, null, 2), { flush: true });
236
+ ctx$.fs().writeFileSync(logpath, JSON.stringify(log, null, 2), { flush: true });
179
237
  }
180
238
  catch (err) {
181
239
  console.log(err);
@@ -196,7 +254,6 @@ function Jostraca(gopts) {
196
254
  await step(childnode, ctx$, buildctx);
197
255
  }
198
256
  catch (err) {
199
- console.log('JERR', childnode);
200
257
  if (childnode.meta.callsite) {
201
258
  err.callsite = childnode.meta.callsite;
202
259
  }
@@ -241,7 +298,6 @@ function cmp(component) {
241
298
  let parent = props.ctx$.node;
242
299
  // console.log('BBB', component, props, parent?.filter?.({ props }))
243
300
  if (parent?.filter && !parent.filter({ props, children, component })) {
244
- // console.log('PF', component, props)
245
301
  return undefined;
246
302
  }
247
303
  children = 'function' === typeof children ? [children] : children;
@@ -250,6 +306,7 @@ function cmp(component) {
250
306
  children: [],
251
307
  path: [],
252
308
  meta: {},
309
+ content: [],
253
310
  };
254
311
  props.ctx$.root = (props.ctx$.root || node);
255
312
  parent = props.ctx$.node || node;
@@ -264,8 +321,6 @@ function cmp(component) {
264
321
  node.path = parent.path.slice(0);
265
322
  if ('string' === typeof props.name) {
266
323
  node.path.push(props.name);
267
- // console.log('CMP-PATH', component.name, node.path)
268
- // console.trace()
269
324
  }
270
325
  let out = component(props, children);
271
326
  props.ctx$.children = siblings;
@@ -275,4 +330,84 @@ function cmp(component) {
275
330
  Object.defineProperty(cf, 'name', { value: component.name });
276
331
  return cf;
277
332
  }
333
+ function makeNode() {
334
+ return { kind: 'none', path: [], meta: {}, content: [] };
335
+ }
336
+ function makeSave(fs, existingText, existingBinary, buildctx) {
337
+ const JOSTRACA_PROTECT = 'JOSTRACA_PROTECT';
338
+ return function save(path, content, write = false) {
339
+ const existing = 'string' === typeof content ? existingText : existingBinary;
340
+ path = node_path_1.default.normalize(path);
341
+ const folder = node_path_1.default.dirname(path);
342
+ const exists = fs.existsSync(path);
343
+ write = write || !exists;
344
+ if (exists) {
345
+ let oldcontent = fs.readFileSync(path, 'utf8').toString();
346
+ const protect = 0 <= oldcontent.indexOf(JOSTRACA_PROTECT);
347
+ if (existing.preserve) {
348
+ if (protect) {
349
+ write = false;
350
+ }
351
+ else if (oldcontent.length !== content.length || oldcontent !== content) {
352
+ let oldpath = node_path_1.default.join(folder, node_path_1.default.basename(path).replace(/\.[^.]+$/, '') +
353
+ '.old' + node_path_1.default.extname(path));
354
+ copy(fs, path, oldpath);
355
+ buildctx.file.preserve.push({ path, action: 'preserve' });
356
+ }
357
+ }
358
+ if (existing.write && !protect) {
359
+ write = true;
360
+ }
361
+ else if (existing.present) {
362
+ if (oldcontent.length !== content.length || oldcontent !== content) {
363
+ let newpath = node_path_1.default.join(folder, node_path_1.default.basename(path).replace(/\.[^.]+$/, '') +
364
+ '.new' + node_path_1.default.extname(path));
365
+ fs.writeFileSync(newpath, content, 'utf8', { flush: true });
366
+ buildctx.file.preserve.push({ path, action: 'present' });
367
+ }
368
+ }
369
+ if (existing.merge && !protect) {
370
+ write = false;
371
+ if (oldcontent.length !== content.length || oldcontent !== content) {
372
+ merge(fs, buildctx.when, path, content, oldcontent);
373
+ buildctx.file.merge.push({ path, action: 'merge' });
374
+ }
375
+ }
376
+ }
377
+ if (write) {
378
+ fs.mkdirSync(folder, { recursive: true });
379
+ fs.writeFileSync(path, content, 'utf8', { flush: true });
380
+ buildctx.file.write.push({ path, action: 'write' });
381
+ }
382
+ };
383
+ }
384
+ function copy(fs, frompath, topath) {
385
+ // const isBinary = BINARY_EXT.includes(Path.extname(frompath))
386
+ const isBinary = (0, utility_1.isbinext)(frompath);
387
+ fs.mkdirSync(node_path_1.default.dirname(topath), { recursive: true });
388
+ const contents = fs.readFileSync(frompath, isBinary ? undefined : 'utf8');
389
+ fs.writeFileSync(topath, contents, { flush: true });
390
+ }
391
+ function merge(fs, when, path, oldcontent, newcontent) {
392
+ const diff = Diff.diffLines(newcontent, oldcontent);
393
+ const out = [];
394
+ const isowhen = new Date(when).toISOString();
395
+ diff.forEach((part) => {
396
+ if (part.added) {
397
+ out.push('<<<<<< GENERATED: ' + isowhen + '\n');
398
+ out.push(part.value);
399
+ out.push('>>>>>> GENERATED: ' + isowhen + '\n');
400
+ }
401
+ else if (part.removed) {
402
+ out.push('<<<<<< EXISTING: ' + isowhen + '\n');
403
+ out.push(part.value);
404
+ out.push('>>>>>> EXISTING: ' + isowhen + '\n');
405
+ }
406
+ else {
407
+ out.push(part.value);
408
+ }
409
+ });
410
+ const content = out.join('');
411
+ fs.writeFileSync(path, content, { flush: true });
412
+ }
278
413
  //# sourceMappingURL=jostraca.js.map
@@ -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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"}
@@ -1,6 +1,6 @@
1
- import type { Node } from '../jostraca';
1
+ import type { Node, BuildContext } from '../jostraca';
2
2
  declare const ContentOp: {
3
- before(node: Node, _ctx$: any, buildctx: any): void;
3
+ before(node: Node, _ctx$: any, buildctx: BuildContext): void;
4
4
  after(_node: Node, _ctx$: any, _buildctx: any): void;
5
5
  };
6
6
  export { ContentOp };
@@ -1 +1 @@
1
- {"version":3,"file":"ContentOp.js","sourceRoot":"","sources":["../../src/op/ContentOp.ts"],"names":[],"mappings":";;;AAGA,0CAAoC;AAGpC,MAAM,SAAS,GAAG;IAChB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QAE/C,IAAI,GAAG,GAAG,OAAO,CAAC,OAA4B,CAAA;QAC9C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,GAAG,GAAG,IAAA,iBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,KAAW,EAAE,KAAU,EAAE,SAAc;IAC7C,CAAC;CACF,CAAA;AAIC,8BAAS"}
1
+ {"version":3,"file":"ContentOp.js","sourceRoot":"","sources":["../../src/op/ContentOp.ts"],"names":[],"mappings":";;;AAGA,0CAAoC;AAGpC,MAAM,SAAS,GAAG;IAChB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAsB;QACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QAE/C,IAAI,GAAG,GAAG,OAAO,CAAC,OAA4B,CAAA;QAC9C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,GAAG,GAAG,IAAA,iBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,KAAW,EAAE,KAAU,EAAE,SAAc;IAC7C,CAAC;CACF,CAAA;AAIC,8BAAS"}
@@ -1,6 +1,6 @@
1
- import type { Node } from '../jostraca';
1
+ import type { Node, BuildContext } from '../jostraca';
2
2
  declare const CopyOp: {
3
- before(node: Node, ctx$: any, buildctx: any): void;
3
+ before(node: Node, ctx$: any, buildctx: BuildContext): void;
4
4
  after(node: Node, ctx$: any, buildctx: any): void;
5
5
  };
6
6
  export { CopyOp };