@torpor/adapter-cloudflare 0.1.0 → 0.2.1
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/CHANGELOG.md +22 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -85
- package/dist/index.js.map +1 -1
- package/package.json +11 -14
- package/src/adapter.ts +0 -1
- package/src/prepareTemplate.ts +1 -1
- package/{tsup.config.ts → tsdown.config.ts} +2 -4
- package/dist/index.cjs +0 -147
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -5
- package/dist/metafile-cjs.json +0 -1
- package/dist/metafile-esm.json +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @torpor/adapter-cloudflare
|
|
2
2
|
|
|
3
|
+
## 0.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [168dff3]
|
|
8
|
+
- Updated dependencies [051998b]
|
|
9
|
+
- @torpor/build@0.4.0
|
|
10
|
+
|
|
11
|
+
## 0.2.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- 51dbba7: Chore: drop CJS build and go ESM only
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [bbdc8d3]
|
|
20
|
+
- Updated dependencies [e1ae2bb]
|
|
21
|
+
- Updated dependencies [51dbba7]
|
|
22
|
+
- Updated dependencies [62b0d2e]
|
|
23
|
+
- @torpor/build@0.3.0
|
|
24
|
+
|
|
3
25
|
## 0.1.0
|
|
4
26
|
|
|
5
27
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/adapter.ts"],"sourcesContent":[],"mappings":";;;cAMA,UAKuB"}
|
package/dist/index.js
CHANGED
|
@@ -1,89 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import path from "path";
|
|
1
|
+
import { promises } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
4
3
|
import { build, defineConfig } from "vite";
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
//#region src/prepareTemplate.ts
|
|
7
6
|
function prepareTemplate(template, clientScript) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
result = result.substring(0, bodyStart) + "%COMPONENT_BODY%" + result.substring(bodyEnd);
|
|
21
|
-
result += `<script type="module" src="${clientScript}"></script>`;
|
|
22
|
-
return result;
|
|
7
|
+
let result = template;
|
|
8
|
+
let headStart = result.indexOf("</head>");
|
|
9
|
+
if (headStart === -1) throw new Error(`Couldn't find <head> end tag`);
|
|
10
|
+
result = result.substring(0, headStart) + "%COMPONENT_HEAD%" + result.substring(headStart);
|
|
11
|
+
let bodyStart = regexIndexOf(result, /<div\s+id=("app"|'app'|app)\s+/);
|
|
12
|
+
bodyStart = result.indexOf(">", bodyStart) + 1;
|
|
13
|
+
let bodyEnd = result.indexOf("</div>", bodyStart);
|
|
14
|
+
if (bodyStart === -1 || bodyEnd === -1) throw new Error(`Couldn't find <div id="app"></div>`);
|
|
15
|
+
result = result.substring(0, bodyStart) + "%COMPONENT_BODY%" + result.substring(bodyEnd);
|
|
16
|
+
result += `<script type="module" src="${clientScript}"><\/script>`;
|
|
17
|
+
return result;
|
|
23
18
|
}
|
|
24
19
|
function regexIndexOf(string, regex, position) {
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
var indexOf = string.substring(position || 0).search(regex);
|
|
21
|
+
return indexOf >= 0 ? indexOf + (position || 0) : indexOf;
|
|
27
22
|
}
|
|
28
23
|
|
|
29
|
-
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/adapter.ts
|
|
30
26
|
var adapter_default = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
postbuild,
|
|
28
|
+
serve: () => {
|
|
29
|
+
console.log("TODO: Cloudflare dev server");
|
|
30
|
+
}
|
|
35
31
|
};
|
|
36
32
|
async function postbuild(site) {
|
|
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
|
-
cloudflareConfig.build.rollupOptions.preserveEntrySignatures = "strict";
|
|
76
|
-
cloudflareConfig.build.minify = false;
|
|
77
|
-
cloudflareConfig.build.ssr = true;
|
|
78
|
-
await build(defineConfig(cloudflareConfig));
|
|
79
|
-
await fs.mkdir(path.join(cloudflareFolder, "assets"));
|
|
80
|
-
for (let file of await fs.readdir(path.join(clientFolder, "assets"))) {
|
|
81
|
-
await fs.copyFile(
|
|
82
|
-
path.join(clientFolder, "assets", file),
|
|
83
|
-
path.join(cloudflareFolder, "assets", file)
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
const wranglerConfig = `
|
|
33
|
+
const distFolder = path.resolve(site.root, "dist");
|
|
34
|
+
const clientFolder = path.join(distFolder, "client");
|
|
35
|
+
const serverFolder = path.join(distFolder, "server");
|
|
36
|
+
const tempFolder = path.join(distFolder, "temp");
|
|
37
|
+
const cloudflareFolder = path.join(distFolder, "cloudflare");
|
|
38
|
+
const buildSrcFolder = path.resolve(site.root, "./node_modules/@torpor/build/src/");
|
|
39
|
+
const adapterSrcFolder = path.resolve(site.root, "./node_modules/@torpor/adapter-cloudflare/src/");
|
|
40
|
+
let workerFile = path.join(adapterSrcFolder, "_worker.ts");
|
|
41
|
+
let workerSource = await promises.readFile(workerFile, "utf-8");
|
|
42
|
+
let clientScript = (await promises.readdir(path.join(clientFolder, "assets"))).find((f) => f.startsWith("clientEntry-"));
|
|
43
|
+
if (!clientScript) throw new Error("clientEntry.js not found");
|
|
44
|
+
clientScript = `/assets/${clientScript}`;
|
|
45
|
+
let siteHtml = path.join(clientFolder, "site.html");
|
|
46
|
+
let template = await promises.readFile(siteHtml, "utf-8");
|
|
47
|
+
template = prepareTemplate(template, clientScript);
|
|
48
|
+
const serverClass = path.join(buildSrcFolder, "server", "Server.ts");
|
|
49
|
+
const serverScript = path.join(serverFolder, "serverEntry.js");
|
|
50
|
+
workerSource = workerSource.replace("%SERVER_CLASS%", serverClass).replace("%SERVER_SCRIPT%", serverScript).replace("%HTML_TEMPLATE%", template);
|
|
51
|
+
workerFile = path.join(tempFolder, "_worker.ts");
|
|
52
|
+
await promises.mkdir(tempFolder);
|
|
53
|
+
await promises.writeFile(workerFile, workerSource);
|
|
54
|
+
const cloudflareConfig = structuredClone(site.viteConfig ?? {});
|
|
55
|
+
cloudflareConfig.build ??= {};
|
|
56
|
+
cloudflareConfig.build.outDir = cloudflareFolder;
|
|
57
|
+
cloudflareConfig.build.rollupOptions ??= {};
|
|
58
|
+
cloudflareConfig.build.rollupOptions.input = [workerFile, ...site.inputs];
|
|
59
|
+
cloudflareConfig.build.rollupOptions.output = {
|
|
60
|
+
entryFileNames: `[name].js`,
|
|
61
|
+
chunkFileNames: `[name].js`,
|
|
62
|
+
assetFileNames: `[name].[ext]`
|
|
63
|
+
};
|
|
64
|
+
cloudflareConfig.build.rollupOptions.preserveEntrySignatures = "strict";
|
|
65
|
+
cloudflareConfig.build.minify = false;
|
|
66
|
+
cloudflareConfig.build.ssr = true;
|
|
67
|
+
await build(defineConfig(cloudflareConfig));
|
|
68
|
+
await promises.mkdir(path.join(cloudflareFolder, "assets"));
|
|
69
|
+
for (let file of await promises.readdir(path.join(clientFolder, "assets"))) await promises.copyFile(path.join(clientFolder, "assets", file), path.join(cloudflareFolder, "assets", file));
|
|
70
|
+
const wranglerConfig = `
|
|
87
71
|
name = "torpor-miniflare"
|
|
88
72
|
main = "./cloudflare/_worker.js"
|
|
89
73
|
compatibility_date = "2025-01-01"
|
|
@@ -92,19 +76,19 @@ compatibility_date = "2025-01-01"
|
|
|
92
76
|
directory = "./cloudflare"
|
|
93
77
|
binding = "ASSETS"
|
|
94
78
|
`;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
79
|
+
const wranglerFile = path.join(distFolder, "wrangler.toml");
|
|
80
|
+
await promises.writeFile(wranglerFile, wranglerConfig);
|
|
81
|
+
const assetsIgnore = `
|
|
98
82
|
**/node_modules
|
|
99
83
|
**/.DS_Store
|
|
100
84
|
**/.git
|
|
101
85
|
_worker.js
|
|
102
86
|
`;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
87
|
+
const assetsIgnoreFile = path.join(cloudflareFolder, ".assetsignore");
|
|
88
|
+
await promises.writeFile(assetsIgnoreFile, assetsIgnore);
|
|
89
|
+
await promises.rm(tempFolder, { recursive: true });
|
|
106
90
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
};
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
export { adapter_default as cloudflare };
|
|
110
94
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/
|
|
1
|
+
{"version":3,"file":"index.js","names":["fs"],"sources":["../src/prepareTemplate.ts","../src/adapter.ts"],"sourcesContent":["export default function prepareTemplate(template: string, clientScript: string): string {\n\tlet result = template;\n\n\t// Put %COMPONENT_HEAD% before </head>\n\t// This is where styles will go\n\tlet headStart = result.indexOf(\"</head>\");\n\tif (headStart === -1) {\n\t\tthrow new Error(`Couldn't find <head> end tag`);\n\t}\n\tresult = result.substring(0, headStart) + \"%COMPONENT_HEAD%\" + result.substring(headStart);\n\n\t// Put %COMPONENT_BODY% inside <div id=\"app\"></div>\n\t// This is where the component's HTML will go\n\tlet bodyStart = regexIndexOf(result, /<div\\s+id=(\"app\"|'app'|app)\\s+/);\n\tbodyStart = result.indexOf(\">\", bodyStart) + 1;\n\tlet bodyEnd = result.indexOf(\"</div>\", bodyStart);\n\tif (bodyStart === -1 || bodyEnd === -1) {\n\t\tthrow new Error(`Couldn't find <div id=\"app\"></div>`);\n\t}\n\tresult = result.substring(0, bodyStart) + \"%COMPONENT_BODY%\" + result.substring(bodyEnd);\n\n\t// Add the clientEntry script at the very end, for hydrating and navigating\n\tresult += `<script type=\"module\" src=\"${clientScript}\"></script>`;\n\n\treturn result;\n}\n\n// From https://stackoverflow.com/a/274094\nfunction regexIndexOf(string: string, regex: RegExp, position?: number) {\n\tvar indexOf = string.substring(position || 0).search(regex);\n\treturn indexOf >= 0 ? indexOf + (position || 0) : indexOf;\n}\n","import { type Adapter, Site } from \"@torpor/build\";\nimport { promises as fs } from \"node:fs\";\nimport path from \"node:path\";\nimport { build, defineConfig } from \"vite\";\nimport prepareTemplate from \"./prepareTemplate\";\n\nexport default {\n\tpostbuild,\n\tserve: (/* server: Server, site: Site*/) => {\n\t\tconsole.log(\"TODO: Cloudflare dev server\");\n\t},\n} satisfies Adapter as Adapter;\n\nasync function postbuild(site: Site): Promise<void> {\n\t// Build _worker.js as per\n\t// https://developers.cloudflare.com/pages/functions/advanced-mode/\n\n\tconst distFolder = path.resolve(site.root, \"dist\");\n\tconst clientFolder = path.join(distFolder, \"client\");\n\tconst serverFolder = path.join(distFolder, \"server\");\n\tconst tempFolder = path.join(distFolder, \"temp\");\n\tconst cloudflareFolder = path.join(distFolder, \"cloudflare\");\n\n\tconst buildSrcFolder = path.resolve(site.root, \"./node_modules/@torpor/build/src/\");\n\tconst adapterSrcFolder = path.resolve(\n\t\tsite.root,\n\t\t\"./node_modules/@torpor/adapter-cloudflare/src/\",\n\t);\n\n\t// Compile _worker.ts\n\tlet workerFile = path.join(adapterSrcFolder, \"_worker.ts\");\n\tlet workerSource = await fs.readFile(workerFile, \"utf-8\");\n\n\t// Find the client script file in /assets\n\tlet clientScript = (await fs.readdir(path.join(clientFolder, \"assets\"))).find((f) =>\n\t\tf.startsWith(\"clientEntry-\"),\n\t);\n\tif (!clientScript) {\n\t\tthrow new Error(\"clientEntry.js not found\");\n\t}\n\tclientScript = `/assets/${clientScript}`;\n\n\t// Read and prepare site.html so that we can just splice components into it\n\tlet siteHtml = path.join(clientFolder, \"site.html\");\n\tlet template = await fs.readFile(siteHtml, \"utf-8\");\n\ttemplate = prepareTemplate(template, clientScript);\n\n\tconst serverClass = path.join(buildSrcFolder, \"server\", \"Server.ts\");\n\tconst serverScript = path.join(serverFolder, \"serverEntry.js\");\n\n\t// Splice file names into _worker.ts\n\tworkerSource = workerSource\n\t\t.replace(\"%SERVER_CLASS%\", serverClass)\n\t\t.replace(\"%SERVER_SCRIPT%\", serverScript)\n\t\t.replace(\"%HTML_TEMPLATE%\", template);\n\n\tworkerFile = path.join(tempFolder, \"_worker.ts\");\n\tawait fs.mkdir(tempFolder);\n\tawait fs.writeFile(workerFile, workerSource);\n\n\tconst cloudflareConfig = structuredClone(site.viteConfig ?? {});\n\tcloudflareConfig.build ??= {};\n\tcloudflareConfig.build.outDir = cloudflareFolder;\n\tcloudflareConfig.build.rollupOptions ??= {};\n\tcloudflareConfig.build.rollupOptions.input = [workerFile, ...site.inputs];\n\tcloudflareConfig.build.rollupOptions.output = {\n\t\tentryFileNames: `[name].js`,\n\t\tchunkFileNames: `[name].js`,\n\t\tassetFileNames: `[name].[ext]`,\n\t};\n\tcloudflareConfig.build.rollupOptions.preserveEntrySignatures = \"strict\";\n\t// HACK: We don't need to minify as the worker isn't downloaded?\n\t// And it makes debugging easier\n\tcloudflareConfig.build.minify = false;\n\t// HACK: Build for SSR so we don't get document and window references\n\tcloudflareConfig.build.ssr = true;\n\tawait build(defineConfig(cloudflareConfig));\n\n\t// Copy the client assets into the Cloudflare folder\n\tawait fs.mkdir(path.join(cloudflareFolder, \"assets\"));\n\tfor (let file of await fs.readdir(path.join(clientFolder, \"assets\"))) {\n\t\tawait fs.copyFile(\n\t\t\tpath.join(clientFolder, \"assets\", file),\n\t\t\tpath.join(cloudflareFolder, \"assets\", file),\n\t\t);\n\t}\n\n\t// Build a wrangler.toml file for running with `wrangler dev`\n\tconst wranglerConfig = `\nname = \"torpor-miniflare\"\nmain = \"./cloudflare/_worker.js\"\ncompatibility_date = \"2025-01-01\"\n\n[assets]\ndirectory = \"./cloudflare\"\nbinding = \"ASSETS\"\n\t`;\n\tconst wranglerFile = path.join(distFolder, \"wrangler.toml\");\n\tawait fs.writeFile(wranglerFile, wranglerConfig);\n\n\t// Build a .assetsignore file\n\tconst assetsIgnore = `\n**/node_modules\n**/.DS_Store\n**/.git\n_worker.js\n`;\n\tconst assetsIgnoreFile = path.join(cloudflareFolder, \".assetsignore\");\n\tawait fs.writeFile(assetsIgnoreFile, assetsIgnore);\n\n\tawait fs.rm(tempFolder, { recursive: true });\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@torpor/adapter-cloudflare",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "A @torpor/build adapter for deploying to Cloudflare Pages",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "dist/index.cjs",
|
|
7
|
-
"module": "dist/index.js",
|
|
8
|
-
"types": "dist/index.d.ts",
|
|
9
6
|
"exports": {
|
|
10
7
|
"types": "./dist/index.d.ts",
|
|
11
|
-
"import": "./dist/index.js"
|
|
12
|
-
"require": "./dist/index.cjs"
|
|
8
|
+
"import": "./dist/index.js"
|
|
13
9
|
},
|
|
14
10
|
"publishConfig": {
|
|
15
11
|
"access": "public"
|
|
@@ -18,18 +14,19 @@
|
|
|
18
14
|
"author": "",
|
|
19
15
|
"license": "ISC",
|
|
20
16
|
"dependencies": {
|
|
21
|
-
"vite": "^7.1.
|
|
22
|
-
"@torpor/build": "^0.
|
|
17
|
+
"vite": "^7.1.12",
|
|
18
|
+
"@torpor/build": "^0.4.0"
|
|
23
19
|
},
|
|
24
20
|
"devDependencies": {
|
|
25
21
|
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
22
|
+
"@typescript/native-preview": "7.0.0-dev.20251027.1",
|
|
23
|
+
"oxlint-tsgolint": "^0.3.0",
|
|
24
|
+
"tsdown": "^0.15.11",
|
|
25
|
+
"typescript": "^5.9.3"
|
|
29
26
|
},
|
|
30
27
|
"scripts": {
|
|
31
|
-
"build": "
|
|
32
|
-
"build:watch": "
|
|
33
|
-
"check": "
|
|
28
|
+
"build": "tsgo --noEmit && tsdown",
|
|
29
|
+
"build:watch": "tsdown --watch",
|
|
30
|
+
"check": "tsgo --noEmit && pnpm dlx oxlint --type-aware"
|
|
34
31
|
}
|
|
35
32
|
}
|
package/src/adapter.ts
CHANGED
|
@@ -21,7 +21,6 @@ async function postbuild(site: Site): Promise<void> {
|
|
|
21
21
|
const tempFolder = path.join(distFolder, "temp");
|
|
22
22
|
const cloudflareFolder = path.join(distFolder, "cloudflare");
|
|
23
23
|
|
|
24
|
-
// TODO: Is this going to be the correct path after installing from npm?
|
|
25
24
|
const buildSrcFolder = path.resolve(site.root, "./node_modules/@torpor/build/src/");
|
|
26
25
|
const adapterSrcFolder = path.resolve(
|
|
27
26
|
site.root,
|
package/src/prepareTemplate.ts
CHANGED
|
@@ -11,7 +11,7 @@ export default function prepareTemplate(template: string, clientScript: string):
|
|
|
11
11
|
|
|
12
12
|
// Put %COMPONENT_BODY% inside <div id="app"></div>
|
|
13
13
|
// This is where the component's HTML will go
|
|
14
|
-
let bodyStart = regexIndexOf(result,
|
|
14
|
+
let bodyStart = regexIndexOf(result, /<div\s+id=("app"|'app'|app)\s+/);
|
|
15
15
|
bodyStart = result.indexOf(">", bodyStart) + 1;
|
|
16
16
|
let bodyEnd = result.indexOf("</div>", bodyStart);
|
|
17
17
|
if (bodyStart === -1 || bodyEnd === -1) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Options, defineConfig } from "
|
|
1
|
+
import { type Options, defineConfig } from "tsdown";
|
|
2
2
|
|
|
3
3
|
type Config =
|
|
4
4
|
| Options
|
|
@@ -7,9 +7,7 @@ type Config =
|
|
|
7
7
|
|
|
8
8
|
export default defineConfig({
|
|
9
9
|
entry: ["src/index.ts"],
|
|
10
|
-
format:
|
|
10
|
+
format: "esm",
|
|
11
11
|
dts: true,
|
|
12
|
-
clean: true,
|
|
13
|
-
metafile: true,
|
|
14
12
|
sourcemap: true,
|
|
15
13
|
}) satisfies Config as Config;
|
package/dist/index.cjs
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/index.ts
|
|
31
|
-
var index_exports = {};
|
|
32
|
-
__export(index_exports, {
|
|
33
|
-
cloudflare: () => adapter_default
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(index_exports);
|
|
36
|
-
|
|
37
|
-
// src/adapter.ts
|
|
38
|
-
var import_node_fs = require("fs");
|
|
39
|
-
var import_node_path = __toESM(require("path"), 1);
|
|
40
|
-
var import_vite = require("vite");
|
|
41
|
-
|
|
42
|
-
// src/prepareTemplate.ts
|
|
43
|
-
function prepareTemplate(template, clientScript) {
|
|
44
|
-
let result = template;
|
|
45
|
-
let headStart = result.indexOf("</head>");
|
|
46
|
-
if (headStart === -1) {
|
|
47
|
-
throw new Error(`Couldn't find <head> end tag`);
|
|
48
|
-
}
|
|
49
|
-
result = result.substring(0, headStart) + "%COMPONENT_HEAD%" + result.substring(headStart);
|
|
50
|
-
let bodyStart = regexIndexOf(result, /\<div\s+id=("app"|'app'|app)\s+/);
|
|
51
|
-
bodyStart = result.indexOf(">", bodyStart) + 1;
|
|
52
|
-
let bodyEnd = result.indexOf("</div>", bodyStart);
|
|
53
|
-
if (bodyStart === -1 || bodyEnd === -1) {
|
|
54
|
-
throw new Error(`Couldn't find <div id="app"></div>`);
|
|
55
|
-
}
|
|
56
|
-
result = result.substring(0, bodyStart) + "%COMPONENT_BODY%" + result.substring(bodyEnd);
|
|
57
|
-
result += `<script type="module" src="${clientScript}"></script>`;
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
function regexIndexOf(string, regex, position) {
|
|
61
|
-
var indexOf = string.substring(position || 0).search(regex);
|
|
62
|
-
return indexOf >= 0 ? indexOf + (position || 0) : indexOf;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// src/adapter.ts
|
|
66
|
-
var adapter_default = {
|
|
67
|
-
postbuild,
|
|
68
|
-
serve: () => {
|
|
69
|
-
console.log("TODO: Cloudflare dev server");
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
async function postbuild(site) {
|
|
73
|
-
const distFolder = import_node_path.default.resolve(site.root, "dist");
|
|
74
|
-
const clientFolder = import_node_path.default.join(distFolder, "client");
|
|
75
|
-
const serverFolder = import_node_path.default.join(distFolder, "server");
|
|
76
|
-
const tempFolder = import_node_path.default.join(distFolder, "temp");
|
|
77
|
-
const cloudflareFolder = import_node_path.default.join(distFolder, "cloudflare");
|
|
78
|
-
const buildSrcFolder = import_node_path.default.resolve(site.root, "./node_modules/@torpor/build/src/");
|
|
79
|
-
const adapterSrcFolder = import_node_path.default.resolve(
|
|
80
|
-
site.root,
|
|
81
|
-
"./node_modules/@torpor/adapter-cloudflare/src/"
|
|
82
|
-
);
|
|
83
|
-
let workerFile = import_node_path.default.join(adapterSrcFolder, "_worker.ts");
|
|
84
|
-
let workerSource = await import_node_fs.promises.readFile(workerFile, "utf-8");
|
|
85
|
-
let clientScript = (await import_node_fs.promises.readdir(import_node_path.default.join(clientFolder, "assets"))).find(
|
|
86
|
-
(f) => f.startsWith("clientEntry-")
|
|
87
|
-
);
|
|
88
|
-
if (!clientScript) {
|
|
89
|
-
throw new Error("clientEntry.js not found");
|
|
90
|
-
}
|
|
91
|
-
clientScript = `/assets/${clientScript}`;
|
|
92
|
-
let siteHtml = import_node_path.default.join(clientFolder, "site.html");
|
|
93
|
-
let template = await import_node_fs.promises.readFile(siteHtml, "utf-8");
|
|
94
|
-
template = prepareTemplate(template, clientScript);
|
|
95
|
-
const serverClass = import_node_path.default.join(buildSrcFolder, "server", "Server.ts");
|
|
96
|
-
const serverScript = import_node_path.default.join(serverFolder, "serverEntry.js");
|
|
97
|
-
workerSource = workerSource.replace("%SERVER_CLASS%", serverClass).replace("%SERVER_SCRIPT%", serverScript).replace("%HTML_TEMPLATE%", template);
|
|
98
|
-
workerFile = import_node_path.default.join(tempFolder, "_worker.ts");
|
|
99
|
-
await import_node_fs.promises.mkdir(tempFolder);
|
|
100
|
-
await import_node_fs.promises.writeFile(workerFile, workerSource);
|
|
101
|
-
const cloudflareConfig = structuredClone(site.viteConfig ?? {});
|
|
102
|
-
cloudflareConfig.build ??= {};
|
|
103
|
-
cloudflareConfig.build.outDir = cloudflareFolder;
|
|
104
|
-
cloudflareConfig.build.rollupOptions ??= {};
|
|
105
|
-
cloudflareConfig.build.rollupOptions.input = [workerFile, ...site.inputs];
|
|
106
|
-
cloudflareConfig.build.rollupOptions.output = {
|
|
107
|
-
entryFileNames: `[name].js`,
|
|
108
|
-
chunkFileNames: `[name].js`,
|
|
109
|
-
assetFileNames: `[name].[ext]`
|
|
110
|
-
};
|
|
111
|
-
cloudflareConfig.build.rollupOptions.preserveEntrySignatures = "strict";
|
|
112
|
-
cloudflareConfig.build.minify = false;
|
|
113
|
-
cloudflareConfig.build.ssr = true;
|
|
114
|
-
await (0, import_vite.build)((0, import_vite.defineConfig)(cloudflareConfig));
|
|
115
|
-
await import_node_fs.promises.mkdir(import_node_path.default.join(cloudflareFolder, "assets"));
|
|
116
|
-
for (let file of await import_node_fs.promises.readdir(import_node_path.default.join(clientFolder, "assets"))) {
|
|
117
|
-
await import_node_fs.promises.copyFile(
|
|
118
|
-
import_node_path.default.join(clientFolder, "assets", file),
|
|
119
|
-
import_node_path.default.join(cloudflareFolder, "assets", file)
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
const wranglerConfig = `
|
|
123
|
-
name = "torpor-miniflare"
|
|
124
|
-
main = "./cloudflare/_worker.js"
|
|
125
|
-
compatibility_date = "2025-01-01"
|
|
126
|
-
|
|
127
|
-
[assets]
|
|
128
|
-
directory = "./cloudflare"
|
|
129
|
-
binding = "ASSETS"
|
|
130
|
-
`;
|
|
131
|
-
const wranglerFile = import_node_path.default.join(distFolder, "wrangler.toml");
|
|
132
|
-
await import_node_fs.promises.writeFile(wranglerFile, wranglerConfig);
|
|
133
|
-
const assetsIgnore = `
|
|
134
|
-
**/node_modules
|
|
135
|
-
**/.DS_Store
|
|
136
|
-
**/.git
|
|
137
|
-
_worker.js
|
|
138
|
-
`;
|
|
139
|
-
const assetsIgnoreFile = import_node_path.default.join(cloudflareFolder, ".assetsignore");
|
|
140
|
-
await import_node_fs.promises.writeFile(assetsIgnoreFile, assetsIgnore);
|
|
141
|
-
await import_node_fs.promises.rm(tempFolder, { recursive: true });
|
|
142
|
-
}
|
|
143
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
144
|
-
0 && (module.exports = {
|
|
145
|
-
cloudflare
|
|
146
|
-
});
|
|
147
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/adapter.ts","../src/prepareTemplate.ts"],"sourcesContent":["import cloudflare from \"./adapter\";\n\nexport { cloudflare };\n","import { type Adapter, Site } from \"@torpor/build\";\nimport { promises as fs } from \"node:fs\";\nimport path from \"node:path\";\nimport { build, defineConfig } from \"vite\";\nimport prepareTemplate from \"./prepareTemplate\";\n\nexport default {\n\tpostbuild,\n\tserve: (/* server: Server, site: Site*/) => {\n\t\tconsole.log(\"TODO: Cloudflare dev server\");\n\t},\n} satisfies Adapter as Adapter;\n\nasync function postbuild(site: Site): Promise<void> {\n\t// Build _worker.js as per\n\t// https://developers.cloudflare.com/pages/functions/advanced-mode/\n\n\tconst distFolder = path.resolve(site.root, \"dist\");\n\tconst clientFolder = path.join(distFolder, \"client\");\n\tconst serverFolder = path.join(distFolder, \"server\");\n\tconst tempFolder = path.join(distFolder, \"temp\");\n\tconst cloudflareFolder = path.join(distFolder, \"cloudflare\");\n\n\t// TODO: Is this going to be the correct path after installing from npm?\n\tconst buildSrcFolder = path.resolve(site.root, \"./node_modules/@torpor/build/src/\");\n\tconst adapterSrcFolder = path.resolve(\n\t\tsite.root,\n\t\t\"./node_modules/@torpor/adapter-cloudflare/src/\",\n\t);\n\n\t// Compile _worker.ts\n\tlet workerFile = path.join(adapterSrcFolder, \"_worker.ts\");\n\tlet workerSource = await fs.readFile(workerFile, \"utf-8\");\n\n\t// Find the client script file in /assets\n\tlet clientScript = (await fs.readdir(path.join(clientFolder, \"assets\"))).find((f) =>\n\t\tf.startsWith(\"clientEntry-\"),\n\t);\n\tif (!clientScript) {\n\t\tthrow new Error(\"clientEntry.js not found\");\n\t}\n\tclientScript = `/assets/${clientScript}`;\n\n\t// Read and prepare site.html so that we can just splice components into it\n\tlet siteHtml = path.join(clientFolder, \"site.html\");\n\tlet template = await fs.readFile(siteHtml, \"utf-8\");\n\ttemplate = prepareTemplate(template, clientScript);\n\n\tconst serverClass = path.join(buildSrcFolder, \"server\", \"Server.ts\");\n\tconst serverScript = path.join(serverFolder, \"serverEntry.js\");\n\n\t// Splice file names into _worker.ts\n\tworkerSource = workerSource\n\t\t.replace(\"%SERVER_CLASS%\", serverClass)\n\t\t.replace(\"%SERVER_SCRIPT%\", serverScript)\n\t\t.replace(\"%HTML_TEMPLATE%\", template);\n\n\tworkerFile = path.join(tempFolder, \"_worker.ts\");\n\tawait fs.mkdir(tempFolder);\n\tawait fs.writeFile(workerFile, workerSource);\n\n\tconst cloudflareConfig = structuredClone(site.viteConfig ?? {});\n\tcloudflareConfig.build ??= {};\n\tcloudflareConfig.build.outDir = cloudflareFolder;\n\tcloudflareConfig.build.rollupOptions ??= {};\n\tcloudflareConfig.build.rollupOptions.input = [workerFile, ...site.inputs];\n\tcloudflareConfig.build.rollupOptions.output = {\n\t\tentryFileNames: `[name].js`,\n\t\tchunkFileNames: `[name].js`,\n\t\tassetFileNames: `[name].[ext]`,\n\t};\n\tcloudflareConfig.build.rollupOptions.preserveEntrySignatures = \"strict\";\n\t// HACK: We don't need to minify as the worker isn't downloaded?\n\t// And it makes debugging easier\n\tcloudflareConfig.build.minify = false;\n\t// HACK: Build for SSR so we don't get document and window references\n\tcloudflareConfig.build.ssr = true;\n\tawait build(defineConfig(cloudflareConfig));\n\n\t// Copy the client assets into the Cloudflare folder\n\tawait fs.mkdir(path.join(cloudflareFolder, \"assets\"));\n\tfor (let file of await fs.readdir(path.join(clientFolder, \"assets\"))) {\n\t\tawait fs.copyFile(\n\t\t\tpath.join(clientFolder, \"assets\", file),\n\t\t\tpath.join(cloudflareFolder, \"assets\", file),\n\t\t);\n\t}\n\n\t// Build a wrangler.toml file for running with `wrangler dev`\n\tconst wranglerConfig = `\nname = \"torpor-miniflare\"\nmain = \"./cloudflare/_worker.js\"\ncompatibility_date = \"2025-01-01\"\n\n[assets]\ndirectory = \"./cloudflare\"\nbinding = \"ASSETS\"\n\t`;\n\tconst wranglerFile = path.join(distFolder, \"wrangler.toml\");\n\tawait fs.writeFile(wranglerFile, wranglerConfig);\n\n\t// Build a .assetsignore file\n\tconst assetsIgnore = `\n**/node_modules\n**/.DS_Store\n**/.git\n_worker.js\n`;\n\tconst assetsIgnoreFile = path.join(cloudflareFolder, \".assetsignore\");\n\tawait fs.writeFile(assetsIgnoreFile, assetsIgnore);\n\n\tawait fs.rm(tempFolder, { recursive: true });\n}\n","export default function prepareTemplate(template: string, clientScript: string): string {\n\tlet result = template;\n\n\t// Put %COMPONENT_HEAD% before </head>\n\t// This is where styles will go\n\tlet headStart = result.indexOf(\"</head>\");\n\tif (headStart === -1) {\n\t\tthrow new Error(`Couldn't find <head> end tag`);\n\t}\n\tresult = result.substring(0, headStart) + \"%COMPONENT_HEAD%\" + result.substring(headStart);\n\n\t// Put %COMPONENT_BODY% inside <div id=\"app\"></div>\n\t// This is where the component's HTML will go\n\tlet bodyStart = regexIndexOf(result, /\\<div\\s+id=(\"app\"|'app'|app)\\s+/);\n\tbodyStart = result.indexOf(\">\", bodyStart) + 1;\n\tlet bodyEnd = result.indexOf(\"</div>\", bodyStart);\n\tif (bodyStart === -1 || bodyEnd === -1) {\n\t\tthrow new Error(`Couldn't find <div id=\"app\"></div>`);\n\t}\n\tresult = result.substring(0, bodyStart) + \"%COMPONENT_BODY%\" + result.substring(bodyEnd);\n\n\t// Add the clientEntry script at the very end, for hydrating and navigating\n\tresult += `<script type=\"module\" src=\"${clientScript}\"></script>`;\n\n\treturn result;\n}\n\n// From https://stackoverflow.com/a/274094\nfunction regexIndexOf(string: string, regex: RegExp, position?: number) {\n\tvar indexOf = string.substring(position || 0).search(regex);\n\treturn indexOf >= 0 ? indexOf + (position || 0) : indexOf;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,qBAA+B;AAC/B,uBAAiB;AACjB,kBAAoC;;;ACHrB,SAAR,gBAAiC,UAAkB,cAA8B;AACvF,MAAI,SAAS;AAIb,MAAI,YAAY,OAAO,QAAQ,SAAS;AACxC,MAAI,cAAc,IAAI;AACrB,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAC/C;AACA,WAAS,OAAO,UAAU,GAAG,SAAS,IAAI,qBAAqB,OAAO,UAAU,SAAS;AAIzF,MAAI,YAAY,aAAa,QAAQ,iCAAiC;AACtE,cAAY,OAAO,QAAQ,KAAK,SAAS,IAAI;AAC7C,MAAI,UAAU,OAAO,QAAQ,UAAU,SAAS;AAChD,MAAI,cAAc,MAAM,YAAY,IAAI;AACvC,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACrD;AACA,WAAS,OAAO,UAAU,GAAG,SAAS,IAAI,qBAAqB,OAAO,UAAU,OAAO;AAGvF,YAAU,8BAA8B,YAAY;AAEpD,SAAO;AACR;AAGA,SAAS,aAAa,QAAgB,OAAe,UAAmB;AACvE,MAAI,UAAU,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,KAAK;AAC1D,SAAO,WAAW,IAAI,WAAW,YAAY,KAAK;AACnD;;;ADzBA,IAAO,kBAAQ;AAAA,EACd;AAAA,EACA,OAAO,MAAqC;AAC3C,YAAQ,IAAI,6BAA6B;AAAA,EAC1C;AACD;AAEA,eAAe,UAAU,MAA2B;AAInD,QAAM,aAAa,iBAAAA,QAAK,QAAQ,KAAK,MAAM,MAAM;AACjD,QAAM,eAAe,iBAAAA,QAAK,KAAK,YAAY,QAAQ;AACnD,QAAM,eAAe,iBAAAA,QAAK,KAAK,YAAY,QAAQ;AACnD,QAAM,aAAa,iBAAAA,QAAK,KAAK,YAAY,MAAM;AAC/C,QAAM,mBAAmB,iBAAAA,QAAK,KAAK,YAAY,YAAY;AAG3D,QAAM,iBAAiB,iBAAAA,QAAK,QAAQ,KAAK,MAAM,mCAAmC;AAClF,QAAM,mBAAmB,iBAAAA,QAAK;AAAA,IAC7B,KAAK;AAAA,IACL;AAAA,EACD;AAGA,MAAI,aAAa,iBAAAA,QAAK,KAAK,kBAAkB,YAAY;AACzD,MAAI,eAAe,MAAM,eAAAC,SAAG,SAAS,YAAY,OAAO;AAGxD,MAAI,gBAAgB,MAAM,eAAAA,SAAG,QAAQ,iBAAAD,QAAK,KAAK,cAAc,QAAQ,CAAC,GAAG;AAAA,IAAK,CAAC,MAC9E,EAAE,WAAW,cAAc;AAAA,EAC5B;AACA,MAAI,CAAC,cAAc;AAClB,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC3C;AACA,iBAAe,WAAW,YAAY;AAGtC,MAAI,WAAW,iBAAAA,QAAK,KAAK,cAAc,WAAW;AAClD,MAAI,WAAW,MAAM,eAAAC,SAAG,SAAS,UAAU,OAAO;AAClD,aAAW,gBAAgB,UAAU,YAAY;AAEjD,QAAM,cAAc,iBAAAD,QAAK,KAAK,gBAAgB,UAAU,WAAW;AACnE,QAAM,eAAe,iBAAAA,QAAK,KAAK,cAAc,gBAAgB;AAG7D,iBAAe,aACb,QAAQ,kBAAkB,WAAW,EACrC,QAAQ,mBAAmB,YAAY,EACvC,QAAQ,mBAAmB,QAAQ;AAErC,eAAa,iBAAAA,QAAK,KAAK,YAAY,YAAY;AAC/C,QAAM,eAAAC,SAAG,MAAM,UAAU;AACzB,QAAM,eAAAA,SAAG,UAAU,YAAY,YAAY;AAE3C,QAAM,mBAAmB,gBAAgB,KAAK,cAAc,CAAC,CAAC;AAC9D,mBAAiB,UAAU,CAAC;AAC5B,mBAAiB,MAAM,SAAS;AAChC,mBAAiB,MAAM,kBAAkB,CAAC;AAC1C,mBAAiB,MAAM,cAAc,QAAQ,CAAC,YAAY,GAAG,KAAK,MAAM;AACxE,mBAAiB,MAAM,cAAc,SAAS;AAAA,IAC7C,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,EACjB;AACA,mBAAiB,MAAM,cAAc,0BAA0B;AAG/D,mBAAiB,MAAM,SAAS;AAEhC,mBAAiB,MAAM,MAAM;AAC7B,YAAM,uBAAM,0BAAa,gBAAgB,CAAC;AAG1C,QAAM,eAAAA,SAAG,MAAM,iBAAAD,QAAK,KAAK,kBAAkB,QAAQ,CAAC;AACpD,WAAS,QAAQ,MAAM,eAAAC,SAAG,QAAQ,iBAAAD,QAAK,KAAK,cAAc,QAAQ,CAAC,GAAG;AACrE,UAAM,eAAAC,SAAG;AAAA,MACR,iBAAAD,QAAK,KAAK,cAAc,UAAU,IAAI;AAAA,MACtC,iBAAAA,QAAK,KAAK,kBAAkB,UAAU,IAAI;AAAA,IAC3C;AAAA,EACD;AAGA,QAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASvB,QAAM,eAAe,iBAAAA,QAAK,KAAK,YAAY,eAAe;AAC1D,QAAM,eAAAC,SAAG,UAAU,cAAc,cAAc;AAG/C,QAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAMrB,QAAM,mBAAmB,iBAAAD,QAAK,KAAK,kBAAkB,eAAe;AACpE,QAAM,eAAAC,SAAG,UAAU,kBAAkB,YAAY;AAEjD,QAAM,eAAAA,SAAG,GAAG,YAAY,EAAE,WAAW,KAAK,CAAC;AAC5C;","names":["path","fs"]}
|
package/dist/index.d.cts
DELETED
package/dist/metafile-cjs.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"inputs":{"src/prepareTemplate.ts":{"bytes":1281,"imports":[],"format":"esm"},"src/adapter.ts":{"bytes":3932,"imports":[{"path":"@torpor/build","kind":"import-statement","external":true},{"path":"fs","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"vite","kind":"import-statement","external":true},{"path":"src/prepareTemplate.ts","kind":"import-statement","original":"./prepareTemplate"}],"format":"esm"},"src/index.ts":{"bytes":60,"imports":[{"path":"src/adapter.ts","kind":"import-statement","original":"./adapter"}],"format":"esm"}},"outputs":{"dist/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8618},"dist/index.cjs":{"imports":[{"path":"fs","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"vite","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":136},"src/adapter.ts":{"bytesInOutput":3784},"src/prepareTemplate.ts":{"bytesInOutput":938}},"bytes":6440}}}
|
package/dist/metafile-esm.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"inputs":{"src/prepareTemplate.ts":{"bytes":1281,"imports":[],"format":"esm"},"src/adapter.ts":{"bytes":3932,"imports":[{"path":"@torpor/build","kind":"import-statement","external":true},{"path":"fs","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"vite","kind":"import-statement","external":true},{"path":"src/prepareTemplate.ts","kind":"import-statement","original":"./prepareTemplate"}],"format":"esm"},"src/index.ts":{"bytes":60,"imports":[{"path":"src/adapter.ts","kind":"import-statement","original":"./adapter"}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":8282},"dist/index.js":{"imports":[{"path":"fs","kind":"import-statement","external":true},{"path":"path","kind":"import-statement","external":true},{"path":"vite","kind":"import-statement","external":true}],"exports":["cloudflare"],"entryPoint":"src/index.ts","inputs":{"src/adapter.ts":{"bytesInOutput":3122},"src/prepareTemplate.ts":{"bytesInOutput":938},"src/index.ts":{"bytesInOutput":0}},"bytes":4168}}}
|