@arcgis/coding-components
Version:
Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.
42 lines (41 loc) • 1.38 kB
TypeScript
/// <reference types="@arcgis/core/interfaces.d.ts" />
import { editor } from 'monaco-editor';
import { ApiCategory, ApiContext } from '@arcgis/languages-api-utils';
export declare class SQLExpressionValidation {
private callStack;
private _sdkFunctions;
private _fields;
markers: editor.IMarkerData[];
constructor(sdkLibrary: ApiCategory[], _apiContext: ApiContext);
/**
* validates the SQL Expression by generating an AST and traversing it
* @param modelContent The SQL Expression to validate
*/
validateModel(modelContent: string): Promise<void>;
/**
* a DFS traversal of the SQL Expression AST
* @param node The node to traverse, start with the root node
*/
traverse(node: __esri.SQLNode): void;
/**
* Validates a nodes syntax and types
* @param node The node to validate
*/
private _validateNode;
private _handleParserFailure;
/**
* Formats a node's range into a Monaco IRange object.
* @param node
*/
private _getRange;
/**
* finds the function in the SDK library.
* @param name name of the function
*/
private _getFunction;
/**
* looks at the node and finds any children attached to it. If there are children, it will traverse them.
* @param node The current node to traverse
*/
private _traverseChildren;
}