Store methods

FreeSewing plugins can provide store methods, which facilitate data handling within a pattern.


To provide one or more store methods, your plugin should have a store property that is an array where each member is itself an array with two members:

  • The first member holds the key to attach the method to (in dot notation)
  • The second member holds the method to attach
const myPlugin = {
  name: 'example',
  version: '0.0.1',
  store: [
      function(store, ...params
) {
        store.setIfUnset('logs.panic', new Array())


All store methods receive at least two arguments:

  • store: The store object itself
  • ...params: All additional plugins that were passed to the store method

Overwriting store methods

You are allowed to overwrite existing store methods. As it happens, this is how you should implement a custom logging solution, by overwriting the logging methods under the store’s log key,

However, the following store methods cannot be overwritten:

  • extend()
  • get()
  • push()
  • set()
  • setIfUnset()
  • unset()

Return value

Store methods do not need to return anything. If they do, it will be ignored.