项目文件夹

文件
wehub-resource-sync adf0d17497
publish / version_or_publish (push) Has been cancelled
storybook-build / changes (push) Has been cancelled
storybook-build / :storybook-build (push) Has been cancelled
Sync Gradio Skills to Hugging Face / sync-skills (push) Has been cancelled
functional / changes (push) Has been cancelled
functional / build-frontend (push) Has been cancelled
functional / functional-test-SSR=false (push) Has been cancelled
functional / functional-reload (push) Has been cancelled
js / changes (push) Has been cancelled
js / js-test (push) Has been cancelled
docs-build / changes (push) Has been cancelled
docs-build / docs-build (push) Has been cancelled
docs-build / website-build (push) Has been cancelled
functional / functional-test-SSR=true (push) Has been cancelled
hygiene / hygiene-test (push) Has been cancelled
python / changes (push) Has been cancelled
python / build (push) Has been cancelled
python / test-ubuntu-latest-flaky (push) Has been cancelled
python / test-ubuntu-latest-not-flaky (push) Has been cancelled
python / test-windows-latest-flaky (push) Has been cancelled
python / test-windows-latest-not-flaky (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:17:32 +08:00

131 行
3.0 KiB
JavaScript

// @ts-nocheck
import { createRequire } from "node:module";
import { join } from "node:path";
import { readFileSync } from "node:fs";
import ts from "@rollup/plugin-typescript";
import node from "@rollup/plugin-node-resolve";
import cjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import terser from "@rollup/plugin-terser";
const onwarn = (warning, warn) => {
if (warning.plugin === "typescript") return;
if (warning.code === "CIRCULAR_DEPENDENCY") return;
if (warning.code === "EVAL") return;
warn(warning);
};
const require = createRequire(import.meta.url);
const dir = require.resolve("./package.json");
const svelte_path = find_pkg_json(require.resolve("svelte"));
console.log("Svelte path:", svelte_path);
const svelte_pkg = JSON.parse(readFileSync(svelte_path, "utf-8"));
if (!svelte_pkg) {
throw new Error("Could not find svelte package.json");
}
console.log("Svelte exports:", svelte_pkg.exports);
const _exports = Object.keys(svelte_pkg.exports)
.filter((entry) => {
const _entry = Object.keys(svelte_pkg.exports[entry]).filter(
(e) => e !== "types"
);
return _entry.length !== 0;
})
.map((key) => `svelte${key.replace(/^\./, "")}`);
console.log("Svelte exports:", _exports);
const output_svelte_dir = join(
dir,
"..",
"..",
"..",
"gradio",
"templates",
"frontend",
"assets",
"svelte"
);
const plugins = [
node({ preferBuiltins: true, browser: true }),
json(),
cjs(),
ts()
// terser()
];
function make_config(input_file, output_file) {
return {
input: input_file,
output: {
file: join(output_svelte_dir, output_file),
format: "esm"
},
onwarn,
plugins
};
}
// export default _exports.map((name) => {
// const input_file = name;
// const output_file = `${name.split("/").join("_")}.js`;
// return make_config(input_file, output_file);
// });
export default {
input: _exports,
output: {
dir: output_svelte_dir,
entryFileNames: (chunk) => {
const { facadeModuleId: path } = chunk;
path.split("node_modules/svelte/")[1];
const export_path = path
.split("node_modules/svelte/")[1]
.replace(/\?.*$/, "");
let name = find_in_exports(svelte_pkg.exports, export_path);
console.log("Export path:", export_path, "Name:", name);
if (name === ".") name = "svelte";
if (name) {
return (
"svelte_" + name.replace(/^\.\//, "").replace(/\//g, "_") + ".js"
);
}
return "[name].js";
},
format: "esm"
},
onwarn,
plugins
};
function find_pkg_json(path) {
const pkg_json = join(path, "package.json");
try {
require.resolve(pkg_json);
return pkg_json;
} catch (e) {
const parent = join(path, "..");
if (parent === path) return null; // reached the root
return find_pkg_json(parent);
}
}
function find_in_exports(_exports, target) {
for (const key in _exports) {
if (typeof _exports[key] === "string" && _exports[key].endsWith(target)) {
return key;
} else if (typeof _exports[key] === "object") {
for (const subkey in _exports[key]) {
if (_exports[key][subkey].endsWith(target)) {
return key;
}
}
}
}
return null;
}