Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'esquery' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
// Module:
import { MochaSpecsModule } from '../mocha-specs.module';
// Dependencies:
import { match, parse } from 'esquery';
import '../models/test';
import './step-parser-service';
// Queries:
const ONLY_QUERY = parse('ExpressionStatement > CallExpression > MemberExpression > Identifier[name="only"]');
const SKIP_QUERY = parse('ExpressionStatement > CallExpression > MemberExpression > Identifier[name="skip"]');
const STEP_QUERY = parse('FunctionExpression > BlockStatement > ExpressionStatement[expression.left.name="step"]');
const FLAKEY_QUERY = parse('FunctionExpression > BlockStatement > ExpressionStatement > CallExpression:has(MemberExpression[object.type="ThisExpression"][property.name="retries"])');
function TestParserService (
TestModel,
astCompareService,
stepParserService
) {
return { parse };
function parse (spec, astObject, meta) {
let test = new TestModel(spec);
if (meta && meta.name) {
test.name = meta.name;
}
return false;
}`);
const s = 'FunctionDeclaration !VariableDeclaration > VariableDeclarator[init.value > 3]';
// $ExpectType Selector
const selector = esquery.parse(s);
// $ExpectType Node[]
const nodes = esquery.query(AST, s);
// $ExpectType Node[]
esquery(AST, s);
// $ExpectError
esquery.parse(3);
// $ExpectType Node[]
esquery.match(AST, selector);
// $ExpectError
esquery.match(AST, 'VariableDeclarator');
// $ExpectType boolean
esquery.matches(nodes[0], selector, esquery(AST, 'FunctionDeclaration'));
// $ExpectError
esquery.match(3, selector);
switch (selector.type) {
case 'adjacent':
// $ExpectType SubjectSelector
// Module:
import { MochaSpecsModule } from '../mocha-specs.module';
// Dependencies:
import { match, parse } from 'esquery';
import '../models/test';
import './step-parser-service';
// Queries:
const ONLY_QUERY = parse('ExpressionStatement > CallExpression > MemberExpression > Identifier[name="only"]');
const SKIP_QUERY = parse('ExpressionStatement > CallExpression > MemberExpression > Identifier[name="skip"]');
const STEP_QUERY = parse('FunctionExpression > BlockStatement > ExpressionStatement[expression.left.name="step"]');
const FLAKEY_QUERY = parse('FunctionExpression > BlockStatement > ExpressionStatement > CallExpression:has(MemberExpression[object.type="ThisExpression"][property.name="retries"])');
function TestParserService (
TestModel,
astCompareService,
stepParserService
) {
return { parse };
function parse (spec, astObject, meta) {
let test = new TestModel(spec);
if (meta && meta.name) {
test.name = meta.name;
}
let [only] = match(astObject, ONLY_QUERY);
const nodes = esquery.query(AST, s);
// $ExpectType Node[]
esquery(AST, s);
// $ExpectError
esquery.parse(3);
// $ExpectType Node[]
esquery.match(AST, selector);
// $ExpectError
esquery.match(AST, 'VariableDeclarator');
// $ExpectType boolean
esquery.matches(nodes[0], selector, esquery(AST, 'FunctionDeclaration'));
// $ExpectError
esquery.match(3, selector);
switch (selector.type) {
case 'adjacent':
// $ExpectType SubjectSelector
selector.left;
// $ExpectType SubjectSelector
selector.right;
break;
case 'attribute':
// $ExpectType string
selector.name;
}
import * as esquery from 'esquery';
const AST = esprima.parseScript(`const x = 2;
function f (n) {
const y = 4;
if (n > y) return true;
return false;
}`);
const s = 'FunctionDeclaration !VariableDeclaration > VariableDeclarator[init.value > 3]';
// $ExpectType Selector
const selector = esquery.parse(s);
// $ExpectType Node[]
const nodes = esquery.query(AST, s);
// $ExpectType Node[]
esquery(AST, s);
// $ExpectError
esquery.parse(3);
// $ExpectType Node[]
esquery.match(AST, selector);
// $ExpectError
esquery.match(AST, 'VariableDeclarator');
// $ExpectType boolean
esquery.matches(nodes[0], selector, esquery(AST, 'FunctionDeclaration'));
[, mockRequest.action] = action.name.match(MOCK_REQUEST_ACTION_REGEX);
}
let [url, options] = astObject.arguments;
if (url && options) {
// We escape parts of the RegExp when we save it, so we need to un-escape
// it before it goes back into the UI:
mockRequest.url = url.regex.pattern.replace(/\\\?/g, '?');
let [passThrough] = match(options, MOCK_REQUEST_PASSTHROUGH_QUERY);
if (passThrough) {
mockRequest.passThrough = passThrough.value;
return;
}
let [data] = match(options, MOCK_REQUEST_DATA_QUERY);
if (data) {
mockRequest.data = mockRequest.test.spec.availableMockRequests.find(mockRequest => mockRequest.variableName === data.name);
}
let [status] = match(options, MOCK_REQUEST_STATUS_QUERY);
if (status) {
mockRequest.status = status.value;
}
let headers = match(options, MOCK_REQUEST_HEADERS_QUERY);
headers.forEach(headerASTObject => {
let header = headerParserService.parse(mockRequest, headerASTObject);
mockRequest.headers.push(header);
});
}
}
// Module:
import { MochaSpecsModule } from '../mocha-specs.module';
// Constants:
const MOCK_REQUEST_ACTION_REGEX = /when(.*)/;
// Dependencies:
import { match, parse } from 'esquery';
import '../models/mock-request';
import './header-parser-service';
// Queries:
const MOCK_REQUEST_ACTION_QUERY = parse('CallExpression > MemberExpression > Identifier[name=/^when/]');
const MOCK_REQUEST_PASSTHROUGH_QUERY = parse('Property[key.name="passThrough"] > Literal');
const MOCK_REQUEST_DATA_QUERY = parse('Property[key.name="body"] > Identifier[name!="body"]');
const MOCK_REQUEST_STATUS_QUERY = parse('Property[key.name="status"] > Literal');
const MOCK_REQUEST_HEADERS_QUERY = parse('Property[key.name="headers"] > ObjectExpression > Property');
function MockRequestParserService (
SpecMockRequestModel,
headerParserService
) {
return { parse };
function parse (test, astObject) {
let mockRequest = new SpecMockRequestModel(test);
_parseMockRequest(mockRequest, astObject);
return mockRequest;
}
import { PageObjectsModule } from '../page-objects.module';
// Constants:
import { ELEMENT_GROUP_SELECTOR_ARGUMENT } from '../models/meta/element-group-selector-argument';
// Dependencies:
import { match, parse } from 'esquery';
import '../models/interaction';
import './action-argument-parser.service';
// Queries:
const ACTION_CALL_EXPRESSION_QUERY = 'CallExpression[callee.object.name="result"] > FunctionExpression > BlockStatement >';
const ACTION_CALL_EXPRESSION_NOT_OPTIONAL_QUERY = parse(`${ACTION_CALL_EXPRESSION_QUERY} ReturnStatement > CallExpression[callee.property.name!="then"]`);
const ACTION_CALL_EXPRESSION_OPTIONAL_QUERY = parse(`${ACTION_CALL_EXPRESSION_QUERY} VariableDeclaration CallExpression`);
const ACTION_MEMBER_EXPRESSION_QUERY = parse('MemberExpression[object.name!="self"][property.type="Identifier"]');
const ELEMENT_MEMBER_EXPRESSION_QUERY = parse('MemberExpression > MemberExpression[object.type="Identifier"][property.type="Identifier"]');
const ELEMENT_GROUP_MEMBER_EXPRESSION_QUERY = parse('MemberExpression > CallExpression > MemberExpression[object.type="Identifier"][property.type="Identifier"]');
const ELEMENT_GROUP_SELECTOR_QUERY = parse('CallExpression > MemberExpression > CallExpression');
const PLUGIN_MEMBER_EXPRESSION_QUERY = parse('MemberExpression[object.type="Identifier"][property.type="Identifier"]');
function InteractionParserService (
InteractionModel,
astCompareService,
actionArgumentParserService
) {
const QUERY_SELECTOR = {
notOptional: ACTION_CALL_EXPRESSION_NOT_OPTIONAL_QUERY,
optional: ACTION_CALL_EXPRESSION_OPTIONAL_QUERY
};
const QUERY_HANDLER = {
notOptional: _interactionParser,
optional: _optionalInteractionParser
// Module:
import { MochaSpecsModule } from '../mocha-specs.module';
// Dependencies:
import { match, parse } from 'esquery';
import '../models/assertion';
// Queries:
const ASSERTION_ARGUMENT_QUERY = parse('ReturnStatement > CallExpression > Literal');
const ASSERTION_CONDITION_QUERY = parse('ReturnStatement > CallExpression > MemberExpression > Identifier');
function AssertionParserService (
SpecAssertionModel,
) {
return { parse };
function parse (test, astObject) {
let assertion = new SpecAssertionModel(test);
_parseAssertion(assertion, astObject);
return assertion;
}
function _parseAssertion (assertion, astObject) {
let [argument] = match(astObject, ASSERTION_ARGUMENT_QUERY);
assertion.expectedResult.value = argument && argument.value != null ? argument.value.toString() : null;
// Module:
import { MochaSpecsModule } from '../mocha-specs.module';
// Dependencies:
import { match, parse } from 'esquery';
import '../models/interaction';
import '../models/step';
import '../models/step-argument';
import './assertion-parser-service';
import './mock-request-parser-service';
// Queries:
const STEP_QUERY = parse('AssignmentExpression > CallExpression[callee.object.name="step"][callee.property.name="then"] > FunctionExpression > BlockStatement');
const PAGE_OBJECT_QUERY = parse('AssignmentExpression > Identifier[name!="element"]');
const SELECTOR_QUERY = parse('AssignmentExpression:has(MemberExpression[object.name="element"])');
const GROUP_SELECTOR_QUERY = parse('AssignmentExpression > CallExpression[callee.object.name="element"]');
const ELEMENT_SELECTOR_QUERY = parse('AssignmentExpression > MemberExpression[object.name="element"]');
const ASSERTION_QUERY = parse(`ReturnStatement > CallExpression > MemberExpression[property.name=/equal|contain/] > MemberExpression[property.name="eventually"] > MemberExpression[property.name="to"] > CallExpression[callee.name="expect"] > CallExpression`);
const INTERACTION_QUERY = parse('ReturnStatement > CallExpression[callee.object.name="element"]');
const MOCK_REQUEST_QUERY = parse('ReturnStatement > CallExpression[callee.object.name="mockRequests"]');
function StepParserService (
SpecInteractionModel,
SpecStepModel,
StepArgumentModel,
assertionParserService,
mockRequestParserService,
astCompareService
) {
return { parse };