@voxgig/model 4.0.0 → 5.0.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.
Files changed (45) hide show
  1. package/bin/voxgig-model +150 -31
  2. package/dist/{lib/build.d.ts → build.d.ts} +6 -5
  3. package/dist/{lib/build.js → build.js} +4 -3
  4. package/dist/build.js.map +1 -0
  5. package/dist/{lib/builder → builder}/local.js +13 -34
  6. package/dist/builder/local.js.map +1 -0
  7. package/dist/{lib/builder → builder}/model.js +5 -0
  8. package/dist/builder/model.js.map +1 -0
  9. package/dist/{lib/config.d.ts → config.d.ts} +4 -3
  10. package/dist/{lib/config.js → config.js} +6 -4
  11. package/dist/config.js.map +1 -0
  12. package/dist/model.d.ts +7 -6
  13. package/dist/model.js +33 -19
  14. package/dist/model.js.map +1 -1
  15. package/dist/tsconfig.tsbuildinfo +1 -0
  16. package/dist/{lib/types.d.ts → types.d.ts} +25 -3
  17. package/dist/types.js +4 -0
  18. package/dist/types.js.map +1 -0
  19. package/dist/{lib/watch.d.ts → watch.d.ts} +6 -19
  20. package/dist/{lib/watch.js → watch.js} +41 -16
  21. package/dist/watch.js.map +1 -0
  22. package/package.json +19 -20
  23. package/dist/lib/build.js.map +0 -1
  24. package/dist/lib/builder/local.js.map +0 -1
  25. package/dist/lib/builder/model.js.map +0 -1
  26. package/dist/lib/config.js.map +0 -1
  27. package/dist/lib/model-builder.d.ts +0 -0
  28. package/dist/lib/model-builder.js +0 -2
  29. package/dist/lib/model-builder.js.map +0 -1
  30. package/dist/lib/types.js +0 -3
  31. package/dist/lib/types.js.map +0 -1
  32. package/dist/lib/util.d.ts +0 -7
  33. package/dist/lib/util.js +0 -94
  34. package/dist/lib/util.js.map +0 -1
  35. package/dist/lib/watch.js.map +0 -1
  36. package/dist/model.min.js +0 -94
  37. package/lib/build.ts +0 -138
  38. package/lib/builder/local.ts +0 -130
  39. package/lib/builder/model.ts +0 -37
  40. package/lib/config.ts +0 -50
  41. package/lib/types.ts +0 -67
  42. package/lib/watch.ts +0 -301
  43. package/model.ts +0 -147
  44. /package/dist/{lib/builder → builder}/local.d.ts +0 -0
  45. /package/dist/{lib/builder → builder}/model.d.ts +0 -0
package/bin/voxgig-model CHANGED
@@ -1,52 +1,171 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const Fs = require('fs')
4
- const Path = require('path')
3
+ const { parseArgs } = require('node:util')
4
+ const Fs = require('node:fs')
5
+ const Path = require('node:path')
5
6
 
6
- let { Model } = require('../dist/model.js')
7
+ const Pkg = require('../package.json')
8
+ const { Model } = require('../dist/model.js')
7
9
 
10
+ const { Gubu, Fault, One } = require('gubu')
8
11
 
9
- let path = process.argv[2]
10
- let once = '--once' === process.argv[3]
11
12
 
12
- if(null == path || '' == path) {
13
- console.error('ERROR: First argument should be a jsonic model file path.')
14
- process.exit(1)
13
+ let CONSOLE = console
14
+
15
+ run()
16
+
17
+
18
+ async function run() {
19
+ try {
20
+ let options = resolveOptions()
21
+
22
+ if(options.version) {
23
+ version()
24
+ }
25
+
26
+ if(options.help) {
27
+ help()
28
+ }
29
+
30
+ if(options.version || options.help) {
31
+ exit()
32
+ }
33
+
34
+ options = validateOptions(options)
35
+
36
+ await generate(options)
37
+ }
38
+ catch(err) {
39
+ handleError(err)
40
+ }
15
41
  }
16
42
 
17
- let fstats = Fs.statSync(path)
18
- // let base = path
19
- let base = Path.resolve(path)
20
43
 
21
- if (fstats.isFile()) {
22
- let basedesc = Path.parse(base)
23
- base = basedesc.dir
44
+ function exit(err) {
45
+ let code = 0
46
+ if(err) {
47
+ code = 1
48
+ }
49
+ process.exit(code)
24
50
  }
25
51
 
26
- path = Path.resolve(path)
27
52
 
28
- let src = Fs.readFileSync(path).toString()
53
+ function resolveOptions() {
54
+
55
+ const args = parseArgs({
56
+ allowPositionals: true,
57
+ options: {
58
+ model: {
59
+ type: 'string',
60
+ short: 'm',
61
+ default: '',
62
+ },
63
+
64
+ watch: {
65
+ type: 'boolean',
66
+ short: 'w',
67
+ },
68
+
69
+ debug: {
70
+ type: 'string',
71
+ short: 'g',
72
+ default: 'info'
73
+ },
74
+
75
+ help: {
76
+ type: 'boolean',
77
+ short: 'h',
78
+ },
79
+
80
+ version: {
81
+ type: 'boolean',
82
+ short: 'v',
83
+ },
84
+
85
+ }
86
+ })
29
87
 
30
- let spec = {
31
- src,
32
- path,
33
- base,
34
- require: process.cwd()
88
+ const options = {
89
+ model: '' === args.values.model ? args.positionals[0] : args.values.model,
90
+ watch: !!args.values.watch,
91
+ debug: args.values.debug,
92
+ help: !!args.values.help,
93
+ version: !!args.values.version,
94
+ }
95
+
96
+ return options
35
97
  }
36
98
 
37
- let model = new Model(spec)
38
99
 
39
- async function run() {
40
- if(once) {
41
- let br = await model.run()
42
- if(0 < br.err.length) {
43
- process.exit(1)
44
- }
100
+ function validateOptions(rawOptions) {
101
+ const optShape = Gubu({
102
+ model: Fault('The first argument should be the model file.', String),
103
+ watch: Boolean,
104
+ debug: One(String,Boolean),
105
+ help: Boolean,
106
+ version: Boolean,
107
+ })
108
+
109
+ const err = []
110
+ const options = optShape(rawOptions,{err})
111
+
112
+ if(err[0]) {
113
+ throw new Error(err[0].text)
45
114
  }
46
- else {
115
+
116
+ return options
117
+ }
118
+
119
+
120
+ async function handleError(err) {
121
+ CONSOLE.log('Voxgig Model Error:')
122
+ CONSOLE.log(err)
123
+ exit(err)
124
+ }
125
+
126
+
127
+ function version() {
128
+ CONSOLE.log(Pkg.version)
129
+ }
130
+
131
+
132
+ function help() {
133
+ const s = 'TODO'
134
+ CONSOLE.log(s)
135
+ }
136
+
137
+
138
+
139
+ async function generate(options) {
140
+ let path = options.model
141
+
142
+ let fstats = Fs.statSync(path)
143
+ let base = Path.resolve(path)
144
+
145
+ if (fstats.isFile()) {
146
+ let basedesc = Path.parse(base)
147
+ base = basedesc.dir
148
+ }
149
+
150
+ path = Path.resolve(path)
151
+
152
+ let src = Fs.readFileSync(path).toString()
153
+
154
+ let spec = {
155
+ src,
156
+ path,
157
+ base,
158
+ require: process.cwd(),
159
+ debug: options.debug,
160
+ }
161
+
162
+ let model = new Model(spec)
163
+
164
+ if(options.watch) {
47
165
  model.start()
48
166
  }
167
+ else {
168
+ let br = await model.run()
169
+ }
49
170
  }
50
171
 
51
-
52
- run()
@@ -1,5 +1,5 @@
1
1
  import { Val } from 'aontu';
2
- import type { Build, BuildResult, BuildAction, BuildContext, Spec } from './types';
2
+ import type { Build, BuildResult, BuildAction, BuildContext, BuildSpec, Log } from './types';
3
3
  declare class BuildImpl implements Build {
4
4
  id: string;
5
5
  src: string;
@@ -8,13 +8,14 @@ declare class BuildImpl implements Build {
8
8
  root: any;
9
9
  opts: any;
10
10
  res: BuildAction[];
11
- spec: Spec;
11
+ spec: BuildSpec;
12
12
  model: any;
13
13
  use: {};
14
14
  err: any[];
15
15
  ctx: BuildContext;
16
- constructor(spec: Spec);
16
+ log: Log;
17
+ constructor(spec: BuildSpec, log: Log);
17
18
  run(): Promise<BuildResult>;
18
19
  }
19
- declare function makeBuild(spec: Spec): BuildImpl;
20
- export { makeBuild, Spec, Val };
20
+ declare function makeBuild(spec: BuildSpec, log: Log): BuildImpl;
21
+ export { makeBuild, BuildSpec, Val };
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.makeBuild = makeBuild;
5
5
  const aontu_1 = require("aontu");
6
6
  class BuildImpl {
7
- constructor(spec) {
7
+ constructor(spec, log) {
8
8
  this.root = aontu_1.Nil.make();
9
9
  this.use = {};
10
10
  this.err = [];
11
11
  this.id = String(Math.random()).substring(3, 9);
12
+ this.log = log;
12
13
  this.spec = spec;
13
14
  this.src = spec.src;
14
15
  this.base = null == spec.base ? '' : spec.base;
@@ -80,7 +81,7 @@ class BuildImpl {
80
81
  return br;
81
82
  }
82
83
  }
83
- function makeBuild(spec) {
84
- return new BuildImpl(spec);
84
+ function makeBuild(spec, log) {
85
+ return new BuildImpl(spec, log);
85
86
  }
86
87
  //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
@@ -36,41 +36,20 @@ const local_builder = async (build, ctx) => {
36
36
  throw e;
37
37
  }
38
38
  }
39
- if ('pre' === ctx.step) {
40
- try {
41
- let ok = true;
42
- let brlog = [];
43
- for (let actionDef of actionDefs) {
44
- if ('pre' === actionDef.step || 'all' === actionDef.step) {
45
- let br = await actionDef.action(build.model, build);
46
- ok = ok && null != br && br.ok;
47
- brlog.push(br);
48
- }
49
- }
50
- return { ok: true, step: ctx.step, active: true };
51
- }
52
- catch (e) {
53
- throw e;
54
- }
55
- }
56
- else if ('post' === ctx.step) {
57
- try {
58
- let ok = true;
59
- let brlog = [];
60
- for (let actionDef of actionDefs) {
61
- if ('post' === actionDef.step || 'all' === actionDef.step) {
62
- let br = await actionDef.action(build.model, build);
63
- ok = ok && null != br && br.ok;
64
- brlog.push(br);
65
- }
66
- }
67
- return { ok: true, step: ctx.step, active: true };
68
- }
69
- catch (e) {
70
- throw e;
71
- }
39
+ const runActionDefs = actionDefs.filter((ad) => ctx.step === ad.step || 'all' === ad.step);
40
+ // console.log(runActionDefs)
41
+ build.log.info({
42
+ point: ctx.step + '-actions', step: ctx.step, actions: runActionDefs,
43
+ note: runActionDefs.map((ad) => ad.name).join(';')
44
+ });
45
+ let ok = true;
46
+ let brlog = [];
47
+ for (let actionDef of runActionDefs) {
48
+ let br = await actionDef.action(build.model, build);
49
+ ok = ok && null != br && br.ok;
50
+ brlog.push(br);
72
51
  }
73
- return { ok: false, why: 'bad-step', step: ctx.step, active: false };
52
+ return { ok: true, step: ctx.step, active: true };
74
53
  };
75
54
  exports.local_builder = local_builder;
76
55
  //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/builder/local.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,11 @@ const model_builder = async (build, ctx) => {
19
19
  filename = filenameparts[1];
20
20
  }
21
21
  let file = build.opts.base + '/' + filename + '.json';
22
+ build.log.info({
23
+ point: 'write-model',
24
+ path: file,
25
+ note: file.replace(process.cwd(), '.')
26
+ });
22
27
  await (0, promises_1.writeFile)(file, json);
23
28
  return { ok: true, step: ctx.step, active: true };
24
29
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/builder/model.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AAEvB,0CAAuC;AAKvC,iDAAiD;AACjD,MAAM,aAAa,GAAY,KAAK,EAAE,KAAY,EAAE,GAAiB,EAAE,EAAE;IACvE,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IACpD,CAAC;IAED,IAAI,CAAC;QACH,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAEpD,IAAI,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACnD,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC7B,CAAC;QAED,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,GAAG,OAAO,CAAA;QAErD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC;SACvC,CAAC,CAAA;QAEF,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAE3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACnD,CAAC;IACD,OAAO,CAAM,EAAE,CAAC;QACd,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAGC,sCAAa"}
@@ -1,11 +1,12 @@
1
- import type { BuildResult, Spec } from './types';
1
+ import type { BuildResult, BuildSpec, Log } from './types';
2
2
  import { Watch } from './watch';
3
3
  declare class Config {
4
4
  build: any;
5
5
  watch: Watch;
6
- constructor(spec: Spec);
6
+ log: Log;
7
+ constructor(spec: BuildSpec, log: Log);
7
8
  run(): Promise<BuildResult>;
8
9
  start(): Promise<void>;
9
10
  stop(): Promise<void>;
10
11
  }
11
- export { Config, Spec };
12
+ export { Config, BuildSpec };
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Config = void 0;
5
5
  const watch_1 = require("./watch");
6
6
  class Config {
7
- constructor(spec) {
7
+ constructor(spec, log) {
8
+ this.log = log;
8
9
  this.build = {
9
10
  src: spec.src,
10
11
  path: spec.path,
@@ -12,12 +13,13 @@ class Config {
12
13
  res: [
13
14
  ...(spec.res || [])
14
15
  ],
15
- require: spec.require
16
+ require: spec.require,
17
+ log: this.log,
16
18
  };
17
- this.watch = new watch_1.Watch(this.build);
19
+ this.watch = new watch_1.Watch(this.build, this.log);
18
20
  }
19
21
  async run() {
20
- return this.watch.run(true, '<config>');
22
+ return this.watch.run('config', true, '<config>');
21
23
  }
22
24
  async start() {
23
25
  return this.watch.start();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,mCAA+B;AAI/B,MAAM,MAAM;IAKV,YAAY,IAAe,EAAE,GAAQ;QACnC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE;gBACH,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;aACpB;YACD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAA;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF;AAGQ,wBAAM"}
package/dist/model.d.ts CHANGED
@@ -1,14 +1,15 @@
1
- import type { BuildResult, Spec } from './lib/types';
2
- import { Config } from './lib/config';
3
- import { Watch } from './lib/watch';
1
+ import type { BuildResult, BuildSpec, Log } from './types';
2
+ import { Config } from './config';
3
+ import { Watch } from './watch';
4
4
  declare class Model {
5
5
  config: Config;
6
- build: any;
6
+ build: BuildSpec;
7
7
  watch: Watch;
8
8
  trigger_model: boolean;
9
- constructor(spec: Spec);
9
+ log: Log;
10
+ constructor(spec: BuildSpec);
10
11
  run(): Promise<BuildResult>;
11
12
  start(): Promise<void | BuildResult>;
12
13
  stop(): Promise<void>;
13
14
  }
14
- export { Model, Spec, };
15
+ export { Model, BuildSpec, };
package/dist/model.js CHANGED
@@ -1,25 +1,34 @@
1
1
  "use strict";
2
- /* Copyright © 2021-2023 Voxgig Ltd, MIT License. */
2
+ /* Copyright © 2021-2024 Voxgig Ltd, MIT License. */
3
3
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.Model = void 0;
8
8
  // TODO: remove need for this
9
- const fs_1 = __importDefault(require("fs"));
10
- const config_1 = require("./lib/config");
11
- const watch_1 = require("./lib/watch");
12
- const model_1 = require("./lib/builder/model");
13
- const local_1 = require("./lib/builder/local");
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const util_1 = require("@voxgig/util");
11
+ const config_1 = require("./config");
12
+ const watch_1 = require("./watch");
13
+ const model_1 = require("./builder/model");
14
+ const local_1 = require("./builder/local");
14
15
  class Model {
15
16
  constructor(spec) {
16
17
  this.trigger_model = false;
17
18
  const self = this;
19
+ const pino = (0, util_1.prettyPino)('model', spec);
20
+ this.log = pino.child({ cmp: 'model' });
21
+ this.log.info({ point: 'model-init' });
22
+ this.log.debug({
23
+ point: 'model-spec', spec, note: '\n' +
24
+ JSON.stringify({ ...spec, src: '<NOT-SHOWN>' }, null, 2)
25
+ .replace(/"/g, '')
26
+ .replaceAll(process.cwd(), '.')
27
+ });
18
28
  // Config is a special Watch to handle model config.
19
- this.config = makeConfig(spec, {
29
+ this.config = makeConfig(spec, this.log, {
20
30
  path: '/',
21
31
  build: async function trigger_model(build, ctx) {
22
- var _a, _b, _c;
23
32
  if ('post' !== ctx.step) {
24
33
  return { ok: true };
25
34
  }
@@ -27,15 +36,17 @@ class Model {
27
36
  // console.log('TRIGGER', build.id, self.trigger_model, ctx)
28
37
  // console.log(new Error().stack)
29
38
  if (self.trigger_model) {
30
- // TODO: fix!!!
31
- self.build.use.config.watch.last.build = build;
32
- res = self.watch.run(true);
39
+ // TODO: better design
40
+ if (self.build.use) {
41
+ self.build.use.config.watch.last.build = build;
42
+ }
43
+ res = self.watch.run('model', true);
33
44
  }
34
45
  else {
35
46
  self.trigger_model = true;
36
47
  res = { ok: true };
37
48
  }
38
- const watchmap = (_c = (_b = (_a = build.model) === null || _a === void 0 ? void 0 : _a.sys) === null || _b === void 0 ? void 0 : _b.model) === null || _c === void 0 ? void 0 : _c.watch;
49
+ const watchmap = build.model?.sys?.model?.watch;
39
50
  if (watchmap) {
40
51
  Object.keys(watchmap).map((file) => {
41
52
  self.watch.add(file);
@@ -60,14 +71,15 @@ class Model {
60
71
  build: local_1.local_builder
61
72
  }
62
73
  ],
63
- require: spec.require
74
+ require: spec.require,
75
+ log: this.log,
64
76
  };
65
- this.watch = new watch_1.Watch(self.build);
77
+ this.watch = new watch_1.Watch(self.build, this.log);
66
78
  }
67
79
  async run() {
68
80
  this.trigger_model = false;
69
81
  const br = await this.config.run();
70
- return br.ok ? this.watch.run(true) : br;
82
+ return br.ok ? this.watch.run('model', true) : br;
71
83
  }
72
84
  async start() {
73
85
  this.trigger_model = false;
@@ -80,12 +92,13 @@ class Model {
80
92
  }
81
93
  }
82
94
  exports.Model = Model;
83
- function makeConfig(spec, trigger_model_build) {
95
+ function makeConfig(spec, log, trigger_model_build) {
84
96
  let cbase = spec.base + '/.model-config';
85
97
  let cpath = cbase + '/model-config.jsonic';
86
98
  // Build should load file
87
- let src = fs_1.default.readFileSync(cpath).toString();
99
+ let src = node_fs_1.default.readFileSync(cpath).toString();
88
100
  let cspec = {
101
+ name: 'config',
89
102
  src: src,
90
103
  path: cpath,
91
104
  base: cbase,
@@ -98,8 +111,9 @@ function makeConfig(spec, trigger_model_build) {
98
111
  // Trigger main model build.
99
112
  trigger_model_build
100
113
  ],
101
- require: spec.require
114
+ require: spec.require,
115
+ log,
102
116
  };
103
- return new config_1.Config(cspec);
117
+ return new config_1.Config(cspec, log);
104
118
  }
105
119
  //# sourceMappingURL=model.js.map
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"root":["../src/build.ts","../src/config.ts","../src/model.ts","../src/types.ts","../src/watch.ts","../src/builder/local.ts","../src/builder/model.ts"],"version":"5.6.3"}
@@ -1,3 +1,5 @@
1
+ import Pino from 'pino';
2
+ type Log = ReturnType<typeof Pino>;
1
3
  interface Build {
2
4
  id: string;
3
5
  src: string;
@@ -8,7 +10,7 @@ interface Build {
8
10
  [key: string]: any;
9
11
  };
10
12
  res: BuildAction[];
11
- spec: Spec;
13
+ spec: BuildSpec;
12
14
  model: any;
13
15
  use: {
14
16
  [name: string]: any;
@@ -16,6 +18,7 @@ interface Build {
16
18
  err: any[];
17
19
  ctx: BuildContext;
18
20
  run: () => Promise<BuildResult>;
21
+ log: Log;
19
22
  }
20
23
  interface BuildResult {
21
24
  ok: boolean;
@@ -35,7 +38,7 @@ interface BuildContext {
35
38
  state: Record<string, any>;
36
39
  }
37
40
  type Builder = (build: Build, ctx: BuildContext) => Promise<BuildResult>;
38
- interface Spec {
41
+ interface BuildSpec {
39
42
  src: string;
40
43
  path?: string;
41
44
  base?: string;
@@ -44,5 +47,24 @@ interface Spec {
44
47
  use?: {
45
48
  [name: string]: any;
46
49
  };
50
+ log?: Log;
51
+ idle?: number;
52
+ name?: string;
53
+ debug?: boolean | string;
47
54
  }
48
- export type { Build, BuildResult, BuildAction, Builder, BuildContext, Spec, };
55
+ type Run = {
56
+ canon: string;
57
+ path: string;
58
+ start: number;
59
+ end: number;
60
+ };
61
+ type Canon = {
62
+ path: string;
63
+ isFolder: boolean;
64
+ when: number;
65
+ };
66
+ type ChangeItem = {
67
+ path: string;
68
+ when: number;
69
+ };
70
+ export type { Build, BuildResult, BuildAction, Builder, BuildContext, BuildSpec, Log, Run, Canon, ChangeItem };
package/dist/types.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /* Copyright © 2021-2024 Voxgig Ltd, MIT License. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,oDAAoD"}
@@ -1,23 +1,8 @@
1
- import type { Build, BuildResult } from './types';
1
+ import type { Build, BuildResult, Log, Run, Canon, ChangeItem, BuildSpec } from './types';
2
2
  import { FSWatcher } from 'chokidar';
3
- type Run = {
4
- canon: string;
5
- path: string;
6
- start: number;
7
- end: number;
8
- };
9
- type Canon = {
10
- path: string;
11
- isFolder: boolean;
12
- when: number;
13
- };
14
- type ChangeItem = {
15
- path: string;
16
- when: number;
17
- };
18
3
  declare class Watch {
19
4
  fsw: FSWatcher;
20
- spec: any;
5
+ wspec: any;
21
6
  last?: BuildResult;
22
7
  lastChangeTime: number;
23
8
  build: Build | undefined;
@@ -30,14 +15,16 @@ declare class Watch {
30
15
  running: boolean;
31
16
  lastChange: ChangeItem;
32
17
  lastTrigger: ChangeItem;
33
- constructor(spec: any);
18
+ log: Log;
19
+ name: string;
20
+ constructor(wspec: BuildSpec, log: Log);
34
21
  start(): void;
35
22
  canon(path: string): string;
36
23
  handleChange(path: string): void;
37
24
  drain(): Promise<void>;
38
25
  add(path: string): Promise<void>;
39
26
  update(br: BuildResult): Promise<void>;
40
- run(once?: boolean, trigger?: string): Promise<BuildResult>;
27
+ run(name: string, once?: boolean, trigger?: string): Promise<BuildResult>;
41
28
  stop(): Promise<void>;
42
29
  handleErrors(br: BuildResult): void;
43
30
  descDeps(deps: Record<string, Record<string, {