Files
test-repo/scripts/build/packages/plugin-hermes.js
T
2026-06-23 08:44:23 +08:00

67 lines
1.9 KiB
JavaScript

import path from "node:path";
import { outdent } from "outdent";
import { DIST_DIR, PACKAGES_DIRECTORY } from "../../utilities/index.js";
import { createJavascriptModuleBuilder } from "../builders/javascript-module.js";
import { getPackageFile } from "../utilities.js";
import {
createPackageMetaFilesConfig,
createTypesConfig,
} from "./config-helpers.js";
const packageConfig = {
packageName: "@prettier/plugin-hermes",
sourceDirectory: path.join(PACKAGES_DIRECTORY, "plugin-hermes"),
distDirectory: path.join(DIST_DIR, "plugin-hermes"),
modules: [],
};
const mainModule = {
name: "Entries",
files: [
{
input: "index.js",
output: "index.mjs",
build: createJavascriptModuleBuilder({
platform: "universal",
addDefaultExport: true,
replaceModule: [
{
module: getPackageFile("hermes-parser/dist/HermesParser.js"),
process(text) {
text = outdent`
const Buffer = globalThis.Buffer ?? require("buffer/").Buffer;
${text}
`;
return text;
},
},
{
module: getPackageFile("hermes-parser/dist/HermesParserWASM.js"),
process(text) {
text = outdent`
const Buffer = globalThis.Buffer ?? require("buffer/").Buffer;
${text}
`;
text = text.replaceAll("process.argv", "[]");
text = text.replaceAll('require("fs")', "undefined");
text = text.replaceAll('require("path")', "undefined");
return text;
},
},
],
format: "esm",
}),
playground: true,
},
...createTypesConfig({ input: "index.js", isPlugin: true }),
],
};
packageConfig.modules.push(mainModule, createPackageMetaFilesConfig());
export default packageConfig;