cannabis
Version:
TypeScript AST Query library
57 lines • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var queryAst_1 = require("./queryAst");
var queryShortcuts;
/**
* Will query given code or node and if there is any error, like query syntax error, it will fail silently,
* returning an empty array.
*/
function queryAll(q, codeOrNode) {
var r = queryAst_1.queryAst(q, codeOrNode);
return r.result || [];
}
exports.queryAll = queryAll;
/**
* Will query given code or node and if there is any error, like query syntax error, it will fail silently,
* returning an empty array.
*/
function queryAllOrThrow(q, codeOrNode) {
var r = queryAst_1.queryAst(q, codeOrNode);
if (r.error) {
throw r.error;
}
else if (!r.result || !r.result.length) {
throw new Error('Expected to select at least one element with query ' + q + ' but none matched. ');
}
else {
return r.result;
}
}
exports.queryAllOrThrow = queryAllOrThrow;
/**
* Will query given code or node and if there is any error, like query syntax error, it will fail silently,
* returning an empty array.
*/
function queryOne(q, codeOrNode) {
var r = queryAst_1.queryAst(q, codeOrNode);
return r.result && r.result.length && r.result[0] || undefined;
}
exports.queryOne = queryOne;
/**
* Will query given code or node and if there is any error, like query syntax error, it will fail silently,
* returning an empty array.
*/
function queryOneOrThrow(q, codeOrNode) {
var r = queryAst_1.queryAst(q, codeOrNode);
if (r.error) {
throw r.error;
}
else if (!r.result || !r.result.length) {
throw new Error('Expected to select at least one element with query ' + q + ' but none matched. ');
}
else {
return r.result[0];
}
}
exports.queryOneOrThrow = queryOneOrThrow;
//# sourceMappingURL=queryShortcuts.js.map