UNPKG

molstar

Version:

A comprehensive macromolecular library.

63 lines (62 loc) 2.49 kB
"use strict"; /** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.createModelPropertiesProvider = exports.createModelPropertiesProviderFromConfig = void 0; var tslib_1 = require("tslib"); var fs = tslib_1.__importStar(require("fs")); var config_1 = require("./config"); var console_logger_1 = require("../../mol-util/console-logger"); // TODO enable dynamic imports again var pdbeProps = tslib_1.__importStar(require("./properties/pdbe")); var wwpdbProps = tslib_1.__importStar(require("./properties/wwpdb")); var attachModelProperties = { pdbe: pdbeProps.attachModelProperties, wwpdb: wwpdbProps.attachModelProperties }; function createModelPropertiesProviderFromConfig() { return createModelPropertiesProvider(config_1.ModelServerConfig.customProperties); } exports.createModelPropertiesProviderFromConfig = createModelPropertiesProviderFromConfig; function createModelPropertiesProvider(configOrPath) { var config; if (typeof configOrPath === 'string') { try { config = JSON.parse(fs.readFileSync(configOrPath, 'utf8')); } catch (_a) { console_logger_1.ConsoleLogger.error('Config', "Could not read property provider config file '".concat(configOrPath, "', ignoring.")); return function () { return []; }; } } else { config = configOrPath; } if (!config || !config.sources || config.sources.length === 0) return void 0; var ps = []; for (var _i = 0, _b = config.sources; _i < _b.length; _i++) { var p = _b[_i]; if (p in attachModelProperties) { ps.push(attachModelProperties[p]); } else { console_logger_1.ConsoleLogger.error('Config', "Could not find property provider '".concat(p, "', ignoring.")); } } return function (model, cache) { var ret = []; for (var _i = 0, ps_1 = ps; _i < ps_1.length; _i++) { var p = ps_1[_i]; for (var _a = 0, _b = p({ model: model, cache: cache, params: config.params }); _a < _b.length; _a++) { var e = _b[_a]; ret.push(e); } } return ret; }; } exports.createModelPropertiesProvider = createModelPropertiesProvider;