UNPKG

confusablematcher-js-interop

Version:

TypeScript NAPI Interop for ConfusableMatcher.

30 lines (23 loc) 992 B
import type { IIndexOfOptions, IResult, Mapping, StrPosPointer } from '..'; import { ConfusableMatcher, EReturnStatus } from '..'; const map: Mapping[] = [['Z', 'Ž']]; const skips: string[] = [' ', '_', '-']; const cm = new ConfusableMatcher(map, skips, true); const input = 'Žebras are a short, stocky animal that is generally about 8 feet long and stands between 4 and 5 feet at the shoulder.'; const needle = 'Zebras'; let strPosPtrs: StrPosPointer | undefined = cm.computeStringPosPointers(needle); const options: Partial<IIndexOfOptions> = { matchOnWordBoundary: true, matchRepeating: true, needlePosPointers: strPosPtrs, startFromEnd: false, startIndex: 0, timeoutNs: 1e6, // 1 ms }; const result: IResult = cm.indexOfSync(input, needle, options); cm.freeStringPosPointers(strPosPtrs); strPosPtrs = undefined; delete options.needlePosPointers; const status: EReturnStatus = result.status; console.table({ ...result, status: EReturnStatus[status] });