Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

morfine

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

morfine

Pure, stateless wrapper around nanomorph

  • 1.2.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

morfine

Stability NPM version

Pure, stateless wrapper around nanomorph.

Installation

npm i morfine

Usage

var morfine = require('morfine')
var html = require('nanohtml')

window.text = 'hello'

function render () {
  return html`
    <div>
      <a href="#">${window.text}</a>
    </div>
  `
}

var wrapper = morfine(render)
document.body.appendChild(wrapper.el)

// attach optional lifecycle methods
wrapper.beforerender = function (el) {
  console.log(el, ' will be rendered')
}
wrapper.afterrender = function (el) {
  console.log(el, ' was rerendered')
}

// attach the function to window for testing purposes
window.rerender = wrapper.rerender

API

wrapper = morfine(renderer[, beforerender, afterrender])

Takes a renderer function that returns a Node (manually defined or from nanohtml for example). Optionally you can set the lifecycle methods here. You must do this if calling afterrender on the first render is needed. Returns a wrapper object.

wrapper.el

The Node itself. This is what you add to the body.

wrapper.rerender()

Calls the renderer again and morphs the DOM.

wrapper.r()

Alias for wrapper.rerender()

wrapper.beforerender(el)

Optional lifecycle method. Called after the new tree has been generated, but before the wrapper update. You can directly access and modify el.

wrapper.afterrender(el)

Optional lifecycle method. Called after the wrapper has been updated. You can directly access and modify el, the current element in the DOM.

Note: nanocomponent uses the afterupdate name instead of afterrender, but in this case we always try to update, so let's stick to render.

Why?

Similar to what I've tried to achieve in bik, using the power of nanomorph on the lowest level possible in a non-Choo environment. Plus lifecycle methods, because they might come handy.

See Also

Keywords

FAQs

Package last updated on 09 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc