@voxgig/model 3.5.0 → 4.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.
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.js +1 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/watch.d.ts +13 -3
- package/dist/lib/watch.js +71 -41
- package/dist/lib/watch.js.map +1 -1
- package/dist/model.d.ts +1 -1
- package/dist/model.js +2 -1
- package/dist/model.js.map +1 -1
- package/lib/config.ts +1 -1
- package/lib/watch.ts +100 -49
- package/model.ts +4 -2
- package/package.json +3 -3
package/dist/lib/config.d.ts
CHANGED
package/dist/lib/config.js
CHANGED
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,mCAA+B;AAS/B,MAAM,MAAM;IAIV,YAAY,IAAU;QACpB,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;SACtB,CAAA;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,mCAA+B;AAS/B,MAAM,MAAM;IAIV,YAAY,IAAU;QACpB,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;SACtB,CAAA;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACzC,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/lib/watch.d.ts
CHANGED
|
@@ -11,22 +11,32 @@ type Canon = {
|
|
|
11
11
|
isFolder: boolean;
|
|
12
12
|
when: number;
|
|
13
13
|
};
|
|
14
|
+
type ChangeItem = {
|
|
15
|
+
path: string;
|
|
16
|
+
when: number;
|
|
17
|
+
};
|
|
14
18
|
declare class Watch {
|
|
15
19
|
fsw: FSWatcher;
|
|
16
20
|
spec: any;
|
|
17
21
|
last?: BuildResult;
|
|
18
|
-
|
|
22
|
+
lastChangeTime: number;
|
|
19
23
|
build: Build | undefined;
|
|
20
24
|
runq: Run[];
|
|
21
25
|
doneq: Run[];
|
|
22
26
|
canons: Canon[];
|
|
27
|
+
lastrun: Run | undefined;
|
|
28
|
+
idle: number;
|
|
29
|
+
startTime: number;
|
|
23
30
|
running: boolean;
|
|
31
|
+
lastChange: ChangeItem;
|
|
32
|
+
lastTrigger: ChangeItem;
|
|
24
33
|
constructor(spec: any);
|
|
34
|
+
start(): void;
|
|
35
|
+
canon(path: string): string;
|
|
36
|
+
handleChange(path: string): void;
|
|
25
37
|
drain(): Promise<void>;
|
|
26
38
|
add(path: string): Promise<void>;
|
|
27
|
-
canon(path: string): string;
|
|
28
39
|
update(br: BuildResult): Promise<void>;
|
|
29
|
-
start(): Promise<BuildResult>;
|
|
30
40
|
run(once?: boolean, trigger?: string): Promise<BuildResult>;
|
|
31
41
|
stop(): Promise<void>;
|
|
32
42
|
handleErrors(br: BuildResult): void;
|
package/dist/lib/watch.js
CHANGED
|
@@ -15,49 +15,92 @@ class Watch {
|
|
|
15
15
|
constructor(spec) {
|
|
16
16
|
this.spec = spec;
|
|
17
17
|
this.fsw = new chokidar_1.FSWatcher();
|
|
18
|
-
this.
|
|
18
|
+
this.lastChangeTime = 0;
|
|
19
19
|
this.runq = [];
|
|
20
20
|
this.doneq = [];
|
|
21
21
|
this.canons = [];
|
|
22
|
+
this.startTime = 0;
|
|
23
|
+
this.lastChange = { path: '', when: 0 };
|
|
24
|
+
this.lastTrigger = { path: '', when: 0 };
|
|
22
25
|
this.running = false;
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
this.lastrun = undefined;
|
|
27
|
+
this.idle = spec.idle || 111;
|
|
25
28
|
this.fsw.on('change', async (path) => {
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
// Avoid rebuilding when, for example, TS rewrites all files in dist
|
|
29
|
-
// const dorun = 1111 < Date.now() - this.last_change_time
|
|
30
|
-
// console.log('CHANGE', dorun, this.last_change_time, args)
|
|
31
|
-
const canon = this.canon(path);
|
|
32
|
-
const running = this.runq.find((run) => run.canon === canon);
|
|
33
|
-
if (running) {
|
|
34
|
-
// console.log('RUNNING', canon, path)
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
this.runq.push({
|
|
38
|
-
canon,
|
|
39
|
-
path,
|
|
40
|
-
start: Date.now(),
|
|
41
|
-
end: -1,
|
|
42
|
-
});
|
|
43
|
-
// console.log('RUNQ-ADD', this.runq)
|
|
44
|
-
setImmediate(drain);
|
|
29
|
+
// console.log('CHANGE', Date.now() - this.startTime, path)
|
|
30
|
+
this.handleChange(path);
|
|
45
31
|
});
|
|
46
32
|
}
|
|
33
|
+
// Returns first BuildResult
|
|
34
|
+
start() {
|
|
35
|
+
this.startTime = Date.now();
|
|
36
|
+
this.handleChange('<start>');
|
|
37
|
+
// Check if there have been no recent changes, if so, run build.
|
|
38
|
+
setInterval(() => {
|
|
39
|
+
const start = this.startTime;
|
|
40
|
+
const now = Date.now();
|
|
41
|
+
const idleDuration = now - this.lastChange.when;
|
|
42
|
+
// Only trigger a build if there was a actual change
|
|
43
|
+
const trigger = this.lastChange.when !== this.lastTrigger.when &&
|
|
44
|
+
this.lastChange.path !== this.lastTrigger.path;
|
|
45
|
+
// console.log('CHECK-A', {
|
|
46
|
+
// tick: (now - start),
|
|
47
|
+
// idleDuration,
|
|
48
|
+
// trigger,
|
|
49
|
+
// running: this.running,
|
|
50
|
+
// path: this.lastChange.path
|
|
51
|
+
// })
|
|
52
|
+
if (trigger) {
|
|
53
|
+
// Only add to build queue if we've been idle.
|
|
54
|
+
// This allows external compilation outputting multiple files to complete fully.
|
|
55
|
+
// IMPORTANT: always trigger a new build if there were changes *inside* a build period
|
|
56
|
+
if (this.idle < idleDuration) {
|
|
57
|
+
this.lastTrigger.path = this.lastChange.path;
|
|
58
|
+
this.lastTrigger.when = this.lastChange.when;
|
|
59
|
+
const path = this.lastChange.path;
|
|
60
|
+
const canon = this.canon(path);
|
|
61
|
+
this.runq.push({
|
|
62
|
+
canon,
|
|
63
|
+
path,
|
|
64
|
+
start: now,
|
|
65
|
+
end: -1,
|
|
66
|
+
});
|
|
67
|
+
// Defer builds to the event loop to keep idle checking separate.
|
|
68
|
+
setImmediate(this.drain.bind(this));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, (this.idle * 1.1 / 2) | 0);
|
|
72
|
+
}
|
|
73
|
+
// If path is inside a watched folder, return folder as canonical reference.
|
|
74
|
+
canon(path) {
|
|
75
|
+
for (const canon of this.canons) {
|
|
76
|
+
if (canon.isFolder && path.startsWith(canon.path)) {
|
|
77
|
+
return canon.path;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return path;
|
|
81
|
+
}
|
|
82
|
+
handleChange(path) {
|
|
83
|
+
// Record most recent (last) changed path and time
|
|
84
|
+
this.lastChange.path = path;
|
|
85
|
+
this.lastChange.when = Date.now();
|
|
86
|
+
}
|
|
47
87
|
async drain() {
|
|
88
|
+
// If already running, all items in queue will be drained from this.runq in the while loop
|
|
48
89
|
if (this.running) {
|
|
49
90
|
return;
|
|
50
91
|
}
|
|
51
92
|
this.running = true;
|
|
52
93
|
let r;
|
|
53
|
-
|
|
54
|
-
|
|
94
|
+
// While there are queued runs, run them sequentially
|
|
95
|
+
while (r = this.runq.shift()) {
|
|
96
|
+
// console.log('===DRAIN-RUN', this.runq.length, new Date(), r.start, r.canon)
|
|
97
|
+
// TODO: collect results and errors!!!
|
|
55
98
|
let br = await this.run(false, r.canon);
|
|
56
99
|
// console.log('BR', br)
|
|
57
|
-
this.runq.shift();
|
|
58
100
|
r.end = Date.now();
|
|
59
101
|
this.doneq.push(r);
|
|
60
|
-
|
|
102
|
+
this.lastrun = r;
|
|
103
|
+
// console.log('===DRAIN-DONE', this.runq.length, new Date(), r.start, r.canon)
|
|
61
104
|
}
|
|
62
105
|
this.running = false;
|
|
63
106
|
}
|
|
@@ -79,15 +122,6 @@ class Watch {
|
|
|
79
122
|
this.fsw.add(path);
|
|
80
123
|
// console.log('ADD', canon)
|
|
81
124
|
}
|
|
82
|
-
// If path is inside a watched folder, return folder as canonical reference.
|
|
83
|
-
canon(path) {
|
|
84
|
-
for (const canon of this.canons) {
|
|
85
|
-
if (canon.isFolder && path.startsWith(canon.path)) {
|
|
86
|
-
return canon.path;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return path;
|
|
90
|
-
}
|
|
91
125
|
async update(br) {
|
|
92
126
|
let build = br.build;
|
|
93
127
|
let files = Object.keys(build.root.deps).reduce((files, target) => {
|
|
@@ -103,15 +137,11 @@ class Watch {
|
|
|
103
137
|
}
|
|
104
138
|
});
|
|
105
139
|
}
|
|
106
|
-
// Returns first BuildResult
|
|
107
|
-
async start() {
|
|
108
|
-
return await this.run(false, '<start>');
|
|
109
|
-
}
|
|
110
140
|
async run(once, trigger) {
|
|
111
141
|
// console.trace()
|
|
112
142
|
var _a, _b;
|
|
113
|
-
this.
|
|
114
|
-
print('\n@voxgig/model', this.
|
|
143
|
+
this.lastChangeTime = Date.now();
|
|
144
|
+
print('\n@voxgig/model =================', this.lastChangeTime, new Date(this.lastChangeTime));
|
|
115
145
|
print('TRIGGER:', trigger, '\n');
|
|
116
146
|
// TODO: build spec should not have src!
|
|
117
147
|
let src = (await (0, promises_1.readFile)(this.spec.path)).toString();
|
package/dist/lib/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../lib/watch.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;AAEpD,0DAA4B;AAK5B,mCAAmC;AACnC,uCAAoC;AAEpC,0CAA4C;AAG5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAA;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../lib/watch.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
package/dist/model.js
CHANGED
|
@@ -71,7 +71,8 @@ class Model {
|
|
|
71
71
|
}
|
|
72
72
|
async start() {
|
|
73
73
|
this.trigger_model = false;
|
|
74
|
-
const br = await this.config.
|
|
74
|
+
const br = await this.config.run();
|
|
75
|
+
// console.log('MODEL CONFIG START', br.ok)
|
|
75
76
|
return br.ok ? this.watch.start() : br;
|
|
76
77
|
}
|
|
77
78
|
async stop() {
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../model.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;AAEpD,6BAA6B;AAC7B,4CAAmB;AAMnB,yCAAqC;AACrC,uCAAmC;AAEnC,+CAAmD;AACnD,+CAAmD;AAGnD,MAAM,KAAK;IAQT,YAAY,IAAU;QAHtB,kBAAa,GAAG,KAAK,CAAA;QAInB,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,oDAAoD;QACpD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE;YAC7B,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,KAAK,UAAU,aAAa,CAAC,KAAY,EAAE,GAAiB;;gBACjE,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;oBACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;gBACrB,CAAC;gBAED,IAAI,GAAG,CAAA;gBAEP,4DAA4D;gBAC5D,iCAAiC;gBAEjC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBAEvB,eAAe;oBACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;oBAE9C,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;qBACI,CAAC;oBACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;oBACzB,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;gBACpB,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,GAAG,0CAAE,KAAK,0CAAE,KAAK,CAAA;gBAE/C,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;wBACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACtB,CAAC,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,GAAG,CAAA;YACZ,CAAC;SACF,CAAC,CAAA;QAGF,oBAAoB;QACpB,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,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YAC5B,GAAG,EAAE;gBACH;oBACE,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,qBAAa;iBACrB;gBACD;oBACE,IAAI,EAAE,GAAG;oBACT,KAAK,EAAE,qBAAa;iBACrB;aACF;YACD,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;QAGD,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAGD,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC1B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;QAClC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1C,CAAC;IAGD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../model.ts"],"names":[],"mappings":"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"}
|
package/lib/config.ts
CHANGED
package/lib/watch.ts
CHANGED
|
@@ -28,74 +28,141 @@ type Canon = {
|
|
|
28
28
|
when: number
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
|
|
32
|
+
type ChangeItem = {
|
|
33
|
+
path: string
|
|
34
|
+
when: number
|
|
35
|
+
}
|
|
36
|
+
|
|
31
37
|
class Watch {
|
|
32
38
|
fsw: FSWatcher
|
|
33
39
|
spec: any
|
|
34
40
|
last?: BuildResult
|
|
35
|
-
|
|
41
|
+
lastChangeTime: number
|
|
36
42
|
build: Build | undefined
|
|
37
43
|
runq: Run[]
|
|
38
44
|
doneq: Run[]
|
|
39
45
|
canons: Canon[]
|
|
46
|
+
lastrun: Run | undefined
|
|
47
|
+
idle: number
|
|
48
|
+
startTime: number
|
|
40
49
|
running: boolean
|
|
50
|
+
lastChange: ChangeItem
|
|
51
|
+
lastTrigger: ChangeItem
|
|
41
52
|
|
|
42
53
|
constructor(spec: any) {
|
|
43
54
|
this.spec = spec
|
|
44
55
|
this.fsw = new FSWatcher()
|
|
45
|
-
this.
|
|
56
|
+
this.lastChangeTime = 0
|
|
46
57
|
this.runq = []
|
|
47
58
|
this.doneq = []
|
|
48
59
|
this.canons = []
|
|
60
|
+
this.startTime = 0
|
|
61
|
+
this.lastChange = { path: '', when: 0 }
|
|
62
|
+
this.lastTrigger = { path: '', when: 0 }
|
|
49
63
|
this.running = false
|
|
64
|
+
this.lastrun = undefined
|
|
50
65
|
|
|
51
|
-
|
|
52
|
-
const drain = this.drain.bind(this)
|
|
66
|
+
this.idle = spec.idle || 111
|
|
53
67
|
|
|
54
68
|
this.fsw.on('change', async (path: string) => {
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
// console.log('CHANGE', Date.now() - this.startTime, path)
|
|
70
|
+
this.handleChange(path)
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
// Returns first BuildResult
|
|
76
|
+
start() {
|
|
77
|
+
this.startTime = Date.now()
|
|
78
|
+
this.handleChange('<start>')
|
|
79
|
+
|
|
80
|
+
// Check if there have been no recent changes, if so, run build.
|
|
81
|
+
setInterval(() => {
|
|
82
|
+
const start = this.startTime
|
|
83
|
+
const now = Date.now()
|
|
84
|
+
const idleDuration = now - this.lastChange.when
|
|
85
|
+
|
|
86
|
+
// Only trigger a build if there was a actual change
|
|
87
|
+
const trigger = this.lastChange.when !== this.lastTrigger.when &&
|
|
88
|
+
this.lastChange.path !== this.lastTrigger.path
|
|
89
|
+
|
|
90
|
+
// console.log('CHECK-A', {
|
|
91
|
+
// tick: (now - start),
|
|
92
|
+
// idleDuration,
|
|
93
|
+
// trigger,
|
|
94
|
+
// running: this.running,
|
|
95
|
+
// path: this.lastChange.path
|
|
96
|
+
// })
|
|
97
|
+
|
|
98
|
+
if (trigger) {
|
|
99
|
+
|
|
100
|
+
// Only add to build queue if we've been idle.
|
|
101
|
+
// This allows external compilation outputting multiple files to complete fully.
|
|
102
|
+
// IMPORTANT: always trigger a new build if there were changes *inside* a build period
|
|
103
|
+
if (this.idle < idleDuration) {
|
|
104
|
+
this.lastTrigger.path = this.lastChange.path
|
|
105
|
+
this.lastTrigger.when = this.lastChange.when
|
|
106
|
+
|
|
107
|
+
const path = this.lastChange.path
|
|
108
|
+
const canon = this.canon(path)
|
|
109
|
+
|
|
110
|
+
this.runq.push({
|
|
111
|
+
canon,
|
|
112
|
+
path,
|
|
113
|
+
start: now,
|
|
114
|
+
end: -1,
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
// Defer builds to the event loop to keep idle checking separate.
|
|
118
|
+
setImmediate(this.drain.bind(this))
|
|
119
|
+
}
|
|
67
120
|
}
|
|
68
121
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
path,
|
|
72
|
-
start: Date.now(),
|
|
73
|
-
end: -1,
|
|
74
|
-
})
|
|
122
|
+
}, (this.idle * 1.1 / 2) | 0)
|
|
123
|
+
}
|
|
75
124
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
125
|
+
|
|
126
|
+
// If path is inside a watched folder, return folder as canonical reference.
|
|
127
|
+
canon(path: string) {
|
|
128
|
+
for (const canon of this.canons) {
|
|
129
|
+
if (canon.isFolder && path.startsWith(canon.path)) {
|
|
130
|
+
return canon.path
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return path
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
handleChange(path: string) {
|
|
138
|
+
// Record most recent (last) changed path and time
|
|
139
|
+
this.lastChange.path = path
|
|
140
|
+
this.lastChange.when = Date.now()
|
|
79
141
|
}
|
|
80
142
|
|
|
81
143
|
|
|
82
144
|
async drain() {
|
|
145
|
+
// If already running, all items in queue will be drained from this.runq in the while loop
|
|
83
146
|
if (this.running) {
|
|
84
147
|
return
|
|
85
148
|
}
|
|
86
149
|
|
|
87
150
|
this.running = true
|
|
88
|
-
let r
|
|
89
|
-
|
|
90
|
-
|
|
151
|
+
let r: Run | undefined
|
|
152
|
+
|
|
153
|
+
// While there are queued runs, run them sequentially
|
|
154
|
+
while (r = this.runq.shift()) {
|
|
155
|
+
// console.log('===DRAIN-RUN', this.runq.length, new Date(), r.start, r.canon)
|
|
156
|
+
|
|
157
|
+
// TODO: collect results and errors!!!
|
|
91
158
|
let br = await this.run(false, r.canon)
|
|
92
159
|
// console.log('BR', br)
|
|
93
|
-
this.runq.shift()
|
|
94
|
-
r.end = Date.now()
|
|
95
160
|
|
|
161
|
+
r.end = Date.now()
|
|
96
162
|
this.doneq.push(r)
|
|
163
|
+
this.lastrun = r
|
|
97
164
|
|
|
98
|
-
// console.log('
|
|
165
|
+
// console.log('===DRAIN-DONE', this.runq.length, new Date(), r.start, r.canon)
|
|
99
166
|
}
|
|
100
167
|
this.running = false
|
|
101
168
|
}
|
|
@@ -126,17 +193,6 @@ class Watch {
|
|
|
126
193
|
}
|
|
127
194
|
|
|
128
195
|
|
|
129
|
-
// If path is inside a watched folder, return folder as canonical reference.
|
|
130
|
-
canon(path: string) {
|
|
131
|
-
for (const canon of this.canons) {
|
|
132
|
-
if (canon.isFolder && path.startsWith(canon.path)) {
|
|
133
|
-
return canon.path
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return path
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
140
196
|
async update(br: BuildResult) {
|
|
141
197
|
let build = (br.build as Build)
|
|
142
198
|
|
|
@@ -160,17 +216,12 @@ class Watch {
|
|
|
160
216
|
}
|
|
161
217
|
|
|
162
218
|
|
|
163
|
-
// Returns first BuildResult
|
|
164
|
-
async start(): Promise<BuildResult> {
|
|
165
|
-
return await this.run(false, '<start>')
|
|
166
|
-
}
|
|
167
|
-
|
|
168
219
|
|
|
169
220
|
async run(once?: boolean, trigger?: string): Promise<BuildResult> {
|
|
170
221
|
// console.trace()
|
|
171
222
|
|
|
172
|
-
this.
|
|
173
|
-
print('\n@voxgig/model', this.
|
|
223
|
+
this.lastChangeTime = Date.now()
|
|
224
|
+
print('\n@voxgig/model =================', this.lastChangeTime, new Date(this.lastChangeTime))
|
|
174
225
|
print('TRIGGER:', trigger, '\n')
|
|
175
226
|
|
|
176
227
|
// TODO: build spec should not have src!
|
package/model.ts
CHANGED
|
@@ -94,9 +94,11 @@ class Model {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
async start()
|
|
97
|
+
async start() {
|
|
98
98
|
this.trigger_model = false
|
|
99
|
-
|
|
99
|
+
|
|
100
|
+
const br = await this.config.run()
|
|
101
|
+
// console.log('MODEL CONFIG START', br.ok)
|
|
100
102
|
return br.ok ? this.watch.start() : br
|
|
101
103
|
}
|
|
102
104
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/model",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"main": "dist/model.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/model.d.ts",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/jest": "^29.5.13",
|
|
53
|
-
"@types/node": "22.6
|
|
53
|
+
"@types/node": "22.7.6",
|
|
54
54
|
"es-jest": "^2.1.0",
|
|
55
55
|
"esbuild": "^0.24.0",
|
|
56
56
|
"esbuild-jest": "^0.5.0",
|
|
57
57
|
"jest": "^29.7.0",
|
|
58
|
-
"typescript": "^5.6.
|
|
58
|
+
"typescript": "^5.6.3"
|
|
59
59
|
}
|
|
60
60
|
}
|