From 3fe52e549282d91dd0a991ce5b4bb7a410278104 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Mon, 3 Nov 2025 21:21:29 -0500 Subject: [PATCH] Use constants for paths --- browser-manifest.json | 2 +- build.js | 54 ++++++++++++++++++++++------------- dist/birb.js | 2 +- dist/extension.zip | Bin 147747 -> 147747 bytes dist/extension/birb.js | 2 +- dist/extension/manifest.json | 2 +- dist/userscript/birb.user.js | 4 +-- 7 files changed, 40 insertions(+), 26 deletions(-) diff --git a/browser-manifest.json b/browser-manifest.json index 43bf50d..89baa28 100644 --- a/browser-manifest.json +++ b/browser-manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2025.11.3.10", + "version": "2025.11.3.21", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/build.js b/build.js index 3ff16b1..518379c 100644 --- a/build.js +++ b/build.js @@ -4,20 +4,34 @@ import { rollup } from 'rollup'; import { readFileSync, writeFileSync, mkdirSync, unlinkSync, cpSync, createWriteStream } from 'fs'; import archiver from 'archiver'; +// Path constants +const SRC_DIR = "./src"; +const SPRITES_DIR = "./sprites"; +const IMAGES_DIR = "./images"; +const FONTS_DIR = "./fonts"; +const DIST_DIR = "./dist"; + +const BROWSER_MANIFEST = "./browser-manifest.json"; +const STYLESHEET_PATH = SRC_DIR + "/stylesheet.css"; +const APPLICATION_ENTRY = SRC_DIR + "/application.js"; +const BUNDLED_OUTPUT = DIST_DIR + "/birb.bundled.js"; +const BIRB_OUTPUT = DIST_DIR + "/birb.js"; +const USERSCRIPT_DIR = DIST_DIR + "/userscript"; +const EXTENSION_DIR = DIST_DIR + "/extension"; +const EXTENSION_ZIP = DIST_DIR + "/extension.zip"; + const spriteSheets = [ { key: "__SPRITE_SHEET__", - path: "./sprites/birb.png" + path: SPRITES_DIR + "/birb.png" }, { key: "__FEATHER_SPRITE_SHEET__", - path: "./sprites/feather.png" + path: SPRITES_DIR + "/feather.png" } ]; -const STYLESHEET_PATH = "./src/stylesheet.css"; const STYLESHEET_KEY = "___STYLESHEET___"; -const BROWSER_MANIFEST = "./browser-manifest.json"; const now = new Date(); const versionDate = `${now.getFullYear()}.${now.getMonth() + 1}.${now.getDate()}`; @@ -70,20 +84,20 @@ const userScriptHeader = // Bundle with rollup const bundle = await rollup({ - input: 'src/application.js', + input: APPLICATION_ENTRY, }); await bundle.write({ - file: 'dist/birb.bundled.js', + file: BUNDLED_OUTPUT, format: 'iife', }); await bundle.close(); -let birbJs = readFileSync('dist/birb.bundled.js', 'utf8'); +let birbJs = readFileSync(BUNDLED_OUTPUT, 'utf8'); // Delete bundled file -unlinkSync('./dist/birb.bundled.js'); +unlinkSync(BUNDLED_OUTPUT); // Replace version placeholder birbJs = birbJs.replaceAll('__VERSION__', version); @@ -99,33 +113,33 @@ const stylesheetContent = readFileSync(STYLESHEET_PATH, 'utf8'); birbJs = birbJs.replace(STYLESHEET_KEY, stylesheetContent); // Build standard javascript file -writeFileSync('./dist/birb.js', birbJs); +writeFileSync(BIRB_OUTPUT, birbJs); // Build user script -mkdirSync('./dist/userscript', { recursive: true }); +mkdirSync(USERSCRIPT_DIR, { recursive: true }); const userScript = userScriptHeader + birbJs; -writeFileSync('./dist/userscript/birb.user.js', userScript); +writeFileSync(USERSCRIPT_DIR + '/birb.user.js', userScript); // Build browser extension -mkdirSync('./dist/extension', { recursive: true }); +mkdirSync(EXTENSION_DIR, { recursive: true }); // Copy birb.js -writeFileSync('./dist/extension/birb.js', birbJs); +writeFileSync(EXTENSION_DIR + '/birb.js', birbJs); // Copy manifest.json const manifestContent = readFileSync(BROWSER_MANIFEST, 'utf8'); -writeFileSync('./dist/extension/manifest.json', manifestContent); +writeFileSync(EXTENSION_DIR + '/manifest.json', manifestContent); // Copy icons folder -mkdirSync('./dist/extension/images/icons', { recursive: true }); -cpSync('./images/icons/transparent', './dist/extension/images/icons/transparent', { recursive: true }); +mkdirSync(EXTENSION_DIR + '/images/icons', { recursive: true }); +cpSync(IMAGES_DIR + '/icons/transparent', EXTENSION_DIR + '/images/icons/transparent', { recursive: true }); // Copy fonts folder -mkdirSync('./dist/extension/fonts', { recursive: true }); -cpSync('./fonts', './dist/extension/fonts', { recursive: true }); +mkdirSync(EXTENSION_DIR + '/fonts', { recursive: true }); +cpSync(FONTS_DIR, EXTENSION_DIR + '/fonts', { recursive: true }); // Compress extension folder into zip -const output = createWriteStream('./dist/extension.zip'); +const output = createWriteStream(EXTENSION_ZIP); const archive = archiver('zip'); output.on('close', () => { @@ -137,7 +151,7 @@ archive.on('error', (err) => { }); archive.pipe(output); -archive.directory('./dist/extension/', false); +archive.directory(EXTENSION_DIR + '/', false); archive.finalize(); console.log(`Build complete: ${version}`); \ No newline at end of file diff --git a/dist/birb.js b/dist/birb.js index a54a94c..8238205 100644 --- a/dist/birb.js +++ b/dist/birb.js @@ -1867,7 +1867,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.3.10", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.10"); }, false), + new MenuItem("2025.11.3.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.21"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension.zip b/dist/extension.zip index 52d5f521104a6d5c046fa5f1410560139c0ecc02..bee307181bcf21ee5410cf81b609546e24e58393 100644 GIT binary patch delta 8423 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 K#TRj)$o~M(nS?$7 delta 8423 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 L(~CVZpz!|y>Vs{W diff --git a/dist/extension/birb.js b/dist/extension/birb.js index a54a94c..8238205 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -1867,7 +1867,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.3.10", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.10"); }, false), + new MenuItem("2025.11.3.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.21"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension/manifest.json b/dist/extension/manifest.json index 43bf50d..89baa28 100644 --- a/dist/extension/manifest.json +++ b/dist/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2025.11.3.10", + "version": "2025.11.3.21", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index c668e1d..40a1f10 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Pocket Bird // @namespace https://idreesinc.com -// @version 2025.11.3.10 +// @version 2025.11.3.21 // @description It's a bird that hops around your web browser, the future is here // @author Idrees // @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js @@ -1881,7 +1881,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2025.11.3.10", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.10"); }, false), + new MenuItem("2025.11.3.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2025.11.3.21"); }, false), ]; const styleElement = document.createElement("style");