@kunlun-qilian/create-app-cli
Version:
## Scaffolding Your First webapp Project
25 lines (19 loc) • 688 B
text/typescript
import { StateCreator, StoreMutatorIdentifier } from "zustand";
type Logger = <
T,
Mps extends [StoreMutatorIdentifier, unknown][] = [],
Mcs extends [StoreMutatorIdentifier, unknown][] = [],
>(
f: StateCreator<T, Mps, Mcs>,
name?: string,
) => StateCreator<T, Mps, Mcs>;
type LoggerImpl = <T>(f: StateCreator<T, [], []>, name?: string) => StateCreator<T, [], []>;
const loggerImpl: LoggerImpl = (f, name) => (set, get, store) => {
const loggedSet: typeof set = (...a) => {
set(...a);
console.log(...(name ? [`${name}:`] : []), get());
};
store.setState = loggedSet;
return f(loggedSet, get, store);
};
export const logger = loggerImpl as unknown as Logger;