---
source: /Users/xorcist/.cargo/registry/src/github.com-1ecc6299db9ec823/wasmer-pack-testing-0.7.0/src/autodiscover.rs
---
const fs = require("fs/promises");
const { Polyvalid: _Polyvalid } = require("./polyvalid/polyvalid.js");
class Bindings {
constructor() {
this._cache = {}
}
/** Lazily fetch and compile the WebAssembly module */
async _getModule(filename) {
if (filename in this._cache) {
return this._cache[filename];
}
const wasm = await fs.readFile(`${__dirname}/${filename}`);
this._cache[filename] = await WebAssembly.compile(wasm);
return this._cache[filename];
}
async polyvalid(options) {
const wrapper = new _Polyvalid();
const module = await this._getModule("polyvalid/polyvalid.wasm");
const imports = options?.imports || {};
await wrapper.instantiate(module, imports);
return wrapper;
}
}
module.exports = { Bindings };