xanix 1.0.20 → 1.0.21
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/bin/bundler/cache/buildCache.js +9 -11
- package/dist/bin/bundler/cache/index.js +70 -116
- package/dist/bin/bundler/cache/utils.d.ts +3 -2
- package/dist/bin/bundler/cache/utils.js +27 -24
- package/dist/bin/bundler/client/build.js +1 -1
- package/dist/bin/bundler/client/plugins/Transformer/TransformCacheFunction copy.d.ts +3 -0
- package/dist/bin/bundler/client/plugins/Transformer/TransformCacheFunction copy.js +32 -0
- package/dist/bin/bundler/client/plugins/Transformer/TransformCacheFunction.d.ts +1 -1
- package/dist/bin/bundler/client/plugins/Transformer/TransformCacheFunction.js +1 -1
- package/dist/bin/bundler/client/plugins/Transformer/TransformCreateSession.d.ts +1 -1
- package/dist/bin/bundler/client/plugins/Transformer/TransformCreateSession.js +1 -1
- package/dist/bin/bundler/client/plugins/Transformer/TransformDevModule.d.ts +13 -0
- package/dist/bin/bundler/client/plugins/Transformer/{transformModuleCache.js → TransformDevModule.js} +6 -18
- package/dist/bin/bundler/client/plugins/Transformer/TransformServerFunction.d.ts +1 -1
- package/dist/bin/bundler/client/plugins/Transformer/TransformServerFunction.js +1 -1
- package/dist/bin/bundler/client/plugins/Transformer/cacheFunctionReplacer.d.ts +3 -0
- package/dist/bin/bundler/client/plugins/Transformer/cacheFunctionReplacer.js +32 -0
- package/dist/bin/bundler/client/plugins/Transformer/cacheFunctionTransformer.d.ts +3 -0
- package/dist/bin/bundler/client/plugins/Transformer/cacheFunctionTransformer.js +32 -0
- package/dist/bin/bundler/client/plugins/Transformer/serverFunctionReplacer.d.ts +3 -0
- package/dist/bin/bundler/client/plugins/Transformer/serverFunctionReplacer.js +32 -0
- package/dist/bin/bundler/client/plugins/Transformer/useServerReplacer.d.ts +3 -0
- package/dist/bin/bundler/client/plugins/Transformer/useServerReplacer.js +42 -0
- package/dist/bin/bundler/client/plugins/Transformer.js +4 -2
- package/dist/bin/bundler/client/plugins/XanixAppRoot.d.ts +2 -0
- package/dist/bin/bundler/client/plugins/XanixAppRoot.js +46 -0
- package/dist/bin/bundler/client/plugins/XanixPage.js +30 -0
- package/dist/bin/bundler/client/plugins/XanixPages.js +8 -8
- package/dist/bin/bundler/client/plugins/replacer/cacheFunctionReplacer.d.ts +1 -1
- package/dist/bin/bundler/client/plugins/replacer/cacheFunctionReplacer.js +5 -1
- package/dist/bin/bundler/client/plugins/replacer/serverFunctionReplacer.d.ts +1 -1
- package/dist/bin/bundler/client/plugins/replacer/serverFunctionReplacer.js +5 -1
- package/dist/bin/bundler/client/plugins/replacer/useServerReplacer.d.ts +1 -1
- package/dist/bin/bundler/client/plugins/replacer/useServerReplacer.js +7 -3
- package/dist/bin/bundler/server/build.js +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformCacheFunction copy.d.ts +3 -0
- package/dist/bin/bundler/server/plugins/Transformer/TransformCacheFunction copy.js +32 -0
- package/dist/bin/bundler/server/plugins/Transformer/TransformCacheFunction.d.ts +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformCacheFunction.js +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformCreateSession.d.ts +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformCreateSession.js +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformExpressFunction.d.ts +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformExpressFunction.js +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformPage.js +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformServerFunction.d.ts +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/TransformServerFunction.js +1 -1
- package/dist/bin/bundler/server/plugins/Transformer/cacheFunctionReplacer.d.ts +3 -0
- package/dist/bin/bundler/server/plugins/Transformer/cacheFunctionReplacer.js +32 -0
- package/dist/bin/bundler/server/plugins/Transformer/expressFunctionReplace.d.ts +3 -0
- package/dist/bin/bundler/server/plugins/Transformer/expressFunctionReplace.js +24 -0
- package/dist/bin/bundler/server/plugins/Transformer/pageReplacer.d.ts +4 -0
- package/dist/bin/bundler/server/plugins/Transformer/pageReplacer.js +31 -0
- package/dist/bin/bundler/server/plugins/Transformer/serverFunctionReplacer.d.ts +3 -0
- package/dist/bin/bundler/server/plugins/Transformer/serverFunctionReplacer.js +32 -0
- package/dist/bin/bundler/server/plugins/Transformer/useServerReplacer.d.ts +3 -0
- package/dist/bin/bundler/server/plugins/Transformer/useServerReplacer.js +42 -0
- package/dist/bin/bundler/server/plugins/Transformer copy.js +3 -3
- package/dist/bin/bundler/server/plugins/Transformer.js +2 -2
- package/dist/bin/bundler/server/plugins/replacer/cacheFunctionReplacer.d.ts +1 -1
- package/dist/bin/bundler/server/plugins/replacer/cacheFunctionReplacer.js +5 -1
- package/dist/bin/bundler/server/plugins/replacer/serverFunctionReplacer copy.d.ts +3 -0
- package/dist/bin/bundler/server/plugins/replacer/serverFunctionReplacer copy.js +26 -0
- package/dist/bin/bundler/server/plugins/replacer/serverFunctionReplacer.d.ts +1 -1
- package/dist/bin/bundler/server/plugins/replacer/serverFunctionReplacer.js +5 -1
- package/dist/bin/bundler/server/plugins/replacer/serverReplacer.d.ts +3 -0
- package/dist/bin/bundler/server/plugins/replacer/serverReplacer.js +26 -0
- package/dist/bin/bundler/server/plugins/replacer/useServerReplacer.d.ts +2 -2
- package/dist/bin/bundler/server/plugins/replacer/useServerReplacer.js +9 -5
- package/dist/bin/cli/dev.js +85 -71
- package/dist/bin/cli/start/index.d.ts +4 -1
- package/dist/bin/cli/start/index.js +60 -9
- package/dist/bin/finder/callbackReplacer.d.ts +2 -0
- package/dist/bin/finder/callbackReplacer.js +52 -0
- package/dist/bin/finder/findImport.d.ts +9 -0
- package/dist/bin/finder/findImport.js +50 -0
- package/dist/bin/finder/findImports.d.ts +16 -0
- package/dist/bin/finder/findImports.js +45 -0
- package/dist/bin/finder/findPage.d.ts +9 -0
- package/dist/bin/finder/findPage.js +30 -0
- package/dist/bin/finder/importFinder.d.ts +9 -0
- package/dist/bin/finder/importFinder.js +50 -0
- package/dist/bin/finder/pageFinder.d.ts +9 -0
- package/dist/bin/finder/pageFinder.js +30 -0
- package/dist/bin/finder/stripComments.d.ts +3 -0
- package/dist/bin/finder/stripComments.js +15 -0
- package/dist/bin/include/path.d.ts +5 -1
- package/dist/bin/include/path.js +15 -1
- package/dist/bin/include/sendFinder.d.ts +4 -1
- package/dist/bin/include/sendFinder.js +88 -53
- package/dist/bin/index.js +0 -0
- package/dist/bin/modifier/callbackReplacer.js +35 -80
- package/dist/bin/modifier/findImports.d.ts +16 -0
- package/dist/bin/modifier/findImports.js +45 -0
- package/dist/bin/modifier/importFinder.js +44 -63
- package/dist/bin/modifier/pageFinder.d.ts +1 -1
- package/dist/bin/modifier/pageFinder.js +19 -124
- package/dist/bin/modifier/sendFinder.d.ts +9 -0
- package/dist/bin/modifier/sendFinder.js +135 -0
- package/dist/bin/modifier/sriptCommnet.d.ts +1 -0
- package/dist/bin/modifier/sriptCommnet.js +12 -5
- package/dist/bin/modifier/stripComments.d.ts +3 -0
- package/dist/bin/modifier/stripComments.js +15 -0
- package/dist/bin/plugins/XanixAssets.js +2 -2
- package/dist/bin/plugins/XanixCss.js +13 -13
- package/dist/bin/plugins/XanixDocument.js +4 -4
- package/dist/components/Head.js +1 -1
- package/dist/hooks/encript.d.ts +2 -0
- package/dist/hooks/encript.js +13 -0
- package/dist/hooks/server.js +2 -2
- package/dist/hooks/session.js +2 -2
- package/dist/index.js +0 -0
- package/dist/libs/encoder.d.ts +2 -0
- package/dist/libs/encoder.js +13 -0
- package/dist/libs/encript.d.ts +2 -0
- package/dist/libs/encript.js +30 -0
- package/dist/navigate.js +1 -1
- package/dist/server/express/Router.js +4 -4
- package/dist/server/express/page.d.ts +1 -1
- package/dist/server/express/page.js +1 -1
- package/dist/types/assets.d.ts +72 -72
- package/dist/types/express.d.ts +11 -11
- package/dist/types/globals.d.ts +18 -18
- package/dist/types/xanix-virtual.d.ts +35 -35
- package/package.json +57 -60
- package/dist/bin/bundler/Cache.d.ts +0 -1
- package/dist/bin/bundler/Cache.js +0 -210
- package/dist/bin/bundler/External.d.ts +0 -3
- package/dist/bin/bundler/External.js +0 -6
- package/dist/bin/bundler/buildClient.d.ts +0 -3
- package/dist/bin/bundler/buildClient.js +0 -42
- package/dist/bin/bundler/buildServer.d.ts +0 -7
- package/dist/bin/bundler/buildServer.js +0 -50
- package/dist/bin/bundler/cache/plugin/Transformer.d.ts +0 -3
- package/dist/bin/bundler/cache/plugin/Transformer.js +0 -42
- package/dist/bin/bundler/client/plugins/Transformer/TransformExpress.d.ts +0 -9
- package/dist/bin/bundler/client/plugins/Transformer/TransformExpress.js +0 -26
- package/dist/bin/bundler/client/plugins/Transformer/TransformPage.d.ts +0 -29
- package/dist/bin/bundler/client/plugins/Transformer/TransformPage.js +0 -77
- package/dist/bin/bundler/client/plugins/Transformer/TransformReactContext.d.ts +0 -17
- package/dist/bin/bundler/client/plugins/Transformer/TransformReactContext.js +0 -101
- package/dist/bin/bundler/client/plugins/Transformer/transformModuleCache.d.ts +0 -15
- package/dist/bin/bundler/client/plugins/Transformer copy.d.ts +0 -3
- package/dist/bin/bundler/client/plugins/Transformer copy.js +0 -70
- package/dist/bin/bundler/client/plugins/VirtualDev.d.ts +0 -2
- package/dist/bin/bundler/client/plugins/VirtualDev.js +0 -34
- package/dist/bin/bundler/client/plugins/XanixReactRefresh.d.ts +0 -2
- package/dist/bin/bundler/client/plugins/XanixReactRefresh.js +0 -22
- package/dist/bin/bundler/config/defines.d.ts +0 -20
- package/dist/bin/bundler/config/defines.js +0 -21
- package/dist/bin/bundler/config/external.d.ts +0 -1
- package/dist/bin/bundler/config/external.js +0 -12
- package/dist/bin/bundler/config/loadEnv.d.ts +0 -20
- package/dist/bin/bundler/config/loadEnv.js +0 -48
- package/dist/bin/bundler/config/output.d.ts +0 -10
- package/dist/bin/bundler/config/output.js +0 -52
- package/dist/bin/bundler/externalResolver-dep.d.ts +0 -3
- package/dist/bin/bundler/externalResolver-dep.js +0 -203
- package/dist/bin/bundler/externalResolver.d.ts +0 -3
- package/dist/bin/bundler/externalResolver.js +0 -203
- package/dist/bin/bundler/plugins/TransformServer/TransformExpress.d.ts +0 -9
- package/dist/bin/bundler/plugins/TransformServer/TransformExpress.js +0 -26
- package/dist/bin/bundler/plugins/TransformServer/TransformPage.d.ts +0 -25
- package/dist/bin/bundler/plugins/TransformServer/TransformPage.js +0 -79
- package/dist/bin/bundler/plugins/TransformServer/index.d.ts +0 -3
- package/dist/bin/bundler/plugins/TransformServer/index.js +0 -103
- package/dist/bin/bundler/plugins/XanixAssets.d.ts +0 -5
- package/dist/bin/bundler/plugins/XanixAssets.js +0 -51
- package/dist/bin/bundler/plugins/XanixCacheDeps-dep.d.ts +0 -2
- package/dist/bin/bundler/plugins/XanixCacheDeps-dep.js +0 -150
- package/dist/bin/bundler/plugins/XanixCacheDeps.d.ts +0 -2
- package/dist/bin/bundler/plugins/XanixCacheDeps.js +0 -150
- package/dist/bin/bundler/plugins/XanixDocument/index.js +0 -53
- package/dist/bin/bundler/plugins/XanixEntryFinder/finder.d.ts +0 -11
- package/dist/bin/bundler/plugins/XanixEntryFinder/finder.js +0 -149
- package/dist/bin/bundler/plugins/XanixEntryFinder/index.d.ts +0 -6
- package/dist/bin/bundler/plugins/XanixEntryFinder/index.js +0 -37
- package/dist/bin/bundler/plugins/XanixEntryFinder-dep/finder.d.ts +0 -11
- package/dist/bin/bundler/plugins/XanixEntryFinder-dep/finder.js +0 -149
- package/dist/bin/bundler/plugins/XanixEntryFinder-dep/index.d.ts +0 -6
- package/dist/bin/bundler/plugins/XanixEntryFinder-dep/index.js +0 -37
- package/dist/bin/bundler/plugins/XanixEnv.d.ts +0 -15
- package/dist/bin/bundler/plugins/XanixEnv.js +0 -44
- package/dist/bin/bundler/plugins/XanixPageTransform/index.d.ts +0 -2
- package/dist/bin/bundler/plugins/XanixPageTransform/index.js +0 -62
- package/dist/bin/bundler/plugins/XanixPageTransform/transformer copy.d.ts +0 -18
- package/dist/bin/bundler/plugins/XanixPageTransform/transformer copy.js +0 -414
- package/dist/bin/bundler/plugins/XanixPageTransform/transformer.d.ts +0 -23
- package/dist/bin/bundler/plugins/XanixPageTransform/transformer.js +0 -589
- package/dist/bin/bundler/plugins/XanixReactRefresh copy.d.ts +0 -2
- package/dist/bin/bundler/plugins/XanixReactRefresh copy.js +0 -121
- package/dist/bin/bundler/plugins/XanixReactRefresh.d.ts +0 -2
- package/dist/bin/bundler/plugins/XanixReactRefresh.js +0 -170
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps/BuildClientCache.d.ts +0 -11
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps/BuildClientCache.js +0 -129
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps/index copy.d.ts +0 -15
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps/index copy.js +0 -228
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps/index.d.ts +0 -7
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps/index.js +0 -166
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps-dep/BuildClientCache.d.ts +0 -11
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps-dep/BuildClientCache.js +0 -129
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps-dep/index.d.ts +0 -5
- package/dist/bin/bundler/plugins/XanixResolveCacheDeps-dep/index.js +0 -26
- package/dist/bin/bundler/plugins/XanixResolver.d.ts +0 -11
- package/dist/bin/bundler/plugins/XanixResolver.js +0 -55
- package/dist/bin/bundler/plugins/XanixServerTransform.d.ts +0 -5
- package/dist/bin/bundler/plugins/XanixServerTransform.js +0 -207
- package/dist/bin/bundler/plugins/XanixTransform.d.ts +0 -3
- package/dist/bin/bundler/plugins/XanixTransform.js +0 -23
- package/dist/bin/bundler/plugins/XanixTsconfigAlias.d.ts +0 -19
- package/dist/bin/bundler/plugins/XanixTsconfigAlias.js +0 -197
- package/dist/bin/bundler/plugins/XanixUseServer.d.ts +0 -7
- package/dist/bin/bundler/plugins/XanixUseServer.js +0 -445
- package/dist/bin/bundler/plugins/plugins.d.ts +0 -9
- package/dist/bin/bundler/plugins/plugins.js +0 -37
- package/dist/bin/bundler/requireCache.d.ts +0 -3
- package/dist/bin/bundler/requireCache.js +0 -85
- package/dist/bin/bundler/server/plugins/ServerAction.d.ts +0 -3
- package/dist/bin/bundler/server/plugins/ServerAction.js +0 -9
- package/dist/bin/bundler/server/plugins/Transformer/ServerAction.d.ts +0 -11
- package/dist/bin/bundler/server/plugins/Transformer/ServerAction.js +0 -28
- package/dist/bin/bundler/server/plugins/Transformer/TransformExpress copy.d.ts +0 -11
- package/dist/bin/bundler/server/plugins/Transformer/TransformExpress copy.js +0 -22
- package/dist/bin/bundler/server/plugins/Transformer/TransformExpress.d.ts +0 -10
- package/dist/bin/bundler/server/plugins/Transformer/TransformExpress.js +0 -19
- package/dist/bin/bundler/server/plugins/Transformer/TransformReactContext.d.ts +0 -17
- package/dist/bin/bundler/server/plugins/Transformer/TransformReactContext.js +0 -101
- package/dist/bin/bundler/server/plugins/Transformer/TransformServerAction copy.d.ts +0 -14
- package/dist/bin/bundler/server/plugins/Transformer/TransformServerAction copy.js +0 -38
- package/dist/bin/bundler/server/types.d.ts +0 -5
- package/dist/bin/bundler/server/types.js +0 -1
- package/dist/bin/bundler/watchClient.d.ts +0 -12
- package/dist/bin/bundler/watchClient.js +0 -104
- package/dist/bin/bundler/watchServer.d.ts +0 -10
- package/dist/bin/bundler/watchServer.js +0 -139
- package/dist/bin/cli/dev/dev.d.ts +0 -2
- package/dist/bin/cli/dev/dev.js +0 -178
- package/dist/bin/cli/start/start.d.ts +0 -2
- package/dist/bin/cli/start/start.js +0 -27
- package/dist/bin/include/entry.d.ts +0 -2
- package/dist/bin/include/entry.js +0 -21
- package/dist/bin/plugins/XanixDocument/XanixDocument.d.ts +0 -2
- package/dist/bin/plugins/XanixDocument/XanixDocument.js +0 -50
- package/dist/bin/plugins/XanixDocument/index.d.ts +0 -2
- package/dist/bin/plugins/XanixDocument/index.js +0 -50
- package/dist/bin/plugins/XanixPageTransform-dep/index.d.ts +0 -2
- package/dist/bin/plugins/XanixPageTransform-dep/index.js +0 -62
- package/dist/bin/plugins/XanixPageTransform-dep/transformer.d.ts +0 -23
- package/dist/bin/plugins/XanixPageTransform-dep/transformer.js +0 -589
- package/dist/bin/plugins/XanixServerTransform.d.ts +0 -5
- package/dist/bin/plugins/XanixServerTransform.js +0 -207
- package/dist/bin/plugins/XanixUseServer.d.ts +0 -7
- package/dist/bin/plugins/XanixUseServer.js +0 -445
- package/dist/bin/plugins/plugins.d.ts +0 -8
- package/dist/bin/plugins/plugins.js +0 -31
- package/dist/components/Script.d.ts +0 -3
- package/dist/components/Script.js +0 -5
- package/dist/dev.d.ts +0 -1
- package/dist/dev.js +0 -25
- package/dist/react/createContext.d.ts +0 -3
- package/dist/react/createContext.js +0 -11
- package/dist/react/index.d.ts +0 -12
- package/dist/react/index.js +0 -3
- package/dist/server/express/Ruter.d.ts +0 -2
- package/dist/server/express/Ruter.js +0 -15
- package/dist/server/runtime/createServer.d.ts +0 -12
- package/dist/server/runtime/createServer.js +0 -62
- package/dist/server/runtime/index.d.ts +0 -3
- package/dist/server/runtime/index.js +0 -3
- package/dist/server/runtime/readManifest.d.ts +0 -14
- package/dist/server/runtime/readManifest.js +0 -9
- package/dist/server/runtime/xanixPage.d.ts +0 -11
- package/dist/server/runtime/xanixPage.js +0 -92
- /package/dist/bin/bundler/{plugins/XanixDocument/index.d.ts → client/plugins/XanixPage.d.ts} +0 -0
- /package/dist/bin/{cli/start/utils.d.ts → bundler/server/plugins/replacer/useServer.d.ts} +0 -0
- /package/dist/bin/{cli/start/utils.js → bundler/server/plugins/replacer/useServer.js} +0 -0
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
const xanixCacheImports = () => {
|
|
2
|
-
return {
|
|
3
|
-
name: "xanix-cache-imports",
|
|
4
|
-
transform(code, id) {
|
|
5
|
-
console.log("[xanix-cache-imports]", id);
|
|
6
|
-
if (!code.includes("xanix-cache/")) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
console.log("[FOUND]", id);
|
|
10
|
-
const importRegex = /import\s+([\s\S]*?)\s+from\s+["'](xanix-cache\/[^"']+|\/xanix-cache\/[^"']+)["']\s*;?/g;
|
|
11
|
-
let changed = false;
|
|
12
|
-
const output = code.replace(importRegex, (_match, specifiers, source) => {
|
|
13
|
-
changed = true;
|
|
14
|
-
const normalizedSource = source.startsWith("/")
|
|
15
|
-
? source
|
|
16
|
-
: `/${source}`;
|
|
17
|
-
const requireName = `_require_${source
|
|
18
|
-
.replace(/^\/?xanix-cache\//, "")
|
|
19
|
-
.replace(/\.[^/.]+$/, "")
|
|
20
|
-
.replace(/[^a-zA-Z0-9_$]/g, "_")}`;
|
|
21
|
-
const value = specifiers.trim();
|
|
22
|
-
// import { jsx, jsxs } from "xanix-cache/react-jsx-runtime.js"
|
|
23
|
-
if (value.startsWith("{")) {
|
|
24
|
-
const content = value
|
|
25
|
-
.slice(1, -1)
|
|
26
|
-
.split(",")
|
|
27
|
-
.map((item) => item.trim())
|
|
28
|
-
.filter(Boolean)
|
|
29
|
-
.map((item) => {
|
|
30
|
-
const parts = item.split(/\s+as\s+/);
|
|
31
|
-
if (parts.length === 2) {
|
|
32
|
-
return `${parts[0]}: ${parts[1]}`;
|
|
33
|
-
}
|
|
34
|
-
return parts[0];
|
|
35
|
-
})
|
|
36
|
-
.join(", ");
|
|
37
|
-
return [
|
|
38
|
-
`const ${requireName} = __require("${normalizedSource}");`,
|
|
39
|
-
`const { ${content} } = ${requireName};`,
|
|
40
|
-
].join("\n");
|
|
41
|
-
}
|
|
42
|
-
// import * as React from "xanix-cache/react.js"
|
|
43
|
-
if (value.startsWith("* as ")) {
|
|
44
|
-
const name = value.slice(5).trim();
|
|
45
|
-
return `const ${name} = __require("${normalizedSource}");`;
|
|
46
|
-
}
|
|
47
|
-
// import React, { useState } from "..."
|
|
48
|
-
const defaultNamed = value.match(/^([A-Za-z_$][\w$]*)\s*,\s*\{([\s\S]*)\}$/);
|
|
49
|
-
if (defaultNamed) {
|
|
50
|
-
const defaultName = defaultNamed[1];
|
|
51
|
-
const named = defaultNamed[2]
|
|
52
|
-
.split(",")
|
|
53
|
-
.map((item) => item.trim())
|
|
54
|
-
.filter(Boolean)
|
|
55
|
-
.map((item) => {
|
|
56
|
-
const parts = item.split(/\s+as\s+/);
|
|
57
|
-
if (parts.length === 2) {
|
|
58
|
-
return `${parts[0]}: ${parts[1]}`;
|
|
59
|
-
}
|
|
60
|
-
return parts[0];
|
|
61
|
-
})
|
|
62
|
-
.join(", ");
|
|
63
|
-
return [
|
|
64
|
-
`const ${requireName} = __require("${normalizedSource}");`,
|
|
65
|
-
`const ${defaultName} = ${requireName}.default;`,
|
|
66
|
-
`const { ${named} } = ${requireName};`,
|
|
67
|
-
].join("\n");
|
|
68
|
-
}
|
|
69
|
-
// import React from "..."
|
|
70
|
-
return [
|
|
71
|
-
`const ${requireName} = __require("${normalizedSource}");`,
|
|
72
|
-
`const ${value} = ${requireName}.default;`,
|
|
73
|
-
].join("\n");
|
|
74
|
-
});
|
|
75
|
-
if (!changed) {
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
code: output,
|
|
80
|
-
map: null,
|
|
81
|
-
};
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
export default xanixCacheImports;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import crypto from "node:crypto";
|
|
2
|
-
class TransformServerAction {
|
|
3
|
-
constructor(code) {
|
|
4
|
-
this.replacements = [];
|
|
5
|
-
this.code = code;
|
|
6
|
-
}
|
|
7
|
-
transform(node) {
|
|
8
|
-
if (node.type === "CallExpression" &&
|
|
9
|
-
node.callee.name === "server" &&
|
|
10
|
-
node.arguments.length === 1 &&
|
|
11
|
-
(node.arguments[0].type === "ArrowFunctionExpression" ||
|
|
12
|
-
node.arguments[0].type === "FunctionExpression")) {
|
|
13
|
-
const fnNode = node.arguments[0];
|
|
14
|
-
const fnString = this.code.slice(fnNode.start, fnNode.end);
|
|
15
|
-
const id = crypto
|
|
16
|
-
.createHash("sha256")
|
|
17
|
-
.update(fnString)
|
|
18
|
-
.digest("hex")
|
|
19
|
-
.slice(0, 12);
|
|
20
|
-
this.replacements.push({
|
|
21
|
-
start: fnNode.end,
|
|
22
|
-
end: fnNode.end,
|
|
23
|
-
value: `"${id}"`,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export default TransformServerAction;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
class TransformExpress {
|
|
2
|
-
constructor(code) {
|
|
3
|
-
this.replacements = [];
|
|
4
|
-
this.code = code;
|
|
5
|
-
}
|
|
6
|
-
transform(node) {
|
|
7
|
-
if (node.type === "CallExpression" &&
|
|
8
|
-
node.callee.name === "server" &&
|
|
9
|
-
node.arguments.length === 1 &&
|
|
10
|
-
(node.arguments[0].type === "ArrowFunctionExpression" ||
|
|
11
|
-
node.arguments[0].type === "FunctionExpression")) {
|
|
12
|
-
const fnNode = node.arguments[0];
|
|
13
|
-
const fnString = this.code.slice(fnNode.start, fnNode.end);
|
|
14
|
-
this.replacements.push({
|
|
15
|
-
start: node.arguments[0].start + 1,
|
|
16
|
-
end: node.arguments[0].end - 1,
|
|
17
|
-
value: "xanix/express",
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
export default TransformExpress;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
class TransformExpress {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.replacements = [];
|
|
4
|
-
this.foundServer = false;
|
|
5
|
-
}
|
|
6
|
-
transform(node) {
|
|
7
|
-
if (node.type === "CallExpression" &&
|
|
8
|
-
node.callee.type === "Identifier" &&
|
|
9
|
-
node.callee.name === "express") {
|
|
10
|
-
this.foundServer = true;
|
|
11
|
-
this.replacements.push({
|
|
12
|
-
start: node.start,
|
|
13
|
-
end: node.end,
|
|
14
|
-
value: `xanix("express")`,
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export default TransformExpress;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
type Replacement = {
|
|
2
|
-
start: number;
|
|
3
|
-
end: number;
|
|
4
|
-
value: string;
|
|
5
|
-
};
|
|
6
|
-
export declare class TransformReactContext {
|
|
7
|
-
private readonly reactNamespaces;
|
|
8
|
-
private readonly createContextBindings;
|
|
9
|
-
readonly replacements: Replacement[];
|
|
10
|
-
transform(node: any): void;
|
|
11
|
-
private detectReactImport;
|
|
12
|
-
private detectReactRequire;
|
|
13
|
-
private isReactRequire;
|
|
14
|
-
private detectCreateContext;
|
|
15
|
-
private replaceCallee;
|
|
16
|
-
}
|
|
17
|
-
export default TransformReactContext;
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
export class TransformReactContext {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.reactNamespaces = new Set();
|
|
4
|
-
this.createContextBindings = new Set();
|
|
5
|
-
this.replacements = [];
|
|
6
|
-
}
|
|
7
|
-
transform(node) {
|
|
8
|
-
this.detectReactImport(node);
|
|
9
|
-
this.detectReactRequire(node);
|
|
10
|
-
this.detectCreateContext(node);
|
|
11
|
-
}
|
|
12
|
-
detectReactImport(node) {
|
|
13
|
-
if (node.type !== "ImportDeclaration" || node.source?.value !== "react") {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
for (const specifier of node.specifiers) {
|
|
17
|
-
// import React from "react"
|
|
18
|
-
if (specifier.type === "ImportDefaultSpecifier") {
|
|
19
|
-
this.reactNamespaces.add(specifier.local.name);
|
|
20
|
-
continue;
|
|
21
|
-
}
|
|
22
|
-
// import * as React from "react"
|
|
23
|
-
if (specifier.type === "ImportNamespaceSpecifier") {
|
|
24
|
-
this.reactNamespaces.add(specifier.local.name);
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
// import { createContext } from "react"
|
|
28
|
-
// import { createContext as ctx } from "react"
|
|
29
|
-
if (specifier.type === "ImportSpecifier" &&
|
|
30
|
-
specifier.imported?.name === "createContext") {
|
|
31
|
-
this.createContextBindings.add(specifier.local.name);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
detectReactRequire(node) {
|
|
36
|
-
if (node.type !== "VariableDeclarator") {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (!this.isReactRequire(node.init)) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
// const React = require("react")
|
|
43
|
-
if (node.id.type === "Identifier") {
|
|
44
|
-
this.reactNamespaces.add(node.id.name);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
// const { createContext } = require("react")
|
|
48
|
-
// const { createContext: ctx } = require("react")
|
|
49
|
-
if (node.id.type === "ObjectPattern") {
|
|
50
|
-
for (const property of node.id.properties) {
|
|
51
|
-
if (property.type !== "Property" || property.computed) {
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
if (property.key.type === "Identifier" &&
|
|
55
|
-
property.key.name === "createContext") {
|
|
56
|
-
const local = property.value.type === "Identifier" ? property.value.name : null;
|
|
57
|
-
if (local) {
|
|
58
|
-
this.createContextBindings.add(local);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
isReactRequire(node) {
|
|
65
|
-
return (node?.type === "CallExpression" &&
|
|
66
|
-
node.callee?.type === "Identifier" &&
|
|
67
|
-
node.callee.name === "require" &&
|
|
68
|
-
node.arguments?.length === 1 &&
|
|
69
|
-
node.arguments[0]?.type === "Literal" &&
|
|
70
|
-
node.arguments[0].value === "react");
|
|
71
|
-
}
|
|
72
|
-
detectCreateContext(node) {
|
|
73
|
-
if (node.type !== "CallExpression") {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
// createContext(...)
|
|
77
|
-
// createCtx(...)
|
|
78
|
-
if (node.callee.type === "Identifier" &&
|
|
79
|
-
this.createContextBindings.has(node.callee.name)) {
|
|
80
|
-
this.replaceCallee(node.callee);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
// React.createContext(...)
|
|
84
|
-
if (node.callee.type === "MemberExpression" &&
|
|
85
|
-
!node.callee.computed &&
|
|
86
|
-
node.callee.object.type === "Identifier" &&
|
|
87
|
-
node.callee.property.type === "Identifier" &&
|
|
88
|
-
node.callee.property.name === "createContext" &&
|
|
89
|
-
this.reactNamespaces.has(node.callee.object.name)) {
|
|
90
|
-
this.replaceCallee(node.callee);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
replaceCallee(callee) {
|
|
94
|
-
this.replacements.push({
|
|
95
|
-
start: callee.start,
|
|
96
|
-
end: callee.end,
|
|
97
|
-
value: "__xanix.createContext",
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
export default TransformReactContext;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
declare class TransformServerAction {
|
|
2
|
-
replacements: {
|
|
3
|
-
start: number;
|
|
4
|
-
end: number;
|
|
5
|
-
value: string;
|
|
6
|
-
}[];
|
|
7
|
-
code: string;
|
|
8
|
-
serverImported: boolean;
|
|
9
|
-
importer: string;
|
|
10
|
-
count: number;
|
|
11
|
-
constructor(code: string, importer: string);
|
|
12
|
-
transform(node: any): void;
|
|
13
|
-
}
|
|
14
|
-
export default TransformServerAction;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import crypto from "node:crypto";
|
|
2
|
-
class TransformServerAction {
|
|
3
|
-
constructor(code, importer) {
|
|
4
|
-
this.replacements = [];
|
|
5
|
-
this.serverImported = false;
|
|
6
|
-
this.count = 0;
|
|
7
|
-
this.code = code;
|
|
8
|
-
this.importer = importer;
|
|
9
|
-
}
|
|
10
|
-
transform(node) {
|
|
11
|
-
// check server imported
|
|
12
|
-
if (node.type === "ImportDeclaration" &&
|
|
13
|
-
node.source.value === "xanix" &&
|
|
14
|
-
node.specifiers.some((s) => s.type === "ImportSpecifier" && s.imported.name === "server")) {
|
|
15
|
-
this.serverImported = true;
|
|
16
|
-
}
|
|
17
|
-
if (node.type === "CallExpression" &&
|
|
18
|
-
node.callee.type === "Identifier" &&
|
|
19
|
-
node.callee.name === "server" &&
|
|
20
|
-
node.arguments.length === 1 &&
|
|
21
|
-
(node.arguments[0].type === "ArrowFunctionExpression" ||
|
|
22
|
-
node.arguments[0].type === "FunctionExpression")) {
|
|
23
|
-
const fnNode = node.arguments[0];
|
|
24
|
-
const fnString = this.code.slice(fnNode.start, fnNode.end);
|
|
25
|
-
const id = crypto
|
|
26
|
-
.createHash("sha256")
|
|
27
|
-
.update(this.importer + this.count++)
|
|
28
|
-
.digest("hex")
|
|
29
|
-
.slice(0, 12);
|
|
30
|
-
this.replacements.push({
|
|
31
|
-
start: node.start,
|
|
32
|
-
end: node.end,
|
|
33
|
-
value: `server(${fnString}, "${id}")`,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export default TransformServerAction;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type RolldownWatcher } from "rolldown";
|
|
2
|
-
import { XanixClientEntry } from "../types.js";
|
|
3
|
-
type Option = {
|
|
4
|
-
onChange?: (files: string[], duration: number) => void;
|
|
5
|
-
onBuildEnd?: (duration: number) => void;
|
|
6
|
-
onReady?: () => Promise<void>;
|
|
7
|
-
onCachedStart?: () => void;
|
|
8
|
-
onCachedEnd?: () => void;
|
|
9
|
-
WebSocketPort: number;
|
|
10
|
-
};
|
|
11
|
-
declare const WatchClient: (entries: XanixClientEntry[], options: Option) => Promise<RolldownWatcher>;
|
|
12
|
-
export default WatchClient;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { watch } from "rolldown";
|
|
2
|
-
import bundlerOutput from "./config/output.js";
|
|
3
|
-
import fs from "node:fs";
|
|
4
|
-
import { getClientRuntimeFile, getClientRuntimeFileName, normalizePath, } from "../include/utils.js";
|
|
5
|
-
import { xanixDefaultPlugins } from "./plugins/plugins.js";
|
|
6
|
-
import outdirs from "../../outdirs.js";
|
|
7
|
-
import loadEnv from "./config/loadEnv.js";
|
|
8
|
-
import XanixCache from "./cache/index.js";
|
|
9
|
-
const WatchClient = async (entries, options) => {
|
|
10
|
-
const input = {};
|
|
11
|
-
for (const entry of entries) {
|
|
12
|
-
input[entry.name] = entry.file;
|
|
13
|
-
}
|
|
14
|
-
const runtimeFileName = getClientRuntimeFileName("development");
|
|
15
|
-
input[runtimeFileName] = getClientRuntimeFile();
|
|
16
|
-
fs.rmSync(outdirs.client, {
|
|
17
|
-
recursive: true,
|
|
18
|
-
force: true,
|
|
19
|
-
});
|
|
20
|
-
fs.mkdirSync(outdirs.client, {
|
|
21
|
-
recursive: true,
|
|
22
|
-
});
|
|
23
|
-
// options.onCachedStart?.();
|
|
24
|
-
// let clientCache = await BuildClientCache(entries);
|
|
25
|
-
// options.onCachedEnd?.();
|
|
26
|
-
let watchingMode = false;
|
|
27
|
-
const watcher = watch({
|
|
28
|
-
input,
|
|
29
|
-
treeshake: true,
|
|
30
|
-
tsconfig: true,
|
|
31
|
-
checks: {
|
|
32
|
-
moduleLevelDirective: false,
|
|
33
|
-
},
|
|
34
|
-
resolve: {
|
|
35
|
-
extensions: [".mjs", ".js", ".jsx", ".json", ".ts", ".tsx"],
|
|
36
|
-
conditionNames: ["browser", "import", "module", "default"],
|
|
37
|
-
},
|
|
38
|
-
transform: {
|
|
39
|
-
target: "es2022",
|
|
40
|
-
jsx: {
|
|
41
|
-
runtime: "automatic",
|
|
42
|
-
// refresh: true,
|
|
43
|
-
},
|
|
44
|
-
define: await loadEnv({
|
|
45
|
-
mode: "development",
|
|
46
|
-
isClient: true,
|
|
47
|
-
}),
|
|
48
|
-
},
|
|
49
|
-
plugins: [
|
|
50
|
-
// externalResolver(),
|
|
51
|
-
XanixCache(),
|
|
52
|
-
...xanixDefaultPlugins({
|
|
53
|
-
WebSocketPort: options.WebSocketPort,
|
|
54
|
-
target: "client",
|
|
55
|
-
development: true,
|
|
56
|
-
assetExternal: true,
|
|
57
|
-
}),
|
|
58
|
-
],
|
|
59
|
-
output: bundlerOutput.client(entries, { isDev: true }),
|
|
60
|
-
watch: {
|
|
61
|
-
clearScreen: false,
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
let isReady = false;
|
|
65
|
-
const changedFiles = new Set();
|
|
66
|
-
watcher.on("change", (entry) => {
|
|
67
|
-
entry = normalizePath(entry);
|
|
68
|
-
const root = process.cwd();
|
|
69
|
-
const _entry = entries.find((e) => e.file === entry);
|
|
70
|
-
let buildFile = _entry
|
|
71
|
-
? `${_entry.id}.js`
|
|
72
|
-
: entry
|
|
73
|
-
.replace(normalizePath(root), "")
|
|
74
|
-
.replace(/\.(ts|tsx|jsx)$/, ".js")
|
|
75
|
-
.replace(/^\\/, "");
|
|
76
|
-
changedFiles.add(buildFile);
|
|
77
|
-
});
|
|
78
|
-
let duration = 0;
|
|
79
|
-
watcher.on("event", async (event) => {
|
|
80
|
-
switch (event.code) {
|
|
81
|
-
case "BUNDLE_START":
|
|
82
|
-
break;
|
|
83
|
-
case "BUNDLE_END":
|
|
84
|
-
duration = event.duration;
|
|
85
|
-
options.onBuildEnd?.(event.duration);
|
|
86
|
-
break;
|
|
87
|
-
case "END":
|
|
88
|
-
if (changedFiles.size && options.onChange) {
|
|
89
|
-
options.onChange(Array.from(changedFiles), duration);
|
|
90
|
-
changedFiles.clear();
|
|
91
|
-
}
|
|
92
|
-
if (!isReady) {
|
|
93
|
-
isReady = true;
|
|
94
|
-
await options.onReady?.();
|
|
95
|
-
}
|
|
96
|
-
break;
|
|
97
|
-
case "ERROR":
|
|
98
|
-
console.error("[client]", event.error);
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
return watcher;
|
|
103
|
-
};
|
|
104
|
-
export default WatchClient;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { XanixClientEntry } from "../types.js";
|
|
2
|
-
export type WatcherOptions = {
|
|
3
|
-
rootEntry: string;
|
|
4
|
-
onChange?: (files: string[], duration: number) => Promise<void>;
|
|
5
|
-
onBuildEnd?: (duration: number) => void;
|
|
6
|
-
onClientEntryChange: (id: string, entries: XanixClientEntry[]) => Promise<void>;
|
|
7
|
-
onReady?: (entries: XanixClientEntry[]) => Promise<void>;
|
|
8
|
-
};
|
|
9
|
-
declare const watchServer: ({ rootEntry, onChange, onBuildEnd, onClientEntryChange, onReady, }: WatcherOptions) => Promise<import("rolldown").RolldownWatcher>;
|
|
10
|
-
export default watchServer;
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { watch } from "rolldown";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import fs from "node:fs";
|
|
4
|
-
import { getEntries } from "../include/manifest.js";
|
|
5
|
-
import bundlerOutput from "./config/output.js";
|
|
6
|
-
import { entriesEqual } from "../include/entry.js";
|
|
7
|
-
import { xanixDefaultPlugins } from "./plugins/plugins.js";
|
|
8
|
-
import outdirs from "../../outdirs.js";
|
|
9
|
-
import { normalizePath } from "../include/utils.js";
|
|
10
|
-
import loadEnv from "./config/loadEnv.js";
|
|
11
|
-
import { builtinModules } from "node:module";
|
|
12
|
-
import { tsconfigPathsMatcher } from "./plugins/XanixTsconfigAlias.js";
|
|
13
|
-
import XanixTransform from "./plugins/TransformServer/index.js";
|
|
14
|
-
import { ResolverFactory } from "rolldown/experimental";
|
|
15
|
-
const resolver = new ResolverFactory();
|
|
16
|
-
const root = process.cwd();
|
|
17
|
-
const nodeBuiltins = new Set(builtinModules);
|
|
18
|
-
function isNodeBuiltin(id) {
|
|
19
|
-
const normalized = id.startsWith("node:") ? id.slice(5) : id;
|
|
20
|
-
return nodeBuiltins.has(normalized);
|
|
21
|
-
}
|
|
22
|
-
const watchServer = async ({ rootEntry, onChange, onBuildEnd, onClientEntryChange, onReady, }) => {
|
|
23
|
-
fs.rmSync(outdirs.server, {
|
|
24
|
-
recursive: true,
|
|
25
|
-
force: true,
|
|
26
|
-
});
|
|
27
|
-
fs.mkdirSync(outdirs.server, {
|
|
28
|
-
recursive: true,
|
|
29
|
-
});
|
|
30
|
-
const input = {
|
|
31
|
-
index: path.resolve(root, rootEntry),
|
|
32
|
-
};
|
|
33
|
-
const watcher = watch({
|
|
34
|
-
input,
|
|
35
|
-
treeshake: true,
|
|
36
|
-
platform: "node",
|
|
37
|
-
tsconfig: true,
|
|
38
|
-
checks: {
|
|
39
|
-
moduleLevelDirective: false,
|
|
40
|
-
},
|
|
41
|
-
resolve: {
|
|
42
|
-
extensions: [".mjs", ".js", ".jsx", ".json", ".ts", ".tsx"],
|
|
43
|
-
conditionNames: ["node", "import", "module", "default"],
|
|
44
|
-
},
|
|
45
|
-
transform: {
|
|
46
|
-
target: "node20",
|
|
47
|
-
jsx: {
|
|
48
|
-
runtime: "automatic",
|
|
49
|
-
},
|
|
50
|
-
define: await loadEnv({
|
|
51
|
-
mode: "development",
|
|
52
|
-
isClient: false,
|
|
53
|
-
}),
|
|
54
|
-
},
|
|
55
|
-
plugins: [
|
|
56
|
-
XanixTransform(),
|
|
57
|
-
...xanixDefaultPlugins({
|
|
58
|
-
target: "server",
|
|
59
|
-
development: true,
|
|
60
|
-
assetExternal: false,
|
|
61
|
-
}),
|
|
62
|
-
],
|
|
63
|
-
external(id, parent) {
|
|
64
|
-
if (id.startsWith(".") ||
|
|
65
|
-
path.isAbsolute(id) ||
|
|
66
|
-
id.startsWith("xanix") ||
|
|
67
|
-
id === "virtual:xanix-document" ||
|
|
68
|
-
tsconfigPathsMatcher(id)) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
if (isNodeBuiltin(id)) {
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
if (parent) {
|
|
75
|
-
const resolve = resolver.sync(path.dirname(parent), id);
|
|
76
|
-
if (resolve.path) {
|
|
77
|
-
const ext = path.extname(resolve.path);
|
|
78
|
-
const valid = [".js", ".cjs", ".mjs"];
|
|
79
|
-
if (!valid.includes(ext)) {
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return true;
|
|
85
|
-
},
|
|
86
|
-
output: bundlerOutput.server({
|
|
87
|
-
isDev: true,
|
|
88
|
-
}),
|
|
89
|
-
watch: {
|
|
90
|
-
clearScreen: false,
|
|
91
|
-
},
|
|
92
|
-
});
|
|
93
|
-
let isReady = false;
|
|
94
|
-
const changedFiles = new Set();
|
|
95
|
-
watcher.on("change", async (id) => {
|
|
96
|
-
changedFiles.add(normalizePath(id));
|
|
97
|
-
});
|
|
98
|
-
let duration = 0;
|
|
99
|
-
watcher.on("event", async (event) => {
|
|
100
|
-
switch (event.code) {
|
|
101
|
-
case "BUNDLE_END": {
|
|
102
|
-
duration = event.duration;
|
|
103
|
-
onBuildEnd?.(event.duration);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
case "END": {
|
|
107
|
-
const entries = await getEntries();
|
|
108
|
-
if (changedFiles.size) {
|
|
109
|
-
if (entries.length) {
|
|
110
|
-
const clientEntries = Array.from(entries);
|
|
111
|
-
for (const entry of changedFiles) {
|
|
112
|
-
const isClientEntry = clientEntries.find((e) => e.file === entry);
|
|
113
|
-
if (!isClientEntry) {
|
|
114
|
-
const currentEntries = await getEntries();
|
|
115
|
-
const isEqual = await entriesEqual(currentEntries);
|
|
116
|
-
if (!isEqual) {
|
|
117
|
-
await onClientEntryChange?.(entry, currentEntries);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
await onChange?.(Array.from(changedFiles).map((file) => file.replace(normalizePath(root), "")), duration);
|
|
123
|
-
changedFiles.clear();
|
|
124
|
-
}
|
|
125
|
-
if (!isReady) {
|
|
126
|
-
isReady = true;
|
|
127
|
-
await onReady?.(entries);
|
|
128
|
-
}
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
case "ERROR": {
|
|
132
|
-
console.error("[server]", event.error);
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
return watcher;
|
|
138
|
-
};
|
|
139
|
-
export default watchServer;
|