Code coverage report for src/utils.js

Statements: 100% (51 / 51)      Branches: 100% (0 / 0)      Functions: 100% (15 / 15)      Lines: 100% (37 / 37)      Ignored: none     

All files » src/ » utils.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58    13 13 13   13 13   120   1 161 161 138     13   52 52   52   52 104   52   13   1 52 138   13   1 39 13   1 1 1   13   1 755 13   1 219 13   13   13
'use strict'
 
import instanciate from './instanciate'
import singletonify from './singletonify'
import { EAGER, SINGLETON, PROVIDER, CONSTRUCTOR } from './options'
 
var EAGER_SINGLETON_PROVIDER = generateMask([EAGER, SINGLETON, PROVIDER])
var EAGER_SINGLETON_CONSTRUCTOR = generateMask([EAGER, SINGLETON, CONSTRUCTOR])
 
export function identity(value) { return value }
 
export function leftCurryTwice(fn) {
	return function firstCurry(...firstArgs) {
		return function secondCurry(...secondArgs) {
			return fn.apply(null, firstArgs.concat(secondArgs))
		}
	}
}
 
export function compose(...funcs) {
	return function (...args) {
 
		var i
 
		for (i = funcs.length - 1; i >= 0; i--) {
			args = [funcs[i].apply(this, args)]
		}
		return args[0]
	}
}
 
export function resolveDeps(fn) {
	return function (value, resolve, release, signal) {
		return fn.call(this, value, resolve())
	}
}
 
export function invoke(fn, deps) {
	return fn.apply(null, deps)
}
 
export function partial(func, boundArgs) {
	return function (...args) {
		return func.apply(this, boundArgs.concat(args))
	}
}
 
export function generateMask(flags) {
	return flags.reduce((prev, curr) => prev | curr, 0)
}
 
export function isEagerSingleton(type) {
	return [EAGER_SINGLETON_PROVIDER, EAGER_SINGLETON_CONSTRUCTOR].indexOf(type) > -1
}
 
export function noop() {}
 
export { instanciate, singletonify }