chore: fix sass dependencies management
This commit is contained in:
parent
d24fa9dc45
commit
8712d7aa0d
7 changed files with 81 additions and 22 deletions
47
_scripts/link-dependencies.ts
Normal file
47
_scripts/link-dependencies.ts
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env bun
|
||||
|
||||
import { fileURLToPath } from 'url';
|
||||
import fs from "node:fs/promises";
|
||||
import { basename, normalize } from "node:path";
|
||||
|
||||
function ignore_exist_error(fn: (...args: any[]) => Promise<void>) {
|
||||
return async (...args: any[]) => {
|
||||
try {
|
||||
await fn(...args);
|
||||
} catch (error: any) {
|
||||
if (error.code !== 'EEXIST') {
|
||||
throw error; // Re-throw the error if it's not "file exists"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const mkdir = ignore_exist_error(fs.mkdir);
|
||||
const symlink = ignore_exist_error(fs.symlink);
|
||||
|
||||
|
||||
const def = await Bun.file("package.json").json();
|
||||
|
||||
const dependencies = Object.keys(def.dependencies);
|
||||
|
||||
for (const pkg of dependencies) {
|
||||
const path = normalize(fileURLToPath(import.meta.resolve(pkg)));
|
||||
const file = Bun.file(import.meta.resolve(pkg));
|
||||
const type = file.type.split(";").at(0);
|
||||
const filename = basename(path);
|
||||
|
||||
switch (type) {
|
||||
case "text/x-scss":
|
||||
await mkdir(`sass/${pkg}`)
|
||||
await symlink(path, `sass/${pkg}/${filename}`);
|
||||
console.log(`${path} -> sass/${pkg}/${filename}`)
|
||||
break;
|
||||
case "text/javascript":
|
||||
// console.log("es JS")
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
console.log();
|
||||
console.log("Dependencies linked!");
|
||||
Loading…
Add table
Add a link
Reference in a new issue