TidGi-Desktop/scripts/beforeAsar.js
2023-05-19 11:22:38 +08:00

36 lines
1.6 KiB
JavaScript

/* eslint-disable @typescript-eslint/no-unsafe-call */
/* eslint-disable unicorn/import-style */
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable security/detect-child-process */
/* eslint-disable @typescript-eslint/no-unsafe-argument */
/* eslint-disable unicorn/prevent-abbreviations */
/**
* Remove all .lproj files
* Based on https://ganeshrvel.medium.com/electron-builder-afterpack-configuration-5c2c986be665
* Adapted for electron forge https://github.com/electron-userland/electron-forge/issues/2248
*/
const path = require('path');
const glob = require('glob');
const fs = require('fs-extra');
const util = require('util');
/**
* @param {*} buildPath /var/folders/qj/7j0zx32d0l75zmnrl1w3m3b80000gn/T/electron-packager/darwin-x64/TidGi-darwin-x64/Electron.app/Contents/Resources/app
* @param {*} electronVersion 12.0.6
* @param {*} platform darwin
* @param {*} arch x64
* @returns
*/
exports.default = async (buildPath, electronVersion, platform, arch, callback) => {
const cwd = path.resolve(buildPath, '..');
/** delete useless lproj files to make it clean */
const duplicatedLocalization = glob.sync('**/.webpack/main/localization/**', { cwd });
const duplicatedElectronDist = glob.sync('**/.webpack/main/native_modules/dist/**', { cwd });
const outFiles = glob.sync('**/.webpack/out/**', { cwd });
const pathsToRemove = [...duplicatedLocalization, ...duplicatedElectronDist, ...outFiles].map((directory) => path.join(cwd, directory));
await Promise.all(pathsToRemove.map((directory) => fs.remove(directory).catch((error) => console.error(error))));
/** complete this hook */
callback();
};