feat(settings): add emulator-fixed CurrencyType enum

This commit is contained in:
Simo committed 2026-06-27 14:30:47 +02:00
1 parent 8e0ad40c19
commit edbd5c89ba
6 files changed
+73

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
{
"name": "@atomcms/settings",
"version": "0.0.0",
"private": true,
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"scripts": {
"test": "vitest run",
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"typescript": "^5.7.0",
"vitest": "^2.1.0"
}
}
@@ -0,0 +1,16 @@
import { describe, it, expect } from "vitest";
import { CurrencyType, currencyLabel } from "./currency-type.js";
describe("CurrencyType", () => {
it("uses the emulator-fixed numeric values", () => {
expect(CurrencyType.Credits).toBe(-1);
expect(CurrencyType.Duckets).toBe(0);
expect(CurrencyType.Diamonds).toBe(5);
expect(CurrencyType.Points).toBe(101);
});
it("maps each type to a human label", () => {
expect(currencyLabel(CurrencyType.Credits)).toBe("Credits");
expect(currencyLabel(CurrencyType.Diamonds)).toBe("Diamonds");
});
});
+18
View File
@@ -0,0 +1,18 @@
// Numeric values are dictated by the game emulator and MUST NOT change.
export enum CurrencyType {
Credits = -1,
Duckets = 0,
Diamonds = 5,
Points = 101,
}
const LABELS: Record<CurrencyType, string> = {
[CurrencyType.Credits]: "Credits",
[CurrencyType.Duckets]: "Duckets",
[CurrencyType.Diamonds]: "Diamonds",
[CurrencyType.Points]: "Points",
};
export function currencyLabel(type: CurrencyType): string {
return LABELS[type];
}
+5
View File
@@ -0,0 +1,5 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": { "rootDir": "src", "outDir": "dist" },
"include": ["src"]
}
+9
View File
@@ -0,0 +1,9 @@
import { defineConfig } from "vitest/config";
// Local config so Vitest does not walk up into the parent Laravel repo's
// vite.config.js (this monorepo is nested inside the Laravel project).
export default defineConfig({
test: {
environment: "node",
},
});
+9
View File
@@ -24,6 +24,15 @@ importers:
specifier: ^2.1.0 specifier: ^2.1.0
version: 2.1.9(@types/[email protected]) version: 2.1.9(@types/[email protected])
packages/settings:
devDependencies:
typescript:
specifier: ^5.7.0
version: 5.9.3
vitest:
specifier: ^2.1.0
version: 2.1.9(@types/[email protected])
packages: packages:
'@esbuild/[email protected]': '@esbuild/[email protected]':