UNPKG

cld3-asm

Version:

WebAssembly based Javascript bindings for google compact language detector 3

38 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var utf8_1 = require("utf8"); var cldAsmModule_1 = require("./cldAsmModule"); var munge_vector = function (vector) { var size = vector.size(); var ret = []; for (var idx = 0; idx < size; idx++) { ret.push(vector.get(idx)); } return ret; }; /** * @internal * Creates a factory function for mounting files into wasm filesystem * and creating language identifier instance. * * @param {CldAsmModule} asmModule wasm / asm module loaded into memory. * * @returns {CldFactory} Factory function manages lifecycle of cld3 language identifier. */ exports.cldLoader = function (asmModule) { return ({ create: function (minBytes, maxBytes) { if (minBytes === void 0) { minBytes = asmModule.NNetLanguageIdentifier.kMinNumBytesToConsider; } if (maxBytes === void 0) { maxBytes = asmModule.NNetLanguageIdentifier.kMaxNumBytesToConsider; } var identifier = new asmModule.NNetLanguageIdentifier(minBytes, maxBytes); return { findLanguage: function (text) { return identifier.FindLanguage(utf8_1.encode(text)); }, findMostFrequentLanguages: function (text, numLangs) { var resultVector = identifier.FindTopNMostFreqLangs(utf8_1.encode(text), numLangs); var resultArray = munge_vector(resultVector); return resultArray.filter(function (x) { return !!x && !!x.language && x.language !== cldAsmModule_1.UnknownLanguage; }); }, dispose: function () { return identifier.delete(); } }; } }); }; //# sourceMappingURL=cldLoader.js.map