import {is, on, separate, Path} from 'tsfun'; import {copy} from 'tsfun/src/collection'; import {Category} from '../configuration/model/category'; export function sortStructArray(order: string[], path: Path) { return (items: Array): Array => { let source = copy(items); let sortedCategories: Array = []; for (let categoryName of order) { const [match, rest] = separate(on(path, is(categoryName)), source); sortedCategories = sortedCategories.concat(match); source = rest; } return sortedCategories.concat(source as any) as any; } }