1.0.2 • Published 10 months ago

require-sliced v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

workflow Jest coverage

require-sliced is a node.js library implementing tools for working with modules whose source code may be partitioned across multiple eponymous files located in different directories.

Consider a large application with the business logic implemented as a set of modules organized in topical directories, say /crm, /hr and so on. It may be convenient to have a common users module with some methods and properties defined in /crm/users.js and others in /hr/users.js. require-sliced lets developers do just that: it features the ModuleMap class designed to act as a registry of modules given as sets of partial source files to be assembled with subclassable-object-merger.

ModuleMap tracks files' modification times and can clean up the require.cache to always yield the last version, which is handy for development environments, but can be turned off with the watch option to avoid the related performance overhead.

Installation

npm i require-sliced

Usage

const {ModuleMap} = require ('require-sliced')

const codeRegistry = new ModuleMap ({
  dir: {           // see https://www.npmjs.com/package/fs-iterators
    root: ['/opt/myProject'], 
//    filter: (str, arr) => arr.at (-1) === 'API', // **/API/*
//    live: false,
  },
// ext: '.js',
// watch: false,   // uncomment to suppress checking for modifications
// merger: new myObjectMerger (someOptions)
})

codeRegistry.load () 
  // all at once: makes sense when watch === false

const usersModule = codeRegistry.get ('users') 
  // merge from all `require ('/opt/myProject/**/API/users.js')`

usersModule.select () // for example

// or just

codeRegistry.getMethod ('users', 'select') ()
1.0.2

10 months ago

1.0.1

11 months ago

1.0.0

11 months ago