rwsdk 1.0.0-beta.57 → 1.0.0-beta.58
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/vite/buildApp.d.mts +3 -1
- package/dist/vite/buildApp.mjs +2 -1
- package/dist/vite/configPlugin.d.mts +3 -1
- package/dist/vite/configPlugin.mjs +2 -1
- package/dist/vite/directiveModulesDevPlugin.d.mts +3 -1
- package/dist/vite/directiveModulesDevPlugin.mjs +2 -1
- package/dist/vite/redwoodPlugin.d.mts +2 -0
- package/dist/vite/redwoodPlugin.mjs +3 -0
- package/dist/vite/runDirectivesScan.d.mts +3 -1
- package/dist/vite/runDirectivesScan.mjs +2 -1
- package/package.json +1 -1
package/dist/vite/buildApp.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ViteBuilder } from "vite";
|
|
2
|
+
import { ConfigurableEsbuildOptions } from "./runDirectivesScan.mjs";
|
|
2
3
|
/**
|
|
3
4
|
* The build orchestrator is responsible for running the multi-phase build
|
|
4
5
|
* process for production. It is designed to solve the circular dependency
|
|
@@ -6,11 +7,12 @@ import type { ViteBuilder } from "vite";
|
|
|
6
7
|
*
|
|
7
8
|
* @see docs/architecture/productionBuildProcess.md
|
|
8
9
|
*/
|
|
9
|
-
export declare function buildApp({ builder, clientEntryPoints, clientFiles, serverFiles, projectRootDir, workerEntryPathname, }: {
|
|
10
|
+
export declare function buildApp({ builder, clientEntryPoints, clientFiles, serverFiles, projectRootDir, workerEntryPathname, esbuildOptions, }: {
|
|
10
11
|
builder: ViteBuilder;
|
|
11
12
|
clientEntryPoints: Set<string>;
|
|
12
13
|
clientFiles: Set<string>;
|
|
13
14
|
serverFiles: Set<string>;
|
|
14
15
|
projectRootDir: string;
|
|
15
16
|
workerEntryPathname: string;
|
|
17
|
+
esbuildOptions: ConfigurableEsbuildOptions;
|
|
16
18
|
}): Promise<void>;
|
package/dist/vite/buildApp.mjs
CHANGED
|
@@ -12,7 +12,7 @@ const log = debug("rwsdk:vite:build-app");
|
|
|
12
12
|
*
|
|
13
13
|
* @see docs/architecture/productionBuildProcess.md
|
|
14
14
|
*/
|
|
15
|
-
export async function buildApp({ builder, clientEntryPoints, clientFiles, serverFiles, projectRootDir, workerEntryPathname, }) {
|
|
15
|
+
export async function buildApp({ builder, clientEntryPoints, clientFiles, serverFiles, projectRootDir, workerEntryPathname, esbuildOptions, }) {
|
|
16
16
|
await rm(resolve(projectRootDir, "dist"), { recursive: true, force: true });
|
|
17
17
|
const workerEnv = builder.environments.worker;
|
|
18
18
|
// Run a pre-scan build pass to allow plugins to set up and generate code
|
|
@@ -49,6 +49,7 @@ export async function buildApp({ builder, clientEntryPoints, clientFiles, server
|
|
|
49
49
|
clientFiles,
|
|
50
50
|
serverFiles,
|
|
51
51
|
entries: [workerEntryPathname],
|
|
52
|
+
esbuildOptions,
|
|
52
53
|
});
|
|
53
54
|
console.log("Building worker...");
|
|
54
55
|
process.env.RWSDK_BUILD_PASS = "worker";
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Plugin } from "vite";
|
|
2
|
-
|
|
2
|
+
import { ConfigurableEsbuildOptions } from "./runDirectivesScan.mjs";
|
|
3
|
+
export declare const configPlugin: ({ silent, projectRootDir, workerEntryPathname, clientFiles, serverFiles, clientEntryPoints, esbuildOptions, }: {
|
|
3
4
|
silent: boolean;
|
|
4
5
|
projectRootDir: string;
|
|
5
6
|
workerEntryPathname: string;
|
|
6
7
|
clientFiles: Set<string>;
|
|
7
8
|
serverFiles: Set<string>;
|
|
8
9
|
clientEntryPoints: Set<string>;
|
|
10
|
+
esbuildOptions: ConfigurableEsbuildOptions;
|
|
9
11
|
}) => Plugin;
|
|
@@ -4,7 +4,7 @@ import { INTERMEDIATE_SSR_BRIDGE_PATH } from "../lib/constants.mjs";
|
|
|
4
4
|
import { buildApp } from "./buildApp.mjs";
|
|
5
5
|
import { externalModules } from "./constants.mjs";
|
|
6
6
|
import { ssrBridgeWrapPlugin } from "./ssrBridgeWrapPlugin.mjs";
|
|
7
|
-
export const configPlugin = ({ silent, projectRootDir, workerEntryPathname, clientFiles, serverFiles, clientEntryPoints, }) => ({
|
|
7
|
+
export const configPlugin = ({ silent, projectRootDir, workerEntryPathname, clientFiles, serverFiles, clientEntryPoints, esbuildOptions, }) => ({
|
|
8
8
|
name: "rwsdk:config",
|
|
9
9
|
config: async (_, { command }) => {
|
|
10
10
|
const mode = process.env.NODE_ENV;
|
|
@@ -189,6 +189,7 @@ export const configPlugin = ({ silent, projectRootDir, workerEntryPathname, clie
|
|
|
189
189
|
clientFiles,
|
|
190
190
|
serverFiles,
|
|
191
191
|
workerEntryPathname,
|
|
192
|
+
esbuildOptions,
|
|
192
193
|
});
|
|
193
194
|
},
|
|
194
195
|
},
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Plugin } from "vite";
|
|
2
|
+
import { ConfigurableEsbuildOptions } from "./runDirectivesScan.mjs";
|
|
2
3
|
export declare const generateVendorBarrelContent: (files: Set<string>, projectRootDir: string) => string;
|
|
3
4
|
export declare const generateAppBarrelContent: (files: Set<string>, projectRootDir: string) => string;
|
|
4
|
-
export declare const directiveModulesDevPlugin: ({ clientFiles, serverFiles, projectRootDir, workerEntryPathname, }: {
|
|
5
|
+
export declare const directiveModulesDevPlugin: ({ clientFiles, serverFiles, projectRootDir, workerEntryPathname, esbuildOptions, }: {
|
|
5
6
|
clientFiles: Set<string>;
|
|
6
7
|
serverFiles: Set<string>;
|
|
7
8
|
projectRootDir: string;
|
|
8
9
|
workerEntryPathname: string;
|
|
10
|
+
esbuildOptions: ConfigurableEsbuildOptions;
|
|
9
11
|
}) => Plugin;
|
|
@@ -30,7 +30,7 @@ export const generateAppBarrelContent = (files, projectRootDir) => {
|
|
|
30
30
|
})
|
|
31
31
|
.join("\n");
|
|
32
32
|
};
|
|
33
|
-
export const directiveModulesDevPlugin = ({ clientFiles, serverFiles, projectRootDir, workerEntryPathname, }) => {
|
|
33
|
+
export const directiveModulesDevPlugin = ({ clientFiles, serverFiles, projectRootDir, workerEntryPathname, esbuildOptions, }) => {
|
|
34
34
|
const { promise: scanPromise, resolve: resolveScanPromise } = Promise.withResolvers();
|
|
35
35
|
const tempDir = mkdtempSync(path.join(os.tmpdir(), "rwsdk-"));
|
|
36
36
|
const APP_CLIENT_BARREL_PATH = path.join(tempDir, "app-client-barrel.js");
|
|
@@ -56,6 +56,7 @@ export const directiveModulesDevPlugin = ({ clientFiles, serverFiles, projectRoo
|
|
|
56
56
|
clientFiles,
|
|
57
57
|
serverFiles,
|
|
58
58
|
entries: [workerEntryPathname],
|
|
59
|
+
esbuildOptions,
|
|
59
60
|
}).then(() => {
|
|
60
61
|
// context(justinvdm, 11 Sep 2025): For vendor barrels, we write the
|
|
61
62
|
// files directly to disk after the scan. For app barrels, we use a
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InlineConfig } from "vite";
|
|
2
2
|
import { unstable_readConfig } from "wrangler";
|
|
3
|
+
import { ConfigurableEsbuildOptions } from "./runDirectivesScan.mjs";
|
|
3
4
|
export type RedwoodPluginOptions = {
|
|
4
5
|
silent?: boolean;
|
|
5
6
|
rootDir?: string;
|
|
@@ -11,6 +12,7 @@ export type RedwoodPluginOptions = {
|
|
|
11
12
|
entry?: {
|
|
12
13
|
worker?: string;
|
|
13
14
|
};
|
|
15
|
+
esbuildOptions?: ConfigurableEsbuildOptions;
|
|
14
16
|
};
|
|
15
17
|
export declare const determineWorkerEntryPathname: ({ projectRootDir, workerConfigPath, options, readConfig, }: {
|
|
16
18
|
projectRootDir: string;
|
|
@@ -42,6 +42,7 @@ const serverFiles = new Set();
|
|
|
42
42
|
const clientEntryPoints = new Set();
|
|
43
43
|
export const redwoodPlugin = async (options = {}) => {
|
|
44
44
|
const projectRootDir = process.cwd();
|
|
45
|
+
const esbuildOptions = options.esbuildOptions ?? {};
|
|
45
46
|
if (options.forceClientPaths) {
|
|
46
47
|
const clientPaths = await resolveForcedPaths({
|
|
47
48
|
patterns: options.forceClientPaths,
|
|
@@ -92,6 +93,7 @@ export const redwoodPlugin = async (options = {}) => {
|
|
|
92
93
|
serverFiles,
|
|
93
94
|
projectRootDir,
|
|
94
95
|
workerEntryPathname,
|
|
96
|
+
esbuildOptions,
|
|
95
97
|
}),
|
|
96
98
|
configPlugin({
|
|
97
99
|
silent: options.silent ?? false,
|
|
@@ -100,6 +102,7 @@ export const redwoodPlugin = async (options = {}) => {
|
|
|
100
102
|
clientFiles,
|
|
101
103
|
serverFiles,
|
|
102
104
|
clientEntryPoints,
|
|
105
|
+
esbuildOptions,
|
|
103
106
|
}),
|
|
104
107
|
ssrBridgePlugin({
|
|
105
108
|
clientFiles,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Environment, ResolvedConfig } from "vite";
|
|
2
|
+
export type ConfigurableEsbuildOptions = Record<string, unknown>;
|
|
2
3
|
type Resolver = (context: {}, path: string, request: string, resolveContext: {}, callback: (err: Error | null, result?: string | false) => void) => void;
|
|
3
4
|
export declare function resolveModuleWithEnvironment({ path, importer, importerEnv, clientResolver, workerResolver, }: {
|
|
4
5
|
path: string;
|
|
@@ -18,11 +19,12 @@ export declare function classifyModule({ contents, inheritedEnv, }: {
|
|
|
18
19
|
isServer: boolean;
|
|
19
20
|
};
|
|
20
21
|
export type EsbuildLoader = "js" | "jsx" | "ts" | "tsx" | "default";
|
|
21
|
-
export declare const runDirectivesScan: ({ rootConfig, environments, clientFiles, serverFiles, entries: initialEntries, }: {
|
|
22
|
+
export declare const runDirectivesScan: ({ rootConfig, environments, clientFiles, serverFiles, entries: initialEntries, esbuildOptions, }: {
|
|
22
23
|
rootConfig: ResolvedConfig;
|
|
23
24
|
environments: Record<string, Environment>;
|
|
24
25
|
clientFiles: Set<string>;
|
|
25
26
|
serverFiles: Set<string>;
|
|
26
27
|
entries?: string[];
|
|
28
|
+
esbuildOptions: ConfigurableEsbuildOptions;
|
|
27
29
|
}) => Promise<void>;
|
|
28
30
|
export {};
|
|
@@ -85,7 +85,7 @@ export function classifyModule({ contents, inheritedEnv, }) {
|
|
|
85
85
|
}
|
|
86
86
|
return { moduleEnv, isClient, isServer };
|
|
87
87
|
}
|
|
88
|
-
export const runDirectivesScan = async ({ rootConfig, environments, clientFiles, serverFiles, entries: initialEntries, }) => {
|
|
88
|
+
export const runDirectivesScan = async ({ rootConfig, environments, clientFiles, serverFiles, entries: initialEntries, esbuildOptions, }) => {
|
|
89
89
|
deferredLog("\n… (rwsdk) Scanning for 'use client' and 'use server' directives...");
|
|
90
90
|
try {
|
|
91
91
|
const fileContentCache = new Map();
|
|
@@ -287,6 +287,7 @@ export const runDirectivesScan = async ({ rootConfig, environments, clientFiles,
|
|
|
287
287
|
},
|
|
288
288
|
};
|
|
289
289
|
await esbuild.build({
|
|
290
|
+
...esbuildOptions,
|
|
290
291
|
entryPoints: Array.from(combinedEntries),
|
|
291
292
|
bundle: true,
|
|
292
293
|
write: false,
|