Skip to content

Commit f36b704

Browse files
authored
build: update scripts for Prettier v3, switch to ESM (#581)
* build: remove uneeded `fix-package-json` script * build: switch to ESM for scripts * style: replace tabs for spaces for consistency * build(typescript.mjs): remove need for intermediate variable * style: prettier * build: update lint script
1 parent b5b99d1 commit f36b704

File tree

7 files changed

+55
-68
lines changed

7 files changed

+55
-68
lines changed

.github/workflows/release.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ jobs:
1818
cache: npm
1919
- run: npm ci
2020
- run: npm run build
21-
- name: "Fix pkg.files file pattern"
22-
run: node scripts/fix-package-json.js
2321
- run: npx semantic-release
2422
env:
2523
GITHUB_TOKEN: ${{ secrets.OCTOKITBOT_PAT }}

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
"scripts": {
1212
"build": "node scripts/build.mjs && tsc -p tsconfig.json",
1313
"docs": "typedoc --readme none --out docs src/index.ts && touch docs/.nojekyll",
14-
"lint": "prettier --check \"{src,test,scripts}/**/*.{js,ts,json}\" README.md package.json !src/generated/* !scripts/update-endpoints/generated/*",
15-
"lint:fix": "prettier --write \"{src,test,scripts}/**/*.{js,ts,json}\" README.md package.json !src/generated/* !scripts/update-endpoints/generated/*",
14+
"lint": "prettier --check \"{src,test,scripts}/**/*.{js,mjs,ts,json}\" README.md package.json !src/generated/* !scripts/update-endpoints/generated/*",
15+
"lint:fix": "prettier --write \"{src,test,scripts}/**/*.{js,mjs,ts,json}\" README.md package.json !src/generated/* !scripts/update-endpoints/generated/*",
1616
"pretest": "npm run -s lint",
1717
"test": "npx tsc --project tsconfig.test.json",
1818
"update-endpoints": "npm-run-all update-endpoints:*",
19-
"update-endpoints:fetch-json": "node scripts/update-endpoints/fetch-json",
20-
"update-endpoints:typescript": "node scripts/update-endpoints/typescript",
21-
"update-endpoints:package": "node scripts/update-endpoints/package"
19+
"update-endpoints:fetch-json": "node scripts/update-endpoints/fetch-json.mjs",
20+
"update-endpoints:typescript": "node scripts/update-endpoints/typescript.mjs",
21+
"update-endpoints:package": "node scripts/update-endpoints/package.mjs"
2222
},
2323
"repository": "github:octokit/types.ts",
2424
"keywords": [

scripts/build.mjs

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,33 @@
11
import { copyFile, readFile, writeFile, rm, mkdir } from "node:fs/promises";
22

3-
43
async function main() {
5-
// Start with a clean slate
6-
await rm("pkg", { recursive: true, force: true });
7-
await mkdir("pkg");
4+
// Start with a clean slate
5+
await rm("pkg", { recursive: true, force: true });
6+
await mkdir("pkg");
87

9-
// Copy the README, LICENSE to the pkg folder
10-
await copyFile("LICENSE", "pkg/LICENSE");
11-
await copyFile("README.md", "pkg/README.md");
8+
// Copy the README, LICENSE to the pkg folder
9+
await copyFile("LICENSE", "pkg/LICENSE");
10+
await copyFile("README.md", "pkg/README.md");
1211

13-
// Handle the package.json
14-
let pkg = JSON.parse((await readFile("package.json", "utf8")).toString());
15-
// Remove unnecessary fields from the package.json
16-
delete pkg.scripts;
17-
delete pkg.prettier;
18-
delete pkg.release;
19-
delete pkg.jest;
20-
await writeFile(
21-
"pkg/package.json",
22-
JSON.stringify(
23-
{
24-
...pkg,
25-
files: ["dist-types/**"],
26-
types: "dist-types/index.d.ts",
27-
sideEffects: false,
28-
},
29-
null,
30-
2
31-
)
32-
);
12+
// Handle the package.json
13+
let pkg = JSON.parse((await readFile("package.json", "utf8")).toString());
14+
// Remove unnecessary fields from the package.json
15+
delete pkg.scripts;
16+
delete pkg.prettier;
17+
delete pkg.release;
18+
delete pkg.jest;
19+
await writeFile(
20+
"pkg/package.json",
21+
JSON.stringify(
22+
{
23+
...pkg,
24+
files: ["dist-types/**"],
25+
types: "dist-types/index.d.ts",
26+
sideEffects: false,
27+
},
28+
null,
29+
2,
30+
),
31+
);
3332
}
3433
main();

scripts/fix-package-json.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

scripts/update-endpoints/fetch-json.js renamed to scripts/update-endpoints/fetch-json.mjs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
const { writeFileSync } = require("fs");
2-
const path = require("path");
1+
import { writeFileSync } from "fs";
2+
import { resolve } from "path";
3+
import { fileURLToPath } from "url";
34

4-
const graphql = require("github-openapi-graphql-query");
5-
const prettier = require("prettier");
5+
import graphql from "github-openapi-graphql-query";
6+
import { format } from "prettier";
67

78
if (!process.env.VERSION) {
89
throw new Error(`VERSION environment variable must be set`);
910
}
1011

12+
const __dirname = fileURLToPath(new URL(".", import.meta.url));
13+
1114
const version = process.env.VERSION.replace(/^v/, "");
1215

1316
const QUERY = `
@@ -39,8 +42,8 @@ async function main() {
3942
});
4043

4144
writeFileSync(
42-
path.resolve(__dirname, "generated", "endpoints.json"),
43-
prettier.format(JSON.stringify(endpoints), {
45+
resolve(__dirname, "generated", "endpoints.json"),
46+
await format(JSON.stringify(endpoints), {
4447
parser: "json",
4548
}),
4649
);

scripts/update-endpoints/package.js renamed to scripts/update-endpoints/package.mjs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
const { writeFileSync } = require("fs");
1+
import { writeFileSync, readFileSync } from "fs";
22

33
if (!process.env.VERSION) {
44
throw new Error(`VERSION environment variable must be set`);
55
}
66

7-
const pkg = require("../../package.json");
7+
const parentDir = new URL("../..", import.meta.url);
8+
const pkg = JSON.parse(
9+
readFileSync(new URL("package.json", parentDir), "utf8"),
10+
);
811

912
if (!pkg.octokit) {
1013
pkg.octokit = {};

scripts/update-endpoints/typescript.js renamed to scripts/update-endpoints/typescript.mjs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
const { readFileSync, writeFileSync } = require("fs");
2-
const { resolve } = require("path");
1+
import { readFileSync, writeFileSync } from "fs";
2+
import { resolve } from "path";
33

4-
const Handlebars = require("handlebars");
5-
const prettier = require("prettier");
6-
const sortKeys = require("sort-keys");
4+
import handlebars from "handlebars";
5+
import { format } from "prettier";
6+
import sortKeys from "sort-keys";
77

8-
const ENDPOINTS = require("./generated/endpoints.json");
8+
const ENDPOINTS = JSON.parse(
9+
readFileSync(new URL("generated/endpoints.json", import.meta.url), "utf8"),
10+
);
911
const ENDPOINTS_PATH = resolve(
1012
process.cwd(),
1113
"src",
@@ -20,7 +22,7 @@ const ENDPOINTS_TEMPLATE_PATH = resolve(
2022
"endpoints.ts.template",
2123
);
2224

23-
const template = Handlebars.compile(
25+
const template = handlebars.compile(
2426
readFileSync(ENDPOINTS_TEMPLATE_PATH, "utf8"),
2527
);
2628

@@ -63,10 +65,7 @@ async function run() {
6365
endpointsByRoute: sortKeys(endpointsByRoute, { deep: true }),
6466
});
6567

66-
writeFileSync(
67-
ENDPOINTS_PATH,
68-
prettier.format(result, { parser: "typescript" }),
69-
);
68+
writeFileSync(ENDPOINTS_PATH, await format(result, { parser: "typescript" }));
7069
console.log(`${ENDPOINTS_PATH} updated.`);
7170
}
7271

0 commit comments

Comments
 (0)