@plugjs/plug 0.0.21 → 0.0.23
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/async.cjs.map +1 -1
- package/dist/async.mjs.map +1 -1
- package/dist/build.cjs +20 -11
- package/dist/build.cjs.map +1 -1
- package/dist/build.d.ts +2 -0
- package/dist/build.mjs +19 -11
- package/dist/build.mjs.map +1 -1
- package/dist/files.cjs.map +1 -1
- package/dist/files.d.ts +1 -1
- package/dist/files.mjs.map +1 -1
- package/dist/fork.cjs.map +1 -1
- package/dist/fork.d.ts +4 -3
- package/dist/fork.mjs.map +1 -1
- package/dist/helpers.cjs +20 -0
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.ts +34 -2
- package/dist/helpers.mjs +20 -2
- package/dist/helpers.mjs.map +1 -1
- package/dist/index.cjs +2 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +1 -3
- package/dist/index.mjs.map +1 -1
- package/dist/log/colors.cjs.map +1 -1
- package/dist/log/colors.d.ts +1 -1
- package/dist/log/colors.mjs.map +1 -1
- package/dist/log/emit.cjs.map +1 -1
- package/dist/log/emit.d.ts +1 -1
- package/dist/log/emit.mjs.map +1 -1
- package/dist/log/logger.cjs.map +1 -1
- package/dist/log/logger.d.ts +2 -2
- package/dist/log/logger.mjs.map +1 -1
- package/dist/log/options.cjs.map +1 -1
- package/dist/log/options.d.ts +3 -3
- package/dist/log/options.mjs.map +1 -1
- package/dist/log/report.cjs.map +1 -1
- package/dist/log/report.d.ts +3 -3
- package/dist/log/report.mjs.map +1 -1
- package/dist/log.cjs.map +1 -1
- package/dist/log.d.ts +1 -1
- package/dist/log.mjs.map +1 -1
- package/dist/paths.cjs.map +1 -1
- package/dist/paths.mjs.map +1 -1
- package/dist/pipe.cjs +1 -14
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +4 -20
- package/dist/pipe.mjs +1 -19
- package/dist/pipe.mjs.map +1 -1
- package/dist/plugs/copy.cjs.map +1 -1
- package/dist/plugs/copy.mjs.map +1 -1
- package/dist/plugs/coverage/analysis.cjs.map +1 -1
- package/dist/plugs/coverage/analysis.d.ts +3 -3
- package/dist/plugs/coverage/analysis.mjs.map +1 -1
- package/dist/plugs/coverage/report.cjs +1 -1
- package/dist/plugs/coverage/report.cjs.map +1 -1
- package/dist/plugs/coverage/report.d.ts +3 -3
- package/dist/plugs/coverage/report.mjs +1 -1
- package/dist/plugs/coverage/report.mjs.map +1 -1
- package/dist/plugs/coverage.cjs +1 -1
- package/dist/plugs/coverage.cjs.map +1 -1
- package/dist/plugs/coverage.d.ts +1 -1
- package/dist/plugs/coverage.mjs +1 -1
- package/dist/plugs/coverage.mjs.map +1 -1
- package/dist/plugs/debug.cjs.map +1 -1
- package/dist/plugs/debug.mjs.map +1 -1
- package/dist/plugs/esbuild/bundle-locals.d.ts +1 -1
- package/dist/plugs/esbuild/fix-extensions.cjs.map +1 -1
- package/dist/plugs/esbuild/fix-extensions.d.ts +1 -1
- package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
- package/dist/plugs/esbuild.cjs +1 -1
- package/dist/plugs/esbuild.cjs.map +1 -1
- package/dist/plugs/esbuild.d.ts +1 -1
- package/dist/plugs/esbuild.mjs +1 -1
- package/dist/plugs/esbuild.mjs.map +1 -1
- package/dist/plugs/eslint/runner.cjs.map +1 -1
- package/dist/plugs/eslint/runner.d.ts +2 -2
- package/dist/plugs/eslint/runner.mjs.map +1 -1
- package/dist/plugs/exec.cjs +1 -1
- package/dist/plugs/exec.cjs.map +1 -1
- package/dist/plugs/exec.mjs +1 -1
- package/dist/plugs/exec.mjs.map +1 -1
- package/dist/plugs/filter.cjs.map +1 -1
- package/dist/plugs/filter.d.ts +1 -1
- package/dist/plugs/filter.mjs.map +1 -1
- package/dist/plugs/mocha/reporter.cjs +1 -1
- package/dist/plugs/mocha/reporter.cjs.map +1 -1
- package/dist/plugs/mocha/reporter.mjs +1 -1
- package/dist/plugs/mocha/reporter.mjs.map +1 -1
- package/dist/plugs/mocha/runner.cjs +12 -2
- package/dist/plugs/mocha/runner.cjs.map +2 -2
- package/dist/plugs/mocha/runner.d.ts +2 -2
- package/dist/plugs/mocha/runner.mjs +13 -3
- package/dist/plugs/mocha/runner.mjs.map +2 -2
- package/dist/plugs/mocha.cjs.map +1 -1
- package/dist/plugs/mocha.d.ts +2 -0
- package/dist/plugs/mocha.mjs.map +1 -1
- package/dist/plugs/rmf.cjs.map +1 -1
- package/dist/plugs/rmf.mjs.map +1 -1
- package/dist/plugs/tsc/compiler.cjs.map +1 -1
- package/dist/plugs/tsc/compiler.d.ts +1 -1
- package/dist/plugs/tsc/compiler.mjs.map +1 -1
- package/dist/plugs/tsc/options.cjs.map +1 -1
- package/dist/plugs/tsc/options.d.ts +1 -1
- package/dist/plugs/tsc/options.mjs.map +1 -1
- package/dist/plugs/tsc/report.cjs.map +1 -1
- package/dist/plugs/tsc/report.d.ts +2 -2
- package/dist/plugs/tsc/report.mjs.map +1 -1
- package/dist/plugs/tsc/runner.cjs +1 -1
- package/dist/plugs/tsc/runner.cjs.map +1 -1
- package/dist/plugs/tsc/runner.d.ts +1 -1
- package/dist/plugs/tsc/runner.mjs +1 -1
- package/dist/plugs/tsc/runner.mjs.map +1 -1
- package/dist/plugs/tsc.cjs.map +1 -1
- package/dist/plugs/tsc.mjs.map +1 -1
- package/dist/utils/asyncfs.cjs.map +1 -1
- package/dist/utils/asyncfs.mjs.map +1 -1
- package/dist/utils/caller.cjs.map +1 -1
- package/dist/utils/caller.d.ts +1 -1
- package/dist/utils/caller.mjs.map +1 -1
- package/dist/utils/walk.cjs.map +1 -1
- package/dist/utils/walk.d.ts +2 -2
- package/dist/utils/walk.mjs.map +1 -1
- package/extra/cli.mjs +1152 -51
- package/extra/ts-loader.mjs +12 -11
- package/package.json +7 -7
- package/src/async.ts +2 -1
- package/src/files.ts +3 -1
- package/src/fork.ts +8 -3
- package/src/helpers.ts +61 -4
- package/src/index.ts +4 -2
- package/src/log/colors.ts +4 -1
- package/src/log/emit.ts +4 -1
- package/src/log/logger.ts +7 -3
- package/src/log/options.ts +6 -3
- package/src/log/report.ts +5 -3
- package/src/log.ts +1 -1
- package/src/paths.ts +1 -0
- package/src/pipe.ts +9 -45
- package/src/plugs/copy.ts +3 -1
- package/src/plugs/coverage/analysis.ts +12 -7
- package/src/plugs/coverage/report.ts +13 -8
- package/src/plugs/coverage.ts +12 -5
- package/src/plugs/debug.ts +4 -2
- package/src/plugs/esbuild/bundle-locals.ts +1 -1
- package/src/plugs/esbuild/fix-extensions.ts +2 -1
- package/src/plugs/esbuild.ts +13 -5
- package/src/plugs/eslint/runner.ts +5 -3
- package/src/plugs/exec.ts +8 -4
- package/src/plugs/filter.ts +5 -2
- package/src/plugs/mocha/reporter.ts +5 -3
- package/src/plugs/mocha/runner.ts +21 -6
- package/src/plugs/mocha.ts +2 -0
- package/src/plugs/rmf.ts +4 -2
- package/src/plugs/tsc/compiler.ts +3 -1
- package/src/plugs/tsc/options.ts +3 -1
- package/src/plugs/tsc/report.ts +5 -2
- package/src/plugs/tsc/runner.ts +6 -5
- package/src/plugs/tsc.ts +2 -2
- package/src/utils/asyncfs.ts +0 -1
- package/src/utils/caller.ts +4 -1
- package/src/utils/walk.ts +7 -3
- package/types/globals.d.ts +15 -0
- /package/{extra → types}/webassembly.d.ts +0 -0
package/extra/ts-loader.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
// extra/ts-loader.mts
|
|
2
2
|
import _fs from "node:fs";
|
|
3
3
|
import _module from "node:module";
|
|
4
4
|
import _path from "node:path";
|
|
5
5
|
import _url from "node:url";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import _esbuild from "esbuild";
|
|
7
|
+
var CJS = "commonjs";
|
|
8
|
+
var ESM = "module";
|
|
9
|
+
var _debug = process.env.DEBUG_TS_LOADER === "true";
|
|
9
10
|
function _log(type, arg, ...args) {
|
|
10
11
|
if (!_debug)
|
|
11
12
|
return;
|
|
@@ -22,7 +23,7 @@ function _throw(type, message, options = {}) {
|
|
|
22
23
|
Object.assign(error, extra);
|
|
23
24
|
throw error;
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
+
var _moduleFormatCache = /* @__PURE__ */ new Map();
|
|
26
27
|
if (process.env.__TS_LOADER_FORCE_TYPE) {
|
|
27
28
|
const type = process.env.__TS_LOADER_FORCE_TYPE;
|
|
28
29
|
const dir = process.cwd();
|
|
@@ -110,7 +111,7 @@ function _esbTranpile(filename, type) {
|
|
|
110
111
|
_esbReport("warning", result.warnings);
|
|
111
112
|
return result.code;
|
|
112
113
|
}
|
|
113
|
-
|
|
114
|
+
var resolve = (specifier, context, nextResolve) => {
|
|
114
115
|
_log(ESM, `Resolving "${specifier}" from "${context.parentURL}"`);
|
|
115
116
|
if (!specifier.match(/^\.\.?\//))
|
|
116
117
|
return nextResolve(specifier, context);
|
|
@@ -152,7 +153,7 @@ const resolve = (specifier, context, nextResolve) => {
|
|
|
152
153
|
}
|
|
153
154
|
return nextResolve(specifier, context);
|
|
154
155
|
};
|
|
155
|
-
|
|
156
|
+
var load = (url, context, nextLoad) => {
|
|
156
157
|
var _a;
|
|
157
158
|
_log(ESM, `Attempting to load "${url}"`);
|
|
158
159
|
if (!url.startsWith("file:"))
|
|
@@ -171,7 +172,7 @@ const load = (url, context, nextLoad) => {
|
|
|
171
172
|
const source = _esbTranpile(filename, ESM);
|
|
172
173
|
return { source, format: "module", shortCircuit: true };
|
|
173
174
|
};
|
|
174
|
-
|
|
175
|
+
var loader = (module, filename) => {
|
|
175
176
|
_log(ESM, `Attempting to load "${filename}"`);
|
|
176
177
|
const ext = _path.extname(filename);
|
|
177
178
|
if (ext === ".ts") {
|
|
@@ -190,7 +191,7 @@ const loader = (module, filename) => {
|
|
|
190
191
|
}
|
|
191
192
|
};
|
|
192
193
|
_module._extensions[".ts"] = _module._extensions[".cts"] = loader;
|
|
193
|
-
|
|
194
|
+
var _oldResolveFilename = _module._resolveFilename;
|
|
194
195
|
_module._resolveFilename = function(request, parent, ...args) {
|
|
195
196
|
try {
|
|
196
197
|
return _oldResolveFilename.call(this, request, parent, ...args);
|
|
@@ -212,11 +213,11 @@ _module._resolveFilename = function(request, parent, ...args) {
|
|
|
212
213
|
throw error;
|
|
213
214
|
}
|
|
214
215
|
};
|
|
215
|
-
|
|
216
|
+
var tsLoaderMarker = Symbol.for("plugjs:tsLoader");
|
|
216
217
|
globalThis[tsLoaderMarker] = tsLoaderMarker;
|
|
217
218
|
_log(null, `Installing loader from "${import.meta.url}"`);
|
|
218
219
|
export {
|
|
219
220
|
load,
|
|
220
221
|
resolve
|
|
221
222
|
};
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plugjs/plug",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"author": "",
|
|
29
29
|
"license": "ISC",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@babel/parser": "^7.
|
|
32
|
-
"@babel/types": "^7.
|
|
33
|
-
"@plugjs/cov8-html": "^0.0.
|
|
31
|
+
"@babel/parser": "^7.20.0",
|
|
32
|
+
"@babel/types": "^7.20.0",
|
|
33
|
+
"@plugjs/cov8-html": "^0.0.4",
|
|
34
34
|
"@types/mocha": "^10.0.0",
|
|
35
35
|
"@types/node": "<17",
|
|
36
36
|
"diff": "^5.1.0",
|
|
@@ -39,8 +39,7 @@
|
|
|
39
39
|
"mocha": "^10.1.0",
|
|
40
40
|
"picomatch": "^2.3.1",
|
|
41
41
|
"source-map": "^0.7.4",
|
|
42
|
-
"typescript": "^4.8.4"
|
|
43
|
-
"yargs-parser": "^21.1.1"
|
|
42
|
+
"typescript": "^4.8.4"
|
|
44
43
|
},
|
|
45
44
|
"devDependencies": {
|
|
46
45
|
"@plugjs/eslint-plugin": "^0.0.2",
|
|
@@ -54,6 +53,7 @@
|
|
|
54
53
|
"chai": "^4.3.6",
|
|
55
54
|
"eslint-config-google": "^0.14.0",
|
|
56
55
|
"eslint-import-resolver-typescript": "^3.5.2",
|
|
57
|
-
"eslint-plugin-import": "^2.26.0"
|
|
56
|
+
"eslint-plugin-import": "^2.26.0",
|
|
57
|
+
"yargs-parser": "^21.1.1"
|
|
58
58
|
}
|
|
59
59
|
}
|
package/src/async.ts
CHANGED
package/src/files.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assertRelativeChildPath, getAbsoluteParent, resolveAbsolutePath } from './paths'
|
|
2
2
|
import { mkdir, writeFile } from './utils/asyncfs'
|
|
3
3
|
|
|
4
|
+
import type { AbsolutePath } from './paths'
|
|
5
|
+
|
|
4
6
|
/** The {@link FilesBuilder} interface defines a builder for {@link Files}. */
|
|
5
7
|
export interface FilesBuilder {
|
|
6
8
|
/** The (resolved) directory the {@link Files} will be associated with */
|
package/src/fork.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { fork } from 'node:child_process'
|
|
2
|
+
|
|
2
3
|
import { assert } from './assert'
|
|
3
4
|
import { runAsync } from './async'
|
|
4
5
|
import { BuildFailure } from './failure'
|
|
5
6
|
import { Files } from './files'
|
|
6
|
-
import { $gry, $p,
|
|
7
|
-
import {
|
|
8
|
-
import { Context, install
|
|
7
|
+
import { $gry, $p, logOptions } from './log'
|
|
8
|
+
import { requireFilename, resolveFile } from './paths'
|
|
9
|
+
import { Context, install } from './pipe'
|
|
10
|
+
|
|
11
|
+
import type { LogOptions } from './log'
|
|
12
|
+
import type { AbsolutePath } from './paths'
|
|
13
|
+
import type { Plug, PlugName, PlugResult } from './pipe'
|
|
9
14
|
|
|
10
15
|
/** Fork data, from parent to child process */
|
|
11
16
|
export interface ForkData {
|
package/src/helpers.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import { assert } from './assert'
|
|
1
|
+
import { assert, assertPromises } from './assert'
|
|
2
2
|
import { requireContext } from './async'
|
|
3
3
|
import { Files } from './files'
|
|
4
4
|
import { $p, log } from './log'
|
|
5
|
-
import {
|
|
5
|
+
import { commonPath, getCurrentWorkingDirectory, resolveDirectory, resolveFile } from './paths'
|
|
6
6
|
import { Pipe } from './pipe'
|
|
7
7
|
import { rm } from './utils/asyncfs'
|
|
8
|
-
import {
|
|
9
|
-
import { walk
|
|
8
|
+
import { parseOptions } from './utils/options'
|
|
9
|
+
import { walk } from './utils/walk'
|
|
10
|
+
|
|
11
|
+
import type { AbsolutePath } from './paths'
|
|
12
|
+
import type { ParseOptions } from './utils/options'
|
|
13
|
+
import type { WalkOptions } from './utils/walk'
|
|
10
14
|
|
|
11
15
|
/* ========================================================================== *
|
|
12
16
|
* EXTERNAL HELPERS *
|
|
@@ -67,6 +71,59 @@ export async function rmrf(directory: string): Promise<void> {
|
|
|
67
71
|
await rm(dir, { recursive: true })
|
|
68
72
|
}
|
|
69
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Merge the results of several {@link Pipe}s into a single one.
|
|
76
|
+
*
|
|
77
|
+
* Merging is performed _in parallel_. When serial execution is to be desired,
|
|
78
|
+
* we can merge the awaited _result_ of the {@link Pipe}.
|
|
79
|
+
*
|
|
80
|
+
* For example:
|
|
81
|
+
*
|
|
82
|
+
* ```
|
|
83
|
+
* const pipe: Pipe = merge([
|
|
84
|
+
* await this.anotherTask1(),
|
|
85
|
+
* await this.anotherTask2(),
|
|
86
|
+
* ])
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export function merge(pipes: (Pipe | Files | Promise<Files>)[]): Pipe {
|
|
90
|
+
const context = requireContext()
|
|
91
|
+
return new Pipe(context, Promise.resolve().then(async () => {
|
|
92
|
+
// No pipes? Just send off an empty pipe...
|
|
93
|
+
if (pipes.length === 0) return Files.builder(getCurrentWorkingDirectory()).build()
|
|
94
|
+
|
|
95
|
+
// Await for all pipes / files / files promises
|
|
96
|
+
const results = await assertPromises<Files>(pipes)
|
|
97
|
+
|
|
98
|
+
// Find the common directory between all the Files instances
|
|
99
|
+
const [ firstDir, ...otherDirs ] = results.map((f) => f.directory)
|
|
100
|
+
const directory = commonPath(firstDir, ...otherDirs)
|
|
101
|
+
|
|
102
|
+
// Build our new files instance merging all the results
|
|
103
|
+
return Files.builder(directory).merge(...results).build()
|
|
104
|
+
}))
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Create an empty _no-op_ {@link Pipe}.
|
|
109
|
+
*
|
|
110
|
+
* This is useful when creating tasks with conditional pipes and returning the
|
|
111
|
+
* correct type, for example:
|
|
112
|
+
*
|
|
113
|
+
* ```
|
|
114
|
+
* if (someCondition) {
|
|
115
|
+
* return find(...).pipe(...)
|
|
116
|
+
* } else {
|
|
117
|
+
* return noop()
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export function noop(): Pipe {
|
|
122
|
+
const context = requireContext()
|
|
123
|
+
const files = new Files(getCurrentWorkingDirectory())
|
|
124
|
+
return new Pipe(context, Promise.resolve(files))
|
|
125
|
+
}
|
|
126
|
+
|
|
70
127
|
/**
|
|
71
128
|
* Resolve a (set of) path(s) into an {@link AbsolutePath}.
|
|
72
129
|
*
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
// Reference our extra "webassembly" type fix here. As we're using esbuild
|
|
2
|
+
// everywhere, we want our dependants to have this type known...
|
|
3
|
+
/// <reference path="../types/webassembly.d.ts" />
|
|
2
4
|
|
|
3
5
|
export type { AbsolutePath } from './paths'
|
|
4
6
|
export type { Files, FilesBuilder } from './files'
|
|
5
7
|
|
|
6
8
|
export { BuildFailure } from './failure'
|
|
7
|
-
export { Pipe } from './pipe'
|
|
9
|
+
export type { Pipe } from './pipe'
|
|
8
10
|
|
|
9
11
|
// Our minimal exports
|
|
10
12
|
export * from './assert'
|
package/src/log/colors.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { sep } from 'node:path'
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { getCurrentWorkingDirectory, resolveRelativeChildPath } from '../paths'
|
|
3
4
|
import { logOptions } from './options'
|
|
4
5
|
|
|
6
|
+
import type { AbsolutePath } from '../paths'
|
|
7
|
+
|
|
5
8
|
/* ========================================================================== */
|
|
6
9
|
|
|
7
10
|
/* Initial value of log colors, and subscribe to changes */
|
package/src/log/emit.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { formatWithOptions } from 'node:util'
|
|
2
|
+
|
|
2
3
|
import { $blu, $grn, $gry, $red, $t, $ylw } from './colors'
|
|
3
|
-
import { DEBUG, INFO,
|
|
4
|
+
import { DEBUG, INFO, NOTICE, TRACE, WARN } from './levels'
|
|
4
5
|
import { logOptions } from './options'
|
|
5
6
|
import { zapSpinner } from './spinner'
|
|
6
7
|
|
|
8
|
+
import type { LogLevel } from './levels'
|
|
9
|
+
|
|
7
10
|
/* ========================================================================== */
|
|
8
11
|
|
|
9
12
|
/* Initial values, and subscribe to changes */
|
package/src/log/logger.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { BuildFailure, isBuildFailure } from '../failure'
|
|
2
|
-
import { emitColor, emitPlain
|
|
3
|
-
import { DEBUG, ERROR, INFO,
|
|
2
|
+
import { emitColor, emitPlain } from './emit'
|
|
3
|
+
import { DEBUG, ERROR, INFO, NOTICE, TRACE, WARN } from './levels'
|
|
4
4
|
import { logOptions } from './options'
|
|
5
|
-
import {
|
|
5
|
+
import { ReportImpl } from './report'
|
|
6
|
+
|
|
7
|
+
import type { LogEmitter } from './emit'
|
|
8
|
+
import type { LogLevel } from './levels'
|
|
9
|
+
import type { Report } from './report'
|
|
6
10
|
|
|
7
11
|
/* ========================================================================== */
|
|
8
12
|
|
package/src/log/options.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
|
|
3
|
+
import { getLevelNumber, NOTICE } from './levels'
|
|
4
|
+
|
|
5
|
+
import type { LogLevel, LogLevelString } from './levels'
|
|
6
|
+
import type { Writable } from 'node:stream'
|
|
7
|
+
import type { InspectOptions } from 'node:util'
|
|
5
8
|
|
|
6
9
|
/* ========================================================================== */
|
|
7
10
|
|
package/src/log/report.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { BuildFailure } from '../failure'
|
|
2
|
-
import { AbsolutePath } from '../paths'
|
|
3
2
|
import { readFile } from '../utils/asyncfs'
|
|
4
3
|
import { $blu, $cyn, $gry, $red, $und, $wht, $ylw } from './colors'
|
|
5
|
-
import {
|
|
6
|
-
import { ERROR, LogLevels, NOTICE, WARN } from './levels'
|
|
4
|
+
import { ERROR, NOTICE, WARN } from './levels'
|
|
7
5
|
import { logOptions } from './options'
|
|
8
6
|
|
|
7
|
+
import type { AbsolutePath } from '../paths'
|
|
8
|
+
import type { LogEmitter } from './emit'
|
|
9
|
+
import type { LogLevels } from './levels'
|
|
10
|
+
|
|
9
11
|
/* ========================================================================== */
|
|
10
12
|
|
|
11
13
|
/** Levels used in a {@link Report} */
|
package/src/log.ts
CHANGED
package/src/paths.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { statSync } from 'node:fs'
|
|
|
2
2
|
import { createRequire } from 'node:module'
|
|
3
3
|
import { dirname, extname, isAbsolute, join, normalize, relative, resolve, sep } from 'node:path'
|
|
4
4
|
import { fileURLToPath, pathToFileURL } from 'node:url'
|
|
5
|
+
|
|
5
6
|
import { assert } from './assert'
|
|
6
7
|
|
|
7
8
|
/** A _branded_ `string` representing an _absolute_ path name */
|
package/src/pipe.ts
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AbsolutePath,
|
|
3
|
-
commonPath,
|
|
4
|
-
getAbsoluteParent,
|
|
5
|
-
getCurrentWorkingDirectory,
|
|
6
|
-
resolveAbsolutePath,
|
|
7
|
-
} from './paths'
|
|
8
|
-
|
|
9
1
|
import { sep } from 'path'
|
|
2
|
+
|
|
10
3
|
import { assert, assertPromises } from './assert'
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
import {
|
|
4
|
+
import { getLogger } from './log'
|
|
5
|
+
import { getAbsoluteParent, getCurrentWorkingDirectory, resolveAbsolutePath } from './paths'
|
|
6
|
+
|
|
7
|
+
import type { Files } from './files'
|
|
8
|
+
import type { Logger } from './log'
|
|
9
|
+
import type { AbsolutePath } from './paths'
|
|
10
|
+
import type { Result } from './types'
|
|
15
11
|
|
|
16
12
|
/* ========================================================================== *
|
|
17
13
|
* PLUGS *
|
|
@@ -228,41 +224,9 @@ export class Pipe extends PipeProto implements Promise<Files> {
|
|
|
228
224
|
return result2 || undefined
|
|
229
225
|
}))
|
|
230
226
|
}
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Merge the results of several {@link Pipe}s into a single one.
|
|
234
|
-
*
|
|
235
|
-
* Merging is performed _in parallel_. When serial execution is to be desired,
|
|
236
|
-
* we can merge the awaited _result_ of the {@link Pipe}.
|
|
237
|
-
*
|
|
238
|
-
* For example:
|
|
239
|
-
*
|
|
240
|
-
* ```
|
|
241
|
-
* const pipe: Pipe = merge([
|
|
242
|
-
* await this.anotherTask1(),
|
|
243
|
-
* await this.anotherTask2(),
|
|
244
|
-
* ])
|
|
245
|
-
* ```
|
|
246
|
-
*/
|
|
247
|
-
static merge(pipes: (Pipe | Files | Promise<Files>)[]): Pipe {
|
|
248
|
-
const context = requireContext()
|
|
249
|
-
return new Pipe(context, Promise.resolve().then(async () => {
|
|
250
|
-
// No pipes? Just send off an empty pipe...
|
|
251
|
-
if (pipes.length === 0) return Files.builder(getCurrentWorkingDirectory()).build()
|
|
252
|
-
|
|
253
|
-
// Await for all pipes / files / files promises
|
|
254
|
-
const results = await assertPromises<Files>(pipes)
|
|
255
|
-
|
|
256
|
-
// Find the common directory between all the Files instances
|
|
257
|
-
const [ firstDir, ...otherDirs ] = results.map((f) => f.directory)
|
|
258
|
-
const directory = commonPath(firstDir, ...otherDirs)
|
|
259
|
-
|
|
260
|
-
// Build our new files instance merging all the results
|
|
261
|
-
return Files.builder(directory).merge(...results).build()
|
|
262
|
-
}))
|
|
263
|
-
}
|
|
264
227
|
}
|
|
265
228
|
|
|
229
|
+
|
|
266
230
|
/* ========================================================================== *
|
|
267
231
|
* PLUG INSTALLATION (NEW) *
|
|
268
232
|
* ========================================================================== */
|
package/src/plugs/copy.ts
CHANGED
|
@@ -2,9 +2,11 @@ import { assert } from '../assert'
|
|
|
2
2
|
import { Files } from '../files'
|
|
3
3
|
import { $p } from '../log'
|
|
4
4
|
import { assertAbsolutePath, getAbsoluteParent, resolveAbsolutePath } from '../paths'
|
|
5
|
-
import {
|
|
5
|
+
import { install } from '../pipe'
|
|
6
6
|
import { chmod, copyFile, fsConstants, mkdir } from '../utils/asyncfs'
|
|
7
7
|
|
|
8
|
+
import type { Context, PipeParameters, Plug } from '../pipe'
|
|
9
|
+
|
|
8
10
|
/** Options for copying files */
|
|
9
11
|
export interface CopyOptions {
|
|
10
12
|
/** Whether to allow overwriting or not (default `false`). */
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { fileURLToPath, pathToFileURL } from 'node:url'
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { SourceMapConsumer } from 'source-map'
|
|
4
|
+
|
|
3
5
|
import { assert } from '../../assert'
|
|
4
|
-
import { $gry, $p
|
|
5
|
-
import { AbsolutePath } from '../../paths'
|
|
6
|
+
import { $gry, $p } from '../../log'
|
|
6
7
|
import { readFile } from '../../utils/asyncfs'
|
|
7
8
|
|
|
9
|
+
import type { Logger } from '../../log'
|
|
10
|
+
import type { RawSourceMap } from 'source-map'
|
|
11
|
+
import type { AbsolutePath } from '../../paths'
|
|
12
|
+
|
|
8
13
|
/* ========================================================================== *
|
|
9
14
|
* V8 COVERAGE TYPES *
|
|
10
15
|
* ========================================================================== */
|
|
@@ -335,10 +340,10 @@ export class CombiningCoverageAnalyser extends CoverageAnalyserImpl {
|
|
|
335
340
|
* specified coverage files and produce a {@link CoverageReport}.
|
|
336
341
|
*/
|
|
337
342
|
export async function createAnalyser(
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
343
|
+
sourceFiles: AbsolutePath[],
|
|
344
|
+
coverageFiles: AbsolutePath[],
|
|
345
|
+
sourceMapBias: SourceMapBias,
|
|
346
|
+
log: Logger,
|
|
342
347
|
): Promise<CoverageAnalyser> {
|
|
343
348
|
/* Internally V8 coverage uses URLs for everything */
|
|
344
349
|
const urls = sourceFiles.map((path) => pathToFileURL(path).toString())
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
+
import { pathToFileURL } from 'node:url'
|
|
1
2
|
|
|
2
3
|
import {
|
|
3
|
-
|
|
4
|
+
isDeclaration,
|
|
4
5
|
isExportDeclaration,
|
|
5
6
|
isFile,
|
|
6
7
|
isIfStatement,
|
|
7
8
|
isImportDeclaration,
|
|
8
|
-
isProgram,
|
|
9
|
+
isProgram,
|
|
10
|
+
isTryStatement,
|
|
9
11
|
isTSDeclareMethod,
|
|
10
12
|
isTSTypeReference,
|
|
11
13
|
isTypeScript,
|
|
12
|
-
Node,
|
|
13
14
|
VISITOR_KEYS,
|
|
14
15
|
} from '@babel/types'
|
|
15
|
-
|
|
16
16
|
import { parse } from '@babel/parser'
|
|
17
|
-
|
|
18
|
-
import { $p
|
|
19
|
-
import { AbsolutePath } from '../../paths'
|
|
17
|
+
|
|
18
|
+
import { $p } from '../../log'
|
|
20
19
|
import { readFile } from '../../utils/asyncfs'
|
|
21
|
-
|
|
20
|
+
|
|
21
|
+
import type { Logger } from '../../log'
|
|
22
|
+
import type {
|
|
23
|
+
Comment,
|
|
24
|
+
Node } from '@babel/types'
|
|
25
|
+
import type { AbsolutePath } from '../../paths'
|
|
26
|
+
import type { CoverageAnalyser } from './analysis'
|
|
22
27
|
|
|
23
28
|
/* ========================================================================== *
|
|
24
29
|
* EXPORTED CONSTANTS AND TYPES *
|
package/src/plugs/coverage.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import { html, initFunction } from '@plugjs/cov8-html'
|
|
2
1
|
import { sep } from 'node:path'
|
|
2
|
+
|
|
3
|
+
import { html, initFunction } from '@plugjs/cov8-html'
|
|
4
|
+
|
|
3
5
|
import { Files } from '../files'
|
|
4
6
|
import { $gry, $ms, $p, $red, $ylw, ERROR, NOTICE, WARN } from '../log'
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
+
import { resolveAbsolutePath } from '../paths'
|
|
8
|
+
import { install } from '../pipe'
|
|
7
9
|
import { walk } from '../utils/walk'
|
|
8
|
-
import { createAnalyser
|
|
9
|
-
import { coverageReport
|
|
10
|
+
import { createAnalyser } from './coverage/analysis'
|
|
11
|
+
import { coverageReport } from './coverage/report'
|
|
12
|
+
|
|
13
|
+
import type { AbsolutePath } from '../paths'
|
|
14
|
+
import type { Context, PipeParameters, Plug } from '../pipe'
|
|
15
|
+
import type { SourceMapBias } from './coverage/analysis'
|
|
16
|
+
import type { CoverageResult } from './coverage/report'
|
|
10
17
|
|
|
11
18
|
/** Options to analyse coverage reports */
|
|
12
19
|
export interface CoverageOptions {
|
package/src/plugs/debug.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Files } from '../files'
|
|
2
1
|
import { $gry, $p, $und, $ylw } from '../log'
|
|
3
|
-
import {
|
|
2
|
+
import { install } from '../pipe'
|
|
3
|
+
|
|
4
|
+
import type { Files } from '../files'
|
|
5
|
+
import type { Context, PipeParameters, Plug } from '../pipe'
|
|
4
6
|
|
|
5
7
|
declare module '../pipe' {
|
|
6
8
|
export interface Pipe {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
2
|
|
|
3
|
-
import { Plugin } from 'esbuild'
|
|
4
3
|
import { assertAbsolutePath, resolveAbsolutePath, resolveFile } from '../../paths'
|
|
5
4
|
import { stat } from '../../utils/asyncfs'
|
|
6
5
|
|
|
6
|
+
import type { Plugin } from 'esbuild'
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
* A simple ESBuild plugin fixing extensions for `require` and `import` calls.
|
|
9
10
|
*
|
package/src/plugs/esbuild.ts
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import { build, BuildFailure, BuildOptions, BuildResult, Format, Message, Metafile } from 'esbuild'
|
|
2
1
|
import { basename } from 'node:path'
|
|
2
|
+
|
|
3
|
+
import { build } from 'esbuild'
|
|
4
|
+
|
|
3
5
|
import { assert } from '../assert'
|
|
4
|
-
import { Files
|
|
5
|
-
import { $p, ERROR,
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { Files } from '../files'
|
|
7
|
+
import { $p, ERROR, WARN } from '../log'
|
|
8
|
+
import { getAbsoluteParent, resolveAbsolutePath } from '../paths'
|
|
9
|
+
import { install } from '../pipe'
|
|
8
10
|
import { readFile } from '../utils/asyncfs'
|
|
9
11
|
|
|
12
|
+
import type { FilesBuilder } from '../files'
|
|
13
|
+
import type { Logger, ReportLevel, ReportRecord } from '../log'
|
|
14
|
+
import type { AbsolutePath } from '../paths'
|
|
15
|
+
import type { Context, PipeParameters, Plug } from '../pipe'
|
|
16
|
+
import type { BuildFailure, BuildOptions, BuildResult, Format, Message, Metafile } from 'esbuild'
|
|
17
|
+
|
|
10
18
|
export type ESBuildOptions = Omit<BuildOptions, 'absWorkingDir' | 'entryPoints' | 'watch'>
|
|
11
19
|
|
|
12
20
|
export * from './esbuild/bundle-locals'
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ESLint as RealESLint } from 'eslint'
|
|
2
|
+
|
|
2
3
|
import { assert } from '../../assert'
|
|
3
4
|
import { BuildFailure } from '../../failure'
|
|
4
|
-
import { Files } from '../../files'
|
|
5
5
|
import { $p, ERROR, NOTICE, WARN } from '../../log'
|
|
6
6
|
import { getCurrentWorkingDirectory, resolveAbsolutePath, resolveDirectory, resolveFile } from '../../paths'
|
|
7
|
-
import { Context, PipeParameters, Plug } from '../../pipe'
|
|
8
7
|
import { readFile } from '../../utils/asyncfs'
|
|
9
|
-
|
|
8
|
+
|
|
9
|
+
import type { Files } from '../../files'
|
|
10
|
+
import type { Context, PipeParameters, Plug } from '../../pipe'
|
|
11
|
+
import type { ESLintOptions } from '../eslint'
|
|
10
12
|
|
|
11
13
|
/** Runner implementation for the `ESLint` plug. */
|
|
12
14
|
export default class ESLint implements Plug<void> {
|