@plugjs/plug 0.0.12 → 0.0.15
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/{types → dist}/assert.d.ts +0 -0
- package/dist/async.cjs +20 -19
- package/dist/async.cjs.map +1 -1
- package/dist/async.d.ts +20 -0
- package/dist/async.mjs +18 -17
- package/dist/async.mjs.map +1 -1
- package/dist/build.cjs +144 -110
- package/dist/build.cjs.map +2 -2
- package/dist/build.d.ts +12 -0
- package/dist/build.mjs +146 -112
- package/dist/build.mjs.map +2 -2
- package/dist/files.cjs +2 -16
- package/dist/files.cjs.map +1 -1
- package/{types → dist}/files.d.ts +3 -10
- package/dist/files.mjs +3 -17
- package/dist/files.mjs.map +1 -1
- package/dist/fork.cjs +28 -40
- package/dist/fork.cjs.map +1 -1
- package/dist/fork.d.ts +36 -0
- package/dist/fork.mjs +29 -40
- package/dist/fork.mjs.map +1 -1
- package/dist/helpers.cjs +61 -63
- package/dist/helpers.cjs.map +2 -2
- package/dist/helpers.d.ts +21 -0
- package/dist/helpers.mjs +61 -64
- package/dist/helpers.mjs.map +2 -2
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.mjs +3 -2
- package/dist/index.mjs.map +1 -1
- package/dist/log/colors.cjs +3 -1
- package/dist/log/colors.cjs.map +1 -1
- package/{types → dist}/log/colors.d.ts +2 -2
- package/dist/log/colors.mjs +3 -1
- package/dist/log/colors.mjs.map +1 -1
- package/{types → dist}/log/emit.d.ts +1 -1
- package/{types → dist}/log/levels.d.ts +0 -0
- package/dist/log/logger.cjs +4 -0
- package/dist/log/logger.cjs.map +1 -1
- package/{types → dist}/log/logger.d.ts +4 -1
- package/dist/log/logger.mjs +4 -0
- package/dist/log/logger.mjs.map +1 -1
- package/{types → dist}/log/options.d.ts +1 -1
- package/dist/log/report.cjs +4 -13
- package/dist/log/report.cjs.map +1 -1
- package/{types → dist}/log/report.d.ts +36 -4
- package/dist/log/report.mjs +3 -12
- package/dist/log/report.mjs.map +1 -1
- package/{types → dist}/log/spinner.d.ts +0 -0
- package/dist/log.cjs +1 -1
- package/dist/log.cjs.map +1 -1
- package/{types → dist}/log.d.ts +6 -6
- package/dist/log.mjs +2 -2
- package/dist/log.mjs.map +1 -1
- package/{types → dist}/paths.d.ts +0 -0
- package/dist/pipe.cjs +41 -34
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +182 -0
- package/dist/pipe.mjs +38 -32
- package/dist/pipe.mjs.map +1 -1
- package/dist/plugs/copy.cjs +15 -25
- package/dist/plugs/copy.cjs.map +2 -2
- package/dist/plugs/copy.d.ts +28 -0
- package/dist/plugs/copy.mjs +15 -17
- package/dist/plugs/copy.mjs.map +2 -2
- package/{types → dist}/plugs/coverage/analysis.d.ts +2 -2
- package/dist/plugs/coverage/report.cjs +4 -2
- package/dist/plugs/coverage/report.cjs.map +1 -1
- package/{types → dist}/plugs/coverage/report.d.ts +3 -3
- package/dist/plugs/coverage/report.mjs +4 -2
- package/dist/plugs/coverage/report.mjs.map +1 -1
- package/dist/plugs/coverage.cjs +23 -27
- package/dist/plugs/coverage.cjs.map +1 -1
- package/dist/plugs/coverage.d.ts +49 -0
- package/dist/plugs/coverage.mjs +24 -20
- package/dist/plugs/coverage.mjs.map +1 -1
- package/dist/plugs/debug.cjs +8 -37
- package/dist/plugs/debug.cjs.map +1 -1
- package/dist/plugs/debug.d.ts +7 -0
- package/dist/plugs/debug.mjs +24 -20
- package/dist/plugs/debug.mjs.map +1 -1
- package/{types → dist}/plugs/esbuild/bundle-locals.d.ts +0 -0
- package/{types → dist}/plugs/esbuild/fix-extensions.d.ts +0 -0
- package/dist/plugs/esbuild/fix-extensions.mjs +1 -1
- package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
- package/dist/plugs/esbuild.cjs +14 -25
- package/dist/plugs/esbuild.cjs.map +1 -1
- package/dist/plugs/esbuild.d.ts +18 -0
- package/dist/plugs/esbuild.mjs +14 -17
- package/dist/plugs/esbuild.mjs.map +1 -1
- package/dist/plugs/eslint/runner.cjs +5 -6
- package/dist/plugs/eslint/runner.cjs.map +1 -1
- package/dist/plugs/eslint/runner.d.ts +8 -0
- package/dist/plugs/eslint/runner.mjs +6 -7
- package/dist/plugs/eslint/runner.mjs.map +1 -1
- package/dist/{task.cjs → plugs/eslint.cjs} +7 -24
- package/dist/plugs/eslint.cjs.map +6 -0
- package/dist/plugs/eslint.d.ts +34 -0
- package/dist/plugs/eslint.mjs +5 -0
- package/dist/plugs/eslint.mjs.map +6 -0
- package/dist/plugs/exec.cjs +20 -24
- package/dist/plugs/exec.cjs.map +1 -1
- package/dist/plugs/exec.d.ts +90 -0
- package/dist/plugs/exec.mjs +20 -23
- package/dist/plugs/exec.mjs.map +1 -1
- package/dist/plugs/filter.cjs +9 -19
- package/dist/plugs/filter.cjs.map +1 -1
- package/dist/plugs/filter.d.ts +29 -0
- package/dist/plugs/filter.mjs +10 -12
- package/dist/plugs/filter.mjs.map +1 -1
- package/dist/plugs/mocha/reporter.cjs +19 -6
- package/dist/plugs/mocha/reporter.cjs.map +1 -1
- package/{types → dist}/plugs/mocha/reporter.d.ts +0 -2
- package/dist/plugs/mocha/reporter.mjs +18 -4
- package/dist/plugs/mocha/reporter.mjs.map +1 -1
- package/dist/plugs/mocha/runner.cjs +4 -5
- package/dist/plugs/mocha/runner.cjs.map +1 -1
- package/dist/plugs/mocha/runner.d.ts +8 -0
- package/dist/plugs/mocha/runner.mjs +5 -6
- package/dist/plugs/mocha/runner.mjs.map +1 -1
- package/dist/plugs/mocha.cjs +22 -0
- package/dist/plugs/mocha.cjs.map +6 -0
- package/{types/plugs/mocha/runner.d.ts → dist/plugs/mocha.d.ts} +9 -8
- package/dist/plugs/mocha.mjs +5 -0
- package/dist/plugs/mocha.mjs.map +6 -0
- package/dist/plugs/rmf.cjs +4 -32
- package/dist/plugs/rmf.cjs.map +1 -1
- package/dist/plugs/rmf.d.ts +11 -0
- package/dist/plugs/rmf.mjs +25 -20
- package/dist/plugs/rmf.mjs.map +1 -1
- package/{types → dist}/plugs/tsc/compiler.d.ts +1 -1
- package/{types → dist}/plugs/tsc/options.d.ts +1 -1
- package/{types → dist}/plugs/tsc/report.d.ts +2 -2
- package/dist/plugs/tsc/runner.cjs +12 -11
- package/dist/plugs/tsc/runner.cjs.map +1 -1
- package/dist/plugs/tsc/runner.d.ts +8 -0
- package/dist/plugs/tsc/runner.mjs +12 -11
- package/dist/plugs/tsc/runner.mjs.map +1 -1
- package/dist/plugs/tsc.cjs +7 -0
- package/dist/plugs/tsc.cjs.map +6 -0
- package/dist/plugs/tsc.d.ts +36 -0
- package/dist/plugs/tsc.mjs +15 -0
- package/dist/plugs/tsc.mjs.map +6 -0
- package/dist/plugs.cjs +3 -5
- package/dist/plugs.cjs.map +1 -1
- package/dist/plugs.d.ts +10 -0
- package/dist/plugs.mjs +3 -5
- package/dist/plugs.mjs.map +1 -1
- package/dist/types.cjs +19 -0
- package/dist/types.cjs.map +6 -0
- package/dist/types.d.ts +72 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +6 -0
- package/{types → dist}/utils/asyncfs.d.ts +0 -0
- package/dist/utils/caller.cjs +8 -11
- package/dist/utils/caller.cjs.map +2 -2
- package/dist/utils/caller.d.ts +2 -0
- package/dist/utils/caller.mjs +8 -11
- package/dist/utils/caller.mjs.map +2 -2
- package/{types → dist}/utils/match.d.ts +0 -0
- package/dist/utils/options.cjs +4 -6
- package/dist/utils/options.cjs.map +1 -1
- package/dist/utils/options.d.ts +16 -0
- package/dist/utils/options.mjs +4 -6
- package/dist/utils/options.mjs.map +1 -1
- package/{types → dist}/utils/walk.d.ts +2 -2
- package/extra/cli.mjs +31 -20
- package/extra/ts-loader.mjs +6 -5
- package/package.json +10 -10
- package/src/async.ts +27 -19
- package/src/files.ts +6 -30
- package/src/fork.ts +35 -76
- package/src/helpers.ts +89 -101
- package/src/index.ts +10 -15
- package/src/log/colors.ts +4 -3
- package/src/log/emit.ts +4 -4
- package/src/log/logger.ts +12 -4
- package/src/log/options.ts +1 -1
- package/src/log/report.ts +10 -24
- package/src/log/spinner.ts +3 -3
- package/src/log.ts +9 -9
- package/src/paths.ts +1 -1
- package/src/pipe.ts +191 -178
- package/src/plugs/copy.ts +40 -31
- package/src/plugs/coverage/analysis.ts +4 -4
- package/src/plugs/coverage/report.ts +9 -6
- package/src/plugs/coverage.ts +68 -55
- package/src/plugs/debug.ts +22 -27
- package/src/plugs/esbuild/fix-extensions.ts +2 -2
- package/src/plugs/esbuild.ts +42 -46
- package/src/plugs/eslint/runner.ts +16 -31
- package/src/plugs/eslint.ts +42 -0
- package/src/plugs/exec.ts +93 -82
- package/src/plugs/filter.ts +42 -27
- package/src/plugs/mocha/reporter.ts +19 -5
- package/src/plugs/mocha/runner.ts +12 -38
- package/src/plugs/mocha.ts +41 -0
- package/src/plugs/rmf.ts +21 -25
- package/src/plugs/tsc/compiler.ts +1 -1
- package/src/plugs/tsc/options.ts +2 -2
- package/src/plugs/tsc/report.ts +2 -2
- package/src/plugs/tsc/runner.ts +24 -30
- package/src/plugs/tsc.ts +45 -0
- package/src/plugs.ts +10 -25
- package/src/types.ts +123 -0
- package/src/utils/caller.ts +11 -22
- package/src/utils/options.ts +49 -17
- package/src/utils/walk.ts +4 -4
- package/dist/run.cjs +0 -90
- package/dist/run.cjs.map +0 -6
- package/dist/run.mjs +0 -65
- package/dist/run.mjs.map +0 -6
- package/dist/task.cjs.map +0 -6
- package/dist/task.mjs +0 -14
- package/dist/task.mjs.map +0 -6
- package/src/run.ts +0 -159
- package/src/task.ts +0 -26
- package/types/async.d.ts +0 -20
- package/types/build.d.ts +0 -56
- package/types/fork.d.ts +0 -57
- package/types/helpers.d.ts +0 -43
- package/types/index.d.ts +0 -14
- package/types/pipe.d.ts +0 -152
- package/types/plugs/copy.d.ts +0 -27
- package/types/plugs/coverage.d.ts +0 -46
- package/types/plugs/debug.d.ts +0 -14
- package/types/plugs/esbuild.d.ts +0 -23
- package/types/plugs/eslint/runner.d.ts +0 -22
- package/types/plugs/exec.d.ts +0 -90
- package/types/plugs/filter.d.ts +0 -23
- package/types/plugs/rmf.d.ts +0 -15
- package/types/plugs/tsc/runner.d.ts +0 -13
- package/types/plugs.d.ts +0 -17
- package/types/run.d.ts +0 -89
- package/types/task.d.ts +0 -15
- package/types/utils/caller.d.ts +0 -7
- package/types/utils/options.d.ts +0 -15
package/dist/pipe.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/pipe.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAkC;AAClC,mBAAiG;AAEjG,kBAA4B;AAC5B,kBAAoB;AA+Bb,IAAM,UAAN,MAAc;AAAA,EAMnB,YAEoB,WAEA,UAClB;AAHkB;AAEA;AAElB,SAAK,eAAW,gCAAkB,SAAS;AAC3C,SAAK,UAAM,sBAAU,QAAQ;AAAA,EAC/B;AAAA,EAZgB;AAAA,EAEA;AAAA,EAYhB,QAAQ,SAAiB,OAA+B;AAEtD,QAAI,QAAQ,KAAK,WAAW,GAAG,GAAG;AAEhC,YAAM,aAAa,KAAK,UAAU,CAAC,EAAE,MAAM,eAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,iBAAO,kCAAoB,KAAK,UAAU,GAAG,YAAY,GAAG,KAAK;AAAA,IACnE;AAGA,QAAI,CAAE;AAAM,iBAAO,yCAA2B;AAG9C,eAAO,sCAAoB,yCAA2B,GAAG,MAAM,GAAG,KAAK;AAAA,EACzE;AACF;AAUA,IAAe,YAAf,MAAyB;AAEzB;AAMO,IAAe,OAAf,cAA4B,UAAU;AAO7C;AAyGO,SAAS,QAGd,MAAY,MAAkB;AAE9B,WAAS,QAAyB,MAAuD;AAEvF,WAAO,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC;AAAA,EACpC;AAGA,SAAO,eAAe,MAAM,QAAQ,EAAE,OAAO,KAAK,CAAC;AAGnD,SAAO,eAAe,UAAU,WAAW,MAAM,EAAE,OAAO,KAAK,CAAC;AAClE;AAmBO,SAAS,eACZ,UACA,YACI;AAEN,QAAM,OAAO,cAAc,wBAAY;AAAA,IACrC,eAAe,MAAa;AAC1B,YAAM,YAAY,IAAI;AAAA,IACxB;AAAA,EACF;AAGA,UAAQ,UAAU,IAAI;AACxB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/pipe.d.ts
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { Files } from './files';
|
|
2
|
+
import { Logger } from './log';
|
|
3
|
+
import { AbsolutePath } from './paths';
|
|
4
|
+
/** A convenience type indicating what can be returned by a {@link Plug}. */
|
|
5
|
+
export declare type PlugResult = Files | undefined | void;
|
|
6
|
+
/**
|
|
7
|
+
* The {@link Plug} interface describes _build plugin_.
|
|
8
|
+
*
|
|
9
|
+
* A {@link Plug} receives a {@link Files} instance in its input (for example
|
|
10
|
+
* a list of _source `.ts` files_) and optionally produces a possibly different
|
|
11
|
+
* list (for example the _compiled `.js` files_).
|
|
12
|
+
*/
|
|
13
|
+
export interface Plug<T extends PlugResult> {
|
|
14
|
+
pipe(files: Files, context: Context): T | Promise<T>;
|
|
15
|
+
}
|
|
16
|
+
/** A type identifying a {@link Plug} as a `function` */
|
|
17
|
+
export declare type PlugFunction<T extends PlugResult> = Plug<T>['pipe'];
|
|
18
|
+
/**
|
|
19
|
+
* The {@link Context} class defines the context in which a {@link Plug}
|
|
20
|
+
* is invoked.
|
|
21
|
+
*/
|
|
22
|
+
export declare class Context {
|
|
23
|
+
/** The absolute file name where the task was defined. */
|
|
24
|
+
readonly buildFile: AbsolutePath;
|
|
25
|
+
/** The _name_ of the task associated with this {@link Context}. */
|
|
26
|
+
readonly taskName: string;
|
|
27
|
+
/** The directory of the file where the task was defined (convenience). */
|
|
28
|
+
readonly buildDir: AbsolutePath;
|
|
29
|
+
/** The {@link Logger} associated with this instance. */
|
|
30
|
+
readonly log: Logger;
|
|
31
|
+
constructor(
|
|
32
|
+
/** The absolute file name where the task was defined. */
|
|
33
|
+
buildFile: AbsolutePath,
|
|
34
|
+
/** The _name_ of the task associated with this {@link Context}. */
|
|
35
|
+
taskName: string);
|
|
36
|
+
resolve(path: string, ...paths: string[]): AbsolutePath;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A class that will be extended by {@link Pipe} where {@link install} will
|
|
40
|
+
* add prototype properties from installed {@link Plug}s
|
|
41
|
+
*/
|
|
42
|
+
declare abstract class PipeProto {
|
|
43
|
+
abstract plug(plug: Plug<PlugResult>): Pipe | Promise<undefined>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The {@link Pipe} abstract defines processing pipeline where multiple
|
|
47
|
+
* {@link Plug}s can transform lists of {@link Files}.
|
|
48
|
+
*/
|
|
49
|
+
export declare abstract class Pipe extends PipeProto {
|
|
50
|
+
abstract plug(plug: Plug<Files>): Pipe;
|
|
51
|
+
abstract plug(plug: PlugFunction<Files>): Pipe;
|
|
52
|
+
abstract plug(plug: Plug<void | undefined>): Promise<undefined>;
|
|
53
|
+
abstract plug(plug: PlugFunction<void | undefined>): Promise<undefined>;
|
|
54
|
+
abstract run(): Promise<Files>;
|
|
55
|
+
}
|
|
56
|
+
/** The names which can be installed as direct plugs. */
|
|
57
|
+
export declare type PlugName = string & Exclude<keyof Pipe, 'plug' | 'run'>;
|
|
58
|
+
/** The parameters of the plug extension with the given name */
|
|
59
|
+
export declare type PipeParameters<Name extends PlugName> = PipeOverloads<Name>['args'];
|
|
60
|
+
/** Extract arguments and return types from function overloads. */
|
|
61
|
+
declare type PipeOverloads<Name extends PlugName> = Pipe[Name] extends {
|
|
62
|
+
(...args: infer A0): infer R0;
|
|
63
|
+
(...args: infer A1): infer R1;
|
|
64
|
+
(...args: infer A2): infer R2;
|
|
65
|
+
(...args: infer A3): infer R3;
|
|
66
|
+
(...args: infer A4): infer R4;
|
|
67
|
+
} ? (R0 extends (Pipe | Promise<undefined>) ? {
|
|
68
|
+
args: A0;
|
|
69
|
+
ret: R0;
|
|
70
|
+
} : never) | (R1 extends (Pipe | Promise<undefined>) ? {
|
|
71
|
+
args: A1;
|
|
72
|
+
ret: R1;
|
|
73
|
+
} : never) | (R2 extends (Pipe | Promise<undefined>) ? {
|
|
74
|
+
args: A2;
|
|
75
|
+
ret: R2;
|
|
76
|
+
} : never) | (R3 extends (Pipe | Promise<undefined>) ? {
|
|
77
|
+
args: A3;
|
|
78
|
+
ret: R3;
|
|
79
|
+
} : never) | (R4 extends (Pipe | Promise<undefined>) ? {
|
|
80
|
+
args: A4;
|
|
81
|
+
ret: R4;
|
|
82
|
+
} : never) : Pipe[Name] extends {
|
|
83
|
+
(...args: infer A0): infer R0;
|
|
84
|
+
(...args: infer A1): infer R1;
|
|
85
|
+
(...args: infer A2): infer R2;
|
|
86
|
+
(...args: infer A3): infer R3;
|
|
87
|
+
} ? (R0 extends (Pipe | Promise<undefined>) ? {
|
|
88
|
+
args: A0;
|
|
89
|
+
ret: R0;
|
|
90
|
+
} : never) | (R1 extends (Pipe | Promise<undefined>) ? {
|
|
91
|
+
args: A1;
|
|
92
|
+
ret: R1;
|
|
93
|
+
} : never) | (R2 extends (Pipe | Promise<undefined>) ? {
|
|
94
|
+
args: A2;
|
|
95
|
+
ret: R2;
|
|
96
|
+
} : never) | (R3 extends (Pipe | Promise<undefined>) ? {
|
|
97
|
+
args: A3;
|
|
98
|
+
ret: R3;
|
|
99
|
+
} : never) : Pipe[Name] extends {
|
|
100
|
+
(...args: infer A0): infer R0;
|
|
101
|
+
(...args: infer A1): infer R1;
|
|
102
|
+
(...args: infer A2): infer R2;
|
|
103
|
+
} ? (R0 extends (Pipe | Promise<undefined>) ? {
|
|
104
|
+
args: A0;
|
|
105
|
+
ret: R0;
|
|
106
|
+
} : never) | (R1 extends (Pipe | Promise<undefined>) ? {
|
|
107
|
+
args: A1;
|
|
108
|
+
ret: R1;
|
|
109
|
+
} : never) | (R2 extends (Pipe | Promise<undefined>) ? {
|
|
110
|
+
args: A2;
|
|
111
|
+
ret: R2;
|
|
112
|
+
} : never) : Pipe[Name] extends {
|
|
113
|
+
(...args: infer A0): infer R0;
|
|
114
|
+
(...args: infer A1): infer R1;
|
|
115
|
+
} ? (R0 extends (Pipe | Promise<undefined>) ? {
|
|
116
|
+
args: A0;
|
|
117
|
+
ret: R0;
|
|
118
|
+
} : never) | (R1 extends (Pipe | Promise<undefined>) ? {
|
|
119
|
+
args: A1;
|
|
120
|
+
ret: R1;
|
|
121
|
+
} : never) : Pipe[Name] extends {
|
|
122
|
+
(...args: infer A0): infer R0;
|
|
123
|
+
} ? (R0 extends (Pipe | Promise<undefined>) ? {
|
|
124
|
+
args: A0;
|
|
125
|
+
ret: R0;
|
|
126
|
+
} : never) : never;
|
|
127
|
+
/** The parameters of the plug extension with the given name */
|
|
128
|
+
declare type PipeResult<Name extends PlugName> = PipeOverloads<Name>['ret'];
|
|
129
|
+
/**
|
|
130
|
+
* A type defining the correct constructor for a {@link Plug}, inferring
|
|
131
|
+
* argument types and instance type from the definitions in {@link Pipe}.
|
|
132
|
+
*/
|
|
133
|
+
declare type PlugConstructor<Name extends PlugName> = PipeResult<Name> extends Pipe ? new (...args: PipeParameters<Name>) => Plug<Files> : PipeResult<Name> extends Promise<undefined> ? new (...args: PipeParameters<Name>) => Plug<void | undefined> : PipeResult<Name> extends (Pipe | Promise<undefined>) ? new (...args: PipeParameters<Name>) => Plug<Files | void | undefined> : never;
|
|
134
|
+
/**
|
|
135
|
+
* Install a {@link Plug} into our {@link Pipe} prototype.
|
|
136
|
+
*
|
|
137
|
+
* This allows our shorthand syntax for well-defined plugs such as:
|
|
138
|
+
*
|
|
139
|
+
* ```
|
|
140
|
+
* find('./src', '*.ts').write('./target')
|
|
141
|
+
* // Nicer and easier than...
|
|
142
|
+
* find('./src', '*.ts').plug(new Write('./target'))
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* Use this alongside interface merging like:
|
|
146
|
+
*
|
|
147
|
+
* ```
|
|
148
|
+
* declare module '@plugjs/plug/pipe' {
|
|
149
|
+
* export interface Pipe {
|
|
150
|
+
* write(): Pipe
|
|
151
|
+
* }
|
|
152
|
+
* }
|
|
153
|
+
*
|
|
154
|
+
* install('write', class Write implements Plug {
|
|
155
|
+
* constructorg(...args: PipeParams<'write'>) {
|
|
156
|
+
* // here `args` is automatically inferred by whatever was declared above
|
|
157
|
+
* }
|
|
158
|
+
*
|
|
159
|
+
* // ... the plug implementation lives here
|
|
160
|
+
* })
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export declare function install<Name extends PlugName, Ctor extends PlugConstructor<Name>>(name: Name, ctor: Ctor): void;
|
|
164
|
+
/**
|
|
165
|
+
* Install a _forking_ {@link Plug} in the {@link Pipe}, in other words
|
|
166
|
+
* execute the plug in a separate process.
|
|
167
|
+
*
|
|
168
|
+
* As a contract, if the _last non-null_ parameter of the constructor is an
|
|
169
|
+
* object and contains the key `coverageDir`, the process will be forked with
|
|
170
|
+
* the approptiately resolved `NODE_V8_COVERAGE` environment variable.
|
|
171
|
+
*
|
|
172
|
+
* Also, forking plugs require some special attention:
|
|
173
|
+
*
|
|
174
|
+
* * plug functions are not supported, only classes implementing the
|
|
175
|
+
* {@link Plug} interface can be used with this.
|
|
176
|
+
*
|
|
177
|
+
* * the class itself _MUST_ be exported as the _default_ export for the
|
|
178
|
+
* `scriptFile` specified below. This is to simplify interoperability between
|
|
179
|
+
* CommonJS and ESM modules as we use dynamic `import(...)` statements.
|
|
180
|
+
*/
|
|
181
|
+
export declare function installForking<Name extends PlugName>(plugName: Name, scriptFile: AbsolutePath): void;
|
|
182
|
+
export {};
|
package/dist/pipe.mjs
CHANGED
|
@@ -1,44 +1,50 @@
|
|
|
1
1
|
// pipe.ts
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this
|
|
11
|
-
this
|
|
12
|
-
}
|
|
13
|
-
plug(arg) {
|
|
14
|
-
const plug = typeof arg === "function" ? { pipe: arg } : arg;
|
|
15
|
-
const promise = this.#promise.then((files) => {
|
|
16
|
-
assert(files, "Pipe can not be further extended");
|
|
17
|
-
return plug.pipe(files, this.#run);
|
|
18
|
-
});
|
|
19
|
-
return new PipeImpl(promise, this.#run);
|
|
20
|
-
}
|
|
21
|
-
then(onfulfilled, onrejected) {
|
|
22
|
-
return this.#promise.then(onfulfilled, onrejected);
|
|
23
|
-
}
|
|
24
|
-
catch(onrejected) {
|
|
25
|
-
return this.#promise.catch(onrejected);
|
|
2
|
+
import { getLogger } from "./log.mjs";
|
|
3
|
+
import { getAbsoluteParent, getCurrentWorkingDirectory, resolveAbsolutePath } from "./paths.mjs";
|
|
4
|
+
import { ForkingPlug } from "./fork.mjs";
|
|
5
|
+
import { sep } from "path";
|
|
6
|
+
var Context = class {
|
|
7
|
+
constructor(buildFile, taskName) {
|
|
8
|
+
this.buildFile = buildFile;
|
|
9
|
+
this.taskName = taskName;
|
|
10
|
+
this.buildDir = getAbsoluteParent(buildFile);
|
|
11
|
+
this.log = getLogger(taskName);
|
|
26
12
|
}
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
buildDir;
|
|
14
|
+
log;
|
|
15
|
+
resolve(path, ...paths) {
|
|
16
|
+
if (path && path.startsWith("@")) {
|
|
17
|
+
const components = path.substring(1).split(sep).filter((s) => !!s);
|
|
18
|
+
return resolveAbsolutePath(this.buildDir, ...components, ...paths);
|
|
19
|
+
}
|
|
20
|
+
if (!path)
|
|
21
|
+
return getCurrentWorkingDirectory();
|
|
22
|
+
return resolveAbsolutePath(getCurrentWorkingDirectory(), path, ...paths);
|
|
29
23
|
}
|
|
30
|
-
|
|
24
|
+
};
|
|
25
|
+
var PipeProto = class {
|
|
26
|
+
};
|
|
27
|
+
var Pipe = class extends PipeProto {
|
|
31
28
|
};
|
|
32
29
|
function install(name, ctor) {
|
|
33
|
-
function
|
|
30
|
+
function plug(...args) {
|
|
34
31
|
return this.plug(new ctor(...args));
|
|
35
32
|
}
|
|
36
|
-
Object.defineProperty(
|
|
37
|
-
Object.defineProperty(
|
|
33
|
+
Object.defineProperty(plug, "name", { value: name });
|
|
34
|
+
Object.defineProperty(PipeProto.prototype, name, { value: plug });
|
|
35
|
+
}
|
|
36
|
+
function installForking(plugName, scriptFile) {
|
|
37
|
+
const ctor = class extends ForkingPlug {
|
|
38
|
+
constructor(...args) {
|
|
39
|
+
super(scriptFile, args);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
install(plugName, ctor);
|
|
38
43
|
}
|
|
39
44
|
export {
|
|
45
|
+
Context,
|
|
40
46
|
Pipe,
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
install,
|
|
48
|
+
installForking
|
|
43
49
|
};
|
|
44
50
|
//# sourceMappingURL=pipe.mjs.map
|
package/dist/pipe.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/pipe.ts"],
|
|
4
|
-
"mappings": ";
|
|
4
|
+
"mappings": ";AACA,SAAS,iBAAyB;AAClC,SAAuB,mBAAmB,4BAA4B,2BAA2B;AAEjG,SAAS,mBAAmB;AAC5B,SAAS,WAAW;AA+Bb,IAAM,UAAN,MAAc;AAAA,EAMnB,YAEoB,WAEA,UAClB;AAHkB;AAEA;AAElB,SAAK,WAAW,kBAAkB,SAAS;AAC3C,SAAK,MAAM,UAAU,QAAQ;AAAA,EAC/B;AAAA,EAZgB;AAAA,EAEA;AAAA,EAYhB,QAAQ,SAAiB,OAA+B;AAEtD,QAAI,QAAQ,KAAK,WAAW,GAAG,GAAG;AAEhC,YAAM,aAAa,KAAK,UAAU,CAAC,EAAE,MAAM,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,aAAO,oBAAoB,KAAK,UAAU,GAAG,YAAY,GAAG,KAAK;AAAA,IACnE;AAGA,QAAI,CAAE;AAAM,aAAO,2BAA2B;AAG9C,WAAO,oBAAoB,2BAA2B,GAAG,MAAM,GAAG,KAAK;AAAA,EACzE;AACF;AAUA,IAAe,YAAf,MAAyB;AAEzB;AAMO,IAAe,OAAf,cAA4B,UAAU;AAO7C;AAyGO,SAAS,QAGd,MAAY,MAAkB;AAE9B,WAAS,QAAyB,MAAuD;AAEvF,WAAO,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC;AAAA,EACpC;AAGA,SAAO,eAAe,MAAM,QAAQ,EAAE,OAAO,KAAK,CAAC;AAGnD,SAAO,eAAe,UAAU,WAAW,MAAM,EAAE,OAAO,KAAK,CAAC;AAClE;AAmBO,SAAS,eACZ,UACA,YACI;AAEN,QAAM,OAAO,cAAc,YAAY;AAAA,IACrC,eAAe,MAAa;AAC1B,YAAM,YAAY,IAAI;AAAA,IACxB;AAAA,EACF;AAGA,UAAQ,UAAU,IAAI;AACxB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/plugs/copy.cjs
CHANGED
|
@@ -3,10 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
6
|
var __copyProps = (to, from, except, desc) => {
|
|
11
7
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
8
|
for (let key of __getOwnPropNames(from))
|
|
@@ -19,57 +15,55 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
15
|
|
|
20
16
|
// plugs/copy.ts
|
|
21
17
|
var copy_exports = {};
|
|
22
|
-
__export(copy_exports, {
|
|
23
|
-
Copy: () => Copy
|
|
24
|
-
});
|
|
25
18
|
module.exports = __toCommonJS(copy_exports);
|
|
26
19
|
var import_assert = require("../assert.cjs");
|
|
20
|
+
var import_files = require("../files.cjs");
|
|
27
21
|
var import_log = require("../log.cjs");
|
|
28
22
|
var import_paths = require("../paths.cjs");
|
|
29
23
|
var import_pipe = require("../pipe.cjs");
|
|
30
24
|
var import_asyncfs = require("../utils/asyncfs.cjs");
|
|
31
|
-
|
|
25
|
+
(0, import_pipe.install)("copy", class Copy {
|
|
32
26
|
constructor(_directory, _options = {}) {
|
|
33
27
|
this._directory = _directory;
|
|
34
28
|
this._options = _options;
|
|
35
29
|
}
|
|
36
|
-
async pipe(files,
|
|
30
|
+
async pipe(files, context) {
|
|
37
31
|
const { mode, dirMode, overwrite, rename = (s) => s } = this._options;
|
|
38
32
|
const flags = overwrite ? import_asyncfs.fsConstants.COPYFILE_EXCL : 0;
|
|
39
33
|
const dmode = parseMode(dirMode);
|
|
40
34
|
const fmode = parseMode(mode);
|
|
41
|
-
const
|
|
35
|
+
const directory = context.resolve(this._directory);
|
|
36
|
+
const builder = import_files.Files.builder(directory);
|
|
42
37
|
for (const [relative, absolute] of files.pathMappings()) {
|
|
43
38
|
const target = (0, import_paths.resolveAbsolutePath)(builder.directory, rename(relative));
|
|
44
39
|
if (target === absolute) {
|
|
45
|
-
|
|
40
|
+
context.log.warn("Cowardly refusing to copy same file", (0, import_log.$p)(absolute));
|
|
46
41
|
continue;
|
|
47
42
|
}
|
|
48
|
-
const
|
|
49
|
-
const firstParent = await (0, import_asyncfs.mkdir)(
|
|
43
|
+
const directory2 = (0, import_paths.getAbsoluteParent)(target);
|
|
44
|
+
const firstParent = await (0, import_asyncfs.mkdir)(directory2, { recursive: true });
|
|
50
45
|
if (firstParent && dmode !== void 0) {
|
|
51
46
|
(0, import_paths.assertAbsolutePath)(firstParent);
|
|
52
|
-
for (let dir =
|
|
53
|
-
|
|
47
|
+
for (let dir = directory2; ; dir = (0, import_paths.getAbsoluteParent)(dir)) {
|
|
48
|
+
context.log.trace(`Setting mode ${stringifyMode(dmode)} for directory`, (0, import_log.$p)(dir));
|
|
54
49
|
await (0, import_asyncfs.chmod)(dir, dmode);
|
|
55
50
|
if (dir === firstParent)
|
|
56
51
|
break;
|
|
57
52
|
}
|
|
58
53
|
}
|
|
59
|
-
|
|
54
|
+
context.log.trace(`Copying "${(0, import_log.$p)(absolute)}" to "${(0, import_log.$p)(target)}"`);
|
|
60
55
|
await (0, import_asyncfs.copyFile)(absolute, target, flags);
|
|
61
56
|
if (fmode !== void 0) {
|
|
62
|
-
|
|
57
|
+
context.log.trace(`Setting mode ${stringifyMode(fmode)} for file`, (0, import_log.$p)(target));
|
|
63
58
|
await (0, import_asyncfs.chmod)(target, fmode);
|
|
64
59
|
}
|
|
65
|
-
builder.
|
|
60
|
+
builder.add(relative);
|
|
66
61
|
}
|
|
67
62
|
const result = builder.build();
|
|
68
|
-
|
|
63
|
+
context.log.info("Copied", result.length, "files to", (0, import_log.$p)(builder.directory));
|
|
69
64
|
return result;
|
|
70
65
|
}
|
|
71
|
-
};
|
|
72
|
-
(0, import_pipe.install)("copy", Copy);
|
|
66
|
+
});
|
|
73
67
|
function parseMode(mode) {
|
|
74
68
|
if (mode === void 0)
|
|
75
69
|
return void 0;
|
|
@@ -82,8 +76,4 @@ function parseMode(mode) {
|
|
|
82
76
|
function stringifyMode(mode) {
|
|
83
77
|
return mode.toString(8).padStart(4, "0");
|
|
84
78
|
}
|
|
85
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
86
|
-
0 && (module.exports = {
|
|
87
|
-
Copy
|
|
88
|
-
});
|
|
89
79
|
//# sourceMappingURL=copy.cjs.map
|
package/dist/plugs/copy.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugs/copy.ts"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,oBAAuB;AACvB,mBAAsB;AACtB,iBAAmB;AACnB,mBAA2E;AAC3E,kBAAuD;AACvD,qBAAoD;AAAA,IAqCpD,qBAAQ,QAAQ,MAAM,KAA4B;AAAA,EAEhD,YACqB,YACA,WAAwB,CAAC,GAC5C;AAFmB;AACA;AAAA,EAClB;AAAA,EAEH,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,EAAE,MAAM,SAAS,WAAW,SAAS,CAAC,MAAc,EAAE,IAAI,KAAK;AACrE,UAAM,QAAQ,YAAY,2BAAY,gBAAgB;AACtD,UAAM,QAAQ,UAAU,OAAO;AAC/B,UAAM,QAAQ,UAAU,IAAI;AAG5B,UAAM,YAAY,QAAQ,QAAQ,KAAK,UAAU;AACjD,UAAM,UAAU,mBAAM,QAAQ,SAAS;AAGvC,eAAW,CAAE,UAAU,QAAS,KAAK,MAAM,aAAa,GAAG;AAGzD,YAAM,aAAS,kCAAoB,QAAQ,WAAW,OAAO,QAAQ,CAAC;AAGtE,UAAI,WAAW,UAAU;AACvB,gBAAQ,IAAI,KAAK,2CAAuC,eAAG,QAAQ,CAAC;AACpE;AAAA,MACF;AAGA,YAAMA,iBAAY,gCAAkB,MAAM;AAC1C,YAAM,cAAc,UAAM,sBAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAG9D,UAAI,eAAgB,UAAU,QAAY;AACxC,6CAAmB,WAAW;AAC9B,iBAAS,MAAMA,cAAa,UAAM,gCAAkB,GAAG,GAAG;AACxD,kBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,uBAAmB,eAAG,GAAG,CAAC;AAC/E,oBAAM,sBAAM,KAAK,KAAK;AACtB,cAAI,QAAQ;AAAa;AAAA,QAC3B;AAAA,MACF;AAGA,cAAQ,IAAI,MAAM,gBAAY,eAAG,QAAQ,cAAU,eAAG,MAAM,IAAI;AAChE,gBAAM,yBAAS,UAAU,QAAQ,KAAK;AAGtC,UAAI,UAAU,QAAW;AACvB,gBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,kBAAc,eAAG,MAAM,CAAC;AAC7E,kBAAM,sBAAM,QAAQ,KAAK;AAAA,MAC3B;AAGA,cAAQ,IAAI,QAAQ;AAAA,IACtB;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,YAAQ,IAAI,KAAK,UAAU,OAAO,QAAQ,gBAAY,eAAG,QAAQ,SAAS,CAAC;AAC3E,WAAO;AAAA,EACT;AACF,CAAC;AAMD,SAAS,UAAU,MAAuD;AACxE,MAAI,SAAS;AAAW,WAAO;AAC/B,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,QAAM,SAAS,SAAS,MAAM,CAAC;AAC/B,4BAAO,CAAE,MAAM,MAAM,GAAG,iBAAiB,OAAO;AAChD,SAAO;AACT;AAEA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG;AACzC;",
|
|
5
|
+
"names": ["directory"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Options for copying files */
|
|
2
|
+
export interface CopyOptions {
|
|
3
|
+
/** Whether to allow overwriting or not (default `false`). */
|
|
4
|
+
overwrite?: boolean;
|
|
5
|
+
/** If specified, use this `mode` (octal string) when creating files. */
|
|
6
|
+
mode?: string | number;
|
|
7
|
+
/** If specified, use this `mode` (octal string) when creating directories. */
|
|
8
|
+
dirMode?: string | number;
|
|
9
|
+
/** If specified, this function will be invoked to rename files. */
|
|
10
|
+
rename?: (relative: string) => string;
|
|
11
|
+
}
|
|
12
|
+
declare module '../pipe' {
|
|
13
|
+
interface Pipe {
|
|
14
|
+
/**
|
|
15
|
+
* Copy the curent {@link Files} to a different directory
|
|
16
|
+
*
|
|
17
|
+
* @param directory The target directory where files will be copied to
|
|
18
|
+
*/
|
|
19
|
+
copy(directory: string): Pipe;
|
|
20
|
+
/**
|
|
21
|
+
* Copy the curent {@link Files} to a different directory
|
|
22
|
+
*
|
|
23
|
+
* @param directory The target directory where files will be copied to
|
|
24
|
+
* @param options Extra {@link CopyOptions | options} for the copy operation
|
|
25
|
+
*/
|
|
26
|
+
copy(directory: string, options: CopyOptions): Pipe;
|
|
27
|
+
}
|
|
28
|
+
}
|
package/dist/plugs/copy.mjs
CHANGED
|
@@ -1,51 +1,52 @@
|
|
|
1
1
|
// plugs/copy.ts
|
|
2
2
|
import { assert } from "../assert.mjs";
|
|
3
|
+
import { Files } from "../files.mjs";
|
|
3
4
|
import { $p } from "../log.mjs";
|
|
4
5
|
import { assertAbsolutePath, getAbsoluteParent, resolveAbsolutePath } from "../paths.mjs";
|
|
5
6
|
import { install } from "../pipe.mjs";
|
|
6
7
|
import { chmod, copyFile, fsConstants, mkdir } from "../utils/asyncfs.mjs";
|
|
7
|
-
|
|
8
|
+
install("copy", class Copy {
|
|
8
9
|
constructor(_directory, _options = {}) {
|
|
9
10
|
this._directory = _directory;
|
|
10
11
|
this._options = _options;
|
|
11
12
|
}
|
|
12
|
-
async pipe(files,
|
|
13
|
+
async pipe(files, context) {
|
|
13
14
|
const { mode, dirMode, overwrite, rename = (s) => s } = this._options;
|
|
14
15
|
const flags = overwrite ? fsConstants.COPYFILE_EXCL : 0;
|
|
15
16
|
const dmode = parseMode(dirMode);
|
|
16
17
|
const fmode = parseMode(mode);
|
|
17
|
-
const
|
|
18
|
+
const directory = context.resolve(this._directory);
|
|
19
|
+
const builder = Files.builder(directory);
|
|
18
20
|
for (const [relative, absolute] of files.pathMappings()) {
|
|
19
21
|
const target = resolveAbsolutePath(builder.directory, rename(relative));
|
|
20
22
|
if (target === absolute) {
|
|
21
|
-
|
|
23
|
+
context.log.warn("Cowardly refusing to copy same file", $p(absolute));
|
|
22
24
|
continue;
|
|
23
25
|
}
|
|
24
|
-
const
|
|
25
|
-
const firstParent = await mkdir(
|
|
26
|
+
const directory2 = getAbsoluteParent(target);
|
|
27
|
+
const firstParent = await mkdir(directory2, { recursive: true });
|
|
26
28
|
if (firstParent && dmode !== void 0) {
|
|
27
29
|
assertAbsolutePath(firstParent);
|
|
28
|
-
for (let dir =
|
|
29
|
-
|
|
30
|
+
for (let dir = directory2; ; dir = getAbsoluteParent(dir)) {
|
|
31
|
+
context.log.trace(`Setting mode ${stringifyMode(dmode)} for directory`, $p(dir));
|
|
30
32
|
await chmod(dir, dmode);
|
|
31
33
|
if (dir === firstParent)
|
|
32
34
|
break;
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
|
-
|
|
37
|
+
context.log.trace(`Copying "${$p(absolute)}" to "${$p(target)}"`);
|
|
36
38
|
await copyFile(absolute, target, flags);
|
|
37
39
|
if (fmode !== void 0) {
|
|
38
|
-
|
|
40
|
+
context.log.trace(`Setting mode ${stringifyMode(fmode)} for file`, $p(target));
|
|
39
41
|
await chmod(target, fmode);
|
|
40
42
|
}
|
|
41
|
-
builder.
|
|
43
|
+
builder.add(relative);
|
|
42
44
|
}
|
|
43
45
|
const result = builder.build();
|
|
44
|
-
|
|
46
|
+
context.log.info("Copied", result.length, "files to", $p(builder.directory));
|
|
45
47
|
return result;
|
|
46
48
|
}
|
|
47
|
-
};
|
|
48
|
-
install("copy", Copy);
|
|
49
|
+
});
|
|
49
50
|
function parseMode(mode) {
|
|
50
51
|
if (mode === void 0)
|
|
51
52
|
return void 0;
|
|
@@ -58,7 +59,4 @@ function parseMode(mode) {
|
|
|
58
59
|
function stringifyMode(mode) {
|
|
59
60
|
return mode.toString(8).padStart(4, "0");
|
|
60
61
|
}
|
|
61
|
-
export {
|
|
62
|
-
Copy
|
|
63
|
-
};
|
|
64
62
|
//# sourceMappingURL=copy.mjs.map
|
package/dist/plugs/copy.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/plugs/copy.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,cAAc;
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": ";AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,UAAU;AACnB,SAAS,oBAAoB,mBAAmB,2BAA2B;AAC3E,SAAS,eAA8C;AACvD,SAAS,OAAO,UAAU,aAAa,aAAa;AAqCpD,QAAQ,QAAQ,MAAM,KAA4B;AAAA,EAEhD,YACqB,YACA,WAAwB,CAAC,GAC5C;AAFmB;AACA;AAAA,EAClB;AAAA,EAEH,MAAM,KAAK,OAAc,SAAkC;AAEzD,UAAM,EAAE,MAAM,SAAS,WAAW,SAAS,CAAC,MAAc,EAAE,IAAI,KAAK;AACrE,UAAM,QAAQ,YAAY,YAAY,gBAAgB;AACtD,UAAM,QAAQ,UAAU,OAAO;AAC/B,UAAM,QAAQ,UAAU,IAAI;AAG5B,UAAM,YAAY,QAAQ,QAAQ,KAAK,UAAU;AACjD,UAAM,UAAU,MAAM,QAAQ,SAAS;AAGvC,eAAW,CAAE,UAAU,QAAS,KAAK,MAAM,aAAa,GAAG;AAGzD,YAAM,SAAS,oBAAoB,QAAQ,WAAW,OAAO,QAAQ,CAAC;AAGtE,UAAI,WAAW,UAAU;AACvB,gBAAQ,IAAI,KAAK,uCAAuC,GAAG,QAAQ,CAAC;AACpE;AAAA,MACF;AAGA,YAAMA,aAAY,kBAAkB,MAAM;AAC1C,YAAM,cAAc,MAAM,MAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAG9D,UAAI,eAAgB,UAAU,QAAY;AACxC,2BAAmB,WAAW;AAC9B,iBAAS,MAAMA,cAAa,MAAM,kBAAkB,GAAG,GAAG;AACxD,kBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,mBAAmB,GAAG,GAAG,CAAC;AAC/E,gBAAM,MAAM,KAAK,KAAK;AACtB,cAAI,QAAQ;AAAa;AAAA,QAC3B;AAAA,MACF;AAGA,cAAQ,IAAI,MAAM,YAAY,GAAG,QAAQ,UAAU,GAAG,MAAM,IAAI;AAChE,YAAM,SAAS,UAAU,QAAQ,KAAK;AAGtC,UAAI,UAAU,QAAW;AACvB,gBAAQ,IAAI,MAAM,gBAAgB,cAAc,KAAK,cAAc,GAAG,MAAM,CAAC;AAC7E,cAAM,MAAM,QAAQ,KAAK;AAAA,MAC3B;AAGA,cAAQ,IAAI,QAAQ;AAAA,IACtB;AAEA,UAAM,SAAS,QAAQ,MAAM;AAC7B,YAAQ,IAAI,KAAK,UAAU,OAAO,QAAQ,YAAY,GAAG,QAAQ,SAAS,CAAC;AAC3E,WAAO;AAAA,EACT;AACF,CAAC;AAMD,SAAS,UAAU,MAAuD;AACxE,MAAI,SAAS;AAAW,WAAO;AAC/B,MAAI,OAAO,SAAS;AAAU,WAAO;AACrC,QAAM,SAAS,SAAS,MAAM,CAAC;AAC/B,SAAO,CAAE,MAAM,MAAM,GAAG,iBAAiB,OAAO;AAChD,SAAO;AACT;AAEA,SAAS,cAAc,MAAsB;AAC3C,SAAO,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG;AACzC;",
|
|
5
|
+
"names": ["directory"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RawSourceMap } from 'source-map';
|
|
2
|
-
import { Logger } from '../../log
|
|
3
|
-
import { AbsolutePath } from '../../paths
|
|
2
|
+
import { Logger } from '../../log';
|
|
3
|
+
import { AbsolutePath } from '../../paths';
|
|
4
4
|
/** Coverage range */
|
|
5
5
|
export interface V8CoveredRange {
|
|
6
6
|
/** The offset in the script of the first character covered */
|
|
@@ -25,8 +25,8 @@ __export(report_exports, {
|
|
|
25
25
|
coverageReport: () => coverageReport
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(report_exports);
|
|
28
|
-
var import_parser = require("@babel/parser");
|
|
29
28
|
var import_types = require("@babel/types");
|
|
29
|
+
var import_parser = require("@babel/parser");
|
|
30
30
|
var import_node_url = require("node:url");
|
|
31
31
|
var import_log = require("../../log.cjs");
|
|
32
32
|
var import_asyncfs = require("../../utils/asyncfs.cjs");
|
|
@@ -201,7 +201,9 @@ async function coverageReport(analyser, sourceFiles, log) {
|
|
|
201
201
|
function updateNodeCoverageResult(result) {
|
|
202
202
|
const { coveredNodes, missingNodes, ignoredNodes } = result;
|
|
203
203
|
const totalNodes = result.totalNodes = coveredNodes + missingNodes + ignoredNodes;
|
|
204
|
-
if (totalNodes
|
|
204
|
+
if (totalNodes === 0) {
|
|
205
|
+
result.coverage = 100;
|
|
206
|
+
} else if (totalNodes - ignoredNodes) {
|
|
205
207
|
result.coverage = Math.floor(100 * coveredNodes / (totalNodes - ignoredNodes));
|
|
206
208
|
} else {
|
|
207
209
|
result.coverage = 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugs/coverage/report.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAsB;AACtB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Logger } from '../../log
|
|
2
|
-
import { AbsolutePath } from '../../paths
|
|
3
|
-
import { CoverageAnalyser } from './analysis
|
|
1
|
+
import { Logger } from '../../log';
|
|
2
|
+
import { AbsolutePath } from '../../paths';
|
|
3
|
+
import { CoverageAnalyser } from './analysis';
|
|
4
4
|
/**
|
|
5
5
|
* A constant indicating that coverage was skipped (is irrelevant, for e.g.
|
|
6
6
|
* comment or typescript definition nodes)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// plugs/coverage/report.ts
|
|
2
|
-
import { parse } from "@babel/parser";
|
|
3
2
|
import {
|
|
4
3
|
isDeclaration,
|
|
5
4
|
isExportDeclaration,
|
|
@@ -13,6 +12,7 @@ import {
|
|
|
13
12
|
isTypeScript,
|
|
14
13
|
VISITOR_KEYS
|
|
15
14
|
} from "@babel/types";
|
|
15
|
+
import { parse } from "@babel/parser";
|
|
16
16
|
import { pathToFileURL } from "node:url";
|
|
17
17
|
import { $p } from "../../log.mjs";
|
|
18
18
|
import { readFile } from "../../utils/asyncfs.mjs";
|
|
@@ -187,7 +187,9 @@ async function coverageReport(analyser, sourceFiles, log) {
|
|
|
187
187
|
function updateNodeCoverageResult(result) {
|
|
188
188
|
const { coveredNodes, missingNodes, ignoredNodes } = result;
|
|
189
189
|
const totalNodes = result.totalNodes = coveredNodes + missingNodes + ignoredNodes;
|
|
190
|
-
if (totalNodes
|
|
190
|
+
if (totalNodes === 0) {
|
|
191
|
+
result.coverage = 100;
|
|
192
|
+
} else if (totalNodes - ignoredNodes) {
|
|
191
193
|
result.coverage = Math.floor(100 * coveredNodes / (totalNodes - ignoredNodes));
|
|
192
194
|
} else {
|
|
193
195
|
result.coverage = 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/plugs/coverage/report.ts"],
|
|
4
|
-
"mappings": ";AACA
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|