From d24fa9dc45b40da2b7ac0e1e361bd3afc7a92268 Mon Sep 17 00:00:00 2001 From: aleidk Date: Wed, 18 Dec 2024 19:22:52 -0300 Subject: [PATCH 1/2] feat: add @mini-strap/core dependency --- .gitmodules | 0 bun.lockb | Bin 0 -> 3569 bytes bunfig.toml | 2 ++ package.json | 9 ++++++--- sass/style.scss | 5 +++++ templates/base.html | 1 + 6 files changed, 14 insertions(+), 3 deletions(-) delete mode 100644 .gitmodules create mode 100755 bun.lockb create mode 100644 bunfig.toml create mode 100644 sass/style.scss diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29..0000000 diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..40627c88cbd0c53628622aeb6db0563212108040 GIT binary patch literal 3569 zcmdT{3rrMO6rIHdaZyC2rBR8yQZN;FW`DpcxG15TRI7s2ia=#qXP1#>cbOSLXcb7b zqEZVgYL(O<{zawH)Y|%qF0}O%wOS+EYUoe#(~qCjrV)GZ?!2;C4;rTe)gz%vI>xe7)h;KRTx zz#|d*U>QaA0G|Oq2>e>`J;A3+_s0&LHzG1U>CnM_K{vzZXSc11EFTsC znu@z`-n5;p?0aKy4KwYXsJ$bH_i!dOUr$-}@rL6oOV-T%f&-eTGOP-k7Ov@#7mlBV zli=$BmjHNw@ZI4e_hHznk+=&G6$^M=8?WF_Q5_EnJ`6zdKKRIvkWNPgZw34az=uLK zoX-=lzXR~2rTzB@Jl3HrM%KRtcmv?Eu@EaYVpk}rZV-hRP*8FSfgb0`g=^rM;G8rr zdYq#@9lpJHJ0bGYJ^e56$tW+cFSUHpZ~d;-WhZ@l>RymNYq+-Lh|n0$Th)XJ2Gc-MJ8d#o9j zg;THGF0eFbmEBK1oVVKXzPq9JTHN$?mxkLjjA6e)lNA1B6DEw%JdTdOs4X!50IaD2#t_I$&8mT|=UBx}?xF^`svrg@Qz20u=!|9g1B0=CSH0KaRv)xV;xk0D#ENfEg zG)jRhWu4YxN`umD=WGtA6~q9s_J>}>Irj6<5@$~k3TTRiLcPue(8rLF?-rgj_9DJ# z_zokFQNm|-fd{`+$b~%UkqbGHi*Qy;Jf%|Zii8YZY*wKWHW>S7ZrVpTNOTX;FM)n` zv&ae}MG<906i%S*jTl-->nKVEYoc}{8puzkp|!LI?*0`Mf*1`xBD#v`BR`oIF#0%( zBFc&=BtO|4BOOC)H5AccL`%UF9jv6IjccI{sLF`Cf+vt$ENyrUW+>!^_L)?bK#+B4 zk9LH><`=O%{qii4&mms&(A`YKX>+=Ne;9$Yuq%8>KALCE)-)1m~pvr(>dAEH5}AF}2HV zV@HW4E>>VbIC};bo^y$#@;L{m7DV3cVk}Oc%@swLFoI!hoJgDPti?Hl6=(!AW*5h} z%$7VD3k-S0I9&Nmq(Rfc5~&-5JdB$0oUVsd?HSUdt<<|;?;gogJZs}1ff5?HW(u^E zw=o_00Z+$79Ye=KF9A;{*p6KS7XKt*$7l_n)nVpg>jaJnPmF~2j6EFsIOLG%iv?-m zfC_a&=Mx2l7_9a-qc@{M#|+NG{cBRbVL; + From 8712d7aa0df19429582e5c20ee750722154d3d82 Mon Sep 17 00:00:00 2001 From: aleidk Date: Thu, 19 Dec 2024 20:27:26 -0300 Subject: [PATCH 2/2] chore: fix sass dependencies management --- .gitignore | 2 ++ .justfile | 3 +++ _scripts/link-dependencies.ts | 47 ++++++++++++++++++++++++++++++++++ bun.lockb | Bin 3569 -> 3569 bytes package.json | 14 +++++----- sass/style.scss | 2 +- tsconfig.json | 35 +++++++++++++++---------- 7 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 _scripts/link-dependencies.ts diff --git a/.gitignore b/.gitignore index 6d4c0aa..0945ee5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +sass/@** + # build output dist/ diff --git a/.justfile b/.justfile index ee0b6e0..a922584 100644 --- a/.justfile +++ b/.justfile @@ -6,3 +6,6 @@ dev: build: @zola build + +link-dependencies: + bun run _scripts/link-dependencies.ts diff --git a/_scripts/link-dependencies.ts b/_scripts/link-dependencies.ts new file mode 100644 index 0000000..f78417a --- /dev/null +++ b/_scripts/link-dependencies.ts @@ -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) { + 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!"); diff --git a/bun.lockb b/bun.lockb index 40627c88cbd0c53628622aeb6db0563212108040..fd62c1faa12c4ac0b0c5a2a8df6cccb2c077a55d 100755 GIT binary patch delta 89 zcmV-f0H*)(8}S>k?E^po$}ei;7=Rm#iw~RfY%aC@L5_#yfco~_<2p)otO8^*d?s;l v{>QA|o^HZVklwG1E>=1yQ8*H(&``E4X(r;cEd;3r23{~OF)lE(+zAx~wMQsi delta 89 zcmV-f0H*)(8}S>k?E^rI`4i}zU_!^w^$ToWIWc+7!lV}+)x>$NKl5Ab{n)RhrHtt^ vEz=M*kw!Qxv35Q!03DOOA!l=SmX7Fh+Zz(IEd;3r1~4u$E-(PI+zAx~*2pKa diff --git a/package.json b/package.json index a649e34..3497cc4 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { "name": "personal-page", - "type": "module", "version": "0.3.0", - "scripts": {}, - "dependencies": { - "@mini-strap/core": "0.1.0" - }, + "module": "index.ts", "devDependencies": { "typescript": "^5.2.2", "@types/bun": "latest" }, - "module": "index.ts" -} + "scripts": {}, + "type": "module", + "dependencies": { + "@mini-strap/core": "^0.1.0" + } +} \ No newline at end of file diff --git a/sass/style.scss b/sass/style.scss index a6bf647..e903ac2 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -1,4 +1,4 @@ -@import "../node_modules/@mini-strap/core/src/style.scss"; +@import "@mini-strap/core/style.scss"; html { // background-color: red; diff --git a/tsconfig.json b/tsconfig.json index bab51e4..238655f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,20 +1,27 @@ { - "extends": "astro/tsconfigs/strict", "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", "jsx": "react-jsx", - "jsxImportSource": "react", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "verbatimModuleSyntax": true, - "baseUrl": ".", - "paths": { - "@components/*": ["src/components/*"], - "@layouts/*": ["src/layouts/*"], - "@assets/*": ["src/assets/*"], - "@locales/*": ["public/locales/*"] - }, - "plugins": [ - { - "name": "@astrojs/ts-plugin" - } - ] + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false } }