50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import commonjs from "@rollup/plugin-commonjs"
|
|
import inject from "@rollup/plugin-inject"
|
|
import { nodeResolve } from "@rollup/plugin-node-resolve"
|
|
import { globSync } from "glob"
|
|
import path from "node:path"
|
|
import url from "node:url"
|
|
import { defineConfig } from "rollup"
|
|
import del from "rollup-plugin-delete"
|
|
import esbuild from "rollup-plugin-esbuild"
|
|
import nodePolyfills from "rollup-plugin-polyfill-node"
|
|
|
|
|
|
export default defineConfig({
|
|
input: Object.fromEntries(
|
|
globSync(["./src/**/*.ts"]).map(file => [
|
|
path.relative(".", file.slice(0, file.length - path.extname(file).length)),
|
|
url.fileURLToPath(new URL(file, import.meta.url)),
|
|
])
|
|
),
|
|
|
|
external: [/^godot/, /^jsb/],
|
|
|
|
output: {
|
|
dir: "./.godot/GodotJS",
|
|
format: "cjs",
|
|
exports: "named",
|
|
esModule: true,
|
|
preserveModules: true,
|
|
},
|
|
|
|
treeshake: true,
|
|
|
|
plugins: [
|
|
esbuild(),
|
|
nodeResolve(),
|
|
commonjs(),
|
|
nodePolyfills({ include: null }),
|
|
inject({
|
|
TextEncoder: ["@nberlette/utf8", "TextEncoder"],
|
|
TextDecoder: ["@nberlette/utf8", "TextDecoder"],
|
|
TextEncoderStream: ["@nberlette/utf8", "TextEncoderStream"],
|
|
TextDecoderStream: ["@nberlette/utf8", "TextDecoderStream"],
|
|
URL: ["url-shim", "URL"],
|
|
URLSearchParams: ["url-shim", "URLSearchParams"],
|
|
React: ["react", "*"],
|
|
}),
|
|
del({ targets: "./.godot/GodotJS/*" }),
|
|
],
|
|
})
|