-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrollup.config.mjs
More file actions
114 lines (106 loc) · 3.66 KB
/
Copy pathrollup.config.mjs
File metadata and controls
114 lines (106 loc) · 3.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import resolve from "@rollup/plugin-node-resolve";
import typescript from "@rollup/plugin-typescript";
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import * as fs from "fs";
export default {
input: {
launcher: "src/launcher.ts",
main: "src/main.ts"
},
output: {
dir: "com.dzarlax.ai-assistant.sdPlugin/bin",
format: "esm",
preserveModules: false,
entryFileNames: "[name].js",
sourcemap: true
},
plugins: [
json(),
resolve({
exportConditions: ["node"],
preferBuiltins: true
}),
commonjs(),
typescript({
tsconfig: "./tsconfig.json"
}),
// Copy static files after build
{
name: "copy-static",
writeBundle: async () => {
const dest = "com.dzarlax.ai-assistant.sdPlugin";
// Ensure directories exist
const dirs = [
dest,
`${dest}/imgs`,
`${dest}/ui`,
`${dest}/ui/js`,
`${dest}/ui/css`,
`${dest}/bin`
];
dirs.forEach(dir => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
});
// Copy manifest
fs.copyFileSync("manifest.json", `${dest}/manifest.json`);
// Create package.json for ESM support in root folder
fs.writeFileSync(`${dest}/package.json`, '{ "type": "module" }');
// Copy images
if (fs.existsSync("images")) {
const imgs = fs.readdirSync("images");
for (const img of imgs) {
if (img.endsWith(".png") || img.endsWith(".svg")) {
fs.copyFileSync(`images/${img}`, `${dest}/imgs/${img}`);
}
}
}
// Copy property-inspector files
if (fs.existsSync("property-inspector")) {
const uiFiles = fs.readdirSync("property-inspector");
for (const file of uiFiles) {
if (file === "js") {
const jsFiles = fs.readdirSync("property-inspector/js");
for (const jsFile of jsFiles) {
fs.copyFileSync(`property-inspector/js/${jsFile}`, `${dest}/ui/js/${jsFile}`);
}
} else if (file === "css") {
// Ensure css directory exists
if (!fs.existsSync(`${dest}/ui/css`)) {
fs.mkdirSync(`${dest}/ui/css`, { recursive: true });
}
const cssFiles = fs.readdirSync("property-inspector/css");
for (const cssFile of cssFiles) {
fs.copyFileSync(`property-inspector/css/${cssFile}`, `${dest}/ui/css/${cssFile}`);
}
} else {
fs.copyFileSync(`property-inspector/${file}`, `${dest}/ui/${file}`);
}
}
}
// Copy global-settings files
if (fs.existsSync("global-settings")) {
const gsFiles = fs.readdirSync("global-settings");
for (const file of gsFiles) {
if (file === "js") {
const jsFiles = fs.readdirSync("global-settings/js");
for (const jsFile of jsFiles) {
fs.copyFileSync(`global-settings/js/${jsFile}`, `${dest}/ui/js/${jsFile}`);
}
} else if (file.endsWith(".html")) {
// Rename index.html to global-settings.html for the UI folder
const destName = file === "index.html" ? "global-settings.html" : file;
fs.copyFileSync(`global-settings/${file}`, `${dest}/ui/${destName}`);
} else {
fs.copyFileSync(`global-settings/${file}`, `${dest}/ui/${file}`);
}
}
}
console.log("Static files copied!");
}
}
],
external: []
};