@knighted/duel 1.0.4 → 1.0.5
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/cjs/duel.cjs +215 -0
- package/dist/cjs/duel.d.cts +2 -0
- package/dist/cjs/init.cjs +126 -0
- package/dist/cjs/init.d.ts +8 -0
- package/dist/cjs/util.cjs +18 -0
- package/dist/cjs/util.d.cts +3 -0
- package/dist/esm/duel.d.ts +2 -0
- package/dist/esm/duel.js +212 -0
- package/dist/esm/init.d.ts +8 -0
- package/dist/esm/init.js +120 -0
- package/dist/esm/util.d.ts +3 -0
- package/dist/esm/util.js +13 -0
- package/package.json +11 -11
- package/dist/duel.cjs +0 -214
- package/dist/duel.js +0 -208
- package/dist/init.cjs +0 -133
- package/dist/init.js +0 -126
- package/dist/util.cjs +0 -20
- package/dist/util.js +0 -12
package/dist/init.cjs
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.init = void 0;
|
|
7
|
-
var _nodeProcess = require("node:process");
|
|
8
|
-
var _nodeUtil = require("node:util");
|
|
9
|
-
var _nodePath = require("node:path");
|
|
10
|
-
var _promises = require("node:fs/promises");
|
|
11
|
-
var _readPkgUp = require("read-pkg-up");
|
|
12
|
-
var _jsoncParser = _interopRequireDefault(require("jsonc-parser"));
|
|
13
|
-
var _util = require("./util.cjs");
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
const init = async args => {
|
|
16
|
-
let parsed = null;
|
|
17
|
-
try {
|
|
18
|
-
const {
|
|
19
|
-
values
|
|
20
|
-
} = (0, _nodeUtil.parseArgs)({
|
|
21
|
-
args,
|
|
22
|
-
options: {
|
|
23
|
-
project: {
|
|
24
|
-
type: 'string',
|
|
25
|
-
short: 'p',
|
|
26
|
-
default: 'tsconfig.json'
|
|
27
|
-
},
|
|
28
|
-
'target-extension': {
|
|
29
|
-
type: 'string',
|
|
30
|
-
short: 'x',
|
|
31
|
-
default: ''
|
|
32
|
-
},
|
|
33
|
-
'pkg-dir': {
|
|
34
|
-
type: 'string',
|
|
35
|
-
short: 'k',
|
|
36
|
-
default: (0, _nodeProcess.cwd)()
|
|
37
|
-
},
|
|
38
|
-
parallel: {
|
|
39
|
-
type: 'boolean',
|
|
40
|
-
short: 'l',
|
|
41
|
-
default: false
|
|
42
|
-
},
|
|
43
|
-
dirs: {
|
|
44
|
-
type: 'boolean',
|
|
45
|
-
short: 'd',
|
|
46
|
-
default: false
|
|
47
|
-
},
|
|
48
|
-
help: {
|
|
49
|
-
type: 'boolean',
|
|
50
|
-
short: 'h',
|
|
51
|
-
default: false
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
parsed = values;
|
|
56
|
-
} catch (err) {
|
|
57
|
-
(0, _util.logError)(err.message);
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
if (parsed.help) {
|
|
61
|
-
(0, _util.log)('Usage: duel [options]\n');
|
|
62
|
-
(0, _util.log)('Options:');
|
|
63
|
-
(0, _util.log)("--project, -p [path] \t Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.");
|
|
64
|
-
(0, _util.log)('--pkg-dir, -k [path] \t The directory to start looking for a package.json file. Defaults to cwd.');
|
|
65
|
-
(0, _util.log)('--dirs, -d \t\t Output both builds to directories inside of outDir. [esm, cjs].');
|
|
66
|
-
(0, _util.log)('--parallel, -l \t\t Run the builds in parallel.');
|
|
67
|
-
(0, _util.log)('--help, -h \t\t Print this message.');
|
|
68
|
-
} else {
|
|
69
|
-
const {
|
|
70
|
-
project,
|
|
71
|
-
'target-extension': targetExt,
|
|
72
|
-
'pkg-dir': pkgDir,
|
|
73
|
-
parallel,
|
|
74
|
-
dirs
|
|
75
|
-
} = parsed;
|
|
76
|
-
let configPath = (0, _nodePath.resolve)(project);
|
|
77
|
-
let stats = null;
|
|
78
|
-
let pkg = null;
|
|
79
|
-
if (targetExt) {
|
|
80
|
-
(0, _util.logError)('--target-extension is deprecated. Define "type" in your package.json instead and the dual build will be inferred from that.');
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
pkg = await (0, _readPkgUp.readPackageUp)({
|
|
84
|
-
cwd: pkgDir
|
|
85
|
-
});
|
|
86
|
-
if (!pkg) {
|
|
87
|
-
(0, _util.logError)('No package.json file found.');
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
try {
|
|
91
|
-
stats = await (0, _promises.stat)(configPath);
|
|
92
|
-
} catch {
|
|
93
|
-
(0, _util.logError)(`Provided --project '${project}' resolves to ${configPath} which is not a file or directory.`);
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
if (stats.isDirectory()) {
|
|
97
|
-
configPath = (0, _nodePath.join)(configPath, 'tsconfig.json');
|
|
98
|
-
try {
|
|
99
|
-
stats = await (0, _promises.stat)(configPath);
|
|
100
|
-
} catch {
|
|
101
|
-
(0, _util.logError)(`Provided --project '${project}' resolves to a directory ${(0, _nodePath.dirname)(configPath)} with no tsconfig.json.`);
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
if (stats.isFile()) {
|
|
106
|
-
let tsconfig = null;
|
|
107
|
-
const errors = [];
|
|
108
|
-
const jsonText = (await (0, _promises.readFile)(configPath)).toString();
|
|
109
|
-
tsconfig = _jsoncParser.default.parse(jsonText, errors, {
|
|
110
|
-
disallowComments: false,
|
|
111
|
-
allowTrailingComma: true
|
|
112
|
-
});
|
|
113
|
-
if (errors.length) {
|
|
114
|
-
(0, _util.logError)(`The config file found at ${configPath} is not parsable as JSONC.`);
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
if (!tsconfig.compilerOptions?.outDir) {
|
|
118
|
-
(0, _util.log)('No outDir defined in tsconfig.json. Build output will be in "dist".');
|
|
119
|
-
}
|
|
120
|
-
const projectDir = (0, _nodePath.dirname)(configPath);
|
|
121
|
-
return {
|
|
122
|
-
pkg,
|
|
123
|
-
dirs,
|
|
124
|
-
parallel,
|
|
125
|
-
tsconfig,
|
|
126
|
-
projectDir,
|
|
127
|
-
configPath
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
return false;
|
|
132
|
-
};
|
|
133
|
-
exports.init = init;
|
package/dist/init.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { cwd } from 'node:process';
|
|
2
|
-
import { parseArgs } from 'node:util';
|
|
3
|
-
import { resolve, join, dirname } from 'node:path';
|
|
4
|
-
import { stat, readFile } from 'node:fs/promises';
|
|
5
|
-
import { readPackageUp } from 'read-pkg-up';
|
|
6
|
-
import JSONC from 'jsonc-parser';
|
|
7
|
-
import { logError, log } from './util.js';
|
|
8
|
-
const init = async args => {
|
|
9
|
-
let parsed = null;
|
|
10
|
-
try {
|
|
11
|
-
const {
|
|
12
|
-
values
|
|
13
|
-
} = parseArgs({
|
|
14
|
-
args,
|
|
15
|
-
options: {
|
|
16
|
-
project: {
|
|
17
|
-
type: 'string',
|
|
18
|
-
short: 'p',
|
|
19
|
-
default: 'tsconfig.json'
|
|
20
|
-
},
|
|
21
|
-
'target-extension': {
|
|
22
|
-
type: 'string',
|
|
23
|
-
short: 'x',
|
|
24
|
-
default: ''
|
|
25
|
-
},
|
|
26
|
-
'pkg-dir': {
|
|
27
|
-
type: 'string',
|
|
28
|
-
short: 'k',
|
|
29
|
-
default: cwd()
|
|
30
|
-
},
|
|
31
|
-
parallel: {
|
|
32
|
-
type: 'boolean',
|
|
33
|
-
short: 'l',
|
|
34
|
-
default: false
|
|
35
|
-
},
|
|
36
|
-
dirs: {
|
|
37
|
-
type: 'boolean',
|
|
38
|
-
short: 'd',
|
|
39
|
-
default: false
|
|
40
|
-
},
|
|
41
|
-
help: {
|
|
42
|
-
type: 'boolean',
|
|
43
|
-
short: 'h',
|
|
44
|
-
default: false
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
parsed = values;
|
|
49
|
-
} catch (err) {
|
|
50
|
-
logError(err.message);
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
if (parsed.help) {
|
|
54
|
-
log('Usage: duel [options]\n');
|
|
55
|
-
log('Options:');
|
|
56
|
-
log("--project, -p [path] \t Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.");
|
|
57
|
-
log('--pkg-dir, -k [path] \t The directory to start looking for a package.json file. Defaults to cwd.');
|
|
58
|
-
log('--dirs, -d \t\t Output both builds to directories inside of outDir. [esm, cjs].');
|
|
59
|
-
log('--parallel, -l \t\t Run the builds in parallel.');
|
|
60
|
-
log('--help, -h \t\t Print this message.');
|
|
61
|
-
} else {
|
|
62
|
-
const {
|
|
63
|
-
project,
|
|
64
|
-
'target-extension': targetExt,
|
|
65
|
-
'pkg-dir': pkgDir,
|
|
66
|
-
parallel,
|
|
67
|
-
dirs
|
|
68
|
-
} = parsed;
|
|
69
|
-
let configPath = resolve(project);
|
|
70
|
-
let stats = null;
|
|
71
|
-
let pkg = null;
|
|
72
|
-
if (targetExt) {
|
|
73
|
-
logError('--target-extension is deprecated. Define "type" in your package.json instead and the dual build will be inferred from that.');
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
pkg = await readPackageUp({
|
|
77
|
-
cwd: pkgDir
|
|
78
|
-
});
|
|
79
|
-
if (!pkg) {
|
|
80
|
-
logError('No package.json file found.');
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
stats = await stat(configPath);
|
|
85
|
-
} catch {
|
|
86
|
-
logError(`Provided --project '${project}' resolves to ${configPath} which is not a file or directory.`);
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
if (stats.isDirectory()) {
|
|
90
|
-
configPath = join(configPath, 'tsconfig.json');
|
|
91
|
-
try {
|
|
92
|
-
stats = await stat(configPath);
|
|
93
|
-
} catch {
|
|
94
|
-
logError(`Provided --project '${project}' resolves to a directory ${dirname(configPath)} with no tsconfig.json.`);
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (stats.isFile()) {
|
|
99
|
-
let tsconfig = null;
|
|
100
|
-
const errors = [];
|
|
101
|
-
const jsonText = (await readFile(configPath)).toString();
|
|
102
|
-
tsconfig = JSONC.parse(jsonText, errors, {
|
|
103
|
-
disallowComments: false,
|
|
104
|
-
allowTrailingComma: true
|
|
105
|
-
});
|
|
106
|
-
if (errors.length) {
|
|
107
|
-
logError(`The config file found at ${configPath} is not parsable as JSONC.`);
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
if (!tsconfig.compilerOptions?.outDir) {
|
|
111
|
-
log('No outDir defined in tsconfig.json. Build output will be in "dist".');
|
|
112
|
-
}
|
|
113
|
-
const projectDir = dirname(configPath);
|
|
114
|
-
return {
|
|
115
|
-
pkg,
|
|
116
|
-
dirs,
|
|
117
|
-
parallel,
|
|
118
|
-
tsconfig,
|
|
119
|
-
projectDir,
|
|
120
|
-
configPath
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return false;
|
|
125
|
-
};
|
|
126
|
-
export { init };
|
package/dist/util.cjs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.logError = exports.log = exports.getRealPathAsFileUrl = void 0;
|
|
7
|
-
var _nodeUrl = require("node:url");
|
|
8
|
-
var _promises = require("node:fs/promises");
|
|
9
|
-
const log = (color = '\x1b[30m', msg = '') => {
|
|
10
|
-
console.log(`${color}%s\x1b[0m`, msg);
|
|
11
|
-
};
|
|
12
|
-
exports.log = log;
|
|
13
|
-
const logError = log.bind(null, '\x1b[31m');
|
|
14
|
-
exports.logError = logError;
|
|
15
|
-
const getRealPathAsFileUrl = async path => {
|
|
16
|
-
const realPath = await (0, _promises.realpath)(path);
|
|
17
|
-
const asFileUrl = (0, _nodeUrl.pathToFileURL)(realPath).href;
|
|
18
|
-
return asFileUrl;
|
|
19
|
-
};
|
|
20
|
-
exports.getRealPathAsFileUrl = getRealPathAsFileUrl;
|
package/dist/util.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { pathToFileURL } from 'node:url';
|
|
2
|
-
import { realpath } from 'node:fs/promises';
|
|
3
|
-
const log = (color = '\x1b[30m', msg = '') => {
|
|
4
|
-
console.log(`${color}%s\x1b[0m`, msg);
|
|
5
|
-
};
|
|
6
|
-
const logError = log.bind(null, '\x1b[31m');
|
|
7
|
-
const getRealPathAsFileUrl = async path => {
|
|
8
|
-
const realPath = await realpath(path);
|
|
9
|
-
const asFileUrl = pathToFileURL(realPath).href;
|
|
10
|
-
return asFileUrl;
|
|
11
|
-
};
|
|
12
|
-
export { log, logError, getRealPathAsFileUrl };
|