UNPKG

win32-def

Version:
34 lines 1.32 kB
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