@vendure/ngx-translate-extract
Version:
Extract strings from projects using ngx-translate
21 lines (20 loc) • 736 B
JavaScript
const SORT_SENSITIVITY_SET = new Set(['base', 'accent', 'case', 'variant']);
export class SortByKeyPostProcessor {
name = 'SortByKey';
sortSensitivity;
constructor(sortSensitivity) {
if (isSortSensitivityType(sortSensitivity)) {
this.sortSensitivity = sortSensitivity;
}
else {
throw new Error(`Unknown sortSensitivity: ${sortSensitivity}`);
}
}
process(draft) {
const compareFn = this.sortSensitivity ? new Intl.Collator('en', { sensitivity: this.sortSensitivity }).compare : undefined;
return draft.sort(compareFn);
}
}
function isSortSensitivityType(keyInput) {
return keyInput === undefined || SORT_SENSITIVITY_SET.has(keyInput);
}