UNPKG

5.22 kBJavaScriptView Raw
1"use strict";
2var Types_1 = require("./Types");
3var typeguard_1 = require("typeguard");
4var Bluebird = require('bluebird');
5function assert(test, msg) {
6 if (msg === void 0) { msg = null; }
7 if (!test)
8 throw new Error(msg);
9}
10exports.assert = assert;
11function isTypeOf(o, typeStr) {
12 return typeof o === typeStr;
13}
14function isNumberOrString(o) {
15 return typeguard_1.isString(o) || typeguard_1.isNumber(o);
16}
17exports.isNumberOrString = isNumberOrString;
18function isArrayType(type) {
19 return type === Array ||
20 type instanceof Array ||
21 Array.isArray(type);
22}
23exports.isArrayType = isArrayType;
24/**
25 * Check the type of a plugin
26 *
27 * @param plugin
28 * @param type
29 * @returns {boolean}
30 */
31function isPluginOfType(plugin, type) {
32 return plugin.type && (plugin.type & type) > 0;
33}
34exports.isPluginOfType = isPluginOfType;
35function isRepoPlugin(plugin) {
36 return isPluginOfType(plugin, Types_1.PluginType.Repo);
37}
38exports.isRepoPlugin = isRepoPlugin;
39function isStorePlugin(plugin) {
40 return isPluginOfType(plugin, Types_1.PluginType.Store);
41}
42exports.isStorePlugin = isStorePlugin;
43function isIndexerPlugin(plugin) {
44 return isPluginOfType(plugin, Types_1.PluginType.Indexer);
45}
46exports.isIndexerPlugin = isIndexerPlugin;
47function isFinderPlugin(plugin) {
48 return isPluginOfType(plugin, Types_1.PluginType.Finder);
49}
50exports.isFinderPlugin = isFinderPlugin;
51function PromiseMap(values, mapper) {
52 var results = values.map(function (value) { return Promise.resolve(mapper(value)); });
53 return Bluebird.all(results);
54}
55exports.PromiseMap = PromiseMap;
56function PluginFilter(plugins, type) {
57 return plugins.filter((type == Types_1.PluginType.Repo) ? isRepoPlugin :
58 (type == Types_1.PluginType.Store) ? isStorePlugin :
59 (type == Types_1.PluginType.Indexer) ? isIndexerPlugin :
60 isFinderPlugin);
61}
62exports.PluginFilter = PluginFilter;
63function isInstanceType(val, type) {
64 return val instanceof type;
65}
66exports.isInstanceType = isInstanceType;
67function includesUnlessEmpty(arr, val) {
68 return arr.length === 0 || arr.includes(val);
69}
70exports.includesUnlessEmpty = includesUnlessEmpty;
71function repoAttachIfSupported(repo, plugin) {
72 return (includesUnlessEmpty(plugin.supportedModels, repo.modelClazz)) ?
73 plugin.initRepo(repo) : null;
74}
75exports.repoAttachIfSupported = repoAttachIfSupported;
76//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9VdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpQ0FDaUU7QUFFakUsdUNBQThDO0FBRTlDLElBQ0MsUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUUvQixnQkFBdUIsSUFBSSxFQUFDLEdBQWlCO0lBQWpCLG9CQUFBLEVBQUEsVUFBaUI7SUFDNUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3RCLENBQUM7QUFIRCx3QkFHQztBQUVELGtCQUFrQixDQUFDLEVBQUMsT0FBTztJQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFBO0FBQzVCLENBQUM7QUFFRCwwQkFBaUMsQ0FBSztJQUNyQyxNQUFNLENBQUMsb0JBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxvQkFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFGRCw0Q0FFQztBQUVELHFCQUE0QixJQUFRO0lBQ25DLE1BQU0sQ0FBQyxJQUFJLEtBQUssS0FBSztRQUNwQixJQUFJLFlBQVksS0FBSztRQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3JCLENBQUM7QUFKRCxrQ0FJQztBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUErQixNQUFjLEVBQUMsSUFBZTtJQUM1RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFGRCx3Q0FFQztBQUVELHNCQUE2QixNQUFjO0lBQzFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFDLGtCQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDOUMsQ0FBQztBQUZELG9DQUVDO0FBRUQsdUJBQThCLE1BQWM7SUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUMsa0JBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBRkQsc0NBRUM7QUFFRCx5QkFBZ0MsTUFBYztJQUM3QyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBQyxrQkFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ2pELENBQUM7QUFGRCwwQ0FFQztBQUVELHdCQUErQixNQUFjO0lBQzVDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFDLGtCQUFVLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDaEQsQ0FBQztBQUZELHdDQUVDO0FBRUQsb0JBQThCLE1BQVUsRUFBQyxNQUF1QjtJQUMvRCxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxDQUFBO0lBQ25FLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzdCLENBQUM7QUFIRCxnQ0FHQztBQUVELHNCQUFnRCxPQUFpQixFQUFDLElBQWU7SUFDaEYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3BCLENBQUMsSUFBSSxJQUFJLGtCQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWTtRQUN2QyxDQUFDLElBQUksSUFBSSxrQkFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLGFBQWE7WUFDekMsQ0FBQyxJQUFJLElBQUksa0JBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlO2dCQUM3QyxjQUFjLENBRVYsQ0FBQTtBQUNULENBQUM7QUFSRCxvQ0FRQztBQUdELHdCQUFrQyxHQUFPLEVBQUMsSUFBYztJQUN2RCxNQUFNLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQTtBQUMzQixDQUFDO0FBRkQsd0NBRUM7QUFFRCw2QkFBb0MsR0FBUyxFQUFDLEdBQU87SUFDcEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDN0MsQ0FBQztBQUZELGtEQUVDO0FBRUQsK0JBQXNDLElBQWMsRUFBQyxNQUF5QjtJQUM3RSxNQUFNLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQTtBQUM5QixDQUFDO0FBSEQsc0RBR0MifQ==
\No newline at end of file