From the processors available in eunice-processors, the JavaScript NPM package runs the following automatically:
  1. Reverse file content. Requires option is-file-content-reversed.
  2. Filename "index" is removed from identifiers.
  3. Items that are files have "type: file" added to them.
  4. Items are ordered by their identifiers.
  5. Items are grouped by their identifiers (this is requires the previous ordering step).
  6. Ensure there is a single root item with an identifier. Requires option root-item or package-names.
  7. Variables that depend on a single item of the same name are removed (e.g. some CommonJS requires or ES6 imports).
  8. Items are ordered so parameters, variables and files are last.
  9. Modify the stacks of all files, but not the sub-stacks within those files. Requires option modify-stacks.
  10. The source directory is scanned for any files named .eunice-stack.yaml. Any structure defined inside these files is applied to any files also in the directory.
  11. Anonymous items (i.e. those without an identifier) with "type: export" (e.g. module export default) are given the identifier of their parent.
  12. Independent items (i.e. those that don't depend on each other) are unstacked into the same level.
  13. If there is a single root item, that is anonymous and has only items and a type, its items are flattened out into the root