Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/new-donkeys-approve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@sveltejs/adapter-cloudflare": patch
"test-cloudflare-workers": patch
---

fix(adapter-cloudflare): resolve paths from wrangler config
16 changes: 12 additions & 4 deletions packages/adapter-cloudflare/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { VERSION } from '@sveltejs/kit';
import { copyFileSync, existsSync, writeFileSync } from 'node:fs';
import path from 'node:path';
import process from 'node:process';
import { fileURLToPath } from 'node:url';
import { is_building_for_cloudflare_pages, validate_worker_settings } from './utils.js';
import { getPlatformProxy, unstable_readConfig } from 'wrangler';
import { is_building_for_cloudflare_pages, validate_worker_settings } from './utils.js';

const name = '@sveltejs/adapter-cloudflare';
const [kit_major, kit_minor] = VERSION.split('.');
Expand Down Expand Up @@ -32,6 +33,13 @@ export default function (options = {}) {
}

const wrangler_config = validate_wrangler_config(options.config);

// Resolve all paths relative to the wrangler config file, if any
const parent_dir = wrangler_config.configPath
? path.dirname(path.resolve(wrangler_config.configPath))
: process.cwd();
const resolve = (/** @type {string} */ p) => path.resolve(parent_dir, p);

const building_for_cloudflare_pages = is_building_for_cloudflare_pages(wrangler_config);

let dest = builder.getBuildDirectory('cloudflare');
Expand All @@ -40,15 +48,15 @@ export default function (options = {}) {

if (building_for_cloudflare_pages) {
if (wrangler_config.pages_build_output_dir) {
dest = wrangler_config.pages_build_output_dir;
dest = resolve(wrangler_config.pages_build_output_dir);
worker_dest = `${dest}/_worker.js`;
}
} else {
if (wrangler_config.main) {
worker_dest = wrangler_config.main;
worker_dest = resolve(wrangler_config.main);
}
if (wrangler_config.assets?.directory) {
dest = wrangler_config.assets.directory;
dest = resolve(wrangler_config.assets.directory);
}
if (wrangler_config.assets?.binding) {
assets_binding = wrangler_config.assets.binding;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"main": "../dist/index.js",
"assets": {
"directory": "../dist/public",
"binding": "ASSETS"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ import adapter from '../../../index.js';
/** @type {import('@sveltejs/kit').Config} */
const config = {
kit: {
adapter: adapter()
adapter: adapter({
config: 'config/wrangler.jsonc'
})
}
};

Expand Down
7 changes: 0 additions & 7 deletions packages/adapter-cloudflare/test/apps/workers/wrangler.jsonc

This file was deleted.

Loading