@snirp/contractions
Version:
Typescript multiple-string replacement library, for natural language processing (NLP) and general use
23 lines (22 loc) • 887 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const contractions_1 = __importDefault(require("./maps/contractions"));
const slang_1 = __importDefault(require("./maps/slang"));
const defaultOptions = {
convertSlang: true,
convertContractions: true,
customMap: {},
};
const decontract = (str, { customMap, convertContractions, convertSlang } = defaultOptions) => {
const map = {
...(convertContractions && contractions_1.default),
...(convertSlang && slang_1.default),
...customMap,
};
const re = new RegExp("\\b(?:" + Object.keys(map).join("|") + ")\\b", "gi");
return str.replace(re, (matched) => map[matched.toLowerCase()] || "");
};
exports.default = decontract;