New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

funky

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

funky

Front-end view system using basic functional programming and template literals.

2.3.0
latest
npm
Version published
Weekly downloads
2
-60%
Maintainers
1
Weekly downloads
 
Created
Source

Funky

Front-end view system using basic functional programming and template literals.

Usage

funk | funk.view
var funk = require('funky')
var docview = funk`
  <div class="container">
    ${item => item.text}
  </div>
`

document.body.appendChild(docview({text: "Hello World!"}))

The funk and funk.view are function handlers for string template literals. The return value is a function.

When called this function returns a DOM element with some properties added. Any variables passed to the view function are passed to every function in the template literal and the element will use the return values from those functions.

element.update()
var funk = require('funky')
var docview = funk`
  <div class="container" id="${item => item.id}">
    ${item => item.text}
  </div>
`

document.body.appendChild(docview({text: "Hello World!", id: 'hello'}))

var element = docview({text: "Hello Second Line.", id: 'second-hello'})
document.body.appendChild(element)

// Update content 3 seconds after adding to DOM.
setTimeout(() => {
  element.update({text: "Updated, Hello Second Line.", id: 'second-hello'})
  document.getElementById('hello').update({text: "Updated", id: "hello"})
}, 1000 * 3)

DOM elements created by funky views have a method attached named update. This function is used to update the element with new values as if they had been passed to the original view creation.

Below the surface this uses yo-yo.update which uses efficient DOM diffing.

funk.list

List views are designed to operate almost exactly like regular JavaScript Arrays except when items are removed, added, or re-ordered, new views are rendered to the DOM.

var simpleview = funk`
  <div class="container">
    ${text => text}
  </div>
`
var list = funk.list(simpleview, ["Hello World!", "Hello Second Line."])
document.body.appendChild(list.node)

The list.node property is the DOM node that can be attached.

List views can also directly be passed into other views.

var simpleview = funk`
  <div class="container">
    ${text => text}
  </div>
`
var list = funk.list(simpleview, ["Hello World!", "Hello Second Line."])
var listContainer = funk`<div id=${id => id}">${list}</div>`('list-container')
document.body.appendChild(listContainer)

FAQs

Package last updated on 21 Nov 2016

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