jw-ng-forward
Version:
Temporary package. The default solution for those that want to write Angular 2.x style code in Angular 1.x
20 lines (19 loc) • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var writers_1 = require("../writers");
var helpers_1 = require("./helpers");
var provider_1 = require("./../classes/provider");
var STRING_TEST = function (a) { return typeof a === 'string'; };
var PROVIDER_TEST = function (a) { return (typeof a === 'function' || a instanceof provider_1.Provider) && writers_1.providerStore.has('name', a); };
function groupModulesAndProviders(modulesAndProviders, errorContext) {
if (errorContext === void 0) { errorContext = "while analyzing providers"; }
modulesAndProviders = helpers_1.flatten(modulesAndProviders);
var modules = modulesAndProviders.filter(STRING_TEST);
var providers = modulesAndProviders.filter(PROVIDER_TEST);
var invalid = modulesAndProviders.filter(function (a) { return !STRING_TEST(a); }).filter(function (a) { return !PROVIDER_TEST(a); });
if (invalid.length > 0) {
throw new TypeError("TypeError " + errorContext + ".\n Invalid Providers: please make sure all providers are an Injectable(), Component(), Directive(), a Provider, or a module string.\n Here's the invalid values: " + invalid.join(', '));
}
return { modules: modules, providers: providers };
}
exports.default = groupModulesAndProviders;