win32-def
Version:
win32 definitions for node-ffi
34 lines • 1.32 kB
JavaScript
import assert from 'node:assert';
import { processDefList } from './def.helper.js';
import { LoaderCache } from './loader.cache.js';
import { bindFLibExtMethods, bindMethodsFromFuncDefList, createStructFromFuncDefList, loadIKoffiLib, parse_settings, saveFnMultipleChoiceMapperList, } from './loader.helper.js';
export function load(options) {
const { dll, dllFuncs, usedFuncNames } = options;
// const libName = dll.endsWith('.drv') ? prepareDllFile(dll) : dll
const libName = dll;
const opts = parse_settings(options);
const funcDefListMap = processDefList(dllFuncs, usedFuncNames);
assert(dllFuncs);
const inst = {};
let lib = LoaderCache.getLibByName(libName);
if (!lib) {
lib = loadIKoffiLib(libName);
}
if (options.multipleChoiceMapperList) {
saveFnMultipleChoiceMapperList(lib, options.multipleChoiceMapperList);
}
if (opts.autoCreateStruct) {
createStructFromFuncDefList(funcDefListMap);
}
bindMethodsFromFuncDefList({
lib,
inst,
loadOptions: opts,
funcDefList: funcDefListMap,
multipleChoiceMapperList: opts.multipleChoiceMapperList,
forceRegister: !!opts.forceRegister,
});
bindFLibExtMethods(libName, lib, inst);
return inst;
}
//# sourceMappingURL=loader.js.map