mirror of
https://gitee.com/myxzgzs/boyue_jnpf.git
synced 2025-08-11 16:52:42 +08:00
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
![]() |
import path from 'path';
|
||
|
import { log } from './utils/log';
|
||
|
let hookFunction;
|
||
|
function getHookFunction(options) {
|
||
|
if (options.hookFunction) {
|
||
|
return options.hookFunction;
|
||
|
}
|
||
|
if (options.hookModulePath) {
|
||
|
const module = require(path.resolve(options.hookModulePath));
|
||
|
if (module.default) {
|
||
|
return module.default;
|
||
|
}
|
||
|
if (typeof module === 'function') {
|
||
|
return module;
|
||
|
}
|
||
|
}
|
||
|
if (!hookFunction) {
|
||
|
throw new Error('No hook function found. Signing will not be possible. Please see the documentation for how to pass a hook function to @electron/windows-sign');
|
||
|
}
|
||
|
return hookFunction;
|
||
|
}
|
||
|
/**
|
||
|
* Sign with a hook function, basically letting everyone
|
||
|
* write completely custom sign logic
|
||
|
*
|
||
|
* @param {InternalSignOptions} options
|
||
|
*/
|
||
|
export async function signWithHook(options) {
|
||
|
hookFunction = getHookFunction(options);
|
||
|
for (const file of options.files) {
|
||
|
try {
|
||
|
await hookFunction(file);
|
||
|
}
|
||
|
catch (error) {
|
||
|
log(`Error signing ${file}`, error);
|
||
|
}
|
||
|
}
|
||
|
}
|