diff --git a/.gitignore b/.gitignore index 83d1a01..8d3ebf9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ build dist cache node_modules -.tsbuildinfo \ No newline at end of file +.tsbuildinfo +asajs.config.js \ No newline at end of file diff --git a/.npmignore b/.npmignore index 3525fde..24a9309 100644 --- a/.npmignore +++ b/.npmignore @@ -5,4 +5,6 @@ src test .gitignore .tsbuildinfo -tsconfig.json \ No newline at end of file +tsconfig.json +asajs.config.js +build \ No newline at end of file diff --git a/package.json b/package.json index acfb461..ba1bea4 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "scripts": { "build": "tsc", "dev": "tsc --watch", - "test": "bun test/app.ts", + "test": "bun test/app.ts --test", "prefetch": "bun scripts/prefetch", "vanilla:defs": "bun scripts/vanilladefs", "gen:enums": "bun scripts/enum", diff --git a/src/compilers/Configuration.ts b/src/compilers/Configuration.ts index edd05dc..6df0b8b 100644 --- a/src/compilers/Configuration.ts +++ b/src/compilers/Configuration.ts @@ -4,22 +4,27 @@ import path from "path" import { Config } from "../../config.js" import { createRequire } from "module" -if (!fs.existsSync("asajs.config.js")) { - fs.copyFileSync("node_modules/asajs/resources/asajs.config.js", "asajs.config.js") +const options: Record = {} + +for (const arg of process.argv) { + if (arg.startsWith("--")) options[arg.slice(2)] = true } -if (!fs.existsSync(".gitignore")) { - fs.writeFileSync(".gitignore", `node_modules`, "utf-8") +export const isTestMode = options["test"] ?? false + +if (!fs.existsSync("asajs.config.js")) { + fs.copyFileSync( + isTestMode ? "resources/asajs.config.js" : "node_modules/asajs/resources/asajs.config.js", + "asajs.config.js", + ) } export const config: Config = createRequire(import.meta.url)(path.resolve(process.cwd(), "asajs.config.js")).config -export let isBuildMode = config.compiler?.enabled ?? false -export let isLinkMode = config.compiler?.autoImport ?? false -export let unLinked = !(config.compiler?.autoImport ?? true) +export const isBuildMode = options["build"] ?? config.compiler?.enabled ?? false +export const isLinkMode = options["link"] ?? config.compiler?.autoImport ?? false +export const unLinked = options["unlink"] ?? !(config.compiler?.autoImport ?? true) -for (const arg of process.argv) { - if (arg === "--build") isBuildMode = true - if (arg === "--link") isLinkMode = true - else if (arg === "--unlink") unLinked = true +if (!fs.existsSync(".gitignore")) { + fs.writeFileSync(".gitignore", `node_modules`, "utf-8") } diff --git a/src/compilers/ui/builder.ts b/src/compilers/ui/builder.ts index e06cb11..af6f775 100644 --- a/src/compilers/ui/builder.ts +++ b/src/compilers/ui/builder.ts @@ -1,4 +1,4 @@ -import { config, isBuildMode, isLinkMode, unLinked } from "../Configuration.js" +import { config, isBuildMode, isLinkMode, isTestMode, unLinked } from "../Configuration.js" import { Memory } from "../Memory.js" import { createBuildFolder, gamePath, getBuildFolderName, linkToGame, unlink } from "./linker.js" import { genManifest, version } from "./manifest.js" @@ -56,7 +56,12 @@ async function buildUI() { BuildCache.set("version", version).then(() => Log("INFO", "version set!")), fs .stat("build/pack_icon.png") - .catch(() => fs.copyFile("node_modules/asajs/resources/pack_icon.png", "build/pack_icon.png")) + .catch(() => + fs.copyFile( + isTestMode ? "resources/pack_icon.png" : "node_modules/asajs/resources/pack_icon.png", + "build/pack_icon.png", + ), + ) .then(() => Log("INFO", "build/pack_icon.png copied!")), ])