aweary / react-copy-write

✍️ Immutable state with a mutable API
MIT License
1.79k stars 54 forks source link

[rcw] Proposal to add a 2nd optional parameter to `mutate` #48

Open shengmin opened 6 years ago

shengmin commented 6 years ago

Just to continue our discussion around adding a 2nd optional parameter to mutate to pass additional information/options that might be needed by different 'plugins' (eg. devtools). I'm proposing the following (basically allow each plugin to reserve one slot in the option object):

type Option = {
  // ... core options
  // plugin options
  pluginA?: {
     isDevMode: boolean,
  },
  pluginB?: {
    mutationName: string,
  },
};

// Could also use Symbol to reserve the slot when flow supports it