Skip to content

Commit

Permalink
lazyness, close #2
Browse files Browse the repository at this point in the history
  • Loading branch information
tunnckoCore committed Oct 17, 2015
1 parent b9428cd commit 4dda797
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 15 deletions.
21 changes: 9 additions & 12 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,26 @@

'use strict'

var letta = require('letta')
var isError = require('is-typeof-error')
var isNodeStream = require('is-node-stream')
var isChildProcess = require('is-child-process')
var utils = require('./utils')

module.exports = function lettaValue (val) {
if (isNodeStream(val) || isChildProcess(val)) {
return letta(require('on-stream-end'), require('stream-exhaust')(val))
if (utils.isNodeStream(val) || utils.isChildProcess(val)) {
return utils.letta(utils.onStreamEnd, utils.streamExhaust(val))
}
if (val && typeof val.subscribe === 'function') {
if (val.value) {
return letta(function () {
return utils.letta(function () {
return val.value
})
}
return letta(subscribe, val)
return utils.letta(subscribe, val)
}
if (isError(val)) {
return letta(function () {
if (utils.isTypeofError(val)) {
return utils.letta(function () {
throw val
})
}
return letta(function () {
return utils.letta(function () {
return val
})
}
Expand All @@ -40,6 +37,6 @@ module.exports = function lettaValue (val) {

function subscribe (val, callback) {
val.subscribe(function noop () {}, callback, function onComplete () {
callback.apply(this, [null].concat(require('sliced')(arguments)))
callback.apply(this, [null].concat(utils.sliced(arguments)))
}.bind(this))
}
8 changes: 5 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
"is-child-process": "^1.0.0",
"is-node-stream": "^1.0.0",
"is-typeof-error": "^1.0.1",
"letta": "^0.2.0",
"lazy-cache": "^0.2.3",
"letta": "*",
"on-stream-end": "^1.0.0",
"sliced": "^1.0.1",
"stream-exhaust": "^1.0.1"
Expand All @@ -24,7 +25,8 @@
"rx": "^4.0.1"
},
"files": [
"index.js"
"index.js",
"utils.js"
],
"keywords": [
"array",
Expand Down Expand Up @@ -60,4 +62,4 @@
"thunkgs",
"yield"
]
}
}
28 changes: 28 additions & 0 deletions utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* jshint asi:true */

'use strict'

/**
* Lazily required module dependencies
*/

var utils = require('lazy-cache')(require) // eslint-disable-line no-undef, no-native-reassign
var fn = require

require = utils // eslint-disable-line no-undef, no-native-reassign

require('is-child-process')
require('is-node-stream')
require('is-typeof-error')
require('letta')
require('on-stream-end')
require('sliced')
require('stream-exhaust')

require = fn // eslint-disable-line no-undef, no-native-reassign

/**
* Expose `utils` modules
*/

module.exports = utils

0 comments on commit 4dda797

Please sign in to comment.