diff --git a/.changeset/fresh-hoops-relax.md b/.changeset/fresh-hoops-relax.md new file mode 100644 index 00000000..af46962e --- /dev/null +++ b/.changeset/fresh-hoops-relax.md @@ -0,0 +1,7 @@ +--- +"@opennextjs/cloudflare": patch +--- + +feature: Add `config` options to `populateCache` command + +This change adds the `config` option to the `populateCache` command in the Cloudflare CLI. This allows users to specify a custom Wrangler configuration file when populating the cache, enhancing flexibility and usability. diff --git a/packages/cloudflare/src/cli/commands/deploy.ts b/packages/cloudflare/src/cli/commands/deploy.ts index f8edb26f..ca7db73d 100644 --- a/packages/cloudflare/src/cli/commands/deploy.ts +++ b/packages/cloudflare/src/cli/commands/deploy.ts @@ -2,7 +2,7 @@ import { BuildOptions } from "@opennextjs/aws/build/helper.js"; import type { OpenNextConfig } from "../../api/config.js"; import { DEPLOYMENT_MAPPING_ENV_NAME } from "../templates/skew-protection.js"; -import { getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; +import { getWranglerConfigFlag, getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; import { populateCache } from "./populate-cache.js"; import { getDeploymentMapping } from "./skew-protection.js"; @@ -22,6 +22,7 @@ export async function deploy( await populateCache(options, config, { target: "remote", environment: getWranglerEnvironmentFlag(deployOptions.passthroughArgs), + config: getWranglerConfigFlag(deployOptions.passthroughArgs), cacheChunkSize: deployOptions.cacheChunkSize, }); diff --git a/packages/cloudflare/src/cli/commands/populate-cache.ts b/packages/cloudflare/src/cli/commands/populate-cache.ts index 70dbe5e1..b95a7640 100644 --- a/packages/cloudflare/src/cli/commands/populate-cache.ts +++ b/packages/cloudflare/src/cli/commands/populate-cache.ts @@ -96,11 +96,14 @@ export function getCacheAssets(opts: BuildOptions): CacheAsset[] { async function populateR2IncrementalCache( options: BuildOptions, - populateCacheOptions: { target: WranglerTarget; environment?: string } + populateCacheOptions: { target: WranglerTarget; environment?: string; config?: string } ) { logger.info("\nPopulating R2 incremental cache..."); - const config = unstable_readConfig({ env: populateCacheOptions.environment }); + const config = unstable_readConfig({ + env: populateCacheOptions.environment, + config: populateCacheOptions.config, + }); const binding = config.r2_buckets.find(({ binding }) => binding === R2_CACHE_BINDING_NAME); if (!binding) { @@ -140,11 +143,19 @@ async function populateR2IncrementalCache( async function populateKVIncrementalCache( options: BuildOptions, - populateCacheOptions: { target: WranglerTarget; environment?: string; cacheChunkSize?: number } + populateCacheOptions: { + target: WranglerTarget; + environment?: string; + config?: string; + cacheChunkSize?: number; + } ) { logger.info("\nPopulating KV incremental cache..."); - const config = unstable_readConfig({ env: populateCacheOptions.environment }); + const config = unstable_readConfig({ + env: populateCacheOptions.environment, + config: populateCacheOptions.config, + }); const binding = config.kv_namespaces.find(({ binding }) => binding === KV_CACHE_BINDING_NAME); if (!binding) { @@ -229,7 +240,12 @@ function populateStaticAssetsIncrementalCache(options: BuildOptions) { export async function populateCache( options: BuildOptions, config: OpenNextConfig, - populateCacheOptions: { target: WranglerTarget; environment?: string; cacheChunkSize?: number } + populateCacheOptions: { + target: WranglerTarget; + environment?: string; + config?: string; + cacheChunkSize?: number; + } ) { const { incrementalCache, tagCache } = config.default.override ?? {}; diff --git a/packages/cloudflare/src/cli/commands/preview.ts b/packages/cloudflare/src/cli/commands/preview.ts index 9640e535..1ff89e4d 100644 --- a/packages/cloudflare/src/cli/commands/preview.ts +++ b/packages/cloudflare/src/cli/commands/preview.ts @@ -1,7 +1,7 @@ import { BuildOptions } from "@opennextjs/aws/build/helper.js"; import type { OpenNextConfig } from "../../api/config.js"; -import { getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; +import { getWranglerConfigFlag, getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; import { populateCache } from "./populate-cache.js"; export async function preview( @@ -12,6 +12,7 @@ export async function preview( await populateCache(options, config, { target: "local", environment: getWranglerEnvironmentFlag(previewOptions.passthroughArgs), + config: getWranglerConfigFlag(previewOptions.passthroughArgs), cacheChunkSize: previewOptions.cacheChunkSize, }); diff --git a/packages/cloudflare/src/cli/commands/upload.ts b/packages/cloudflare/src/cli/commands/upload.ts index 24200abf..ec8dae41 100644 --- a/packages/cloudflare/src/cli/commands/upload.ts +++ b/packages/cloudflare/src/cli/commands/upload.ts @@ -2,7 +2,7 @@ import { BuildOptions } from "@opennextjs/aws/build/helper.js"; import type { OpenNextConfig } from "../../api/config.js"; import { DEPLOYMENT_MAPPING_ENV_NAME } from "../templates/skew-protection.js"; -import { getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; +import { getWranglerConfigFlag, getWranglerEnvironmentFlag, runWrangler } from "../utils/run-wrangler.js"; import { getEnvFromPlatformProxy, quoteShellMeta } from "./helpers.js"; import { populateCache } from "./populate-cache.js"; import { getDeploymentMapping } from "./skew-protection.js"; @@ -22,6 +22,7 @@ export async function upload( await populateCache(options, config, { target: "remote", environment: getWranglerEnvironmentFlag(uploadOptions.passthroughArgs), + config: getWranglerConfigFlag(uploadOptions.passthroughArgs), cacheChunkSize: uploadOptions.cacheChunkSize, });