diff --git a/.changeset/clean-hoops-reply.md b/.changeset/clean-hoops-reply.md new file mode 100644 index 0000000..734dad2 --- /dev/null +++ b/.changeset/clean-hoops-reply.md @@ -0,0 +1,5 @@ +--- +"@oxa/core": patch +--- + +Export version statically rather than dynamically diff --git a/.changeset/config.json b/.changeset/config.json index ab0968f..02c1fb0 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -2,7 +2,7 @@ "$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json", "changelog": ["@changesets/changelog-github", { "repo": "oxa-dev/oxa" }], "commit": false, - "fixed": [], + "fixed": [["@oxa/core", "oxa"]], "linked": [], "access": "public", "baseBranch": "main", diff --git a/packages/oxa-core/.gitignore b/packages/oxa-core/.gitignore new file mode 100644 index 0000000..7271f1a --- /dev/null +++ b/packages/oxa-core/.gitignore @@ -0,0 +1 @@ +src/version.ts diff --git a/packages/oxa-core/package.json b/packages/oxa-core/package.json index 9267c4e..89ca201 100644 --- a/packages/oxa-core/package.json +++ b/packages/oxa-core/package.json @@ -16,7 +16,8 @@ "dist" ], "scripts": { - "build": "tsc && cp ../../schema/schema.json dist/ && pnpm run build:bundle", + "copy:version": "echo \"const version = '\"$npm_package_version\"';\nexport default version;\" > src/version.ts", + "build": "pnpm run copy:version && tsc && cp ../../schema/schema.json dist/ && pnpm run build:bundle", "build:bundle": "esbuild src/cli.ts --bundle --platform=node --target=node22 --format=cjs --outfile=dist/cli.bundle.cjs --banner:js='#!/usr/bin/env node' --log-override:empty-import-meta=silent", "test": "vitest run", "typecheck": "tsc --noEmit", diff --git a/packages/oxa-core/src/cli.ts b/packages/oxa-core/src/cli.ts index b79a7e6..be93889 100644 --- a/packages/oxa-core/src/cli.ts +++ b/packages/oxa-core/src/cli.ts @@ -5,9 +5,7 @@ */ import { program } from "commander"; -import { readFileSync } from "fs"; -import { fileURLToPath } from "url"; -import { dirname, join } from "path"; +import version from "./version.js"; import { validateFile, validateJson, @@ -82,24 +80,10 @@ async function readStdin(): Promise { return Buffer.concat(chunks).toString("utf-8"); } -/** - * Get package version from package.json. - */ -function getVersion(): string { - try { - const __dirname = dirname(fileURLToPath(import.meta.url)); - const pkgPath = join(__dirname, "..", "package.json"); - const pkg = JSON.parse(readFileSync(pkgPath, "utf-8")); - return pkg.version; - } catch { - return "0.0.0"; - } -} - program .name("oxa") .description("CLI for validating OXA documents") - .version(getVersion()); + .version(version); program .command("validate")