Tiny script for preparing web assets for deployment

Compare changes

Choose any two refs to compare.

Changed files
+34 -30
.tangled
workflows
src
+3 -1
.tangled/workflows/npm_publish.yml
··· 2 2 - event: ["push"] 3 3 branch: ["master"] 4 4 5 + engine: "nixery" 6 + 5 7 dependencies: 6 8 nixpkgs: 7 9 - nodejs ··· 12 14 command: "npm install" 13 15 14 16 - name: "tsc" 15 - nommand: "npx tsc && echo 'done.'" 17 + command: "npx tsc && echo 'done.'" 16 18 17 19 - name: "npm publish" 18 20 command: "git log -1 --pretty=%B | grep -q '^publish new version' && npm set //registry.npmjs.org/:_authToken=${NPM_TOKEN} && npm publish || exit 0"
+1 -1
README.md
··· 1 1 # build-shit 2 2 3 - [![GitHub License](https://img.shields.io/github/license/CorySanin/build-shit)](https://github.com/CorySanin/build-shit/blob/master/LICENSE) 3 + [![GitHub License](https://img.shields.io/github/license/CorySanin/build-shit)](https://tangled.sh/@sanin.dev/build-shit/blob/master/LICENSE) 4 4 [![NPM Version](https://img.shields.io/npm/v/forking-build-shit)](https://www.npmjs.com/package/forking-build-shit) 5 5 [![NPM Unpacked Size](https://img.shields.io/npm/unpacked-size/forking-build-shit)](https://www.npmjs.com/package/forking-build-shit) 6 6
+20 -19
package-lock.json
··· 1 1 { 2 2 "name": "forking-build-shit", 3 - "version": "1.0.2", 3 + "version": "1.0.5", 4 4 "lockfileVersion": 3, 5 5 "requires": true, 6 6 "packages": { 7 7 "": { 8 8 "name": "forking-build-shit", 9 - "version": "1.0.2", 9 + "version": "1.0.5", 10 10 "license": "MIT", 11 11 "dependencies": { 12 12 "csso": "5.0.5", 13 - "sass": "1.90.0", 13 + "sass": "1.93.2", 14 14 "uglify-js": "3.19.3" 15 15 }, 16 16 "bin": { 17 - "build-shit": "bin/build-shit.js" 17 + "build-shit": "bin/build-shit.js", 18 + "forking-build-shit": "bin/build-shit.js" 18 19 }, 19 20 "devDependencies": { 20 21 "@sindresorhus/tsconfig": "8.0.1", 21 22 "@types/csso": "^5.0.4", 22 - "@types/node": "^24.3.0", 23 + "@types/node": "^24.7.2", 23 24 "@types/uglify-js": "^3.17.5", 24 - "typescript": "5.9.2" 25 + "typescript": "5.9.3" 25 26 } 26 27 }, 27 28 "node_modules/@parcel/watcher": { ··· 351 352 } 352 353 }, 353 354 "node_modules/@types/node": { 354 - "version": "24.3.0", 355 - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", 356 - "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", 355 + "version": "24.7.2", 356 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.2.tgz", 357 + "integrity": "sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==", 357 358 "dev": true, 358 359 "license": "MIT", 359 360 "dependencies": { 360 - "undici-types": "~7.10.0" 361 + "undici-types": "~7.14.0" 361 362 } 362 363 }, 363 364 "node_modules/@types/uglify-js": { ··· 544 545 } 545 546 }, 546 547 "node_modules/sass": { 547 - "version": "1.90.0", 548 - "resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz", 549 - "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==", 548 + "version": "1.93.2", 549 + "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz", 550 + "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", 550 551 "license": "MIT", 551 552 "dependencies": { 552 553 "chokidar": "^4.0.0", ··· 596 597 } 597 598 }, 598 599 "node_modules/typescript": { 599 - "version": "5.9.2", 600 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", 601 - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", 600 + "version": "5.9.3", 601 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 602 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 602 603 "dev": true, 603 604 "license": "Apache-2.0", 604 605 "bin": { ··· 622 623 } 623 624 }, 624 625 "node_modules/undici-types": { 625 - "version": "7.10.0", 626 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", 627 - "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", 626 + "version": "7.14.0", 627 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", 628 + "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", 628 629 "dev": true, 629 630 "license": "MIT" 630 631 }
+9 -8
package.json
··· 1 1 { 2 2 "name": "forking-build-shit", 3 - "version": "1.0.2", 3 + "version": "1.0.5", 4 4 "description": "Tiny script for preparing web assets for deployment", 5 - "homepage": "https://github.com/CorySanin/build-shit#readme", 5 + "homepage": "https://tangled.org/@sanin.dev/build-shit#readme", 6 6 "bugs": { 7 - "url": "https://github.com/CorySanin/build-shit/issues" 7 + "url": "https://tangled.org/@sanin.dev/build-shit/issues" 8 8 }, 9 9 "dependencies": { 10 10 "csso": "5.0.5", 11 - "sass": "1.90.0", 11 + "sass": "1.93.2", 12 12 "uglify-js": "3.19.3" 13 13 }, 14 14 "devDependencies": { 15 15 "@sindresorhus/tsconfig": "8.0.1", 16 16 "@types/csso": "^5.0.4", 17 - "@types/node": "^24.3.0", 17 + "@types/node": "^24.7.2", 18 18 "@types/uglify-js": "^3.17.5", 19 - "typescript": "5.9.2" 19 + "typescript": "5.9.3" 20 20 }, 21 21 "repository": { 22 22 "type": "git", 23 - "url": "git+https://github.com/CorySanin/build-shit.git" 23 + "url": "git+https://tangled.org/@sanin.dev/build-shit" 24 24 }, 25 25 "license": "MIT", 26 26 "author": { ··· 31 31 "type": "module", 32 32 "main": "bin/build-shit.js", 33 33 "bin": { 34 - "build-shit": "./bin/build-shit.js" 34 + "build-shit": "./bin/build-shit.js", 35 + "forking-build-shit": "./bin/build-shit.js" 35 36 }, 36 37 "scripts": { 37 38 "build": "tsc"
+1 -1
src/build-shit.ts
··· 75 75 await mkdir([SCRIPTSOUTDIR, SCRIPTSDIR]); 76 76 await emptyDir(SCRIPTSOUTDIR); 77 77 const files = await fsp.readdir(SCRIPTSDIR); 78 - await Promise.all(files.map(f => new Promise(async (res, reject) => { 78 + await Promise.all(files.filter(f => f.toLowerCase().endsWith('.js')).map(f => new Promise(async (res, _) => { 79 79 const p = path.join(SCRIPTSDIR, f); 80 80 const o = path.join(SCRIPTSOUTDIR, f); 81 81 console.log(`Processing script ${p}`);