@poppinss/utils
Advanced tools
Comparing version 1.0.6 to 1.0.7
@@ -7,5 +7,6 @@ import { IocContract } from '@adonisjs/fold'; | ||
private _lookupCache; | ||
private _prefixNamespace; | ||
constructor(_container: IocContract, _rcNamespaceKey?: string | undefined, _fallbackNamespace?: string | undefined); | ||
private _getPrefixNamespace; | ||
resolve(namespace: string): { | ||
resolve(namespace: string, prefixNamespace?: string | undefined): { | ||
namespace: string; | ||
@@ -15,3 +16,3 @@ type: "binding" | "autoload"; | ||
}; | ||
call<T extends any>(namespace: string, args: any[]): T; | ||
call<T extends any>(namespace: string, prefixNamespace?: string, args?: any[]): T; | ||
} |
@@ -10,2 +10,3 @@ "use strict"; | ||
this._lookupCache = {}; | ||
this._prefixNamespace = this._getPrefixNamespace(); | ||
} | ||
@@ -24,4 +25,5 @@ _getPrefixNamespace() { | ||
} | ||
resolve(namespace) { | ||
const cacheNode = this._lookupCache[namespace]; | ||
resolve(namespace, prefixNamespace = this._prefixNamespace) { | ||
const cacheKey = prefixNamespace ? `${prefixNamespace}/${namespace}` : namespace; | ||
const cacheNode = this._lookupCache[cacheKey]; | ||
if (cacheNode) { | ||
@@ -35,14 +37,14 @@ return cacheNode; | ||
} | ||
const lookupNode = this._container.lookup(tokens.join('.'), this._getPrefixNamespace()); | ||
const lookupNode = this._container.lookup(tokens.join('.'), prefixNamespace); | ||
if (!lookupNode) { | ||
throw new Exception_1.Exception(`Unable to resolve ${tokens.join('.')} namespace from IoC container`); | ||
} | ||
this._lookupCache[namespace] = Object.assign(Object.assign({}, lookupNode), { method }); | ||
return this._lookupCache[namespace]; | ||
this._lookupCache[cacheKey] = Object.assign(Object.assign({}, lookupNode), { method }); | ||
return this._lookupCache[cacheKey]; | ||
} | ||
call(namespace, args) { | ||
const lookupNode = this.resolve(namespace); | ||
return this._container.call(this._container.make(lookupNode.namespace), lookupNode.method, args); | ||
call(namespace, prefixNamespace, args) { | ||
const lookupNode = this.resolve(namespace, prefixNamespace); | ||
return this._container.call(this._container.make(lookupNode.namespace), lookupNode.method, args || []); | ||
} | ||
} | ||
exports.IoCResolver = IoCResolver; |
{ | ||
"name": "@poppinss/utils", | ||
"version": "1.0.6", | ||
"version": "1.0.7", | ||
"description": "Handy utilities for repetitive work", | ||
@@ -5,0 +5,0 @@ "scripts": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
17548
244