vuexok
vuexok copied to clipboard
Будут ли добавлены ...map операторы?
Библиотека действительно удобная, только не хватает одной вещи для счастья - map функций, вроде mapState, mapGetters
Вот идейка
export function mapGetter<T, K extends (keyof T)[]>(module: T, getters: K): GettersObject<T, K> {
return getters.reduce((acc, curr) => {
acc[curr] = () => module[curr];
return acc;
}, {} as any);
}
type GetArrayKeys<T extends unknown[], P = T[number]> = P extends string ? P : never;
type GettersObject<T, K extends (keyof T)[], P extends string = GetArrayKeys<K>> = {
[X in P]: X extends keyof T ? () => T[X] : never;
};
В коде выглядит вот так
export const RoflModule = createModule('roflModule', {
state: () => ({
counter: '',
}),
getters: {
x2: () => 1312312,
x4: state => state.counter + '4',
x8: state => state.counter + '8',
},
});
...mapGetter(RoflModule.getters, ['x2', 'x4']),
@spb-web ?
Привет. Спасибо за идею. Рассмотрю в ближайшее время и отпишусь
@spb-web Вообще лучше будет просто модуль весь скармливать, а не module.getters
@Giorno-Giovana Сейчас нашел немного времени чтобы добавить хелперы.
Можешь проверить пр?
@spb-web Есть какие-то новости?