UNPKG

spelling-variations

Version:

gives you a word's spelling variations with detection whether it's a UK (English, british) or US (American) variations, also gives you the preferred variation.

113 lines (112 loc) 2.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const patterns = [ { regex: /ellous$/, originalIndex: [0, 5], replacementIndex: [4], replacementString: "elous", }, { regex: /elous$/, originalIndex: [4], replacementIndex: [0, 5], replacementString: "ellous", }, { regex: /s(ation|ational|ations|ationally)$/, originalIndex: [0, 5], replacementIndex: [4, 1], replacementString: "z$1", }, { regex: /z(ation|ational|ations|ationally)$/, originalIndex: [4, 1], replacementIndex: [0, 5], replacementString: "s$1", }, { regex: /ae/, originalIndex: [0, 5], replacementIndex: [4], replacementString: "e", }, { regex: /(i|y)s(e|ed|er|es|ing|ingly|able|ers)$/, originalIndex: [0, 5], replacementIndex: [4, 1], replacementString: "$1z$2", }, { regex: /(i|y)z(e|ed|er|es|ing|ingly|able|ers)$/, originalIndex: [4, 1], replacementIndex: [0, 5], replacementString: "$1s$2", }, { regex: /([^a])esth/, originalIndex: [4, 1], replacementIndex: [0, 5], replacementString: "$1aesth" }, { regex: /oea/, originalIndex: [0, 5], replacementIndex: [4, 1], replacementString: "ea" }, { regex: /^oe/, originalIndex: [0, 5], replacementIndex: [4], replacementString: "e" }, { regex: /fulfil(?!l)/, originalIndex: [0, 5], replacementIndex: [4], replacementString: "fulfill" }, { regex: /fulfill/, originalIndex: [4], replacementIndex: [0, 5], replacementString: "fulfil" }, { regex: /(m|c)oul/, originalIndex: [0, 5], replacementIndex: [4], replacementString: "$1ol" }, { regex: /elled$/, originalIndex: [0, 5], replacementIndex: [4], replacementString: "eled" }, { regex: /([cpviglnbmd])(our)(ed$|ing$|s$|al$|ally$|ful$|$)/, originalIndex: [0], replacementIndex: [4], replacementString: "$1or$3" }, { regex: /(v|m|b|l|d|i|n|c|g|p)our/, originalIndex: [0, 5], replacementIndex: [4], replacementString: "$1or" }, ]; function default_1(word) { var pattern = patterns.find(pattern => pattern.regex.test(word)); if (!pattern) return null; var result = []; var replacement = word.replace(pattern.regex, pattern.replacementString); pattern.originalIndex.forEach(index => result[index] = word); pattern.replacementIndex.forEach(index => result[index] = replacement); return result; } exports.default = default_1; ;