Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
type StoreModel = {
user: UserModel;
audit: AuditModel;
};
const userModel: UserModel = {
login: thunk((dispatch, payload) => {}),
logout: action((state, payload) => {}),
};
createStore({
user: userModel,
audit: {
logs: [],
log: action((state, payload) => {}),
userListeners: listen(on => {
on(
userModel.login,
thunk((actions, payload, helpers) => {
const { dispatch, getState, injections, meta } = helpers;
actions.log(`Logged in ${payload.username}`);
getState().logs.length;
dispatch.audit.log('Foo');
injections.id + 7331;
meta.parent.concat(meta.path);
}),
);
on(
userModel.logout,
thunk((actions, payload, helpers) => {
const {
dispatch,
},
});
const { token } = await response.json();
actions.loggedIn(token);
}),
};
const store = createStore({
audit: {
logs: [],
set: action((state, payload) => {
state.logs.push(payload);
}),
getNLog: select(state => (n: number) =>
state.logs.length > n ? state.logs[n] : undefined,
),
newUserListeners: listen(on => {
on(
userModel.login,
thunk((actions, payload) => {
actions.set(`Logging in ${payload.username}`);
}),
);
}),
},
todos: {
items: [],
firstItem: select(state =>
state.items.length > 0 ? state.items[0] : undefined,
),
addTodo: action((state, payload) => {
state.items.push(payload);
}),
import { Action, action, Listen, listen, thunk } from "easy-peasy";
import todosModel from "./todos";
export interface NotificationModel {
msg: string;
set: Action;
listeners: Listen;
}
const notification: NotificationModel = {
msg: "",
set: action((state, payload) => {
state.msg = payload;
}),
listeners: listen(on => {
on(todosModel.add, thunk((actions, payload) => {
actions.set(`Added "${payload}" to todos`);
}));
})
};
export default notification;