How to use the esquery function in esquery

To help you get started, we’ve selected a few esquery examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github TradeMe / tractor / plugins / page-objects / src / upgrade / 0.6.0.js View on Github external
await Promise.all(esquery(file.ast, ELEMENT_ASSIGNMENT).map(async (assignment, index) => {
        const elementMetaData = metaData.elements[index];

        if (!elementMetaData) {
            return;
        }

        if (elementMetaData.type === true) {
            delete elementMetaData.type;
        }

        const [typedElement] = esquery(assignment, ELEMENT_TYPE_QUERY);
        const [elementGroup] = esquery(assignment, ELEMENT_GROUP_QUERY);
        const [typedElementGroup] = esquery(assignment, ELEMENT_GROUP_TYPE_QUERY);
        if (elementGroup || typedElementGroup) {
            elementMetaData.group = true;
        }
        if (typedElement || typedElementGroup) {
            const typed = typedElement || typedElementGroup;
            const [requireStatement] = esquery(file.ast, PAGE_OBJECT_REQUIRE_QUERY(typed.name));
            const [requirePath] = requireStatement.arguments;
            const pageObjectFilePath = path.resolve(path.dirname(file.path), requirePath.value);
            const pageObjectDirectory = path.dirname(pageObjectFilePath);
            const pageObjectFileStructure = new FileStructure(pageObjectDirectory);
            const pageObject = new PageObjectFile(pageObjectFilePath, pageObjectFileStructure);
            const { name } = await pageObject.meta();
            elementMetaData.type = name;
        }
github TradeMe / tractor / plugins / page-objects / src / upgrade / 0.6.0.js View on Github external
return;
        }

        if (elementMetaData.type === true) {
            delete elementMetaData.type;
        }

        const [typedElement] = esquery(assignment, ELEMENT_TYPE_QUERY);
        const [elementGroup] = esquery(assignment, ELEMENT_GROUP_QUERY);
        const [typedElementGroup] = esquery(assignment, ELEMENT_GROUP_TYPE_QUERY);
        if (elementGroup || typedElementGroup) {
            elementMetaData.group = true;
        }
        if (typedElement || typedElementGroup) {
            const typed = typedElement || typedElementGroup;
            const [requireStatement] = esquery(file.ast, PAGE_OBJECT_REQUIRE_QUERY(typed.name));
            const [requirePath] = requireStatement.arguments;
            const pageObjectFilePath = path.resolve(path.dirname(file.path), requirePath.value);
            const pageObjectDirectory = path.dirname(pageObjectFilePath);
            const pageObjectFileStructure = new FileStructure(pageObjectDirectory);
            const pageObject = new PageObjectFile(pageObjectFilePath, pageObjectFileStructure);
            const { name } = await pageObject.meta();
            elementMetaData.type = name;
        }
    }));
github TradeMe / tractor / packages / tractor-server / src / api / transformers / transforms.js View on Github external
function transformIdentifiers (file, oldName, newName) {
    let query = `Identifier[name="${oldName}"]`;
    _.each(esquery(file.ast, query), (identifier) => {
        identifier.name = newName;
    });
    return file.save(file.ast);
}
github TradeMe / tractor / packages / tractor-server / src / files / StepDefinitionFile.js View on Github external
function checkIfPending () {
    this.isPending = false;

    let pendingIdentifiers = esquery(this.ast, PENDING_QUERY);
    pendingIdentifiers.forEach(pendingIdentifier => {
        if (pendingIdentifier.value === PENDING_IDENTIFIER) {
            this.isPending = true;
        }
    });
}
github TradeMe / tractor / plugins / page-objects / src / upgrade / 0.5.2.js View on Github external
await Promise.all(esquery(file.ast, ELEMENT_ASSIGNMENT).map(async (assignment, index) => {
        const elementMetaData = metaData.elements[index];

        if (!elementMetaData) {
            return;
        }

        const [elementGroup] = esquery(assignment, ELEMENT_GROUP_QUERY);
        const [typedElementGroup] = esquery(assignment, ELEMENT_GROUP_TYPE_QUERY);
        if (elementGroup) {
            elementMetaData.type = true;
        }
        if (typedElementGroup) {
            const [requireStatement] = esquery(file.ast, PAGE_OBJECT_REQUIRE_QUERY(typedElementGroup.name));
            const [requirePath] = requireStatement.arguments;
            const pageObjectFilePath = path.resolve(path.dirname(file.path), requirePath.value);
            const pageObjectDirectory = path.dirname(pageObjectFilePath);
            const pageObjectFileStructure = new FileStructure(pageObjectDirectory);
            const pageObject = new PageObjectFile(pageObjectFilePath, pageObjectFileStructure);
            const { name } = await pageObject.meta();
            elementMetaData.type = name;
        }
    }));
github TradeMe / tractor / plugins / mocha-specs / src / upgrade / cucumber-to-mocha.js View on Github external
function parseThen (ast) {
    const cloned = clone(ast);
    return {
        args: esquery(cloned, CALL_EXPRESSION_WITH_ARGUMENTS_QUERY).map(callExpression => callExpression.arguments).flatten(),
        expressions: esquery(cloned, ASSERTION_CALL_EXPRESSION_QUERY),
        imports: esquery(cloned, PAGE_OBJECT_REQUIRE_STATEMENT_QUERY),
        params: esquery(cloned, STEP_PARAMS_QUERY)
    };
}
github TradeMe / tractor / plugins / page-objects / src / upgrade / 0.6.0.js View on Github external
await Promise.all(esquery(file.ast, ELEMENT_ASSIGNMENT).map(async (assignment, index) => {
        const elementMetaData = metaData.elements[index];

        if (!elementMetaData) {
            return;
        }

        if (elementMetaData.type === true) {
            delete elementMetaData.type;
        }

        const [typedElement] = esquery(assignment, ELEMENT_TYPE_QUERY);
        const [elementGroup] = esquery(assignment, ELEMENT_GROUP_QUERY);
        const [typedElementGroup] = esquery(assignment, ELEMENT_GROUP_TYPE_QUERY);
        if (elementGroup || typedElementGroup) {
            elementMetaData.group = true;
        }
        if (typedElement || typedElementGroup) {
            const typed = typedElement || typedElementGroup;
            const [requireStatement] = esquery(file.ast, PAGE_OBJECT_REQUIRE_QUERY(typed.name));
            const [requirePath] = requireStatement.arguments;
            const pageObjectFilePath = path.resolve(path.dirname(file.path), requirePath.value);
            const pageObjectDirectory = path.dirname(pageObjectFilePath);
            const pageObjectFileStructure = new FileStructure(pageObjectDirectory);
            const pageObject = new PageObjectFile(pageObjectFilePath, pageObjectFileStructure);
            const { name } = await pageObject.meta();
            elementMetaData.type = name;
        }
    }));
github TradeMe / tractor / plugins / page-objects / src / upgrade / 0.5.2.js View on Github external
await Promise.all(esquery(file.ast, ELEMENT_ASSIGNMENT).map(async (assignment, index) => {
        const elementMetaData = metaData.elements[index];

        if (!elementMetaData) {
            return;
        }

        const [elementGroup] = esquery(assignment, ELEMENT_GROUP_QUERY);
        const [typedElementGroup] = esquery(assignment, ELEMENT_GROUP_TYPE_QUERY);
        if (elementGroup) {
            elementMetaData.type = true;
        }
        if (typedElementGroup) {
            const [requireStatement] = esquery(file.ast, PAGE_OBJECT_REQUIRE_QUERY(typedElementGroup.name));
            const [requirePath] = requireStatement.arguments;
            const pageObjectFilePath = path.resolve(path.dirname(file.path), requirePath.value);
            const pageObjectDirectory = path.dirname(pageObjectFilePath);
            const pageObjectFileStructure = new FileStructure(pageObjectDirectory);
            const pageObject = new PageObjectFile(pageObjectFilePath, pageObjectFileStructure);
            const { name } = await pageObject.meta();
            elementMetaData.type = name;
        }
    }));
github TradeMe / tractor / packages / tractor-server / src / api / transformers / transforms.js View on Github external
function transformReferencePath (file, oldFromPath, oldToPath, newFromPath, newToPath) {
    let oldRequirePath = getRelativeRequirePath(path.dirname(oldFromPath), oldToPath);
    let newRequirePath = getRelativeRequirePath(path.dirname(newFromPath), newToPath);
    let query = `CallExpression[callee.name="require"] Literal[value="${oldRequirePath}"]`;
    _.each(esquery(file.ast, query), (requirePathLiteral) => {
        requirePathLiteral.value = newRequirePath;
        requirePathLiteral.raw = `'${newRequirePath}'`;
    });
    return file.save(file.ast);
}
github TradeMe / tractor / plugins / mocha-specs / src / upgrade / cucumber-to-mocha.js View on Github external
        return !!expressions.find(expression => esquery(expression, `Identifier[name="${identifier.name}"]`).length > 0);
    })

esquery

A query library for ECMAScript AST using a CSS selector like query language.

BSD-3-Clause
Latest version published 1 year ago

Package Health Score

74 / 100
Full package analysis