molstar
Version:
A comprehensive macromolecular library.
63 lines (62 loc) • 2.49 kB
JavaScript
/**
* 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;
;