UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

34 lines (32 loc) 3.81 kB
/// <reference path="../../typings/tsd.d.ts" /> "use strict"; class DynamicContext { constructor(parent) { this.variables = {}; this.parent = parent; } getParent() { return this.parent; } createContext() { return new DynamicContext(this); } setVariable(ns, varName, value) { this.variables[ns + "#" + varName] = value; return this; } getVariable(ns, varName) { var lookup = this.variables[ns + "#" + varName]; if (lookup) { return lookup; } else if (this.parent) { return this.parent.getVariable(ns, varName); } else { return undefined; } } } exports.default = DynamicContext; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ydW50aW1lL0R5bmFtaWNDb250ZXh0LnRzIl0sIm5hbWVzIjpbIkR5bmFtaWNDb250ZXh0IiwiRHluYW1pY0NvbnRleHQuY29uc3RydWN0b3IiLCJEeW5hbWljQ29udGV4dC5nZXRQYXJlbnQiLCJEeW5hbWljQ29udGV4dC5jcmVhdGVDb250ZXh0IiwiRHluYW1pY0NvbnRleHQuc2V0VmFyaWFibGUiLCJEeW5hbWljQ29udGV4dC5nZXRWYXJpYWJsZSJdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDOztBQUkvQztJQUtJQSxZQUFZQSxNQUF1QkE7UUFGM0JDLGNBQVNBLEdBQWtDQSxFQUFFQSxDQUFDQTtRQUdsREEsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsTUFBTUEsQ0FBQ0E7SUFDekJBLENBQUNBO0lBRURELFNBQVNBO1FBQ0xFLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBO0lBQ3ZCQSxDQUFDQTtJQUVERixhQUFhQTtRQUNURyxNQUFNQSxDQUFDQSxJQUFJQSxjQUFjQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUNwQ0EsQ0FBQ0E7SUFFREgsV0FBV0EsQ0FBQ0EsRUFBVUEsRUFBRUEsT0FBZUEsRUFBRUEsS0FBZUE7UUFDcERJLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLEVBQUVBLEdBQUdBLEdBQUdBLEdBQUdBLE9BQU9BLENBQUNBLEdBQUdBLEtBQUtBLENBQUNBO1FBQzNDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7SUFFREosV0FBV0EsQ0FBQ0EsRUFBVUEsRUFBRUEsT0FBZUE7UUFDbkNLLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLEVBQUVBLEdBQUdBLEdBQUdBLEdBQUdBLE9BQU9BLENBQUNBLENBQUNBO1FBQ2hEQSxFQUFFQSxDQUFBQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNSQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtRQUNsQkEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDckJBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFdBQVdBLENBQUNBLEVBQUVBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO1FBQ2hEQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNKQSxNQUFNQSxDQUFDQSxTQUFTQSxDQUFDQTtRQUNyQkEsQ0FBQ0E7SUFDTEEsQ0FBQ0E7QUFDTEwsQ0FBQ0E7aUNBQUEiLCJmaWxlIjoibGliL3J1bnRpbWUvRHluYW1pY0NvbnRleHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vdHlwaW5ncy90c2QuZC50c1wiIC8+XG5cbmltcG9ydCBJdGVyYXRvciBmcm9tIFwiLi9pdGVyYXRvcnMvSXRlcmF0b3JcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHluYW1pY0NvbnRleHQge1xuXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IER5bmFtaWNDb250ZXh0O1xuICAgIHByaXZhdGUgdmFyaWFibGVzOiB7IFtpbmRleDogc3RyaW5nXTogSXRlcmF0b3IgfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50PzogRHluYW1pY0NvbnRleHQpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgfVxuXG4gICAgZ2V0UGFyZW50KCk6IER5bmFtaWNDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50O1xuICAgIH1cblxuICAgIGNyZWF0ZUNvbnRleHQoKTogRHluYW1pY0NvbnRleHQge1xuICAgICAgICByZXR1cm4gbmV3IER5bmFtaWNDb250ZXh0KHRoaXMpO1xuICAgIH1cblxuICAgIHNldFZhcmlhYmxlKG5zOiBzdHJpbmcsIHZhck5hbWU6IHN0cmluZywgdmFsdWU6IEl0ZXJhdG9yKTogRHluYW1pY0NvbnRleHQge1xuICAgICAgICB0aGlzLnZhcmlhYmxlc1tucyArIFwiI1wiICsgdmFyTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZ2V0VmFyaWFibGUobnM6IHN0cmluZywgdmFyTmFtZTogc3RyaW5nKTogSXRlcmF0b3Ige1xuICAgICAgICB2YXIgbG9va3VwID0gdGhpcy52YXJpYWJsZXNbbnMgKyBcIiNcIiArIHZhck5hbWVdO1xuICAgICAgICBpZihsb29rdXApIHtcbiAgICAgICAgICAgIHJldHVybiBsb29rdXA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRWYXJpYWJsZShucywgdmFyTmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9