@base44/vite-plugin 0.2.1 → 0.2.3
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/index.d.ts.map +1 -1
- package/dist/index.js +27 -3
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +22 -0
- package/dist/utils.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +43 -3
- package/src/utils.ts +27 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAQ/C,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,IAAI,GAAE;IACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACvB,iBAuLP"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { loadEnv } from "vite";
|
|
2
2
|
import { errorOverlayPlugin } from "./error-overlay-plugin.js";
|
|
3
3
|
import { visualEditPlugin } from "./visual-edit-plugin.js";
|
|
4
|
+
import { filterPackagesInProject } from "./utils.js";
|
|
4
5
|
const isRunningInSandbox = !!process.env.MODAL_SANDBOX_ID;
|
|
5
6
|
export default function vitePlugin(opts = {}) {
|
|
6
7
|
const { legacySDKImports = false } = opts;
|
|
7
8
|
return [
|
|
8
9
|
{
|
|
9
10
|
name: "base44",
|
|
10
|
-
config: ({ mode }) => {
|
|
11
|
-
const env = loadEnv(mode ?? "development",
|
|
11
|
+
config: ({ mode, root = process.cwd() }) => {
|
|
12
|
+
const env = loadEnv(mode ?? "development", root, "");
|
|
12
13
|
return {
|
|
13
14
|
resolve: {
|
|
14
15
|
alias: {
|
|
@@ -57,6 +58,18 @@ export default function vitePlugin(opts = {}) {
|
|
|
57
58
|
}
|
|
58
59
|
: {}),
|
|
59
60
|
optimizeDeps: {
|
|
61
|
+
...(isRunningInSandbox
|
|
62
|
+
? {
|
|
63
|
+
include: filterPackagesInProject([
|
|
64
|
+
"react",
|
|
65
|
+
"react-dom",
|
|
66
|
+
"framer-motion",
|
|
67
|
+
"lodash",
|
|
68
|
+
"moment",
|
|
69
|
+
"react-quill",
|
|
70
|
+
], root),
|
|
71
|
+
}
|
|
72
|
+
: {}),
|
|
60
73
|
esbuildOptions: {
|
|
61
74
|
loader: {
|
|
62
75
|
".js": "jsx",
|
|
@@ -81,8 +94,19 @@ export default function vitePlugin(opts = {}) {
|
|
|
81
94
|
},
|
|
82
95
|
}
|
|
83
96
|
: {}),
|
|
84
|
-
resolveId(source, importer, options) {
|
|
97
|
+
async resolveId(source, importer, options) {
|
|
85
98
|
if (legacySDKImports) {
|
|
99
|
+
const existingResolution = await this.resolve(source, importer, options);
|
|
100
|
+
if (existingResolution) {
|
|
101
|
+
return existingResolution;
|
|
102
|
+
}
|
|
103
|
+
// in legacy apps, the AI sometimes imports components from the Layout with `../`
|
|
104
|
+
// which breaks when monving to the vite template, so this solved it by
|
|
105
|
+
// resolving the path to the components folder
|
|
106
|
+
if (importer?.endsWith("/src/Layout.jsx") &&
|
|
107
|
+
source.startsWith("../components")) {
|
|
108
|
+
return this.resolve(source.replace(/^..\/components/, "@/components"), importer, options);
|
|
109
|
+
}
|
|
86
110
|
if (source.includes("/entities")) {
|
|
87
111
|
return this.resolve("@base44/vite-plugin/compat/entities.cjs", importer, options);
|
|
88
112
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAmBV"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
export function filterPackagesInProject(packages, root) {
|
|
4
|
+
try {
|
|
5
|
+
const packageJsonPath = join(root, "package.json");
|
|
6
|
+
if (!existsSync(packageJsonPath)) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
10
|
+
const allDeps = {
|
|
11
|
+
...packageJson.dependencies,
|
|
12
|
+
...packageJson.devDependencies,
|
|
13
|
+
...packageJson.peerDependencies,
|
|
14
|
+
};
|
|
15
|
+
return packages.filter((pkg) => pkg in allDeps);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
console.warn("Failed to read project package.json:", error);
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG;YACd,GAAG,WAAW,CAAC,YAAY;YAC3B,GAAG,WAAW,CAAC,eAAe;YAC9B,GAAG,WAAW,CAAC,gBAAgB;SAChC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Plugin, UserConfig } from "vite";
|
|
|
2
2
|
import { loadEnv } from "vite";
|
|
3
3
|
import { errorOverlayPlugin } from "./error-overlay-plugin.js";
|
|
4
4
|
import { visualEditPlugin } from "./visual-edit-plugin.js";
|
|
5
|
+
import { filterPackagesInProject } from "./utils.js";
|
|
5
6
|
|
|
6
7
|
const isRunningInSandbox = !!process.env.MODAL_SANDBOX_ID;
|
|
7
8
|
|
|
@@ -15,8 +16,8 @@ export default function vitePlugin(
|
|
|
15
16
|
return [
|
|
16
17
|
{
|
|
17
18
|
name: "base44",
|
|
18
|
-
config: ({ mode }) => {
|
|
19
|
-
const env = loadEnv(mode ?? "development",
|
|
19
|
+
config: ({ mode, root = process.cwd() }) => {
|
|
20
|
+
const env = loadEnv(mode ?? "development", root, "");
|
|
20
21
|
|
|
21
22
|
return {
|
|
22
23
|
resolve: {
|
|
@@ -72,6 +73,21 @@ export default function vitePlugin(
|
|
|
72
73
|
} as Partial<UserConfig>)
|
|
73
74
|
: {}),
|
|
74
75
|
optimizeDeps: {
|
|
76
|
+
...(isRunningInSandbox
|
|
77
|
+
? {
|
|
78
|
+
include: filterPackagesInProject(
|
|
79
|
+
[
|
|
80
|
+
"react",
|
|
81
|
+
"react-dom",
|
|
82
|
+
"framer-motion",
|
|
83
|
+
"lodash",
|
|
84
|
+
"moment",
|
|
85
|
+
"react-quill",
|
|
86
|
+
],
|
|
87
|
+
root
|
|
88
|
+
),
|
|
89
|
+
}
|
|
90
|
+
: {}),
|
|
75
91
|
esbuildOptions: {
|
|
76
92
|
loader: {
|
|
77
93
|
".js": "jsx",
|
|
@@ -96,8 +112,32 @@ export default function vitePlugin(
|
|
|
96
112
|
},
|
|
97
113
|
}
|
|
98
114
|
: {}),
|
|
99
|
-
resolveId(source, importer, options) {
|
|
115
|
+
async resolveId(source, importer, options) {
|
|
100
116
|
if (legacySDKImports) {
|
|
117
|
+
const existingResolution = await this.resolve(
|
|
118
|
+
source,
|
|
119
|
+
importer,
|
|
120
|
+
options
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
if (existingResolution) {
|
|
124
|
+
return existingResolution;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// in legacy apps, the AI sometimes imports components from the Layout with `../`
|
|
128
|
+
// which breaks when monving to the vite template, so this solved it by
|
|
129
|
+
// resolving the path to the components folder
|
|
130
|
+
if (
|
|
131
|
+
importer?.endsWith("/src/Layout.jsx") &&
|
|
132
|
+
source.startsWith("../components")
|
|
133
|
+
) {
|
|
134
|
+
return this.resolve(
|
|
135
|
+
source.replace(/^..\/components/, "@/components"),
|
|
136
|
+
importer,
|
|
137
|
+
options
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
|
|
101
141
|
if (source.includes("/entities")) {
|
|
102
142
|
return this.resolve(
|
|
103
143
|
"@base44/vite-plugin/compat/entities.cjs",
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
|
|
4
|
+
export function filterPackagesInProject(
|
|
5
|
+
packages: string[],
|
|
6
|
+
root: string
|
|
7
|
+
): string[] {
|
|
8
|
+
try {
|
|
9
|
+
const packageJsonPath = join(root, "package.json");
|
|
10
|
+
if (!existsSync(packageJsonPath)) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
15
|
+
const allDeps = {
|
|
16
|
+
...packageJson.dependencies,
|
|
17
|
+
...packageJson.devDependencies,
|
|
18
|
+
...packageJson.peerDependencies,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
return packages.filter((pkg) => pkg in allDeps);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.warn("Failed to read project package.json:", error);
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|