UNPKG

molstar

Version:

A comprehensive macromolecular library.

48 lines 2.06 kB
/* * Copyright (c) 2018 Mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> */ import { Expression } from './expression'; export function Argument(type, params) { var _a = params || {}, _b = _a.description, description = _b === void 0 ? void 0 : _b, _c = _a.isOptional, isOptional = _c === void 0 ? false : _c, _d = _a.isRest, isRest = _d === void 0 ? false : _d, _e = _a.defaultValue, defaultValue = _e === void 0 ? void 0 : _e; return { type: type, isOptional: isOptional, isRest: isRest, defaultValue: defaultValue, description: description }; } export var Arguments; (function (Arguments) { Arguments.None = Dictionary({}); function Dictionary(map) { return { kind: 'dictionary', map: map, '@type': 0 }; } Arguments.Dictionary = Dictionary; function List(type, params) { var _a = (params || {}).nonEmpty, nonEmpty = _a === void 0 ? false : _a; return { kind: 'list', type: type, nonEmpty: nonEmpty, '@type': 0 }; } Arguments.List = List; })(Arguments || (Arguments = {})); export function MSymbol(name, args, type, description) { var symbol = function (args) { return Expression.Apply(Expression.Symbol(symbol.id), args); }; symbol.info = { namespace: '', name: name, description: description }; symbol.id = ''; symbol.args = args; symbol.type = type; return symbol; } export function CustomPropSymbol(namespace, name, type, description) { var symbol = function (args) { return Expression.Apply(Expression.Symbol(symbol.id), args); }; symbol.info = { namespace: namespace, name: name, description: description }; symbol.id = namespace + "." + name; symbol.args = Arguments.None; symbol.type = type; return symbol; } export function isSymbol(x) { var s = x; return typeof s === 'function' && !!s.info && !!s.args && typeof s.info.namespace === 'string' && !!s.type; } //# sourceMappingURL=symbol.js.map