UNPKG

1.36 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.createRegularIndex = exports.createMulticharIndex = exports.emptyRegularIndex = exports.emptyMulticharIndex = void 0;
4exports.emptyMulticharIndex = {};
5exports.emptyRegularIndex = {};
6function extendIndex(item, index) {
7 var currentIndex = index;
8 for (var pos = 0; pos < item.length; pos++) {
9 var isLast = pos === item.length - 1;
10 var char = item.charAt(pos);
11 var charIndex = currentIndex[char] || (currentIndex[char] = { chars: {} });
12 if (isLast) {
13 charIndex.self = item;
14 }
15 currentIndex = charIndex.chars;
16 }
17}
18function createMulticharIndex(items) {
19 if (items.length === 0) {
20 return exports.emptyMulticharIndex;
21 }
22 var index = {};
23 for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
24 var item = items_1[_i];
25 extendIndex(item, index);
26 }
27 return index;
28}
29exports.createMulticharIndex = createMulticharIndex;
30function createRegularIndex(items) {
31 if (items.length === 0) {
32 return exports.emptyRegularIndex;
33 }
34 var result = {};
35 for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {
36 var item = items_2[_i];
37 result[item] = true;
38 }
39 return result;
40}
41exports.createRegularIndex = createRegularIndex;