if ab_match_arch loongarch64; then
    abinfo "Overriding Electron mirror for loongarch64 ..."
    export ELECTRON_MIRROR="https://github.com/darkyzhou/electron-loong64/releases/download/"
    export electron_use_remote_checksums=1

    abinfo "Setting ignore-scripts for skipping electron-winstaller's post-install script for loongarch64 ..."
    npm config set ignore-scripts true
fi

abinfo "Installing npm dependencies ..."
npm install --verbose
abinfo "Compiling TypeScript files ..."
npm exec tsc
abinfo "Building web components ..."
npm exec vite build
abinfo "Building electron package ..."
npm exec electron-builder -- --dir
abinfo "Installing built package to /usr/lib ..."
mkdir -pv "$PKGDIR"/usr/lib/openscreen
cp -rv "$SRCDIR"/release/*/linux*-unpacked/* \
    "$PKGDIR"/usr/lib/openscreen/
abinfo "Soft-linking main program to /usr/bin ..."
mkdir -pv "$PKGDIR"/usr/bin
ln -sv ../lib/openscreen/openscreen \
    "$PKGDIR"/usr/bin/openscreen
abinfo "Installing application icon ..."
for i in 16 24 32 48 64 128 256 512 1024; do
    install -Dvm644 "$SRCDIR"/icons/icons/png/${i}x${i}.png \
        "$PKGDIR"/usr/share/icons/hicolor/${i}x${i}/apps/openscreen.png
done
