Functionally map data into stateful nanocomponents
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
index.js
package.json
screenshot.png
test.js

README.md

nanomap stability

npm version build status downloads js-standard-style

Functionally map data into stateful nanocomponents.

Usage

var Nanomap = require('nanocomponent/map')
var YoutubeComponent = require('youtube-component')
var TwitterComponent = require('twitter-component')
var OEmbedComponent = require('oembed-component')
var simpleMapper = new Nanomap(opts, TwitterComponent)
// OR
var complexMapper = new Nanomap(opts, {
  'video': YoutubeComponent,
  'tweet': TwitterComponent,
  ...,
  default: OEmbedComponent
})

[{
  id: 'foo123',
  opts: { color: 'blue' },
  arguments: {an: 'arg'} // Non-array types passed in as the first argument
}].map(simpleMapper) // Array of rendered DOM nodes from homogeneous components

[{
  id: 'foo123',
  type: 'tweet',
  arguments: ['tweet-url'] // component.render.apply(component, arguments)
}].map(complexMapper) // Array of rendered DOM nodes from a heterogeneous set of components

Installation

$ npm install nanomap

API

Nanomap = require('nanomap)

Import Nanomap component class.

mapper = new Nanomap([opts], Component)

mapper = Nanomap([opts], { type: Component, [default: Component]})

Create a new mapper instance that will render data into component instances.

opts include:

{
  gc: true // clean up unused instances when mapped over
}

See examples for more details.

License

MIT