Comparing version 2.2.0 to 3.0.0
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(["exports", "core-js/modules/web.dom.iterable", "core-js/modules/es6.array.iterator", "core-js/modules/es6.object.keys", "core-js/modules/es6.regexp.constructor", "core-js/modules/es6.object.assign", "core-js/modules/es6.function.name", "core-js/modules/es7.symbol.async-iterator", "core-js/modules/es6.symbol", "autobind-decorator", "bluebird", "is-callable", "./error"], factory); | ||
define(["exports", "core-js/modules/web.dom.iterable", "core-js/modules/es6.array.iterator", "core-js/modules/es6.object.keys", "core-js/modules/es6.regexp.constructor", "core-js/modules/es6.function.name", "autobind-decorator", "bluebird", "is-callable", "./error", "./provider"], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports, require("core-js/modules/web.dom.iterable"), require("core-js/modules/es6.array.iterator"), require("core-js/modules/es6.object.keys"), require("core-js/modules/es6.regexp.constructor"), require("core-js/modules/es6.object.assign"), require("core-js/modules/es6.function.name"), require("core-js/modules/es7.symbol.async-iterator"), require("core-js/modules/es6.symbol"), require("autobind-decorator"), require("bluebird"), require("is-callable"), require("./error")); | ||
factory(exports, require("core-js/modules/web.dom.iterable"), require("core-js/modules/es6.array.iterator"), require("core-js/modules/es6.object.keys"), require("core-js/modules/es6.regexp.constructor"), require("core-js/modules/es6.function.name"), require("autobind-decorator"), require("bluebird"), require("is-callable"), require("./error"), require("./provider")); | ||
} else { | ||
@@ -10,6 +10,6 @@ var mod = { | ||
}; | ||
factory(mod.exports, global.webDom, global.es6Array, global.es6Object, global.es6Regexp, global.es6Object, global.es6Function, global.es7Symbol, global.es6, global.autobindDecorator, global.bluebird, global.isCallable, global.error); | ||
factory(mod.exports, global.webDom, global.es6Array, global.es6Object, global.es6Regexp, global.es6Function, global.autobindDecorator, global.bluebird, global.isCallable, global.error, global.provider); | ||
global.context = mod.exports; | ||
} | ||
})(this, function (_exports, _webDom, _es6Array, _es6Object, _es6Regexp, _es6Object2, _es6Function, _es7Symbol, _es, _autobindDecorator, _bluebird, _isCallable, _error) { | ||
})(this, function (_exports, _webDom, _es6Array, _es6Object, _es6Regexp, _es6Function, _autobindDecorator, _bluebird, _isCallable, _error, _provider) { | ||
"use strict"; | ||
@@ -23,2 +23,3 @@ | ||
_error = _interopRequireDefault(_error); | ||
_provider = _interopRequireDefault(_provider); | ||
@@ -31,3 +32,2 @@ var _class, _class2, _temp; | ||
var OPTIONS = Symbol('PROVIDER_OPTIONS'); | ||
var Context = (_class = (_temp = _class2 = | ||
@@ -44,10 +44,4 @@ /*#__PURE__*/ | ||
function Context(_temp2) { | ||
var _ref = _temp2 === void 0 ? {} : _temp2, | ||
_ref$name = _ref.name, | ||
name = _ref$name === void 0 ? null : _ref$name; | ||
function Context(name) { | ||
this._providers = {}; | ||
this._hooks = []; | ||
this._modules = {}; | ||
this.name = name; | ||
@@ -62,83 +56,24 @@ | ||
_proto.provide = function provide(key, value, provideOptions) { | ||
if (provideOptions === void 0) { | ||
provideOptions = {}; | ||
} | ||
return this.addProvider(key, function () { | ||
return value; | ||
}, Object.assign({ | ||
constant: true | ||
}, provideOptions)); | ||
_proto.provide = function provide(key) { | ||
var provider = new _provider.default(this); | ||
this._providers[key] = provider; | ||
return provider; | ||
}; | ||
_proto.addProvider = function addProvider(key, provider, provideOptions) { | ||
if (provideOptions === void 0) { | ||
provideOptions = {}; | ||
} | ||
_proto.resolve = function resolve(key) { | ||
var provider = this._providers[key]; | ||
if (!(0, _isCallable.default)(provider)) { | ||
throw new _error.default('Provider must be callable'); | ||
if (provider === undefined) { | ||
return _bluebird.default.reject(new _error.default("Cannot find provider for: " + key)); | ||
} else { | ||
return _bluebird.default.resolve(provider.get()); | ||
} | ||
this._providers[key] = provider; | ||
this._providers[key][OPTIONS] = provideOptions; | ||
return this; | ||
}; | ||
_proto.addAlias = function addAlias(key, existingKey, provideOptions) { | ||
_proto.resolveAll = function resolveAll(cond) { | ||
var _this = this; | ||
if (provideOptions === void 0) { | ||
provideOptions = {}; | ||
} | ||
return this.addProvider(key, function () { | ||
return _this._providers[existingKey](); | ||
}, Object.assign({ | ||
alias: true | ||
}, provideOptions)); | ||
}; | ||
_proto.addHook = function addHook(hook) { | ||
this._hooks.push(hook); | ||
return this; | ||
}; | ||
_proto.resolve = function resolve(key, resolveOptions) { | ||
var _this2 = this; | ||
if (resolveOptions === void 0) { | ||
resolveOptions = {}; | ||
} | ||
if (this._modules.hasOwnProperty(key)) { | ||
return _bluebird.default.resolve(this._modules[key]); | ||
} | ||
if (!this._providers.hasOwnProperty(key)) { | ||
return _bluebird.default.reject(new _error.default("Cannot find provider: " + key)); | ||
} | ||
var provider = this._providers[key]; | ||
var options = Object.assign({}, provider[OPTIONS], resolveOptions); | ||
return _bluebird.default.resolve(provider()).then(function (value) { | ||
return _this2._applyPostResolveHooks(key, value, options); | ||
}).then(function (hookedValue) { | ||
_this2._modules[key] = hookedValue; | ||
return hookedValue; | ||
}); | ||
}; | ||
_proto.resolveAll = function resolveAll(cond, options) { | ||
var _this3 = this; | ||
if (options === void 0) { | ||
options = {}; | ||
} | ||
if (Array.isArray(cond)) { | ||
return _bluebird.default.resolve(cond).map(function (c) { | ||
return _this3.resolveAll(c, options); | ||
return _this.resolveAll(c); | ||
}).reduce(function (acc, item) { | ||
@@ -155,3 +90,3 @@ return [].concat(acc, item); | ||
}).map(function (key) { | ||
return _this3.resolve(key, options); | ||
return _this.resolve(key); | ||
}).filter(function (values) { | ||
@@ -164,3 +99,3 @@ return !!values; | ||
return _bluebird.default.resolve(Object.keys(this._providers)).filter(cond).map(function (key) { | ||
return _this3.resolve(key, options); | ||
return _this.resolve(key); | ||
}).filter(function (values) { | ||
@@ -173,3 +108,3 @@ return !!values; | ||
return _bluebird.default.resolve(Object.keys(this._providers)).map(function (key) { | ||
return _this3.resolve(key, options); | ||
return _this.resolve(key); | ||
}).filter(function (values) { | ||
@@ -184,3 +119,3 @@ return !!values; | ||
return this.resolve(cond, options).then(function (value) { | ||
return this.resolve(cond).then(function (value) { | ||
return [value]; | ||
@@ -192,39 +127,20 @@ }).filter(function (values) { | ||
_proto.using = function using(cond, tags) { | ||
var _this4 = this; | ||
_proto.using = function using(cond, consumer) { | ||
var _this2 = this; | ||
return function (consumer) { | ||
return function () { | ||
for (var _len = arguments.length, ownArgs = new Array(_len), _key = 0; _key < _len; _key++) { | ||
ownArgs[_key] = arguments[_key]; | ||
} | ||
return function () { | ||
for (var _len = arguments.length, ownArgs = new Array(_len), _key = 0; _key < _len; _key++) { | ||
ownArgs[_key] = arguments[_key]; | ||
} | ||
return _this4.resolveAll(cond, tags).then(function (values) { | ||
return consumer.apply(void 0, values.concat(ownArgs)); | ||
}); | ||
}; | ||
return _this2.resolveAll(cond).then(function (values) { | ||
return consumer.apply(void 0, values.concat(ownArgs)); | ||
}); | ||
}; | ||
}; | ||
_proto._applyPostResolveHooks = function _applyPostResolveHooks(key, value, options) { | ||
return _bluebird.default.reduce(this._hooks, function (arg, hook) { | ||
return _bluebird.default.resolve(hook.postResolve(arg)).then(function (value) { | ||
arg.value = value; | ||
return arg; | ||
}); | ||
}, { | ||
key: key, | ||
value: value, | ||
originalValue: value, | ||
options: options | ||
}).then(function (_ref2) { | ||
var value = _ref2.value; | ||
return value; | ||
}); | ||
}; | ||
return Context; | ||
}(), _class2.repo = {}, _temp), (_applyDecoratedDescriptor(_class.prototype, "provide", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "provide"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "addProvider", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "addProvider"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "addAlias", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "addAlias"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "addHook", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "addHook"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "resolve", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "resolve"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "resolveAll", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "resolveAll"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "using", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "using"), _class.prototype)), _class); | ||
}(), _class2.repo = {}, _temp), (_applyDecoratedDescriptor(_class.prototype, "provide", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "provide"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "resolve", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "resolve"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "resolveAll", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "resolveAll"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "using", [_autobindDecorator.default], Object.getOwnPropertyDescriptor(_class.prototype, "using"), _class.prototype)), _class); | ||
var _default = Context; | ||
_exports.default = _default; | ||
}); |
@@ -0,6 +1,12 @@ | ||
require("core-js/modules/es6.array.iterator"); | ||
require("core-js/modules/es6.object.keys"); | ||
require("core-js/modules/web.dom.iterable"); | ||
(function (global, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
define(["exports", "./context"], factory); | ||
define(["exports", "./context", "./gloabl"], factory); | ||
} else if (typeof exports !== "undefined") { | ||
factory(exports, require("./context")); | ||
factory(exports, require("./context"), require("./gloabl")); | ||
} else { | ||
@@ -10,31 +16,22 @@ var mod = { | ||
}; | ||
factory(mod.exports, global.context); | ||
factory(mod.exports, global.context, global.gloabl); | ||
global.index = mod.exports; | ||
} | ||
})(this, function (_exports, _context) { | ||
})(this, function (_exports, _context, _gloabl) { | ||
"use strict"; | ||
_exports.__esModule = true; | ||
_exports.using = _exports.resolveAll = _exports.resolve = _exports.addAlias = _exports.addProvider = _exports.provide = _exports.context = void 0; | ||
var _exportNames = { | ||
Context: true | ||
}; | ||
_exports.Context = void 0; | ||
_context = _interopRequireDefault(_context); | ||
_exports.Context = _context.default; | ||
Object.keys(_gloabl).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
_exports[key] = _gloabl[key]; | ||
}); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var context = new _context.default({ | ||
name: 'default' | ||
}); | ||
_exports.context = context; | ||
var provide = context.provide, | ||
addProvider = context.addProvider, | ||
addAlias = context.addAlias, | ||
resolve = context.resolve, | ||
resolveAll = context.resolveAll, | ||
using = context.using; | ||
_exports.using = using; | ||
_exports.resolveAll = resolveAll; | ||
_exports.resolve = resolve; | ||
_exports.addAlias = addAlias; | ||
_exports.addProvider = addProvider; | ||
_exports.provide = provide; | ||
}); |
{ | ||
"name": "di-helper", | ||
"version": "2.2.0", | ||
"version": "3.0.0", | ||
"description": "A concise JavaScript dependency injector", | ||
@@ -46,5 +46,4 @@ "repository": "https://github.com/g6123/di-helper", | ||
"bluebird": "^3.5.3", | ||
"is-callable": "^1.1.4", | ||
"is-promise": "^2.1.0" | ||
"is-callable": "^1.1.4" | ||
} | ||
} |
@@ -10,11 +10,17 @@ # di-helper | ||
```javascript | ||
import { provide, using } from 'di-helper'; | ||
import { provide } from 'di-helper'; | ||
provide('logger', () => { | ||
provide('logger').with(() => { | ||
return console.log; | ||
}); | ||
using((['logger'])(logger => { | ||
logger('The logger has been injected'); | ||
// ... | ||
import { using } from 'di-helper'; | ||
const greet = using((['logger'], log => { | ||
log('The logger has been injected'); | ||
}); | ||
greet(); | ||
``` | ||
@@ -30,4 +36,4 @@ | ||
// Default instance and its methods | ||
import { context, provide, alias, resolve, resolveAll, using } from 'di-helper'; | ||
const { context, provide, alias, resolve, resolveAll, using } = require('di-helper'); | ||
import { context, provide, resolve, resolveAll, using } from 'di-helper'; | ||
const { context, provide, resolve, resolveAll, using } = require('di-helper'); | ||
@@ -34,0 +40,0 @@ // Context class |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
4
12
46
17539
281
- Removedis-promise@^2.1.0
- Removedis-promise@2.2.2(transitive)