Skip to content
James edited this page May 28, 2017 · 12 revisions

⛓ chain-able

NPM version MIT License fliphub flipfam

interfaces that describe their intentions

expressive

traditional

class Traditional {
  build(index, name, object) {
    this.index = index
    this.name = name
    this.object = object
  }
}
const classico = new Traditional()
classico.build(1, 'string', {object: true})

fluent

class Chain extends Chainable {
  constructor(parent) {
    super(parent)
    this.extend(['index', 'name', 'object'])
  }
}
const chain = new Chainable()
  .index(1)
  .name('string')
  .object(true)

🏰 benefits

writing an api using chain-able means writing a single fluent api, but getting 3 apis as a result!

  • 🍉 persistable, rehydratable, & transferrable configurations
  • ⛓ fluent/chainable api
  • 🍦 vanilla object syntax

🎁 features

  • ▶️◀️ easy deep merging
  • 👂 observable
  • 🏗 customizable
    • 🔌 extendable
    • 🎼 composable
    • 🍚 mixins
    • ⚙ configurable
  • 🌐 api
    • 💆 seamless native integration
    • 🍭 iteratable
    • ☮️ compatible
    • 🗣 expressive
  • 🕵 debuggable
  • 🤖 transformable
    • traversable
    • remappable
  • 🛂 validation
  • 🙌 agnostic
  • ⚡ performant & tiny (15kb gzip)
  • 💪 powerful
    • 👾 simplifications of the complex
    • dot-prop
    • nestable factories
    • tap
    • alias
Clone this wiki locally