stylebot-harmony/scripts/build-css-module-def.ts
2023-08-03 20:09:32 -04:00

30 lines
723 B
JavaScript
Executable File

#!/usr/bin/env -S node -r esbin
import fs from "fs"
import { uniq } from "lodash"
import { writeFormatted } from "./utils"
const modules = [
"src/vendor/allotment/src/allotment.module.css",
"src/vendor/allotment/src/sash.module.css",
]
for (const module of modules) {
const source = fs.readFileSync(module, "utf8")
const classNames = uniq(
Array.from(source.matchAll(/\.([a-z][a-z0-9_-]+)/gi), m => m[1]),
)
writeFormatted(
module + ".d.ts",
[
"// This file is generated by scripts/build-css-module-def.ts",
"",
"declare const classNames: {", //
...classNames.map(c => ` "${c}": string;`),
"}",
"",
"export default classNames;",
].join("\n"),
)
}