@wikipathways/cxml
Version:
Advanced schema-aware streaming XML parser
29 lines • 4.17 kB
JavaScript
;
// This file is part of cxml, copyright (c) 2016 BusFaster Ltd.
// Released under the MIT license, see LICENSE.
Object.defineProperty(exports, "__esModule", { value: true });
var MemberRef = /** @class */ (function () {
function MemberRef(member, min, max) {
this.member = member;
this.min = min;
this.max = max;
}
MemberRef.parseSpec = function (spec, namespace, proxy) {
var flags = spec[1];
var member;
if (typeof (spec[0]) == 'number')
member = namespace.memberByNum(spec[0]);
else
member = spec[0];
var ref = new MemberRef(member, (flags & 1 /* optional */) ? 0 : 1, (flags & 2 /* array */) ? Infinity : 1);
ref.safeName = spec[2] || member.safeName;
if (member.isSubstituted)
proxy = ref;
if (proxy && ref.max > 1)
ref.proxy = proxy;
return (ref);
};
return MemberRef;
}());
exports.MemberRef = MemberRef;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtYmVyUmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3htbC9NZW1iZXJSZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtEQUErRDtBQUMvRCwrQ0FBK0M7O0FBYS9DO0lBQ0MsbUJBQVksTUFBa0IsRUFBRSxHQUFXLEVBQUUsR0FBVztRQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLENBQUM7SUFFTSxtQkFBUyxHQUFoQixVQUFpQixJQUFnQixFQUFFLFNBQW9CLEVBQUUsS0FBaUI7UUFDekUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksTUFBa0IsQ0FBQztRQUV2QixJQUFHLE9BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRO1lBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBVyxDQUFDLENBQUM7O1lBQzdFLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFlLENBQUM7UUFFcEMsSUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQ3hCLE1BQU0sRUFDTixDQUFDLEtBQUssbUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hDLENBQUMsS0FBSyxnQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDNUMsQ0FBQztRQUVGLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFFMUMsSUFBRyxNQUFNLENBQUMsYUFBYTtZQUFFLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDckMsSUFBRyxLQUFLLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFM0MsT0FBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVVGLGdCQUFDO0FBQUQsQ0FBQyxBQXBDRCxJQW9DQztBQXBDWSw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGN4bWwsIGNvcHlyaWdodCAoYykgMjAxNiBCdXNGYXN0ZXIgTHRkLlxuLy8gUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLCBzZWUgTElDRU5TRS5cblxuaW1wb3J0IHtOYW1lc3BhY2V9IGZyb20gJy4vTmFtZXNwYWNlJztcbmltcG9ydCB7TWVtYmVyU3BlY30gZnJvbSAnLi9NZW1iZXJTcGVjJztcblxuLyoqIFR1cGxlOiBtZW1iZXIgSUQsIGZsYWdzLCBuYW1lICovXG5leHBvcnQgdHlwZSBSYXdSZWZTcGVjID0gWyBudW1iZXIgfCBNZW1iZXJTcGVjLCBudW1iZXIsIHN0cmluZyBdO1xuXG5leHBvcnQgY29uc3QgZW51bSBNZW1iZXJSZWZGbGFnIHtcblx0b3B0aW9uYWwgPSAxLFxuXHRhcnJheSA9IDJcbn1cblxuZXhwb3J0IGNsYXNzIE1lbWJlclJlZiB7XG5cdGNvbnN0cnVjdG9yKG1lbWJlcjogTWVtYmVyU3BlYywgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSB7XG5cdFx0dGhpcy5tZW1iZXIgPSBtZW1iZXI7XG5cdFx0dGhpcy5taW4gPSBtaW47XG5cdFx0dGhpcy5tYXggPSBtYXg7XG5cdH1cblxuXHRzdGF0aWMgcGFyc2VTcGVjKHNwZWM6IFJhd1JlZlNwZWMsIG5hbWVzcGFjZTogTmFtZXNwYWNlLCBwcm94eT86IE1lbWJlclJlZikge1xuXHRcdHZhciBmbGFncyA9IHNwZWNbMV07XG5cdFx0dmFyIG1lbWJlcjogTWVtYmVyU3BlYztcblxuXHRcdGlmKHR5cGVvZihzcGVjWzBdKSA9PSAnbnVtYmVyJykgbWVtYmVyID0gbmFtZXNwYWNlLm1lbWJlckJ5TnVtKHNwZWNbMF0gYXMgbnVtYmVyKTtcblx0XHRlbHNlIG1lbWJlciA9IHNwZWNbMF0gYXMgTWVtYmVyU3BlYztcblxuXHRcdGNvbnN0IHJlZiA9IG5ldyBNZW1iZXJSZWYoXG5cdFx0XHRtZW1iZXIsXG5cdFx0XHQoZmxhZ3MgJiBNZW1iZXJSZWZGbGFnLm9wdGlvbmFsKSA/IDAgOiAxLFxuXHRcdFx0KGZsYWdzICYgTWVtYmVyUmVmRmxhZy5hcnJheSkgPyBJbmZpbml0eSA6IDFcblx0XHQpO1xuXG5cdFx0cmVmLnNhZmVOYW1lID0gc3BlY1syXSB8fCBtZW1iZXIuc2FmZU5hbWU7XG5cblx0XHRpZihtZW1iZXIuaXNTdWJzdGl0dXRlZCkgcHJveHkgPSByZWY7XG5cdFx0aWYocHJveHkgJiYgcmVmLm1heCA+IDEpIHJlZi5wcm94eSA9IHByb3h5O1xuXG5cdFx0cmV0dXJuKHJlZik7XG5cdH1cblxuXHRtZW1iZXI6IE1lbWJlclNwZWM7XG5cdG1pbjogbnVtYmVyO1xuXHRtYXg6IG51bWJlcjtcblxuXHRwcmVmaXg6IHN0cmluZztcblx0c2FmZU5hbWU6IHN0cmluZztcblxuXHRwcm94eTogTWVtYmVyUmVmO1xufVxuIl19