chore: refactor compiler type build scripts to happen on install (#2128)

This commit is contained in:
Dylan Piercey 2024-02-29 08:23:25 -07:00 committed by GitHub
parent a541ab394d
commit 94de01ad64
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 55 additions and 55 deletions

View File

@ -7,7 +7,7 @@
"scripts": {
"build": "npm run build --ws && npm run build:types",
"build:sizes": "npm run build --ws && node -r ~ts scripts/sizes.ts",
"build:types": "npm run build:types --ws --if-present && tsc -b tsconfig.build.json",
"build:types": "tsc -b tsconfig.build.json",
"change": "changeset add",
"ci:test": "cross-env NODE_OPTIONS=\"--max-old-space-size=4096\" MARKO_DEBUG=1 c8 npm test",
"format": "npm run lint:eslint -- --fix && npm run lint:prettier -- --write",

View File

@ -25,7 +25,7 @@
"index.d.ts"
],
"scripts": {
"build": "babel ./src --out-dir ./dist --delete-dir-on-start --copy-files --config-file ../../babel.config.js --env-name=production"
"build": "babel ./src --out-dir ./dist --copy-files --config-file ../../babel.config.js --env-name=production"
},
"dependencies": {
"@babel/runtime": "^7.23.9",

View File

@ -67,8 +67,8 @@
"register.d.ts"
],
"scripts": {
"build": "babel ./src --out-dir ./dist --delete-dir-on-start --copy-files --config-file ../../babel.config.js --env-name=production",
"build:types": "node scripts/types-babel-types.mjs > ./dist/types.d.ts && node scripts/types-babel-traverse.js > ./dist/traverse.d.ts"
"build": "babel ./src --out-dir ./dist --copy-files --config-file ../../babel.config.js --env-name=production",
"prepare": "node -r ~ts scripts/types"
},
"dependencies": {
"@babel/code-frame": "^7.23.5",

View File

@ -0,0 +1,8 @@
import "../src/babel-types/types/patch";
import fs from "fs";
import babelTraverseCode from "./types/babel-traverse";
import babelTypesCode from "./types/babel-types";
fs.mkdirSync("dist", { recursive: true });
fs.writeFileSync("dist/types.d.ts", babelTypesCode);
fs.writeFileSync("dist/traverse.d.ts", babelTraverseCode);

View File

@ -26,9 +26,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
***********************************************************************************************/
const fs = require("fs");
require("../dist/babel-types/types/patch");
const { MARKO_TYPES } = require("../dist/babel-types/types/definitions");
import fs from "fs";
import { MARKO_TYPES } from "../../src/babel-types/types/definitions";
const HUB_INTERFACE = "export interface HubInterface {";
const HUB_CLASS =
@ -43,27 +42,23 @@ const ASSERT =
"// #region ------------------------- assertXXX -------------------------";
const BREAK = "\n ";
fs.readFile(
const data = fs.readFileSync(
require.resolve("@types/babel__traverse/index.d.ts"),
"utf8",
(err, data) => {
if (err) return console.error(err);
[HUB_INTERFACE, HUB_CLASS, IMPORT, EXPORT_NODE, IS, ASSERT].forEach(
(str) => {
if (data.indexOf(str) === -1) {
console.error(
`Unable to find \`${str}\` in @types/babel__traverse/index.d.ts`,
);
process.exit(1);
}
},
);
[HUB_INTERFACE, HUB_CLASS, IMPORT, EXPORT_NODE, IS, ASSERT].forEach((str) => {
if (data.indexOf(str) === -1) {
console.error(
`Unable to find \`${str}\` in @types/babel__traverse/index.d.ts`,
);
process.exit(1);
}
});
var result = data
.replace(
HUB_INTERFACE,
`export interface BabelFile {
var result = data
.replace(
HUB_INTERFACE,
`export interface BabelFile {
ast: t.File,
path: NodePath<t.Program>,
hub: HubInterface,
@ -77,32 +72,30 @@ fs.readFile(
${HUB_INTERFACE}
file: BabelFile;`,
)
.replace(
HUB_CLASS,
`${HUB_CLASS}
)
.replace(
HUB_CLASS,
`${HUB_CLASS}
file: BabelFile;`,
)
.replace(IMPORT, `import * as t from './types'`)
.replace(EXPORT_NODE, "type Node = t.Node")
.replace(NODE_PATH_GET, "")
.replace(
IS,
IS +
BREAK +
MARKO_TYPES.map(
(t) => `is${t}(opts?: object | null): this is NodePath<t.${t}>;`,
).join(BREAK),
)
.replace(
ASSERT,
ASSERT +
BREAK +
MARKO_TYPES.map(
(t) => `assert${t}(opts?: object | null): void;`,
).join(BREAK),
);
)
.replace(IMPORT, `import * as t from './types'`)
.replace(EXPORT_NODE, "type Node = t.Node")
.replace(NODE_PATH_GET, "")
.replace(
IS,
IS +
BREAK +
MARKO_TYPES.map(
(t) => `is${t}(opts?: object | null): this is NodePath<t.${t}>;`,
).join(BREAK),
)
.replace(
ASSERT,
ASSERT +
BREAK +
MARKO_TYPES.map((t) => `assert${t}(opts?: object | null): void;`).join(
BREAK,
),
);
process.stdout.write(result);
},
);
export default result;

View File

@ -26,7 +26,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
***********************************************************************************************/
import "../dist/babel-types/types/patch.js";
import * as t from "@babel/types";
let code = `// NOTE: This file is autogenerated. Do not modify.
@ -371,7 +370,7 @@ code += lines.join("\n") + "\n";
//
process.stdout.write(code);
export default code;
//

View File

@ -61,7 +61,7 @@
"tags-html.d.ts"
],
"scripts": {
"build": "babel ./src --out-dir ./dist --delete-dir-on-start --copy-files --config-file ../../babel.config.js --env-name=production"
"build": "babel ./src --out-dir ./dist --copy-files --config-file ../../babel.config.js --env-name=production"
},
"dependencies": {
"@marko/compiler": "^5.34.7",

View File

@ -25,7 +25,7 @@
"index.d.ts"
],
"scripts": {
"build": "babel ./src --out-dir ./dist --delete-dir-on-start --copy-files --config-file ../../babel.config.js --env-name=production"
"build": "babel ./src --out-dir ./dist --copy-files --config-file ../../babel.config.js --env-name=production"
},
"dependencies": {
"@babel/runtime": "^7.23.9",