alchemy 0.49.1 → 0.50.0

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.
Files changed (39) hide show
  1. package/lib/cloudflare/api-response.d.ts +2 -2
  2. package/lib/cloudflare/api-response.d.ts.map +1 -1
  3. package/lib/cloudflare/api-response.js +2 -1
  4. package/lib/cloudflare/api-response.js.map +1 -1
  5. package/lib/cloudflare/bucket.d.ts +70 -105
  6. package/lib/cloudflare/bucket.d.ts.map +1 -1
  7. package/lib/cloudflare/bucket.js +127 -244
  8. package/lib/cloudflare/bucket.js.map +1 -1
  9. package/lib/cloudflare/nuxt.js +1 -1
  10. package/lib/cloudflare/nuxt.js.map +1 -1
  11. package/lib/cloudflare/orange.d.ts.map +1 -1
  12. package/lib/cloudflare/orange.js +4 -1
  13. package/lib/cloudflare/orange.js.map +1 -1
  14. package/lib/cloudflare/redwood.d.ts.map +1 -1
  15. package/lib/cloudflare/redwood.js +5 -1
  16. package/lib/cloudflare/redwood.js.map +1 -1
  17. package/lib/cloudflare/vite.d.ts.map +1 -1
  18. package/lib/cloudflare/vite.js +2 -10
  19. package/lib/cloudflare/vite.js.map +1 -1
  20. package/lib/cloudflare/website.d.ts.map +1 -1
  21. package/lib/cloudflare/website.js +1 -0
  22. package/lib/cloudflare/website.js.map +1 -1
  23. package/lib/cloudflare/worker.d.ts.map +1 -1
  24. package/lib/cloudflare/worker.js +1 -0
  25. package/lib/cloudflare/worker.js.map +1 -1
  26. package/lib/os/exec.d.ts +1 -1
  27. package/lib/os/exec.d.ts.map +1 -1
  28. package/lib/os/exec.js +1 -1
  29. package/lib/os/exec.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/cloudflare/api-response.ts +7 -3
  32. package/src/cloudflare/bucket.ts +276 -468
  33. package/src/cloudflare/nuxt.ts +1 -1
  34. package/src/cloudflare/orange.ts +4 -1
  35. package/src/cloudflare/redwood.ts +6 -1
  36. package/src/cloudflare/vite.ts +2 -10
  37. package/src/cloudflare/website.ts +1 -0
  38. package/src/cloudflare/worker.ts +2 -1
  39. package/src/os/exec.ts +2 -2
@@ -55,7 +55,7 @@ export async function Nuxt<B extends Bindings>(
55
55
  ...props,
56
56
  noBundle: props?.noBundle ?? true,
57
57
  // Default build command, can be overridden by props.command
58
- command: props?.command ?? "bun run build",
58
+ command: props?.command ?? "nuxt build",
59
59
  // Default entry point for cloudflare-module preset
60
60
  main: props?.main ?? "./.output/server/index.mjs",
61
61
  // Default static assets directory for cloudflare-module preset
@@ -40,7 +40,10 @@ export async function Orange<B extends Bindings>(
40
40
  ): Promise<Orange<B>> {
41
41
  return Website(id, {
42
42
  ...props,
43
- command: props?.command ?? "bun run build",
43
+ command: props?.command ?? "vite build",
44
+ dev: props?.dev ?? {
45
+ command: "vite dev",
46
+ },
44
47
  // The entrypoint and the Wrangler main must differ for the Cloudflare vite plugin
45
48
  // to bundle the application correctly, and alchemy must run our bundler on the Vite
46
49
  // output since we don't resolve vite imports.
@@ -43,7 +43,12 @@ export async function Redwood<B extends Bindings>(
43
43
  ): Promise<Redwood<B>> {
44
44
  return Website(id, {
45
45
  ...props,
46
- command: props?.command ?? "bun run clean && RWSDK_DEPLOY=1 bun run build",
46
+ command:
47
+ props?.command ??
48
+ "rm -rf ./node_modules/.vite && RWSDK_DEPLOY=1 vite build",
49
+ dev: props?.dev ?? {
50
+ command: "vite dev",
51
+ },
47
52
  noBundle: props?.noBundle ?? true,
48
53
  wrangler:
49
54
  props?.wrangler === false
@@ -1,5 +1,4 @@
1
1
  import path from "node:path";
2
- import { detectPackageManager } from "../util/detect-package-manager.ts";
3
2
  import type { Assets } from "./assets.ts";
4
3
  import type { Bindings } from "./bindings.ts";
5
4
  import { Website, type WebsiteProps } from "./website.ts";
@@ -18,14 +17,6 @@ export async function Vite<B extends Bindings>(
18
17
  props: ViteProps<B>,
19
18
  ): Promise<Vite<B>> {
20
19
  const defaultAssets = path.join("dist", "client");
21
- const packageManager = await detectPackageManager();
22
- const devCommand = {
23
- npm: "npx vite dev",
24
- bun: "bun vite dev",
25
- pnpm: "pnpm vite dev",
26
- yarn: "yarn vite dev",
27
- deno: "deno vite dev",
28
- }[packageManager];
29
20
  return Website(id, {
30
21
  ...props,
31
22
  spa: true,
@@ -36,8 +27,9 @@ export async function Vite<B extends Bindings>(
36
27
  dist: props.assets.dist ?? defaultAssets,
37
28
  }
38
29
  : (props.assets ?? defaultAssets),
30
+ command: props.command ?? "vite build",
39
31
  dev: props.dev ?? {
40
- command: devCommand,
32
+ command: "vite dev",
41
33
  },
42
34
  });
43
35
  }
@@ -231,6 +231,7 @@ export default {
231
231
  cwd,
232
232
  command: props.command,
233
233
  env: {
234
+ ...(process.env ?? {}),
234
235
  ...(props.env ?? {}),
235
236
  ...(props.commandEnv ?? {}),
236
237
  ...Object.fromEntries(
@@ -1088,6 +1088,7 @@ export const _Worker = Resource(
1088
1088
  command: props.dev.command,
1089
1089
  cwd: props.dev.cwd || props.cwd || process.cwd(),
1090
1090
  env: {
1091
+ ...(process.env ?? {}),
1091
1092
  ...props.env,
1092
1093
  ...Object.fromEntries(
1093
1094
  Object.entries(props.bindings ?? {}).flatMap(([key, value]) =>
@@ -1834,7 +1835,7 @@ async function createDevCommand(props: {
1834
1835
  id: string;
1835
1836
  command: string;
1836
1837
  cwd: string;
1837
- env: Record<string, string>;
1838
+ env: Record<string, string | undefined>;
1838
1839
  }): Promise<{ url: string }> {
1839
1840
  const persistFile = path.join(process.cwd(), ".alchemy", `${props.id}.pid`);
1840
1841
  if (await exists(persistFile)) {
package/src/os/exec.ts CHANGED
@@ -48,7 +48,7 @@ export interface ExecProps {
48
48
  /**
49
49
  * Environment variables to set
50
50
  */
51
- env?: Record<string, string | Secret<string>>;
51
+ env?: Record<string, string | Secret<string> | undefined>;
52
52
 
53
53
  /**
54
54
  * Whether to inherit stdio from parent process
@@ -218,7 +218,7 @@ export const Exec = Resource(
218
218
  for (const [key, value] of Object.entries(props.env)) {
219
219
  if (typeof value === "string") {
220
220
  processedEnv[key] = value;
221
- } else {
221
+ } else if (value) {
222
222
  // Handle Secret objects
223
223
  processedEnv[key] = value.unencrypted;
224
224
  }