UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

30 lines (28 loc) 4.75 kB
"use strict"; /// <reference path="../../../typings/tsd.d.ts" /> var cp = require("child_process"); var JSONiq_1 = require("../../../lib/JSONiq"); function expectQuery(source, jsoniq) { let query = new JSONiq_1.default(source); let filename = jsoniq ? "test.jq" : "test.xq"; query.setFileName(filename); let it = query.compile(); let js = JSONiq_1.default.serializeDebug(it); let child = cp.execSync("node", { input: js }); return expect(child.toString() === "" ? [] : child.toString().trim().split("\n").map(v => { return JSON.parse(v); })); } exports.expectQuery = expectQuery; function expectSerializedQuery(source, jsoniq) { let query = new JSONiq_1.default(source); let filename = jsoniq ? "test.jq" : "test.xq"; query.setFileName(filename); let it = query.compile(); let js = JSONiq_1.default.serializeDebug(it); let child = cp.execSync("node", { input: js }); return expect(child.toString().trim().split("\n").join(" ")); } exports.expectSerializedQuery = expectSerializedQuery; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3RzL25vZGUvcnVudGltZS9VdGlscy50cyJdLCJuYW1lcyI6WyJleHBlY3RRdWVyeSIsImV4cGVjdFNlcmlhbGl6ZWRRdWVyeSJdLCJtYXBwaW5ncyI6IjtBQUFBLGtEQUFrRDtBQUNsRCxJQUFZLEVBQUUsV0FBTSxlQUFlLENBQUMsQ0FBQTtBQUVwQyx1QkFBbUIscUJBQXFCLENBQUMsQ0FBQTtBQUV6QyxxQkFBNEIsTUFBYyxFQUFFLE1BQWdCO0lBQ3hEQSxJQUFJQSxLQUFLQSxHQUFHQSxJQUFJQSxnQkFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7SUFDL0JBLElBQUlBLFFBQVFBLEdBQUdBLE1BQU1BLEdBQUdBLFNBQVNBLEdBQUdBLFNBQVNBLENBQUNBO0lBQzlDQSxLQUFLQSxDQUFDQSxXQUFXQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQTtJQUM1QkEsSUFBSUEsRUFBRUEsR0FBR0EsS0FBS0EsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0E7SUFDekJBLElBQUlBLEVBQUVBLEdBQUdBLGdCQUFNQSxDQUFDQSxjQUFjQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtJQUNuQ0EsSUFBSUEsS0FBS0EsR0FBR0EsRUFBRUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsTUFBTUEsRUFBRUEsRUFBRUEsS0FBS0EsRUFBRUEsRUFBRUEsRUFBRUEsQ0FBQ0EsQ0FBQ0E7SUFDL0NBLE1BQU1BLENBQUNBLE1BQU1BLENBQ1RBLEtBQUtBLENBQUNBLFFBQVFBLEVBQUVBLEtBQUtBLEVBQUVBLEdBQUdBLEVBQUVBO1FBQzVCQSxLQUFLQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQSxJQUFJQSxFQUFFQSxDQUFDQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtZQUNyQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDekJBLENBQUNBLENBQUNBLENBQ0xBLENBQUNBO0FBQ05BLENBQUNBO0FBYmUsbUJBQVcsY0FhMUIsQ0FBQTtBQUVELCtCQUFzQyxNQUFjLEVBQUUsTUFBZ0I7SUFDbEVDLElBQUlBLEtBQUtBLEdBQUdBLElBQUlBLGdCQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtJQUMvQkEsSUFBSUEsUUFBUUEsR0FBR0EsTUFBTUEsR0FBR0EsU0FBU0EsR0FBR0EsU0FBU0EsQ0FBQ0E7SUFDOUNBLEtBQUtBLENBQUNBLFdBQVdBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO0lBQzVCQSxJQUFJQSxFQUFFQSxHQUFHQSxLQUFLQSxDQUFDQSxPQUFPQSxFQUFFQSxDQUFDQTtJQUN6QkEsSUFBSUEsRUFBRUEsR0FBR0EsZ0JBQU1BLENBQUNBLGNBQWNBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO0lBQ25DQSxJQUFJQSxLQUFLQSxHQUFHQSxFQUFFQSxDQUFDQSxRQUFRQSxDQUFDQSxNQUFNQSxFQUFFQSxFQUFFQSxLQUFLQSxFQUFFQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtJQUMvQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FDVEEsS0FBS0EsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0EsSUFBSUEsRUFBRUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FDaERBLENBQUNBO0FBQ05BLENBQUNBO0FBVmUsNkJBQXFCLHdCQVVwQyxDQUFBIiwiZmlsZSI6InRlc3RzL25vZGUvcnVudGltZS9VdGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi8uLi90eXBpbmdzL3RzZC5kLnRzXCIgLz5cbmltcG9ydCAqIGFzIGNwIGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5cbmltcG9ydCBKU09OaXEgZnJvbSBcIi4uLy4uLy4uL2xpYi9KU09OaXFcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGVjdFF1ZXJ5KHNvdXJjZTogc3RyaW5nLCBqc29uaXE/OiBib29sZWFuKTogamFzbWluZS5NYXRjaGVycyB7XG4gICAgbGV0IHF1ZXJ5ID0gbmV3IEpTT05pcShzb3VyY2UpO1xuICAgIGxldCBmaWxlbmFtZSA9IGpzb25pcSA/IFwidGVzdC5qcVwiIDogXCJ0ZXN0LnhxXCI7XG4gICAgcXVlcnkuc2V0RmlsZU5hbWUoZmlsZW5hbWUpO1xuICAgIGxldCBpdCA9IHF1ZXJ5LmNvbXBpbGUoKTtcbiAgICBsZXQganMgPSBKU09OaXEuc2VyaWFsaXplRGVidWcoaXQpO1xuICAgIGxldCBjaGlsZCA9IGNwLmV4ZWNTeW5jKFwibm9kZVwiLCB7IGlucHV0OiBqcyB9KTtcbiAgICByZXR1cm4gZXhwZWN0KFxuICAgICAgICBjaGlsZC50b1N0cmluZygpID09PSBcIlwiID8gW10gOlxuICAgICAgICBjaGlsZC50b1N0cmluZygpLnRyaW0oKS5zcGxpdChcIlxcblwiKS5tYXAodiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2KTtcbiAgICAgICAgfSlcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwZWN0U2VyaWFsaXplZFF1ZXJ5KHNvdXJjZTogc3RyaW5nLCBqc29uaXE/OiBib29sZWFuKTogamFzbWluZS5NYXRjaGVycyB7XG4gICAgbGV0IHF1ZXJ5ID0gbmV3IEpTT05pcShzb3VyY2UpO1xuICAgIGxldCBmaWxlbmFtZSA9IGpzb25pcSA/IFwidGVzdC5qcVwiIDogXCJ0ZXN0LnhxXCI7XG4gICAgcXVlcnkuc2V0RmlsZU5hbWUoZmlsZW5hbWUpO1xuICAgIGxldCBpdCA9IHF1ZXJ5LmNvbXBpbGUoKTtcbiAgICBsZXQganMgPSBKU09OaXEuc2VyaWFsaXplRGVidWcoaXQpO1xuICAgIGxldCBjaGlsZCA9IGNwLmV4ZWNTeW5jKFwibm9kZVwiLCB7IGlucHV0OiBqcyB9KTtcbiAgICByZXR1cm4gZXhwZWN0KFxuICAgICAgICBjaGlsZC50b1N0cmluZygpLnRyaW0oKS5zcGxpdChcIlxcblwiKS5qb2luKFwiIFwiKVxuICAgICk7XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=