@nullvoxpopuli/ember-composable-helpers
Version:
Composable helpers for Ember
18 lines (14 loc) • 451 B
text/typescript
import { helper } from '@ember/component/helper';
import { isArray as isEmberArray } from '@ember/array';
import asArray from '../utils/as-array.ts';
export function flatten<T>(array: T[]): T[] {
if (!isEmberArray(array)) {
return array;
}
return asArray(array).reduce<T[]>((flattened, el) => {
return flattened.concat(flatten(el as T[]));
}, []);
}
export default helper(function <T>([array]: [T[]]) {
return flatten(array);
});