mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-07 12:28:57 -05:00
* [AI] sync-server: use workspace reference for @actual-app/crdt Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Update build script in sync-server package to use TypeScript's build mode * Package electron * [AI] crdt: add conditional exports so Node can load the built bundle Before this change the root exports entry pointed at `./src/index.ts`, so any pure-Node consumer (notably the sync server that Electron forks as a utility process) failed to import `@actual-app/crdt` — Node can't execute TypeScript source directly. Sync-server had been masking this by pulling `@actual-app/crdt@npm:2.1.0` where `publishConfig.exports` resolves to `./dist/index.js`; once sync-server switched to `workspace:*`, the Functional Desktop App CI job timed out waiting for the sync server to boot. Switch to conditional exports in the same shape `@actual-app/api` already uses: - `types` → `./dist/index.d.ts` for TypeScript tooling - `development` → `./src/index.ts` for Vite/Vitest (HMR, fast feedback) - `default` → `./dist/index.js` for Node runtime Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
87 lines
1.8 KiB
Bash
Executable File
87 lines
1.8 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
|
|
ROOT=`dirname $0`
|
|
RELEASE=""
|
|
CI=${CI:-false}
|
|
|
|
cd "$ROOT/.."
|
|
POSITIONAL=()
|
|
SKIP_EXE_BUILD=false
|
|
SKIP_TRANSLATIONS=false
|
|
while [[ $# -gt 0 ]]; do
|
|
key="$1"
|
|
|
|
case $key in
|
|
--release)
|
|
RELEASE="production"
|
|
shift
|
|
;;
|
|
--skip-exe-build)
|
|
SKIP_EXE_BUILD=true
|
|
shift
|
|
;;
|
|
--skip-translations)
|
|
SKIP_TRANSLATIONS=true
|
|
shift
|
|
;;
|
|
*)
|
|
POSITIONAL+=("$1")
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
|
|
set -- "${POSITIONAL[@]}"
|
|
|
|
if [ $SKIP_TRANSLATIONS == false ]; then
|
|
# Get translations
|
|
echo "Updating translations..."
|
|
if ! [ -d packages/desktop-client/locale ]; then
|
|
git clone https://github.com/actualbudget/translations packages/desktop-client/locale
|
|
fi
|
|
|
|
pushd packages/desktop-client/locale > /dev/null
|
|
|
|
git checkout .
|
|
git pull
|
|
popd > /dev/null
|
|
packages/desktop-client/bin/remove-untranslated-languages
|
|
fi
|
|
|
|
export NODE_OPTIONS="--max-old-space-size=4096"
|
|
|
|
yarn workspace @actual-app/crdt build
|
|
yarn workspace plugins-service build
|
|
yarn workspace @actual-app/core build:node
|
|
yarn workspace @actual-app/web build --mode=desktop # electron specific build
|
|
|
|
# required for running the sync-server server
|
|
yarn workspace @actual-app/core build:browser
|
|
yarn workspace @actual-app/web build:browser
|
|
yarn workspace @actual-app/sync-server build
|
|
|
|
# Emit @actual-app/core declarations so desktop-electron (which includes typings/window.ts) can build
|
|
yarn workspace @actual-app/core exec tsgo -p tsconfig.json
|
|
|
|
yarn workspace desktop-electron update-client
|
|
|
|
(
|
|
cd packages/desktop-electron;
|
|
yarn clean;
|
|
|
|
if [ $SKIP_EXE_BUILD == true ]; then
|
|
echo "Building the dist"
|
|
yarn build:dist
|
|
echo "Skipping exe build"
|
|
else
|
|
if [ "$RELEASE" == "production" ]; then
|
|
yarn build
|
|
|
|
echo "Created release"
|
|
else
|
|
yarn build
|
|
fi
|
|
fi
|
|
)
|