molstar
Version:
A comprehensive macromolecular library.
37 lines • 1.6 kB
JavaScript
/*
* Copyright (c) 2018 Mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
var Type;
(function (Type) {
function Variable(name, type, isConstraint) { return { kind: 'variable', name: name, type: type, isConstraint: isConstraint }; }
Type.Variable = Variable;
function Value(namespace, name, parent) { return { kind: 'value', namespace: namespace, name: name, parent: parent }; }
Type.Value = Value;
function Container(namespace, name, child, alias) { return { kind: 'container', namespace: namespace, name: name, child: child, alias: alias }; }
Type.Container = Container;
function Union(types) { return { kind: 'union', types: types }; }
Type.Union = Union;
function OneOf(namespace, name, type, values) {
var vals = Object.create(null);
for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {
var v = values_1[_i];
vals[v] = true;
}
return { kind: 'oneof', namespace: namespace, name: name, type: type, values: vals };
}
Type.OneOf = OneOf;
Type.Any = { kind: 'any' };
Type.AnyValue = { kind: 'any-value' };
Type.Num = Value('', 'Number');
Type.Str = Value('', 'String');
Type.Bool = OneOf('', 'Bool', Type.Str, ['true', 'false']);
function oneOfValues(_a) {
var values = _a.values;
return Object.keys(values).sort();
}
Type.oneOfValues = oneOfValues;
})(Type || (Type = {}));
export { Type };
//# sourceMappingURL=type.js.map