@crxjs/vite-plugin 2.0.0-beta.13 → 2.0.0-beta.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/dist/index.mjs +35 -24
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { createHash } from 'crypto';
|
|
|
3
3
|
import debug$3 from 'debug';
|
|
4
4
|
import v8 from 'v8';
|
|
5
5
|
import { posix } from 'path';
|
|
6
|
-
import { Subject, filter, ReplaySubject, switchMap, of, startWith, map, mergeMap, firstValueFrom, takeUntil, first, toArray, retry, concatWith, Subscription, buffer } from 'rxjs';
|
|
6
|
+
import { Subject, filter, ReplaySubject, switchMap, of, startWith, map, BehaviorSubject, mergeMap, firstValueFrom, takeUntil, first, toArray, retry, concatWith, Subscription, buffer } from 'rxjs';
|
|
7
7
|
import fsx from 'fs-extra';
|
|
8
8
|
import { performance } from 'perf_hooks';
|
|
9
9
|
import { rollup } from 'rollup';
|
|
@@ -397,6 +397,10 @@ const allFilesReady$ = buildEnd$.pipe(
|
|
|
397
397
|
map(() => [...outputFiles.values()]),
|
|
398
398
|
switchMap((files) => Promise.allSettled(files.map(({ file }) => file)))
|
|
399
399
|
);
|
|
400
|
+
const timestamp$ = new BehaviorSubject(Date.now());
|
|
401
|
+
allFilesReady$.subscribe(() => {
|
|
402
|
+
timestamp$.next(Date.now());
|
|
403
|
+
});
|
|
400
404
|
const isRejected = (x) => x?.status === "rejected";
|
|
401
405
|
const fileWriterError$ = allFilesReady$.pipe(
|
|
402
406
|
mergeMap((results) => results.filter(isRejected)),
|
|
@@ -458,14 +462,10 @@ function prepScript(fileName, script) {
|
|
|
458
462
|
const [imports] = lexer.parse(code, fileName);
|
|
459
463
|
const depSet = new Set(deps);
|
|
460
464
|
const magic = new MagicString(code);
|
|
461
|
-
const now = Date.now();
|
|
462
465
|
for (const i of imports)
|
|
463
466
|
if (i.n) {
|
|
464
467
|
depSet.add(i.n);
|
|
465
|
-
|
|
466
|
-
if (!fileName2.startsWith("vendor")) {
|
|
467
|
-
fileName2 = `${fileName2}?t=${now}`;
|
|
468
|
-
}
|
|
468
|
+
const fileName2 = getFileName({ type: "module", id: i.n });
|
|
469
469
|
const fullImport = code.substring(i.s, i.e);
|
|
470
470
|
magic.overwrite(i.s, i.e, fullImport.replace(i.n, `/${fileName2}`));
|
|
471
471
|
}
|
|
@@ -477,7 +477,7 @@ async function allFilesReady() {
|
|
|
477
477
|
await firstValueFrom(allFilesReady$);
|
|
478
478
|
}
|
|
479
479
|
|
|
480
|
-
const { outputFile
|
|
480
|
+
const { outputFile } = fsx;
|
|
481
481
|
_debug("file-writer");
|
|
482
482
|
async function start({
|
|
483
483
|
server
|
|
@@ -498,8 +498,6 @@ async function start({
|
|
|
498
498
|
dir: outDir,
|
|
499
499
|
format: "es"
|
|
500
500
|
};
|
|
501
|
-
if (server.config.build.emptyOutDir)
|
|
502
|
-
await remove(server.config.build.outDir);
|
|
503
501
|
fileWriterEvent$.next({ type: "build_start" });
|
|
504
502
|
const build = await rollup(inputOptions);
|
|
505
503
|
await build.write(outputOptions);
|
|
@@ -868,29 +866,42 @@ const pluginDynamicContentScripts = () => {
|
|
|
868
866
|
];
|
|
869
867
|
};
|
|
870
868
|
|
|
869
|
+
const { remove } = fsx;
|
|
871
870
|
const logger = createLogger("error", { prefix: "crxjs" });
|
|
872
871
|
const pluginFileWriter = () => {
|
|
873
872
|
fileWriterError$.subscribe((error) => {
|
|
874
873
|
logger.error(error.err.message, { error: error.err });
|
|
875
874
|
});
|
|
876
|
-
return
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
console.error(error);
|
|
885
|
-
server.close();
|
|
875
|
+
return [
|
|
876
|
+
{
|
|
877
|
+
name: "crx:file-writer-empty-out-dir",
|
|
878
|
+
apply: "serve",
|
|
879
|
+
enforce: "pre",
|
|
880
|
+
async configResolved(config) {
|
|
881
|
+
if (config.build.emptyOutDir) {
|
|
882
|
+
await remove(config.build.outDir);
|
|
886
883
|
}
|
|
887
|
-
}
|
|
888
|
-
server.httpServer?.on("close", () => close());
|
|
884
|
+
}
|
|
889
885
|
},
|
|
890
|
-
|
|
891
|
-
|
|
886
|
+
{
|
|
887
|
+
name: "crx:file-writer",
|
|
888
|
+
apply: "serve",
|
|
889
|
+
configureServer(server) {
|
|
890
|
+
server.httpServer?.on("listening", async () => {
|
|
891
|
+
try {
|
|
892
|
+
await start({ server });
|
|
893
|
+
} catch (error) {
|
|
894
|
+
console.error(error);
|
|
895
|
+
server.close();
|
|
896
|
+
}
|
|
897
|
+
});
|
|
898
|
+
server.httpServer?.on("close", () => close());
|
|
899
|
+
},
|
|
900
|
+
closeBundle() {
|
|
901
|
+
outputFiles.clear();
|
|
902
|
+
}
|
|
892
903
|
}
|
|
893
|
-
|
|
904
|
+
];
|
|
894
905
|
};
|
|
895
906
|
|
|
896
907
|
const _require = typeof require === "undefined" ? createRequire(import.meta.url) : require;
|