Skip to content

Commit 34faaba

Browse files
committed
refactor(scripts): convert to TypeScript
1 parent 09fdc3f commit 34faaba

16 files changed

+72
-95
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
"scripts": {
99
"dev": "bunx --bun astro dev",
1010
"build": "bunx --bun astro build",
11-
"build:lib": "bun scripts/index.js",
12-
"package": "bun scripts/npm-package.js",
11+
"build:lib": "bun scripts/index.ts",
12+
"package": "bun scripts/npm-package.ts",
1313
"test:unit": "bun test tests/*.ts",
1414
"test:e2e": "playwright test",
1515
"format": "bunx --bun prettier --write .",

scripts/build-languages.js renamed to scripts/build-languages.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
// @ts-check
21
import hljs from "highlight.js";
3-
import { createMarkdown } from "./utils/create-markdown.js";
4-
import { mkdir } from "./utils/fs.js";
5-
import { toCamelCase } from "./utils/to-pascal-case.js";
6-
import { writeTo } from "./utils/write-to.js";
2+
import { createMarkdown } from "./utils/create-markdown";
3+
import { mkdir } from "./utils/fs";
4+
import { toCamelCase } from "./utils/to-pascal-case";
5+
import { writeTo } from "./utils/write-to";
6+
import type { ModuleNames } from "./build-styles";
77

88
export async function buildLanguages() {
99
console.time("build languages");
@@ -20,8 +20,7 @@ export async function buildLanguages() {
2020
register: LanguageFn;
2121
}\n\n`;
2222

23-
/** @type {import("./build-styles").ModuleNames} */
24-
let lang = [];
23+
let lang: ModuleNames = [];
2524

2625
languages.forEach(async (name) => {
2726
let moduleName = name;

scripts/build-styles.js renamed to scripts/build-styles.ts

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
1-
// @ts-check
2-
import path from "path";
1+
import path from "node:path";
32
import { totalist } from "totalist";
4-
import { createMarkdown } from "./utils/create-markdown.js";
5-
import { copyFile, mkdir, readFile } from "./utils/fs.js";
6-
import { minifyCss } from "./utils/minify-css.js";
7-
import { toCamelCase } from "./utils/to-pascal-case.js";
8-
import { writeTo } from "./utils/write-to.js";
3+
import { createMarkdown } from "./utils/create-markdown";
4+
import { copyFile, mkdir, readFile } from "./utils/fs";
5+
import { minifyCss } from "./utils/minify-css";
6+
import { toCamelCase } from "./utils/to-pascal-case";
7+
import { writeTo } from "./utils/write-to";
98

10-
/**
11-
* @typedef {Array<{ name: string; moduleName: string; }>} ModuleNames
12-
*/
9+
export type ModuleNames = Array<{ name: string; moduleName: string }>;
1310

1411
export async function buildStyles() {
1512
console.time("build styles");
1613
mkdir("src/styles");
1714

1815
let scoped_styles = "";
19-
20-
/** @type {string[]} */
21-
let names = [];
22-
23-
/** @type {ModuleNames} */
24-
let styles = [];
16+
let names: string[] = [];
17+
let styles: ModuleNames = [];
2518

2619
await totalist("node_modules/highlight.js/styles", async (file, absPath) => {
2720
/**

scripts/index.js

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

scripts/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { buildLanguages } from "./build-languages";
2+
import { buildStyles } from "./build-styles";
3+
import { mkdir } from "./utils/fs";
4+
5+
(async () => {
6+
mkdir("www/data");
7+
8+
await buildLanguages();
9+
await buildStyles();
10+
})();

scripts/npm-package.js renamed to scripts/npm-package.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
// @ts-check
21
import fs from "node:fs";
3-
import { copyFile, mkdir, writeFile } from "./utils/fs.js";
2+
import { mkdir, writeFile } from "./utils/fs";
43

54
async function npmPackage() {
65
console.time("package");
76

87
mkdir("./package");
98

10-
await copyFile("./package.json", "./package/package.json");
11-
await copyFile("./README.md", "./package/README.md");
12-
await copyFile("./LICENSE", "./package/LICENSE");
9+
await Bun.write("./package/package.json", Bun.file("./package.json"));
10+
await Bun.write("./package/README.md", Bun.file("./README.md"));
11+
await Bun.write("./package/LICENSE", Bun.file("./LICENSE"));
1312

1413
// Copy source folder to package
1514
mkdir("./package/src");

scripts/utils/create-markdown.js renamed to scripts/utils/create-markdown.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
// @ts-check
21
import fs from "node:fs";
32

43
const pkg = JSON.parse(
54
fs.readFileSync(new URL("../../package.json", import.meta.url), "utf8"),
65
);
76

8-
/**
9-
* Creates header metadata for supported languages/styles
10-
* @type {(type: "Languages" | "Styles", len: number) => string}
11-
*/
12-
export const createMarkdown = (type, len) =>
7+
/** Creates header metadata for supported languages/styles */
8+
export const createMarkdown = (type: "Languages" | "Styles", len: number) =>
139
`
1410
# Supported ${type}
1511

scripts/utils/fs.js renamed to scripts/utils/fs.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
// @ts-check
21
import fs from "node:fs";
32
import fsp from "node:fs/promises";
43

5-
/** @type {(dir: string, noRemove?: boolean) => void} */
6-
export const mkdir = (dir) => {
4+
export const mkdir = (dir: string) => {
75
if (fs.existsSync(dir)) {
86
fs.rmSync(dir, { recursive: true });
97
}

scripts/utils/index.js

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

scripts/utils/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export { createMarkdown } from "./create-markdown";
2+
export { toCamelCase } from "./to-pascal-case";
3+
export { writeTo } from "./write-to";

0 commit comments

Comments
 (0)