UNPKG

diner

Version:

DinerJS is a re-implementation of Redux that uses a consistent metaphor so you can quickly grasp it.

49 lines (35 loc) 1.15 kB
const baconAndEggs = require('./baconAndEggs'); const diner = { owner: { hire: (cook, cleanBill = {}) => { let dinersClubMembers = []; let bill = cleanBill; const prepare = (ticket) => { bill = cook(bill, ticket); dinersClubMembers.forEach(clubMember => clubMember()); }; prepare({menuItem: '"We stopped to eat breakfast at a diner run by a white-haired lady who gave us extra-large portions of potatoes as church-bells rang in the nearby town. Then off again." - Jack Kerouac, On the Road'}); const serve = () => { return bill; }; const frequent = dinersClubMember => { dinersClubMembers.push(dinersClubMember); const dinersClubMembership = { leaveDinersClub: () => { const regularTable = dinersClubMembers.indexOf(dinersClubMember); dinersClubMembers.splice(regularTable, 1); } }; return dinersClubMembership; }; const restaurant = { serve, frequent, prepare, baconAndEggs }; return restaurant; } } }; module.exports = diner;