mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-20 22:28:08 -05:00
The API package was previously Node.js-only due to its dependency on better-sqlite3 and Node.js fs/path modules. This adds a browser build that uses loot-core's existing browser platform implementations (sql.js/WASM, IndexedDB, absurd-sql) instead. Changes: - Add index.web.ts: browser entry point (no Node.js version check or node-fetch polyfill) - Add vite.browser.config.ts: browser-targeted Vite build that resolves to browser platform files (index.ts) instead of Node.js ones (index.api.ts -> index.electron.ts) - Update package.json: conditional exports (browser vs default/node), module field, build:browser script - Update tsconfig.json: exclude new config file from type checking The browser build outputs dist/browser.js (ESM) alongside the existing dist/index.js (CJS/Node). Bundlers that support the "browser" condition in package.json exports will automatically use the browser build. https://claude.ai/code/session_01MnxRXLNjqXrVb5CdsC85Fb
30 lines
784 B
JSON
30 lines
784 B
JSON
{
|
|
"extends": "../../tsconfig.json",
|
|
"compilerOptions": {
|
|
"composite": true,
|
|
// Using ES2021 because that's the newest version where
|
|
// the latest Node 16.x release supports all of the features
|
|
"target": "ES2021",
|
|
"module": "es2022",
|
|
"moduleResolution": "bundler",
|
|
"noEmit": false,
|
|
"declaration": true,
|
|
"declarationMap": true,
|
|
"outDir": "dist",
|
|
"rootDir": ".",
|
|
"declarationDir": "@types",
|
|
"tsBuildInfoFile": "dist/.tsbuildinfo",
|
|
"plugins": [{ "name": "typescript-strict-plugin", "paths": ["."] }]
|
|
},
|
|
"references": [{ "path": "../crdt" }, { "path": "../loot-core" }],
|
|
"include": ["."],
|
|
"exclude": [
|
|
"**/node_modules/*",
|
|
"dist",
|
|
"@types",
|
|
"*.test.ts",
|
|
"*.config.ts",
|
|
"*.browser.config.ts"
|
|
]
|
|
}
|