hoist

Synchronous mappings:

Usage no npm install needed!

<script type="module">
  import hoist from 'https://cdn.skypack.dev/hoist';
</script>

README

Hoist makes it easy to transform your objects.

Hoist Transformer

Synchronous mappings:

var hoist = require("hoist");
var castNumValue = hoist.cast(Number).map(function(num) {
  return {
    value: num
  }
});

var castArray = house.cast(Array);

console.log(castNumValue("5")); //{ value: 5 }
console.log(castNumValue({ value: 5 })); //{ value: 5 }
console.log(castArray(5)); //[5]
console.log(castArray([5])); //5

Asynchronous mappings:

var castNumValue = hoist.cast(Number).map(function(num, next) {
  setTimeout(next, 500, null, { value: num });
});

castNumValue("5", function(err, result) {
  console.log(result); //{ value: 5 }
})

castNumValue("5"); //error thrown for casting against asynchronous caster