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