@voidzero-dev/vite-plus-core 0.0.0-0bfcc90f.20260209-0731
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 +41 -0
- package/dist/pluginutils/filter/composable-filters.d.ts +90 -0
- package/dist/pluginutils/filter/composable-filters.js +256 -0
- package/dist/pluginutils/filter/filter-vite-plugins.d.ts +28 -0
- package/dist/pluginutils/filter/filter-vite-plugins.js +75 -0
- package/dist/pluginutils/filter/index.d.ts +3 -0
- package/dist/pluginutils/filter/index.js +3 -0
- package/dist/pluginutils/filter/simple-filters.d.ts +71 -0
- package/dist/pluginutils/filter/simple-filters.js +70 -0
- package/dist/pluginutils/index.d.ts +1 -0
- package/dist/pluginutils/index.js +1 -0
- package/dist/pluginutils/utils.d.ts +2 -0
- package/dist/pluginutils/utils.js +17 -0
- package/dist/rolldown/cli-setup.d.mts +1 -0
- package/dist/rolldown/cli-setup.mjs +17 -0
- package/dist/rolldown/cli.d.mts +1 -0
- package/dist/rolldown/cli.mjs +608 -0
- package/dist/rolldown/config.d.mts +7 -0
- package/dist/rolldown/config.mjs +10 -0
- package/dist/rolldown/experimental-index.d.mts +194 -0
- package/dist/rolldown/experimental-index.mjs +291 -0
- package/dist/rolldown/experimental-runtime-types.d.ts +98 -0
- package/dist/rolldown/filter-index.d.mts +197 -0
- package/dist/rolldown/filter-index.mjs +369 -0
- package/dist/rolldown/get-log-filter.d.mts +7 -0
- package/dist/rolldown/get-log-filter.mjs +47 -0
- package/dist/rolldown/index.d.mts +4 -0
- package/dist/rolldown/index.mjs +57 -0
- package/dist/rolldown/parallel-plugin-worker.d.mts +1 -0
- package/dist/rolldown/parallel-plugin-worker.mjs +32 -0
- package/dist/rolldown/parallel-plugin.d.mts +14 -0
- package/dist/rolldown/parallel-plugin.mjs +7 -0
- package/dist/rolldown/parse-ast-index.d.mts +8 -0
- package/dist/rolldown/parse-ast-index.mjs +47 -0
- package/dist/rolldown/plugins-index.d.mts +30 -0
- package/dist/rolldown/plugins-index.mjs +40 -0
- package/dist/rolldown/shared/binding-D-XMzSaG.d.mts +1665 -0
- package/dist/rolldown/shared/binding-DuOSzYPt.mjs +587 -0
- package/dist/rolldown/shared/bindingify-input-options-Bu6nUTgS.mjs +2257 -0
- package/dist/rolldown/shared/constructors-DZVRHTli.mjs +61 -0
- package/dist/rolldown/shared/constructors-KD7LvxpN.d.mts +28 -0
- package/dist/rolldown/shared/define-config-BVG4QvnP.mjs +7 -0
- package/dist/rolldown/shared/define-config-U4pj0ZDn.d.mts +3616 -0
- package/dist/rolldown/shared/load-config-O1K_tT_z.mjs +114 -0
- package/dist/rolldown/shared/logging-CE90D8JR.d.mts +50 -0
- package/dist/rolldown/shared/logs-NH298mHo.mjs +183 -0
- package/dist/rolldown/shared/misc-CCZIsXVO.mjs +22 -0
- package/dist/rolldown/shared/normalize-string-or-regex-DeZqg15i.mjs +61 -0
- package/dist/rolldown/shared/parse-DLraxqjd.mjs +56 -0
- package/dist/rolldown/shared/prompt-DeISmFRp.mjs +847 -0
- package/dist/rolldown/shared/rolldown-O0UKbTKf.mjs +42 -0
- package/dist/rolldown/shared/rolldown-build-BIs7C4B_.mjs +3354 -0
- package/dist/rolldown/shared/watch-DQXGaDjx.mjs +379 -0
- package/dist/tsdown/build-l5WhXg4M-BBPqZr0m.js +4933 -0
- package/dist/tsdown/chunk-CdeBBKNj.js +44 -0
- package/dist/tsdown/debug-Cb_Nqpo4-BueIRvg1.js +18 -0
- package/dist/tsdown/detect-CCATtVj7-B86m8IqW.js +165 -0
- package/dist/tsdown/dist-BUOkzr_P.js +201 -0
- package/dist/tsdown/dist-BVMGwPdF.js +32363 -0
- package/dist/tsdown/dist-dc0X0G6b.js +742 -0
- package/dist/tsdown/filename-7rlgePeo.js +31 -0
- package/dist/tsdown/index-node-BjDys8jy--sqPE5mM.js +251 -0
- package/dist/tsdown/index-types.d.ts +2163 -0
- package/dist/tsdown/index.js +14 -0
- package/dist/tsdown/main-d9yZSQqW.js +926 -0
- package/dist/tsdown/node-Cb5OsnKg.js +271 -0
- package/dist/tsdown/npm_cjs_chunk_chunk.cjs +11 -0
- package/dist/tsdown/npm_cjs_chunk_range.cjs +484 -0
- package/dist/tsdown/npm_cjs_chunk_semver.cjs +362 -0
- package/dist/tsdown/npm_entry_picomatch.cjs +1676 -0
- package/dist/tsdown/npm_entry_semver_functions_coerce.cjs +52 -0
- package/dist/tsdown/npm_entry_semver_functions_satisfies.cjs +23 -0
- package/dist/tsdown/npm_entry_semver_ranges_min-version.cjs +48 -0
- package/dist/tsdown/npm_entry_tree-kill.cjs +103 -0
- package/dist/tsdown/resolver-j7HY1N36-CIu_7LX6.js +20 -0
- package/dist/tsdown/run.js +537 -0
- package/dist/tsdown/tsc-context-BNYuT3cE.js +25 -0
- package/dist/tsdown/tsc-reo6aLWc.js +423 -0
- package/dist/vite/client/client.mjs +1140 -0
- package/dist/vite/client/env.mjs +19 -0
- package/dist/vite/client.d.ts +279 -0
- package/dist/vite/misc/false.d.ts +2 -0
- package/dist/vite/misc/false.js +1 -0
- package/dist/vite/misc/true.d.ts +2 -0
- package/dist/vite/misc/true.js +1 -0
- package/dist/vite/node/chunks/build2.js +5538 -0
- package/dist/vite/node/chunks/chunk.js +45 -0
- package/dist/vite/node/chunks/dist.js +6758 -0
- package/dist/vite/node/chunks/dist2.js +6651 -0
- package/dist/vite/node/chunks/fetchableEnvironments.js +41395 -0
- package/dist/vite/node/chunks/lib.js +377 -0
- package/dist/vite/node/chunks/logger.js +332 -0
- package/dist/vite/node/chunks/moduleRunnerTransport.d.ts +96 -0
- package/dist/vite/node/chunks/postcss-import.js +479 -0
- package/dist/vite/node/cli.js +699 -0
- package/dist/vite/node/index.d.ts +3807 -0
- package/dist/vite/node/index.js +15 -0
- package/dist/vite/node/internal.d.ts +2 -0
- package/dist/vite/node/internal.js +3 -0
- package/dist/vite/node/module-runner.d.ts +311 -0
- package/dist/vite/node/module-runner.js +1159 -0
- package/dist/vite/types/customEvent.d.ts +52 -0
- package/dist/vite/types/hmrPayload.d.ts +80 -0
- package/dist/vite/types/hot.d.ts +39 -0
- package/dist/vite/types/import-meta.d.ts +5 -0
- package/dist/vite/types/importGlob.d.ts +89 -0
- package/dist/vite/types/importMeta.d.ts +30 -0
- package/dist/vite/types/internal/cssPreprocessorOptions.d.ts +44 -0
- package/dist/vite/types/internal/esbuildOptions.d.ts +28 -0
- package/dist/vite/types/internal/lightningcssOptions.d.ts +18 -0
- package/dist/vite/types/internal/rollupTypeCompat.d.ts +24 -0
- package/dist/vite/types/internal/terserOptions.d.ts +11 -0
- package/dist/vite/types/metadata.d.ts +47 -0
- package/package.json +204 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
|
|
3
|
+
//#region \0rolldown/runtime.js
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
11
|
+
var __exportAll = (all, no_symbols) => {
|
|
12
|
+
let target = {};
|
|
13
|
+
for (var name in all) {
|
|
14
|
+
__defProp(target, name, {
|
|
15
|
+
get: all[name],
|
|
16
|
+
enumerable: true
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (!no_symbols) {
|
|
20
|
+
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
21
|
+
}
|
|
22
|
+
return target;
|
|
23
|
+
};
|
|
24
|
+
var __copyProps = (to, from, except, desc) => {
|
|
25
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
26
|
+
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
27
|
+
key = keys[i];
|
|
28
|
+
if (!__hasOwnProp.call(to, key) && key !== except) {
|
|
29
|
+
__defProp(to, key, {
|
|
30
|
+
get: ((k) => from[k]).bind(null, key),
|
|
31
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return to;
|
|
37
|
+
};
|
|
38
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
39
|
+
value: mod,
|
|
40
|
+
enumerable: true
|
|
41
|
+
}) : target, mod));
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { __exportAll as n, __toESM as r, __commonJSMin as t };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { g as resolveComma, y as toArray } from "./main-d9yZSQqW.js";
|
|
2
|
+
import { n as enable, r as namespaces, t as createDebug } from "./node-Cb5OsnKg.js";
|
|
3
|
+
|
|
4
|
+
//#region ../../node_modules/.pnpm/tsdown@0.20.2_@arethetypeswrong+core@0.18.2_@typescript+native-preview@7.0.0-dev.202601_11c6934cad7d4cedf7999249d5905a1c/node_modules/tsdown/dist/debug-Cb_Nqpo4.mjs
|
|
5
|
+
const debugLog = createDebug("tsdown:debug");
|
|
6
|
+
function enableDebug(debug) {
|
|
7
|
+
if (!debug) return;
|
|
8
|
+
let namespace;
|
|
9
|
+
if (debug === true) namespace = "tsdown:*";
|
|
10
|
+
else namespace = resolveComma(toArray(debug)).map((v) => `tsdown:${v}`).join(",");
|
|
11
|
+
const ns = namespaces();
|
|
12
|
+
if (ns) namespace += `,${ns}`;
|
|
13
|
+
enable(namespace);
|
|
14
|
+
debugLog("Debugging enabled", namespace);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { enableDebug as t };
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
|
|
5
|
+
//#region ../../node_modules/.pnpm/tsdown@0.20.2_@arethetypeswrong+core@0.18.2_@typescript+native-preview@7.0.0-dev.202601_11c6934cad7d4cedf7999249d5905a1c/node_modules/tsdown/dist/detect-CCATtVj7.mjs
|
|
6
|
+
const AGENTS = [
|
|
7
|
+
"npm",
|
|
8
|
+
"yarn",
|
|
9
|
+
"yarn@berry",
|
|
10
|
+
"pnpm",
|
|
11
|
+
"pnpm@6",
|
|
12
|
+
"bun",
|
|
13
|
+
"deno"
|
|
14
|
+
];
|
|
15
|
+
const LOCKS = {
|
|
16
|
+
"bun.lock": "bun",
|
|
17
|
+
"bun.lockb": "bun",
|
|
18
|
+
"deno.lock": "deno",
|
|
19
|
+
"pnpm-lock.yaml": "pnpm",
|
|
20
|
+
"pnpm-workspace.yaml": "pnpm",
|
|
21
|
+
"yarn.lock": "yarn",
|
|
22
|
+
"package-lock.json": "npm",
|
|
23
|
+
"npm-shrinkwrap.json": "npm"
|
|
24
|
+
};
|
|
25
|
+
const INSTALL_METADATA = {
|
|
26
|
+
"node_modules/.deno/": "deno",
|
|
27
|
+
"node_modules/.pnpm/": "pnpm",
|
|
28
|
+
"node_modules/.yarn-state.yml": "yarn",
|
|
29
|
+
"node_modules/.yarn_integrity": "yarn",
|
|
30
|
+
"node_modules/.package-lock.json": "npm",
|
|
31
|
+
".pnp.cjs": "yarn",
|
|
32
|
+
".pnp.js": "yarn",
|
|
33
|
+
"bun.lock": "bun",
|
|
34
|
+
"bun.lockb": "bun"
|
|
35
|
+
};
|
|
36
|
+
async function pathExists(path2, type) {
|
|
37
|
+
try {
|
|
38
|
+
const stat = await fs.stat(path2);
|
|
39
|
+
return type === "file" ? stat.isFile() : stat.isDirectory();
|
|
40
|
+
} catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function getUserAgent() {
|
|
45
|
+
const userAgent = process.env.npm_config_user_agent;
|
|
46
|
+
if (!userAgent) return null;
|
|
47
|
+
const name = userAgent.split("/")[0];
|
|
48
|
+
return AGENTS.includes(name) ? name : null;
|
|
49
|
+
}
|
|
50
|
+
function* lookup(cwd = process.cwd()) {
|
|
51
|
+
let directory = path.resolve(cwd);
|
|
52
|
+
const { root } = path.parse(directory);
|
|
53
|
+
while (directory && directory !== root) {
|
|
54
|
+
yield directory;
|
|
55
|
+
directory = path.dirname(directory);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function parsePackageJson(filepath, options) {
|
|
59
|
+
if (!filepath || !await pathExists(filepath, "file")) return null;
|
|
60
|
+
return await handlePackageManager(filepath, options);
|
|
61
|
+
}
|
|
62
|
+
async function detect(options = {}) {
|
|
63
|
+
const { cwd, strategies = [
|
|
64
|
+
"lockfile",
|
|
65
|
+
"packageManager-field",
|
|
66
|
+
"devEngines-field"
|
|
67
|
+
] } = options;
|
|
68
|
+
let stopDir;
|
|
69
|
+
if (typeof options.stopDir === "string") {
|
|
70
|
+
const resolved = path.resolve(options.stopDir);
|
|
71
|
+
stopDir = (dir) => dir === resolved;
|
|
72
|
+
} else stopDir = options.stopDir;
|
|
73
|
+
for (const directory of lookup(cwd)) {
|
|
74
|
+
for (const strategy of strategies) switch (strategy) {
|
|
75
|
+
case "lockfile":
|
|
76
|
+
for (const lock of Object.keys(LOCKS)) if (await pathExists(path.join(directory, lock), "file")) {
|
|
77
|
+
const name = LOCKS[lock];
|
|
78
|
+
const result = await parsePackageJson(path.join(directory, "package.json"), options);
|
|
79
|
+
if (result) return result;
|
|
80
|
+
else return {
|
|
81
|
+
name,
|
|
82
|
+
agent: name
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
86
|
+
case "packageManager-field":
|
|
87
|
+
case "devEngines-field": {
|
|
88
|
+
const result = await parsePackageJson(path.join(directory, "package.json"), options);
|
|
89
|
+
if (result) return result;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case "install-metadata":
|
|
93
|
+
for (const metadata of Object.keys(INSTALL_METADATA)) {
|
|
94
|
+
const fileOrDir = metadata.endsWith("/") ? "dir" : "file";
|
|
95
|
+
if (await pathExists(path.join(directory, metadata), fileOrDir)) {
|
|
96
|
+
const name = INSTALL_METADATA[metadata];
|
|
97
|
+
return {
|
|
98
|
+
name,
|
|
99
|
+
agent: name === "yarn" ? isMetadataYarnClassic(metadata) ? "yarn" : "yarn@berry" : name
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
if (stopDir?.(directory)) break;
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
function getNameAndVer(pkg) {
|
|
110
|
+
const handelVer = (version) => version?.match(/\d+(\.\d+){0,2}/)?.[0] ?? version;
|
|
111
|
+
if (typeof pkg.packageManager === "string") {
|
|
112
|
+
const [name, ver] = pkg.packageManager.replace(/^\^/, "").split("@");
|
|
113
|
+
return {
|
|
114
|
+
name,
|
|
115
|
+
ver: handelVer(ver)
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (typeof pkg.devEngines?.packageManager?.name === "string") return {
|
|
119
|
+
name: pkg.devEngines.packageManager.name,
|
|
120
|
+
ver: handelVer(pkg.devEngines.packageManager.version)
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
async function handlePackageManager(filepath, options) {
|
|
124
|
+
try {
|
|
125
|
+
const content = await fs.readFile(filepath, "utf8");
|
|
126
|
+
const pkg = options.packageJsonParser ? await options.packageJsonParser(content, filepath) : JSON.parse(content);
|
|
127
|
+
let agent;
|
|
128
|
+
const nameAndVer = getNameAndVer(pkg);
|
|
129
|
+
if (nameAndVer) {
|
|
130
|
+
const name = nameAndVer.name;
|
|
131
|
+
const ver = nameAndVer.ver;
|
|
132
|
+
let version = ver;
|
|
133
|
+
if (name === "yarn" && ver && Number.parseInt(ver) > 1) {
|
|
134
|
+
agent = "yarn@berry";
|
|
135
|
+
version = "berry";
|
|
136
|
+
return {
|
|
137
|
+
name,
|
|
138
|
+
agent,
|
|
139
|
+
version
|
|
140
|
+
};
|
|
141
|
+
} else if (name === "pnpm" && ver && Number.parseInt(ver) < 7) {
|
|
142
|
+
agent = "pnpm@6";
|
|
143
|
+
return {
|
|
144
|
+
name,
|
|
145
|
+
agent,
|
|
146
|
+
version
|
|
147
|
+
};
|
|
148
|
+
} else if (AGENTS.includes(name)) {
|
|
149
|
+
agent = name;
|
|
150
|
+
return {
|
|
151
|
+
name,
|
|
152
|
+
agent,
|
|
153
|
+
version
|
|
154
|
+
};
|
|
155
|
+
} else return options.onUnknown?.(pkg.packageManager) ?? null;
|
|
156
|
+
}
|
|
157
|
+
} catch {}
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
function isMetadataYarnClassic(metadataPath) {
|
|
161
|
+
return metadataPath.endsWith(".yarn_integrity");
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
//#endregion
|
|
165
|
+
export { detect, getUserAgent };
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
//#region ../../node_modules/.pnpm/birpc@4.0.0/node_modules/birpc/dist/index.mjs
|
|
2
|
+
const TYPE_REQUEST = "q";
|
|
3
|
+
const TYPE_RESPONSE = "s";
|
|
4
|
+
function createPromiseWithResolvers() {
|
|
5
|
+
let resolve;
|
|
6
|
+
let reject;
|
|
7
|
+
return {
|
|
8
|
+
promise: new Promise((res, rej) => {
|
|
9
|
+
resolve = res;
|
|
10
|
+
reject = rej;
|
|
11
|
+
}),
|
|
12
|
+
resolve,
|
|
13
|
+
reject
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const random = Math.random.bind(Math);
|
|
17
|
+
const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
18
|
+
function nanoid(size = 21) {
|
|
19
|
+
let id = "";
|
|
20
|
+
let i = size;
|
|
21
|
+
while (i--) id += urlAlphabet[random() * 64 | 0];
|
|
22
|
+
return id;
|
|
23
|
+
}
|
|
24
|
+
const DEFAULT_TIMEOUT = 6e4;
|
|
25
|
+
const defaultSerialize = (i) => i;
|
|
26
|
+
const defaultDeserialize = defaultSerialize;
|
|
27
|
+
const { clearTimeout, setTimeout } = globalThis;
|
|
28
|
+
function createBirpc($functions, options) {
|
|
29
|
+
const { post, on, off = () => {}, eventNames = [], serialize = defaultSerialize, deserialize = defaultDeserialize, resolver, bind = "rpc", timeout = DEFAULT_TIMEOUT, proxify = true } = options;
|
|
30
|
+
let $closed = false;
|
|
31
|
+
const _rpcPromiseMap = /* @__PURE__ */ new Map();
|
|
32
|
+
let _promiseInit;
|
|
33
|
+
let rpc;
|
|
34
|
+
async function _call(method, args, event, optional) {
|
|
35
|
+
if ($closed) throw new Error(`[birpc] rpc is closed, cannot call "${method}"`);
|
|
36
|
+
const req = {
|
|
37
|
+
m: method,
|
|
38
|
+
a: args,
|
|
39
|
+
t: TYPE_REQUEST
|
|
40
|
+
};
|
|
41
|
+
if (optional) req.o = true;
|
|
42
|
+
const send = async (_req) => post(serialize(_req));
|
|
43
|
+
if (event) {
|
|
44
|
+
await send(req);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (_promiseInit) try {
|
|
48
|
+
await _promiseInit;
|
|
49
|
+
} finally {
|
|
50
|
+
_promiseInit = void 0;
|
|
51
|
+
}
|
|
52
|
+
let { promise, resolve, reject } = createPromiseWithResolvers();
|
|
53
|
+
const id = nanoid();
|
|
54
|
+
req.i = id;
|
|
55
|
+
let timeoutId;
|
|
56
|
+
async function handler(newReq = req) {
|
|
57
|
+
if (timeout >= 0) {
|
|
58
|
+
timeoutId = setTimeout(() => {
|
|
59
|
+
try {
|
|
60
|
+
if (options.onTimeoutError?.call(rpc, method, args) !== true) throw new Error(`[birpc] timeout on calling "${method}"`);
|
|
61
|
+
} catch (e) {
|
|
62
|
+
reject(e);
|
|
63
|
+
}
|
|
64
|
+
_rpcPromiseMap.delete(id);
|
|
65
|
+
}, timeout);
|
|
66
|
+
if (typeof timeoutId === "object") timeoutId = timeoutId.unref?.();
|
|
67
|
+
}
|
|
68
|
+
_rpcPromiseMap.set(id, {
|
|
69
|
+
resolve,
|
|
70
|
+
reject,
|
|
71
|
+
timeoutId,
|
|
72
|
+
method
|
|
73
|
+
});
|
|
74
|
+
await send(newReq);
|
|
75
|
+
return promise;
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
if (options.onRequest) await options.onRequest.call(rpc, req, handler, resolve);
|
|
79
|
+
else await handler();
|
|
80
|
+
} catch (e) {
|
|
81
|
+
if (options.onGeneralError?.call(rpc, e) !== true) throw e;
|
|
82
|
+
return;
|
|
83
|
+
} finally {
|
|
84
|
+
clearTimeout(timeoutId);
|
|
85
|
+
_rpcPromiseMap.delete(id);
|
|
86
|
+
}
|
|
87
|
+
return promise;
|
|
88
|
+
}
|
|
89
|
+
const builtinMethods = {
|
|
90
|
+
$call: (method, ...args) => _call(method, args, false),
|
|
91
|
+
$callOptional: (method, ...args) => _call(method, args, false, true),
|
|
92
|
+
$callEvent: (method, ...args) => _call(method, args, true),
|
|
93
|
+
$callRaw: (options$1) => _call(options$1.method, options$1.args, options$1.event, options$1.optional),
|
|
94
|
+
$rejectPendingCalls,
|
|
95
|
+
get $closed() {
|
|
96
|
+
return $closed;
|
|
97
|
+
},
|
|
98
|
+
get $meta() {
|
|
99
|
+
return options.meta;
|
|
100
|
+
},
|
|
101
|
+
$close,
|
|
102
|
+
$functions
|
|
103
|
+
};
|
|
104
|
+
if (proxify) rpc = new Proxy({}, { get(_, method) {
|
|
105
|
+
if (Object.prototype.hasOwnProperty.call(builtinMethods, method)) return builtinMethods[method];
|
|
106
|
+
if (method === "then" && !eventNames.includes("then") && !("then" in $functions)) return void 0;
|
|
107
|
+
const sendEvent = (...args) => _call(method, args, true);
|
|
108
|
+
if (eventNames.includes(method)) {
|
|
109
|
+
sendEvent.asEvent = sendEvent;
|
|
110
|
+
return sendEvent;
|
|
111
|
+
}
|
|
112
|
+
const sendCall = (...args) => _call(method, args, false);
|
|
113
|
+
sendCall.asEvent = sendEvent;
|
|
114
|
+
return sendCall;
|
|
115
|
+
} });
|
|
116
|
+
else rpc = builtinMethods;
|
|
117
|
+
function $close(customError) {
|
|
118
|
+
$closed = true;
|
|
119
|
+
_rpcPromiseMap.forEach(({ reject, method }) => {
|
|
120
|
+
const error = /* @__PURE__ */ new Error(`[birpc] rpc is closed, cannot call "${method}"`);
|
|
121
|
+
if (customError) {
|
|
122
|
+
customError.cause ??= error;
|
|
123
|
+
return reject(customError);
|
|
124
|
+
}
|
|
125
|
+
reject(error);
|
|
126
|
+
});
|
|
127
|
+
_rpcPromiseMap.clear();
|
|
128
|
+
off(onMessage);
|
|
129
|
+
}
|
|
130
|
+
function $rejectPendingCalls(handler) {
|
|
131
|
+
const handlerResults = Array.from(_rpcPromiseMap.values()).map(({ method, reject }) => {
|
|
132
|
+
if (!handler) return reject(/* @__PURE__ */ new Error(`[birpc]: rejected pending call "${method}".`));
|
|
133
|
+
return handler({
|
|
134
|
+
method,
|
|
135
|
+
reject
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
_rpcPromiseMap.clear();
|
|
139
|
+
return handlerResults;
|
|
140
|
+
}
|
|
141
|
+
async function onMessage(data, ...extra) {
|
|
142
|
+
let msg;
|
|
143
|
+
try {
|
|
144
|
+
msg = deserialize(data);
|
|
145
|
+
} catch (e) {
|
|
146
|
+
if (options.onGeneralError?.call(rpc, e) !== true) throw e;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (msg.t === TYPE_REQUEST) {
|
|
150
|
+
const { m: method, a: args, o: optional } = msg;
|
|
151
|
+
let result, error;
|
|
152
|
+
let fn = await (resolver ? resolver.call(rpc, method, $functions[method]) : $functions[method]);
|
|
153
|
+
if (optional) fn ||= () => void 0;
|
|
154
|
+
if (!fn) error = /* @__PURE__ */ new Error(`[birpc] function "${method}" not found`);
|
|
155
|
+
else try {
|
|
156
|
+
result = await fn.apply(bind === "rpc" ? rpc : $functions, args);
|
|
157
|
+
} catch (e) {
|
|
158
|
+
error = e;
|
|
159
|
+
}
|
|
160
|
+
if (msg.i) {
|
|
161
|
+
if (error && options.onFunctionError) {
|
|
162
|
+
if (options.onFunctionError.call(rpc, error, method, args) === true) return;
|
|
163
|
+
}
|
|
164
|
+
if (!error) try {
|
|
165
|
+
await post(serialize({
|
|
166
|
+
t: TYPE_RESPONSE,
|
|
167
|
+
i: msg.i,
|
|
168
|
+
r: result
|
|
169
|
+
}), ...extra);
|
|
170
|
+
return;
|
|
171
|
+
} catch (e) {
|
|
172
|
+
error = e;
|
|
173
|
+
if (options.onGeneralError?.call(rpc, e, method, args) !== true) throw e;
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
await post(serialize({
|
|
177
|
+
t: TYPE_RESPONSE,
|
|
178
|
+
i: msg.i,
|
|
179
|
+
e: error
|
|
180
|
+
}), ...extra);
|
|
181
|
+
} catch (e) {
|
|
182
|
+
if (options.onGeneralError?.call(rpc, e, method, args) !== true) throw e;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
} else {
|
|
186
|
+
const { i: ack, r: result, e: error } = msg;
|
|
187
|
+
const promise = _rpcPromiseMap.get(ack);
|
|
188
|
+
if (promise) {
|
|
189
|
+
clearTimeout(promise.timeoutId);
|
|
190
|
+
if (error) promise.reject(error);
|
|
191
|
+
else promise.resolve(result);
|
|
192
|
+
}
|
|
193
|
+
_rpcPromiseMap.delete(ack);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
_promiseInit = on(onMessage);
|
|
197
|
+
return rpc;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
//#endregion
|
|
201
|
+
export { createBirpc };
|