@crustkit/minify 0.1.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/LICENSE +21 -0
- package/README.md +92 -0
- package/crustkit-minify.linux-x64-gnu.node +0 -0
- package/dist/index.d.mts +157 -0
- package/dist/index.d.ts +157 -0
- package/dist/index.js +423 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +401 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +82 -0
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
2
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
3
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
4
|
+
}) : x)(function(x) {
|
|
5
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
6
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
7
|
+
});
|
|
8
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
9
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// index.js
|
|
13
|
+
var require_index = __commonJS({
|
|
14
|
+
"index.js"(exports, module) {
|
|
15
|
+
"use strict";
|
|
16
|
+
var { existsSync, readFileSync } = __require("fs");
|
|
17
|
+
var { join } = __require("path");
|
|
18
|
+
var { platform, arch } = process;
|
|
19
|
+
var nativeBinding = null;
|
|
20
|
+
var localFileExisted = false;
|
|
21
|
+
var loadError = null;
|
|
22
|
+
function isMusl() {
|
|
23
|
+
if (!process.report || typeof process.report.getReport !== "function") {
|
|
24
|
+
try {
|
|
25
|
+
const lddPath = __require("child_process").execSync("which ldd").toString().trim();
|
|
26
|
+
return readFileSync(lddPath, "utf8").includes("musl");
|
|
27
|
+
} catch (e) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
const { glibcVersionRuntime } = process.report.getReport().header;
|
|
32
|
+
return !glibcVersionRuntime;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
switch (platform) {
|
|
36
|
+
case "android":
|
|
37
|
+
switch (arch) {
|
|
38
|
+
case "arm64":
|
|
39
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.android-arm64.node"));
|
|
40
|
+
try {
|
|
41
|
+
if (localFileExisted) {
|
|
42
|
+
nativeBinding = __require("./crustkit-minify.android-arm64.node");
|
|
43
|
+
} else {
|
|
44
|
+
nativeBinding = __require("@crustkit/minify-android-arm64");
|
|
45
|
+
}
|
|
46
|
+
} catch (e) {
|
|
47
|
+
loadError = e;
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case "arm":
|
|
51
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.android-arm-eabi.node"));
|
|
52
|
+
try {
|
|
53
|
+
if (localFileExisted) {
|
|
54
|
+
nativeBinding = __require("./crustkit-minify.android-arm-eabi.node");
|
|
55
|
+
} else {
|
|
56
|
+
nativeBinding = __require("@crustkit/minify-android-arm-eabi");
|
|
57
|
+
}
|
|
58
|
+
} catch (e) {
|
|
59
|
+
loadError = e;
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
throw new Error(`Unsupported architecture on Android ${arch}`);
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
case "win32":
|
|
67
|
+
switch (arch) {
|
|
68
|
+
case "x64":
|
|
69
|
+
localFileExisted = existsSync(
|
|
70
|
+
join(__dirname, "crustkit-minify.win32-x64-msvc.node")
|
|
71
|
+
);
|
|
72
|
+
try {
|
|
73
|
+
if (localFileExisted) {
|
|
74
|
+
nativeBinding = __require("./crustkit-minify.win32-x64-msvc.node");
|
|
75
|
+
} else {
|
|
76
|
+
nativeBinding = __require("@crustkit/minify-win32-x64-msvc");
|
|
77
|
+
}
|
|
78
|
+
} catch (e) {
|
|
79
|
+
loadError = e;
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
case "ia32":
|
|
83
|
+
localFileExisted = existsSync(
|
|
84
|
+
join(__dirname, "crustkit-minify.win32-ia32-msvc.node")
|
|
85
|
+
);
|
|
86
|
+
try {
|
|
87
|
+
if (localFileExisted) {
|
|
88
|
+
nativeBinding = __require("./crustkit-minify.win32-ia32-msvc.node");
|
|
89
|
+
} else {
|
|
90
|
+
nativeBinding = __require("@crustkit/minify-win32-ia32-msvc");
|
|
91
|
+
}
|
|
92
|
+
} catch (e) {
|
|
93
|
+
loadError = e;
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
case "arm64":
|
|
97
|
+
localFileExisted = existsSync(
|
|
98
|
+
join(__dirname, "crustkit-minify.win32-arm64-msvc.node")
|
|
99
|
+
);
|
|
100
|
+
try {
|
|
101
|
+
if (localFileExisted) {
|
|
102
|
+
nativeBinding = __require("./crustkit-minify.win32-arm64-msvc.node");
|
|
103
|
+
} else {
|
|
104
|
+
nativeBinding = __require("@crustkit/minify-win32-arm64-msvc");
|
|
105
|
+
}
|
|
106
|
+
} catch (e) {
|
|
107
|
+
loadError = e;
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
default:
|
|
111
|
+
throw new Error(`Unsupported architecture on Windows: ${arch}`);
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case "darwin":
|
|
115
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.darwin-universal.node"));
|
|
116
|
+
try {
|
|
117
|
+
if (localFileExisted) {
|
|
118
|
+
nativeBinding = __require("./crustkit-minify.darwin-universal.node");
|
|
119
|
+
} else {
|
|
120
|
+
nativeBinding = __require("@crustkit/minify-darwin-universal");
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
} catch {
|
|
124
|
+
}
|
|
125
|
+
switch (arch) {
|
|
126
|
+
case "x64":
|
|
127
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.darwin-x64.node"));
|
|
128
|
+
try {
|
|
129
|
+
if (localFileExisted) {
|
|
130
|
+
nativeBinding = __require("./crustkit-minify.darwin-x64.node");
|
|
131
|
+
} else {
|
|
132
|
+
nativeBinding = __require("@crustkit/minify-darwin-x64");
|
|
133
|
+
}
|
|
134
|
+
} catch (e) {
|
|
135
|
+
loadError = e;
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
case "arm64":
|
|
139
|
+
localFileExisted = existsSync(
|
|
140
|
+
join(__dirname, "crustkit-minify.darwin-arm64.node")
|
|
141
|
+
);
|
|
142
|
+
try {
|
|
143
|
+
if (localFileExisted) {
|
|
144
|
+
nativeBinding = __require("./crustkit-minify.darwin-arm64.node");
|
|
145
|
+
} else {
|
|
146
|
+
nativeBinding = __require("@crustkit/minify-darwin-arm64");
|
|
147
|
+
}
|
|
148
|
+
} catch (e) {
|
|
149
|
+
loadError = e;
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
default:
|
|
153
|
+
throw new Error(`Unsupported architecture on macOS: ${arch}`);
|
|
154
|
+
}
|
|
155
|
+
break;
|
|
156
|
+
case "freebsd":
|
|
157
|
+
if (arch !== "x64") {
|
|
158
|
+
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`);
|
|
159
|
+
}
|
|
160
|
+
localFileExisted = existsSync(join(__dirname, "crustkit-minify.freebsd-x64.node"));
|
|
161
|
+
try {
|
|
162
|
+
if (localFileExisted) {
|
|
163
|
+
nativeBinding = __require("./crustkit-minify.freebsd-x64.node");
|
|
164
|
+
} else {
|
|
165
|
+
nativeBinding = __require("@crustkit/minify-freebsd-x64");
|
|
166
|
+
}
|
|
167
|
+
} catch (e) {
|
|
168
|
+
loadError = e;
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
case "linux":
|
|
172
|
+
switch (arch) {
|
|
173
|
+
case "x64":
|
|
174
|
+
if (isMusl()) {
|
|
175
|
+
localFileExisted = existsSync(
|
|
176
|
+
join(__dirname, "crustkit-minify.linux-x64-musl.node")
|
|
177
|
+
);
|
|
178
|
+
try {
|
|
179
|
+
if (localFileExisted) {
|
|
180
|
+
nativeBinding = __require("./crustkit-minify.linux-x64-musl.node");
|
|
181
|
+
} else {
|
|
182
|
+
nativeBinding = __require("@crustkit/minify-linux-x64-musl");
|
|
183
|
+
}
|
|
184
|
+
} catch (e) {
|
|
185
|
+
loadError = e;
|
|
186
|
+
}
|
|
187
|
+
} else {
|
|
188
|
+
localFileExisted = existsSync(
|
|
189
|
+
join(__dirname, "crustkit-minify.linux-x64-gnu.node")
|
|
190
|
+
);
|
|
191
|
+
try {
|
|
192
|
+
if (localFileExisted) {
|
|
193
|
+
nativeBinding = __require("./crustkit-minify.linux-x64-gnu.node");
|
|
194
|
+
} else {
|
|
195
|
+
nativeBinding = __require("@crustkit/minify-linux-x64-gnu");
|
|
196
|
+
}
|
|
197
|
+
} catch (e) {
|
|
198
|
+
loadError = e;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
break;
|
|
202
|
+
case "arm64":
|
|
203
|
+
if (isMusl()) {
|
|
204
|
+
localFileExisted = existsSync(
|
|
205
|
+
join(__dirname, "crustkit-minify.linux-arm64-musl.node")
|
|
206
|
+
);
|
|
207
|
+
try {
|
|
208
|
+
if (localFileExisted) {
|
|
209
|
+
nativeBinding = __require("./crustkit-minify.linux-arm64-musl.node");
|
|
210
|
+
} else {
|
|
211
|
+
nativeBinding = __require("@crustkit/minify-linux-arm64-musl");
|
|
212
|
+
}
|
|
213
|
+
} catch (e) {
|
|
214
|
+
loadError = e;
|
|
215
|
+
}
|
|
216
|
+
} else {
|
|
217
|
+
localFileExisted = existsSync(
|
|
218
|
+
join(__dirname, "crustkit-minify.linux-arm64-gnu.node")
|
|
219
|
+
);
|
|
220
|
+
try {
|
|
221
|
+
if (localFileExisted) {
|
|
222
|
+
nativeBinding = __require("./crustkit-minify.linux-arm64-gnu.node");
|
|
223
|
+
} else {
|
|
224
|
+
nativeBinding = __require("@crustkit/minify-linux-arm64-gnu");
|
|
225
|
+
}
|
|
226
|
+
} catch (e) {
|
|
227
|
+
loadError = e;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
break;
|
|
231
|
+
case "arm":
|
|
232
|
+
if (isMusl()) {
|
|
233
|
+
localFileExisted = existsSync(
|
|
234
|
+
join(__dirname, "crustkit-minify.linux-arm-musleabihf.node")
|
|
235
|
+
);
|
|
236
|
+
try {
|
|
237
|
+
if (localFileExisted) {
|
|
238
|
+
nativeBinding = __require("./crustkit-minify.linux-arm-musleabihf.node");
|
|
239
|
+
} else {
|
|
240
|
+
nativeBinding = __require("@crustkit/minify-linux-arm-musleabihf");
|
|
241
|
+
}
|
|
242
|
+
} catch (e) {
|
|
243
|
+
loadError = e;
|
|
244
|
+
}
|
|
245
|
+
} else {
|
|
246
|
+
localFileExisted = existsSync(
|
|
247
|
+
join(__dirname, "crustkit-minify.linux-arm-gnueabihf.node")
|
|
248
|
+
);
|
|
249
|
+
try {
|
|
250
|
+
if (localFileExisted) {
|
|
251
|
+
nativeBinding = __require("./crustkit-minify.linux-arm-gnueabihf.node");
|
|
252
|
+
} else {
|
|
253
|
+
nativeBinding = __require("@crustkit/minify-linux-arm-gnueabihf");
|
|
254
|
+
}
|
|
255
|
+
} catch (e) {
|
|
256
|
+
loadError = e;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
break;
|
|
260
|
+
case "riscv64":
|
|
261
|
+
if (isMusl()) {
|
|
262
|
+
localFileExisted = existsSync(
|
|
263
|
+
join(__dirname, "crustkit-minify.linux-riscv64-musl.node")
|
|
264
|
+
);
|
|
265
|
+
try {
|
|
266
|
+
if (localFileExisted) {
|
|
267
|
+
nativeBinding = __require("./crustkit-minify.linux-riscv64-musl.node");
|
|
268
|
+
} else {
|
|
269
|
+
nativeBinding = __require("@crustkit/minify-linux-riscv64-musl");
|
|
270
|
+
}
|
|
271
|
+
} catch (e) {
|
|
272
|
+
loadError = e;
|
|
273
|
+
}
|
|
274
|
+
} else {
|
|
275
|
+
localFileExisted = existsSync(
|
|
276
|
+
join(__dirname, "crustkit-minify.linux-riscv64-gnu.node")
|
|
277
|
+
);
|
|
278
|
+
try {
|
|
279
|
+
if (localFileExisted) {
|
|
280
|
+
nativeBinding = __require("./crustkit-minify.linux-riscv64-gnu.node");
|
|
281
|
+
} else {
|
|
282
|
+
nativeBinding = __require("@crustkit/minify-linux-riscv64-gnu");
|
|
283
|
+
}
|
|
284
|
+
} catch (e) {
|
|
285
|
+
loadError = e;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
break;
|
|
289
|
+
case "s390x":
|
|
290
|
+
localFileExisted = existsSync(
|
|
291
|
+
join(__dirname, "crustkit-minify.linux-s390x-gnu.node")
|
|
292
|
+
);
|
|
293
|
+
try {
|
|
294
|
+
if (localFileExisted) {
|
|
295
|
+
nativeBinding = __require("./crustkit-minify.linux-s390x-gnu.node");
|
|
296
|
+
} else {
|
|
297
|
+
nativeBinding = __require("@crustkit/minify-linux-s390x-gnu");
|
|
298
|
+
}
|
|
299
|
+
} catch (e) {
|
|
300
|
+
loadError = e;
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
default:
|
|
304
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`);
|
|
305
|
+
}
|
|
306
|
+
break;
|
|
307
|
+
default:
|
|
308
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`);
|
|
309
|
+
}
|
|
310
|
+
if (!nativeBinding) {
|
|
311
|
+
if (loadError) {
|
|
312
|
+
throw loadError;
|
|
313
|
+
}
|
|
314
|
+
throw new Error(`Failed to load native binding`);
|
|
315
|
+
}
|
|
316
|
+
var { minifyJs: minifyJs3, minifyCss: minifyCss3 } = nativeBinding;
|
|
317
|
+
module.exports.minifyJs = minifyJs3;
|
|
318
|
+
module.exports.minifyCss = minifyCss3;
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
// ts/binding.ts
|
|
323
|
+
var native = require_index();
|
|
324
|
+
var minifyJs = native.minifyJs;
|
|
325
|
+
var minifyCss = native.minifyCss;
|
|
326
|
+
|
|
327
|
+
// ts/index.ts
|
|
328
|
+
function minifyJs2(code, options) {
|
|
329
|
+
const result = minifyJs(code, {
|
|
330
|
+
mangle: options?.mangle,
|
|
331
|
+
compress: options?.compress,
|
|
332
|
+
sourceMap: options?.sourceMap,
|
|
333
|
+
filename: options?.filename,
|
|
334
|
+
module: options?.module
|
|
335
|
+
});
|
|
336
|
+
return {
|
|
337
|
+
code: result.code,
|
|
338
|
+
map: result.map ?? null
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
function minifyCss2(code, options) {
|
|
342
|
+
const result = minifyCss(code, {
|
|
343
|
+
sourceMap: options?.sourceMap,
|
|
344
|
+
filename: options?.filename
|
|
345
|
+
});
|
|
346
|
+
return {
|
|
347
|
+
code: result.code,
|
|
348
|
+
map: result.map ?? null
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
function minify(code, options) {
|
|
352
|
+
const lang = detectLanguage(options);
|
|
353
|
+
if (lang === "css") {
|
|
354
|
+
return minifyCss2(code, options);
|
|
355
|
+
}
|
|
356
|
+
return minifyJs2(code, options);
|
|
357
|
+
}
|
|
358
|
+
async function terser(code, options) {
|
|
359
|
+
let input;
|
|
360
|
+
let filename;
|
|
361
|
+
if (typeof code === "string") {
|
|
362
|
+
input = code;
|
|
363
|
+
} else {
|
|
364
|
+
const entries = Object.entries(code);
|
|
365
|
+
if (entries.length === 0) {
|
|
366
|
+
return { code: "" };
|
|
367
|
+
}
|
|
368
|
+
filename = entries[0][0];
|
|
369
|
+
input = entries.map(([, src]) => src).join(";\n");
|
|
370
|
+
}
|
|
371
|
+
const doSourceMap = options?.sourceMap != null && options.sourceMap !== false;
|
|
372
|
+
const mapFilename = typeof options?.sourceMap === "object" ? options.sourceMap.filename : void 0;
|
|
373
|
+
const result = minifyJs(input, {
|
|
374
|
+
mangle: options?.mangle !== false,
|
|
375
|
+
compress: options?.compress !== false,
|
|
376
|
+
sourceMap: doSourceMap,
|
|
377
|
+
filename: mapFilename ?? filename,
|
|
378
|
+
module: options?.module
|
|
379
|
+
});
|
|
380
|
+
return {
|
|
381
|
+
code: result.code,
|
|
382
|
+
map: result.map ?? void 0
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
var CSS_EXTS = /* @__PURE__ */ new Set([".css", ".scss", ".sass", ".less"]);
|
|
386
|
+
function detectLanguage(options) {
|
|
387
|
+
if (options && "language" in options && options.language) return options.language;
|
|
388
|
+
const filename = "filename" in (options ?? {}) ? options?.filename : void 0;
|
|
389
|
+
if (filename) {
|
|
390
|
+
const ext = filename.slice(filename.lastIndexOf("."));
|
|
391
|
+
if (CSS_EXTS.has(ext)) return "css";
|
|
392
|
+
}
|
|
393
|
+
return "js";
|
|
394
|
+
}
|
|
395
|
+
export {
|
|
396
|
+
minify,
|
|
397
|
+
minifyCss2 as minifyCss,
|
|
398
|
+
minifyJs2 as minifyJs,
|
|
399
|
+
terser
|
|
400
|
+
};
|
|
401
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../index.js","../ts/binding.ts","../ts/index.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/* prettier-ignore */\n\n/* auto-generated by NAPI-RS */\n\nconst { existsSync, readFileSync } = require('fs')\nconst { join } = require('path')\n\nconst { platform, arch } = process\n\nlet nativeBinding = null\nlet localFileExisted = false\nlet loadError = null\n\nfunction isMusl() {\n // For Node 10\n if (!process.report || typeof process.report.getReport !== 'function') {\n try {\n const lddPath = require('child_process').execSync('which ldd').toString().trim()\n return readFileSync(lddPath, 'utf8').includes('musl')\n } catch (e) {\n return true\n }\n } else {\n const { glibcVersionRuntime } = process.report.getReport().header\n return !glibcVersionRuntime\n }\n}\n\nswitch (platform) {\n case 'android':\n switch (arch) {\n case 'arm64':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.android-arm64.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.android-arm64.node')\n } else {\n nativeBinding = require('@crustkit/minify-android-arm64')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'arm':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.android-arm-eabi.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.android-arm-eabi.node')\n } else {\n nativeBinding = require('@crustkit/minify-android-arm-eabi')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on Android ${arch}`)\n }\n break\n case 'win32':\n switch (arch) {\n case 'x64':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.win32-x64-msvc.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.win32-x64-msvc.node')\n } else {\n nativeBinding = require('@crustkit/minify-win32-x64-msvc')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'ia32':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.win32-ia32-msvc.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.win32-ia32-msvc.node')\n } else {\n nativeBinding = require('@crustkit/minify-win32-ia32-msvc')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'arm64':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.win32-arm64-msvc.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.win32-arm64-msvc.node')\n } else {\n nativeBinding = require('@crustkit/minify-win32-arm64-msvc')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on Windows: ${arch}`)\n }\n break\n case 'darwin':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.darwin-universal.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.darwin-universal.node')\n } else {\n nativeBinding = require('@crustkit/minify-darwin-universal')\n }\n break\n } catch {}\n switch (arch) {\n case 'x64':\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.darwin-x64.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.darwin-x64.node')\n } else {\n nativeBinding = require('@crustkit/minify-darwin-x64')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'arm64':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.darwin-arm64.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.darwin-arm64.node')\n } else {\n nativeBinding = require('@crustkit/minify-darwin-arm64')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on macOS: ${arch}`)\n }\n break\n case 'freebsd':\n if (arch !== 'x64') {\n throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)\n }\n localFileExisted = existsSync(join(__dirname, 'crustkit-minify.freebsd-x64.node'))\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.freebsd-x64.node')\n } else {\n nativeBinding = require('@crustkit/minify-freebsd-x64')\n }\n } catch (e) {\n loadError = e\n }\n break\n case 'linux':\n switch (arch) {\n case 'x64':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-x64-musl.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-x64-musl.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-x64-musl')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-x64-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-x64-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-x64-gnu')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 'arm64':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm64-musl.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm64-musl.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm64-musl')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm64-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm64-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm64-gnu')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 'arm':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm-musleabihf.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm-musleabihf.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm-musleabihf')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-arm-gnueabihf.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-arm-gnueabihf.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-arm-gnueabihf')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 'riscv64':\n if (isMusl()) {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-riscv64-musl.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-riscv64-musl.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-riscv64-musl')\n }\n } catch (e) {\n loadError = e\n }\n } else {\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-riscv64-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-riscv64-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-riscv64-gnu')\n }\n } catch (e) {\n loadError = e\n }\n }\n break\n case 's390x':\n localFileExisted = existsSync(\n join(__dirname, 'crustkit-minify.linux-s390x-gnu.node')\n )\n try {\n if (localFileExisted) {\n nativeBinding = require('./crustkit-minify.linux-s390x-gnu.node')\n } else {\n nativeBinding = require('@crustkit/minify-linux-s390x-gnu')\n }\n } catch (e) {\n loadError = e\n }\n break\n default:\n throw new Error(`Unsupported architecture on Linux: ${arch}`)\n }\n break\n default:\n throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)\n}\n\nif (!nativeBinding) {\n if (loadError) {\n throw loadError\n }\n throw new Error(`Failed to load native binding`)\n}\n\nconst { minifyJs, minifyCss } = nativeBinding\n\nmodule.exports.minifyJs = minifyJs\nmodule.exports.minifyCss = minifyCss\n","// Re-export from the napi-rs generated loader.\n// The generated index.js handles cross-platform .node binary resolution.\n\nexport interface JsMinifyOptions {\n mangle?: boolean | null\n compress?: boolean | null\n sourceMap?: boolean | null\n filename?: string | null\n module?: boolean | null\n}\n\nexport interface JsMinifyResult {\n code: string\n map?: string | null\n}\n\nexport interface CssMinifyOptions {\n filename?: string | null\n sourceMap?: boolean | null\n}\n\nexport interface CssMinifyResult {\n code: string\n map?: string | null\n}\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst native = require('../index.js') as {\n minifyJs(code: string, options?: JsMinifyOptions | null): JsMinifyResult\n minifyCss(code: string, options?: CssMinifyOptions | null): CssMinifyResult\n}\n\nexport const minifyJs = native.minifyJs\nexport const minifyCss = native.minifyCss\n","import { minifyJs as _minifyJs, minifyCss as _minifyCss } from './binding'\n\n// ---------------------------------------------------------------------------\n// JS Options & Result\n// ---------------------------------------------------------------------------\n\nexport interface JsOptions {\n /** Shorten variable names. @default true */\n mangle?: boolean\n\n /** Dead code elimination & constant folding. @default true */\n compress?: boolean\n\n /** Generate a source map. @default false */\n sourceMap?: boolean\n\n /** Filename — used for source maps and error messages. */\n filename?: string\n\n /**\n * Treat as ES module.\n * @default auto-detected from filename extension (.mjs = module)\n */\n module?: boolean\n}\n\n// ---------------------------------------------------------------------------\n// CSS Options & Result\n// ---------------------------------------------------------------------------\n\nexport interface CssOptions {\n /** Generate a source map. @default false */\n sourceMap?: boolean\n\n /** Filename — used for source maps and error messages. */\n filename?: string\n}\n\n// ---------------------------------------------------------------------------\n// Shared result types with source map narrowing\n// ---------------------------------------------------------------------------\n\nexport interface MinifyResult {\n /** The minified code. */\n code: string\n /** Source map JSON string. Only present when `sourceMap: true`. */\n map: string | null\n}\n\nexport interface MinifyResultWithMap {\n code: string\n /** Source map JSON string. Guaranteed present. */\n map: string\n}\n\nexport interface MinifyResultWithoutMap {\n code: string\n map: null\n}\n\n// ---------------------------------------------------------------------------\n// minifyJs — overloads for source map narrowing\n// ---------------------------------------------------------------------------\n\n/**\n * Minify JavaScript or TypeScript.\n *\n * @example\n * ```ts\n * import { minifyJs } from '@crustkit/minify'\n *\n * // Zero config\n * const { code } = minifyJs('var x = 1 + 2; console.log(x)')\n *\n * // With source map — `map` is guaranteed string\n * const { code, map } = minifyJs(src, { sourceMap: true, filename: 'app.js' })\n *\n * // Disable mangling\n * const { code } = minifyJs(src, { mangle: false })\n * ```\n */\nexport function minifyJs(code: string, options: JsOptions & { sourceMap: true }): MinifyResultWithMap\nexport function minifyJs(code: string, options?: JsOptions): MinifyResult\nexport function minifyJs(code: string, options?: JsOptions): MinifyResult {\n const result = _minifyJs(code, {\n mangle: options?.mangle,\n compress: options?.compress,\n sourceMap: options?.sourceMap,\n filename: options?.filename,\n module: options?.module,\n })\n\n return {\n code: result.code,\n map: result.map ?? null,\n }\n}\n\n// ---------------------------------------------------------------------------\n// minifyCss — overloads for source map narrowing\n// ---------------------------------------------------------------------------\n\n/**\n * Minify CSS. Handles vendor prefixing, nesting, and modern syntax automatically.\n *\n * @example\n * ```ts\n * import { minifyCss } from '@crustkit/minify'\n *\n * const { code } = minifyCss('.foo { color: red; margin: 0px; }')\n * // '.foo{color:red;margin:0}'\n *\n * const { code, map } = minifyCss(src, { sourceMap: true })\n * ```\n */\nexport function minifyCss(code: string, options: CssOptions & { sourceMap: true }): MinifyResultWithMap\nexport function minifyCss(code: string, options?: CssOptions): MinifyResult\nexport function minifyCss(code: string, options?: CssOptions): MinifyResult {\n const result = _minifyCss(code, {\n sourceMap: options?.sourceMap,\n filename: options?.filename,\n })\n\n return {\n code: result.code,\n map: result.map ?? null,\n }\n}\n\n// ---------------------------------------------------------------------------\n// minify — unified API with language auto-detection\n// ---------------------------------------------------------------------------\n\nexport type MinifyOptions =\n | (JsOptions & { language?: 'js' })\n | (CssOptions & { language: 'css' })\n\n/**\n * Minify code. Auto-detects language from `filename`, or set `language` explicitly.\n *\n * @example\n * ```ts\n * import { minify } from '@crustkit/minify'\n *\n * // Auto-detect from filename\n * minify('var x = 1', { filename: 'app.js' })\n * minify('.foo { color: red }', { filename: 'style.css' })\n *\n * // Explicit language\n * minify(code, { language: 'js' })\n * minify(code, { language: 'css' })\n *\n * // Default: JS\n * minify('var x = 1 + 2; console.log(x)')\n * ```\n */\nexport function minify(code: string, options?: MinifyOptions): MinifyResult {\n const lang = detectLanguage(options)\n\n if (lang === 'css') {\n return minifyCss(code, options as CssOptions)\n }\n return minifyJs(code, options as JsOptions)\n}\n\n// ---------------------------------------------------------------------------\n// Terser drop-in — accepts terser's API shape, runs Rust underneath\n// ---------------------------------------------------------------------------\n\nexport interface TerserCompressOptions {\n /** Number of compression passes. @default 1 */\n passes?: number\n /** Remove `debugger` statements. @default true */\n drop_debugger?: boolean\n /** Remove `console.*` calls. @default false */\n drop_console?: boolean\n /** Remove unreachable code. @default true */\n dead_code?: boolean\n /** Join consecutive var/let/const statements. @default true */\n join_vars?: boolean\n /** Allow other compress options terser accepts. */\n [key: string]: unknown\n}\n\nexport interface TerserMangleOptions {\n /** Mangle top-level names. @default false */\n toplevel?: boolean\n /** Names to keep unmangled. */\n reserved?: string[]\n /** Allow other mangle options terser accepts. */\n [key: string]: unknown\n}\n\nexport interface TerserSourceMapOptions {\n /** Source map URL to embed in the output. */\n url?: string\n /** Original filename for source map. */\n filename?: string\n}\n\nexport interface TerserOptions {\n compress?: boolean | TerserCompressOptions\n mangle?: boolean | TerserMangleOptions\n sourceMap?: boolean | TerserSourceMapOptions\n module?: boolean\n toplevel?: boolean\n}\n\nexport interface TerserResult {\n code: string\n map?: string\n}\n\n/**\n * Terser-compatible drop-in replacement.\n *\n * @example\n * ```ts\n * // Before:\n * import { minify } from 'terser'\n *\n * // After — just change the import:\n * import { terser as minify } from '@crustkit/minify'\n *\n * const result = await minify(code, { compress: true, mangle: true })\n * ```\n *\n * Returns a Promise for API compatibility. The work is synchronous in Rust.\n */\nexport async function terser(\n code: string | Record<string, string>,\n options?: TerserOptions,\n): Promise<TerserResult> {\n let input: string\n let filename: string | undefined\n\n if (typeof code === 'string') {\n input = code\n } else {\n const entries = Object.entries(code)\n if (entries.length === 0) {\n return { code: '' }\n }\n filename = entries[0][0]\n input = entries.map(([, src]) => src).join(';\\n')\n }\n\n const doSourceMap = options?.sourceMap != null && options.sourceMap !== false\n const mapFilename =\n typeof options?.sourceMap === 'object' ? options.sourceMap.filename : undefined\n\n const result = _minifyJs(input, {\n mangle: options?.mangle !== false,\n compress: options?.compress !== false,\n sourceMap: doSourceMap,\n filename: mapFilename ?? filename,\n module: options?.module,\n })\n\n return {\n code: result.code,\n map: result.map ?? undefined,\n }\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst CSS_EXTS = new Set(['.css', '.scss', '.sass', '.less'])\n\nfunction detectLanguage(options?: MinifyOptions): 'js' | 'css' {\n if (options && 'language' in options && options.language) return options.language\n\n const filename = 'filename' in (options ?? {}) ? (options as { filename?: string })?.filename : undefined\n if (filename) {\n const ext = filename.slice(filename.lastIndexOf('.'))\n if (CSS_EXTS.has(ext)) return 'css'\n }\n\n return 'js'\n}\n"],"mappings":"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","names":["minifyJs","minifyCss","minifyJs","minifyCss"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@crustkit/minify",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "JavaScript, CSS, and HTML minification. Zero config, great defaults, delightful DX.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.mjs",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"crustkit-minify.*.node",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
21
|
+
"napi": {
|
|
22
|
+
"name": "crustkit-minify",
|
|
23
|
+
"triples": {
|
|
24
|
+
"defaults": true,
|
|
25
|
+
"additional": [
|
|
26
|
+
"x86_64-unknown-linux-musl",
|
|
27
|
+
"aarch64-unknown-linux-gnu",
|
|
28
|
+
"aarch64-unknown-linux-musl",
|
|
29
|
+
"aarch64-apple-darwin",
|
|
30
|
+
"x86_64-unknown-freebsd"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"minify",
|
|
36
|
+
"minifier",
|
|
37
|
+
"javascript",
|
|
38
|
+
"css",
|
|
39
|
+
"html",
|
|
40
|
+
"terser",
|
|
41
|
+
"uglify",
|
|
42
|
+
"compress",
|
|
43
|
+
"crustkit",
|
|
44
|
+
"rust",
|
|
45
|
+
"napi"
|
|
46
|
+
],
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "https://github.com/crustkit/minify"
|
|
51
|
+
},
|
|
52
|
+
"author": "crustkit",
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">= 18"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"build": "napi build --platform --release",
|
|
58
|
+
"build:debug": "napi build --platform",
|
|
59
|
+
"build:ts": "tsup",
|
|
60
|
+
"prepublishOnly": "napi prepublish -t npm && npm run build:ts",
|
|
61
|
+
"test": "vitest",
|
|
62
|
+
"typecheck": "tsc --noEmit"
|
|
63
|
+
},
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"@napi-rs/cli": "^2.18.0",
|
|
66
|
+
"@types/node": "^25.5.0",
|
|
67
|
+
"terser": "^5.37.0",
|
|
68
|
+
"tsup": "^8.0.0",
|
|
69
|
+
"typescript": "^5.7.0",
|
|
70
|
+
"vitest": "^3.0.0"
|
|
71
|
+
},
|
|
72
|
+
"optionalDependencies": {
|
|
73
|
+
"@crustkit/minify-win32-x64-msvc": "0.1.0",
|
|
74
|
+
"@crustkit/minify-darwin-x64": "0.1.0",
|
|
75
|
+
"@crustkit/minify-linux-x64-gnu": "0.1.0",
|
|
76
|
+
"@crustkit/minify-linux-x64-musl": "0.1.0",
|
|
77
|
+
"@crustkit/minify-linux-arm64-gnu": "0.1.0",
|
|
78
|
+
"@crustkit/minify-linux-arm64-musl": "0.1.0",
|
|
79
|
+
"@crustkit/minify-darwin-arm64": "0.1.0",
|
|
80
|
+
"@crustkit/minify-freebsd-x64": "0.1.0"
|
|
81
|
+
}
|
|
82
|
+
}
|