@peerbit/vite 1.0.36 → 1.0.38-48ac6de
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/src/index.d.ts +26 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +54 -37
- package/dist/src/index.js.map +1 -1
- package/package.json +80 -77
- package/src/index.ts +95 -42
package/dist/src/index.d.ts
CHANGED
|
@@ -1,10 +1,35 @@
|
|
|
1
|
+
import { type ModuleResolver } from "@peerbit/build-assets";
|
|
1
2
|
import { type PluginOption } from "vite";
|
|
3
|
+
export type { ModuleResolver } from "@peerbit/build-assets";
|
|
4
|
+
export interface FileSystemLike {
|
|
5
|
+
existsSync(path: string): boolean;
|
|
6
|
+
statSync(path: string): {
|
|
7
|
+
isDirectory(): boolean;
|
|
8
|
+
};
|
|
9
|
+
readdirSync(path: string): string[];
|
|
10
|
+
mkdirSync(path: string, options: {
|
|
11
|
+
recursive: boolean;
|
|
12
|
+
}): void;
|
|
13
|
+
copyFileSync(src: string, dest: string): void;
|
|
14
|
+
realpathSync(path: string): string;
|
|
15
|
+
}
|
|
2
16
|
declare const _default: (options?: {
|
|
3
17
|
packages?: string[];
|
|
4
18
|
assets?: {
|
|
5
19
|
src: string;
|
|
6
20
|
dest: string;
|
|
7
|
-
}[];
|
|
21
|
+
}[] | null;
|
|
8
22
|
}) => PluginOption[];
|
|
9
23
|
export default _default;
|
|
24
|
+
export declare const TEST_EXPORTS: {
|
|
25
|
+
findLibraryInNodeModules: (library: string, deps?: {
|
|
26
|
+
fs?: FileSystemLike;
|
|
27
|
+
resolvers?: ModuleResolver[];
|
|
28
|
+
}) => string;
|
|
29
|
+
defaultAssetSources: string[];
|
|
30
|
+
resolveAssetLocations: (sources: string[], deps?: {
|
|
31
|
+
fs?: FileSystemLike;
|
|
32
|
+
resolvers?: ModuleResolver[];
|
|
33
|
+
}) => import("@peerbit/build-assets").ResolveAssetLocation[];
|
|
34
|
+
};
|
|
10
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,cAAc,EAInB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAGzC,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC9B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,WAAW,IAAI,OAAO,CAAA;KAAE,CAAC;IACnD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;yBAsHA,UAAS;IACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;CAC3C,KACJ,YAAY,EAAE;AALjB,wBA0BE;AA6BF,eAAO,MAAM,YAAY;wCAxIf,MAAM,SACR;QAAE,EAAE,CAAC,EAAE,cAAc,CAAC;QAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;KAAE;;qCAMnD,MAAM,EAAE,SACV;QAAE,EAAE,CAAC,EAAE,cAAc,CAAC;QAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;KAAE;CAoI5D,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,36 @@
|
|
|
1
|
+
import { findLibraryInNodeModules as baseFindLibraryInNodeModules, resolveAssetLocations as baseResolveAssetLocations, defaultAssetSources, } from "@peerbit/build-assets";
|
|
1
2
|
import fs from "fs";
|
|
3
|
+
import { createRequire } from "module";
|
|
2
4
|
import path from "path";
|
|
3
5
|
import {} from "vite";
|
|
4
6
|
import { viteStaticCopy } from "vite-plugin-static-copy";
|
|
7
|
+
const requireFromPlugin = createRequire(import.meta.url);
|
|
8
|
+
let requireFromCwd;
|
|
9
|
+
try {
|
|
10
|
+
requireFromCwd = createRequire(path.join(process.cwd(), "package.json"));
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
// ignore if no package.json – fall back to plugin resolver
|
|
14
|
+
}
|
|
15
|
+
const createFindLibraryOptions = (deps) => {
|
|
16
|
+
const resolverCandidates = deps?.resolvers && deps.resolvers.length > 0
|
|
17
|
+
? deps.resolvers
|
|
18
|
+
: [requireFromCwd, requireFromPlugin];
|
|
19
|
+
const mergedResolvers = resolverCandidates.filter((resolver) => resolver != null);
|
|
20
|
+
const options = {
|
|
21
|
+
resolvers: mergedResolvers,
|
|
22
|
+
};
|
|
23
|
+
if (deps?.fs) {
|
|
24
|
+
options.fs = deps.fs;
|
|
25
|
+
}
|
|
26
|
+
return options;
|
|
27
|
+
};
|
|
28
|
+
const findLibraryInNodeModules = (library, deps) => {
|
|
29
|
+
return baseFindLibraryInNodeModules(library, createFindLibraryOptions(deps));
|
|
30
|
+
};
|
|
31
|
+
const resolveAssetLocations = (sources, deps) => {
|
|
32
|
+
return baseResolveAssetLocations(sources, createFindLibraryOptions(deps));
|
|
33
|
+
};
|
|
5
34
|
function dontMinimizeCertainPackagesPlugin(options = {}) {
|
|
6
35
|
options.packages = [
|
|
7
36
|
...(options.packages || []),
|
|
@@ -15,7 +44,8 @@ function dontMinimizeCertainPackagesPlugin(options = {}) {
|
|
|
15
44
|
if (command === "build") {
|
|
16
45
|
config.optimizeDeps = config.optimizeDeps || {};
|
|
17
46
|
config.optimizeDeps.exclude = config.optimizeDeps.exclude || [];
|
|
18
|
-
|
|
47
|
+
const pkgs = options.packages ?? [];
|
|
48
|
+
config.optimizeDeps.exclude.push(...pkgs);
|
|
19
49
|
}
|
|
20
50
|
},
|
|
21
51
|
};
|
|
@@ -23,7 +53,18 @@ function dontMinimizeCertainPackagesPlugin(options = {}) {
|
|
|
23
53
|
function copyToPublicPlugin(options = {}) {
|
|
24
54
|
return {
|
|
25
55
|
name: "copy-to-public",
|
|
56
|
+
enforce: "pre",
|
|
26
57
|
buildStart() {
|
|
58
|
+
// Ensure worker exists in public/ as a last-resort (CI safety), even if assets disabled
|
|
59
|
+
try {
|
|
60
|
+
// Copy the entire dist/peerbit directory from @peerbit/indexer-sqlite3
|
|
61
|
+
const peerbitDistDir = findLibraryInNodeModules("@peerbit/indexer-sqlite3/dist/peerbit");
|
|
62
|
+
const destDir = path.resolve(resolveStaticPath(), "peerbit");
|
|
63
|
+
copyAssets(peerbitDistDir, destDir, "/");
|
|
64
|
+
}
|
|
65
|
+
catch (_err) {
|
|
66
|
+
// ignore; optional best-effort
|
|
67
|
+
}
|
|
27
68
|
if (options?.assets) {
|
|
28
69
|
options.assets.forEach(({ src, dest }) => {
|
|
29
70
|
const sourcePath = path.resolve(src);
|
|
@@ -50,46 +91,16 @@ const resolveStaticPath = () => {
|
|
|
50
91
|
throw new Error("Could not find public or static folder");
|
|
51
92
|
}
|
|
52
93
|
};
|
|
53
|
-
const findLibraryInNodeModules = (library) => {
|
|
54
|
-
// scan upwards until we find the node_modules folder
|
|
55
|
-
let maxSearchDepth = 10;
|
|
56
|
-
let currentDir = process.cwd();
|
|
57
|
-
let nodeModulesDir = path.join(currentDir, "node_modules");
|
|
58
|
-
while (!fs.existsSync(path.join(nodeModulesDir, library))) {
|
|
59
|
-
currentDir = path.resolve(currentDir, "..");
|
|
60
|
-
nodeModulesDir = path.join(currentDir, "node_modules");
|
|
61
|
-
// we have found a .git folder, so we are at the root
|
|
62
|
-
// then stop
|
|
63
|
-
if (fs.existsSync(path.join(currentDir, ".git"))) {
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
maxSearchDepth--;
|
|
67
|
-
if (maxSearchDepth <= 0) {
|
|
68
|
-
throw new Error(`Could not find ${library} node_modules folder`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const libraryPath = path.join(nodeModulesDir, library);
|
|
72
|
-
if (!fs.existsSync(libraryPath)) {
|
|
73
|
-
throw new Error(`Library ${library} not found in node_modules`);
|
|
74
|
-
}
|
|
75
|
-
return libraryPath;
|
|
76
|
-
};
|
|
77
|
-
let pathsToCopy = [
|
|
78
|
-
"@peerbit/any-store-opfs/dist/peerbit",
|
|
79
|
-
"@peerbit/indexer-sqlite3/dist/peerbit",
|
|
80
|
-
"@peerbit/riblt/dist/rateless_iblt_bg.wasm",
|
|
81
|
-
];
|
|
82
94
|
export default (options = {}) => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
});
|
|
95
|
+
const includeDefaultAssets = options.assets === undefined;
|
|
96
|
+
const userAssets = Array.isArray(options.assets) ? options.assets : [];
|
|
97
|
+
const assetsToCopy = includeDefaultAssets
|
|
98
|
+
? [...resolveAssetLocations(defaultAssetSources), ...userAssets]
|
|
99
|
+
: userAssets;
|
|
89
100
|
return [
|
|
90
101
|
dontMinimizeCertainPackagesPlugin({ packages: options.packages }),
|
|
91
102
|
copyToPublicPlugin({
|
|
92
|
-
assets:
|
|
103
|
+
assets: assetsToCopy,
|
|
93
104
|
}),
|
|
94
105
|
viteStaticCopy({
|
|
95
106
|
targets: [
|
|
@@ -123,4 +134,10 @@ function copyAssets(srcPath, destPath, base) {
|
|
|
123
134
|
fs.copyFileSync(srcPath, destPathAsFile);
|
|
124
135
|
}
|
|
125
136
|
}
|
|
137
|
+
// Expose internals for testing
|
|
138
|
+
export const TEST_EXPORTS = {
|
|
139
|
+
findLibraryInNodeModules,
|
|
140
|
+
defaultAssetSources,
|
|
141
|
+
resolveAssetLocations,
|
|
142
|
+
};
|
|
126
143
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAqB,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,SAAS,iCAAiC,CACzC,UAAmC,EAAE;IAErC,OAAO,CAAC,QAAQ,GAAG;QAClB,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC3B,yBAAyB;QACzB,oBAAoB;QACpB,yBAAyB;KACzB,CAAC;IACF,OAAO;QACN,IAAI,EAAE,gCAAgC;QACtC,MAAM,CAAC,MAAW,EAAE,EAAE,OAAO,EAAO;YACnC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;gBAChD,MAAM,CAAC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;gBAChE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,79 +1,82 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
2
|
+
"name": "@peerbit/vite",
|
|
3
|
+
"version": "1.0.38-48ac6de",
|
|
4
|
+
"description": "Plugin for Vite to use Peerbit",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"types": "./dist/src/index.d.ts",
|
|
8
|
+
"typesVersions": {
|
|
9
|
+
"*": {
|
|
10
|
+
"*": [
|
|
11
|
+
"*",
|
|
12
|
+
"dist/*",
|
|
13
|
+
"dist/src/*",
|
|
14
|
+
"dist/src/*/index"
|
|
15
|
+
],
|
|
16
|
+
"src/*": [
|
|
17
|
+
"*",
|
|
18
|
+
"dist/*",
|
|
19
|
+
"dist/src/*",
|
|
20
|
+
"dist/src/*/index"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"src",
|
|
26
|
+
"dist",
|
|
27
|
+
"!dist/e2e",
|
|
28
|
+
"!dist/test",
|
|
29
|
+
"!**/*.tsbuildinfo"
|
|
30
|
+
],
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/src/index.d.ts",
|
|
34
|
+
"import": "./dist/src/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"eslintConfig": {
|
|
38
|
+
"extends": "peerbit",
|
|
39
|
+
"parserOptions": {
|
|
40
|
+
"project": true,
|
|
41
|
+
"sourceType": "module"
|
|
42
|
+
},
|
|
43
|
+
"ignorePatterns": [
|
|
44
|
+
"!.aegir.js",
|
|
45
|
+
"test/ts-use",
|
|
46
|
+
"*.d.ts"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"clean": "aegir clean",
|
|
54
|
+
"build": "aegir build --no-bundle",
|
|
55
|
+
"test": "aegir test -t node",
|
|
56
|
+
"lint": "aegir lint"
|
|
57
|
+
},
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "git",
|
|
60
|
+
"url": "https://github.com/dao-xyz/peerbit"
|
|
61
|
+
},
|
|
62
|
+
"engines": {
|
|
63
|
+
"node": ">=16.15.1"
|
|
64
|
+
},
|
|
65
|
+
"author": "dao.xyz",
|
|
66
|
+
"license": "MIT",
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"vite-plugin-static-copy": "^3.1.2",
|
|
69
|
+
"vite": "^7.1.7",
|
|
70
|
+
"@peerbit/build-assets": "1.0.0-48ac6de"
|
|
71
|
+
},
|
|
72
|
+
"devDependencies": {
|
|
73
|
+
"chai": "^4.3.10",
|
|
74
|
+
"@types/chai": "^4.3.16",
|
|
75
|
+
"@peerbit/indexer-sqlite3": "1.2.30-48ac6de",
|
|
76
|
+
"@peerbit/any-store": "2.1.16-48ac6de",
|
|
77
|
+
"@peerbit/any-store-opfs": "1.0.15-48ac6de"
|
|
78
|
+
},
|
|
79
|
+
"localMaintainers": [
|
|
80
|
+
"dao.xyz"
|
|
81
|
+
]
|
|
79
82
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,74 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type FindLibraryOptions,
|
|
3
|
+
type ModuleResolver,
|
|
4
|
+
findLibraryInNodeModules as baseFindLibraryInNodeModules,
|
|
5
|
+
resolveAssetLocations as baseResolveAssetLocations,
|
|
6
|
+
defaultAssetSources,
|
|
7
|
+
} from "@peerbit/build-assets";
|
|
1
8
|
import fs from "fs";
|
|
9
|
+
import { createRequire } from "module";
|
|
2
10
|
import path from "path";
|
|
3
11
|
import { type PluginOption } from "vite";
|
|
4
12
|
import { viteStaticCopy } from "vite-plugin-static-copy";
|
|
5
13
|
|
|
14
|
+
export type { ModuleResolver } from "@peerbit/build-assets";
|
|
15
|
+
|
|
16
|
+
export interface FileSystemLike {
|
|
17
|
+
existsSync(path: string): boolean;
|
|
18
|
+
statSync(path: string): { isDirectory(): boolean };
|
|
19
|
+
readdirSync(path: string): string[];
|
|
20
|
+
mkdirSync(path: string, options: { recursive: boolean }): void;
|
|
21
|
+
copyFileSync(src: string, dest: string): void;
|
|
22
|
+
realpathSync(path: string): string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const requireFromPlugin = createRequire(import.meta.url);
|
|
26
|
+
|
|
27
|
+
let requireFromCwd: ModuleResolver | undefined;
|
|
28
|
+
try {
|
|
29
|
+
requireFromCwd = createRequire(path.join(process.cwd(), "package.json"));
|
|
30
|
+
} catch (err) {
|
|
31
|
+
// ignore if no package.json – fall back to plugin resolver
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const createFindLibraryOptions = (deps?: {
|
|
35
|
+
fs?: FileSystemLike;
|
|
36
|
+
resolvers?: ModuleResolver[];
|
|
37
|
+
}): FindLibraryOptions => {
|
|
38
|
+
const resolverCandidates: (ModuleResolver | undefined)[] =
|
|
39
|
+
deps?.resolvers && deps.resolvers.length > 0
|
|
40
|
+
? deps.resolvers
|
|
41
|
+
: [requireFromCwd, requireFromPlugin];
|
|
42
|
+
|
|
43
|
+
const mergedResolvers = resolverCandidates.filter(
|
|
44
|
+
(resolver): resolver is ModuleResolver => resolver != null,
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const options: FindLibraryOptions = {
|
|
48
|
+
resolvers: mergedResolvers,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
if (deps?.fs) {
|
|
52
|
+
options.fs = deps.fs as unknown as FindLibraryOptions["fs"];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return options;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const findLibraryInNodeModules = (
|
|
59
|
+
library: string,
|
|
60
|
+
deps?: { fs?: FileSystemLike; resolvers?: ModuleResolver[] },
|
|
61
|
+
) => {
|
|
62
|
+
return baseFindLibraryInNodeModules(library, createFindLibraryOptions(deps));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const resolveAssetLocations = (
|
|
66
|
+
sources: string[],
|
|
67
|
+
deps?: { fs?: FileSystemLike; resolvers?: ModuleResolver[] },
|
|
68
|
+
) => {
|
|
69
|
+
return baseResolveAssetLocations(sources, createFindLibraryOptions(deps));
|
|
70
|
+
};
|
|
71
|
+
|
|
6
72
|
function dontMinimizeCertainPackagesPlugin(
|
|
7
73
|
options: { packages?: string[] } = {},
|
|
8
74
|
) {
|
|
@@ -18,7 +84,8 @@ function dontMinimizeCertainPackagesPlugin(
|
|
|
18
84
|
if (command === "build") {
|
|
19
85
|
config.optimizeDeps = config.optimizeDeps || {};
|
|
20
86
|
config.optimizeDeps.exclude = config.optimizeDeps.exclude || [];
|
|
21
|
-
|
|
87
|
+
const pkgs: string[] = options.packages ?? [];
|
|
88
|
+
config.optimizeDeps.exclude.push(...pkgs);
|
|
22
89
|
}
|
|
23
90
|
},
|
|
24
91
|
};
|
|
@@ -29,7 +96,19 @@ function copyToPublicPlugin(
|
|
|
29
96
|
) {
|
|
30
97
|
return {
|
|
31
98
|
name: "copy-to-public",
|
|
99
|
+
enforce: "pre" as const,
|
|
32
100
|
buildStart() {
|
|
101
|
+
// Ensure worker exists in public/ as a last-resort (CI safety), even if assets disabled
|
|
102
|
+
try {
|
|
103
|
+
// Copy the entire dist/peerbit directory from @peerbit/indexer-sqlite3
|
|
104
|
+
const peerbitDistDir = findLibraryInNodeModules(
|
|
105
|
+
"@peerbit/indexer-sqlite3/dist/peerbit",
|
|
106
|
+
);
|
|
107
|
+
const destDir = path.resolve(resolveStaticPath(), "peerbit");
|
|
108
|
+
copyAssets(peerbitDistDir, destDir, "/");
|
|
109
|
+
} catch (_err) {
|
|
110
|
+
// ignore; optional best-effort
|
|
111
|
+
}
|
|
33
112
|
if (options?.assets) {
|
|
34
113
|
options.assets.forEach(({ src, dest }) => {
|
|
35
114
|
const sourcePath = path.resolve(src);
|
|
@@ -57,56 +136,23 @@ const resolveStaticPath = () => {
|
|
|
57
136
|
throw new Error("Could not find public or static folder");
|
|
58
137
|
}
|
|
59
138
|
};
|
|
60
|
-
const findLibraryInNodeModules = (library: string) => {
|
|
61
|
-
// scan upwards until we find the node_modules folder
|
|
62
|
-
let maxSearchDepth = 10;
|
|
63
|
-
let currentDir = process.cwd();
|
|
64
|
-
let nodeModulesDir = path.join(currentDir, "node_modules");
|
|
65
|
-
|
|
66
|
-
while (!fs.existsSync(path.join(nodeModulesDir, library))) {
|
|
67
|
-
currentDir = path.resolve(currentDir, "..");
|
|
68
|
-
nodeModulesDir = path.join(currentDir, "node_modules");
|
|
69
|
-
|
|
70
|
-
// we have found a .git folder, so we are at the root
|
|
71
|
-
// then stop
|
|
72
|
-
if (fs.existsSync(path.join(currentDir, ".git"))) {
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
maxSearchDepth--;
|
|
77
|
-
if (maxSearchDepth <= 0) {
|
|
78
|
-
throw new Error(`Could not find ${library} node_modules folder`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
const libraryPath = path.join(nodeModulesDir, library);
|
|
82
|
-
if (!fs.existsSync(libraryPath)) {
|
|
83
|
-
throw new Error(`Library ${library} not found in node_modules`);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return libraryPath;
|
|
87
|
-
};
|
|
88
139
|
|
|
89
|
-
let pathsToCopy = [
|
|
90
|
-
"@peerbit/any-store-opfs/dist/peerbit",
|
|
91
|
-
"@peerbit/indexer-sqlite3/dist/peerbit",
|
|
92
|
-
"@peerbit/riblt/dist/rateless_iblt_bg.wasm",
|
|
93
|
-
];
|
|
94
140
|
export default (
|
|
95
141
|
options: {
|
|
96
142
|
packages?: string[];
|
|
97
|
-
assets?: { src: string; dest: string }[];
|
|
143
|
+
assets?: { src: string; dest: string }[] | null;
|
|
98
144
|
} = {},
|
|
99
145
|
): PluginOption[] => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
146
|
+
const includeDefaultAssets = options.assets === undefined;
|
|
147
|
+
const userAssets = Array.isArray(options.assets) ? options.assets : [];
|
|
148
|
+
const assetsToCopy = includeDefaultAssets
|
|
149
|
+
? [...resolveAssetLocations(defaultAssetSources), ...userAssets]
|
|
150
|
+
: userAssets;
|
|
151
|
+
|
|
106
152
|
return [
|
|
107
153
|
dontMinimizeCertainPackagesPlugin({ packages: options.packages }),
|
|
108
154
|
copyToPublicPlugin({
|
|
109
|
-
assets:
|
|
155
|
+
assets: assetsToCopy,
|
|
110
156
|
}),
|
|
111
157
|
viteStaticCopy({
|
|
112
158
|
targets: [
|
|
@@ -144,3 +190,10 @@ function copyAssets(srcPath: string, destPath: string, base: string) {
|
|
|
144
190
|
fs.copyFileSync(srcPath, destPathAsFile);
|
|
145
191
|
}
|
|
146
192
|
}
|
|
193
|
+
|
|
194
|
+
// Expose internals for testing
|
|
195
|
+
export const TEST_EXPORTS = {
|
|
196
|
+
findLibraryInNodeModules,
|
|
197
|
+
defaultAssetSources,
|
|
198
|
+
resolveAssetLocations,
|
|
199
|
+
};
|