@firestitch/address
Version:
28 lines • 3.38 kB
JavaScript
export function searchCountryRegions(text, regions, limit) {
let matches = [];
text = text.toLowerCase().trim();
regions.forEach((region) => {
const regionName = region.name.toLowerCase().trim();
const index = regionName.indexOf(text);
if (index > -1) {
matches.push({
index,
region,
});
}
});
matches.sort((a, b) => {
if (a.index < b.index) {
return -1;
}
else if (a.index > b.index) {
return 1;
}
return 0;
});
if (limit) {
matches = matches.slice(0, limit);
}
return matches.map((match) => match.region);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvdW50cnktcmVnaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaGVscGVycy9zZWFyY2gtY291bnRyeS1yZWdpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsSUFBWSxFQUNaLE9BQTZDLEVBQzdDLEtBQWM7SUFFZCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFakIsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDekIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLEtBQUs7Z0JBQ0wsTUFBTTthQUNQLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEIsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ1osQ0FBQzthQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUM7SUFFWCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQWRkcmVzc0NvdW50cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2FkZHJlc3MtY291bnRyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUFkZHJlc3NSZWdpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2FkZHJlc3MtcmVnaW9uLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaENvdW50cnlSZWdpb25zKFxuICB0ZXh0OiBzdHJpbmcsXG4gIHJlZ2lvbnM6IElBZGRyZXNzUmVnaW9uW10gfCBJQWRkcmVzc0NvdW50cnlbXSxcbiAgbGltaXQ/OiBudW1iZXIsXG4pOiBJQWRkcmVzc1JlZ2lvbltdIHtcbiAgbGV0IG1hdGNoZXMgPSBbXTtcblxuICB0ZXh0ID0gdGV4dC50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgcmVnaW9ucy5mb3JFYWNoKChyZWdpb24pID0+IHtcbiAgICBjb25zdCByZWdpb25OYW1lID0gcmVnaW9uLm5hbWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgY29uc3QgaW5kZXggPSByZWdpb25OYW1lLmluZGV4T2YodGV4dCk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgbWF0Y2hlcy5wdXNoKHtcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHJlZ2lvbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgbWF0Y2hlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgaWYgKGEuaW5kZXggPCBiLmluZGV4KSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG5cbiAgfSk7XG5cbiAgaWYgKGxpbWl0KSB7XG4gICAgbWF0Y2hlcyA9IG1hdGNoZXMuc2xpY2UoMCwgbGltaXQpO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXMubWFwKChtYXRjaCkgPT4gbWF0Y2gucmVnaW9uKTtcbn1cbiJdfQ==