chain-able
Version:
interfaces that describe their intentions.
53 lines (45 loc) • 1.41 kB
JavaScript
// core
const ChainedMap = require('./ChainedMap')
const Chainable = require('./Chainable')
const ChainedSet = require('./ChainedSet')
// merge
const MergeChain = require('./MergeChain')
const dopemerge = require('./deps/dopemerge')
const traverse = require('./deps/traverse')
// easy
const FactoryChain = require('./FactoryChain')
const MethodChain = require('./MethodChain')
// composer
const compose = require('./compose')
// export
const exp = compose()
exp.chainable = parent => new exp(parent)
exp.builder = obj => new MethodChain(obj)
exp.Chain = exp
exp.compose = compose
// deps
exp.traverse = traverse
exp.addMethodFactories = MethodChain.add
exp.toArr = require('./deps/to-arr') // exp.toarr =
exp.camelCase = require('./deps/camel-case')
exp.dot = require('./deps/dot')
exp.matcher = require('./deps/matcher')
exp.is = require('./deps/is')
exp.reduce = require('./deps/reduce')
exp.clean = require('./deps/reduce/clean')
exp.meta = require('./deps/meta')
exp.eq = require('./deps/traversers/eq')
exp.types = require('./deps/validators')
exp.addTypes = exp.types.addTypes
// core
exp.Chainable = Chainable
exp.ChainedSet = ChainedSet
exp.ChainedMap = ChainedMap
exp.FactoryChain = FactoryChain
exp.MethodChain = MethodChain
// merge
exp.MergeChain = MergeChain
exp.merge = dopemerge
// @NOTE: no need for exporting as an __esModule,
// it adds additional checking wrapper
module.exports = exp