@arcgis/coding-components
Version:
Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.
82 lines (81 loc) • 3.13 kB
TypeScript
/// <reference types="@arcgis/core/interfaces.d.ts" />
import { IRange, editor } from 'monaco-editor';
import { ArcGISFieldType, SqlExpressionLiteral } from './types';
import { ApiVariable } from '@arcgis/languages-api-utils';
export interface ValidationSyntaxContext {
token: string;
range: IRange;
startDelimiter?: boolean;
content?: ValidationSyntaxContext[];
}
export declare enum TokenType {
SINGLE = "SINGLE",
EMPTY_FIELD = "EMPTY_FIELD",
ERROR = "ERROR",
FIELD = "FIELD",
KEYWORD_IN = "IN",
KEYWORD_NOT_IN = "NOT IN",
KEYWORD_BETWEEN = "BETWEEN",
KEYWORD_NOT_BETWEEN = "NOT BETWEEN",
LIST = "LIST",
NEGATION = "NOT",
NUMBER = "NUMBER",
OPERATOR = "OPERATOR",
PARENTHESES = "PARENTHESES",
STRING = "STRING",
UNKNOWN = "UNKNOWN"
}
export declare enum Token {
CASE = "CASE",
CASE_ELSE = "ELSE",
CASE_THEN = "THEN",
CASE_WHEN = "WHEN",
COMMA = ",",
DOUBLE_QUOTE = "\"",
EMPTY = "",
END = "END",
INTERVAL = "INTERVAL",
LEFT_PARENTHESES = "(",
NEW_LINE = "\n",
RIGHT_PARENTHESES = ")",
SINGLE_QUOTE = "'",
WHITE_SPACE = " "
}
export declare enum NodeReturnType {
BOOLEAN = "BOOLEAN",
DOUBLE = "DOUBLE",
EXPRESSION_LIST = "EXPRESSION-LIST",
FLOAT = "FLOAT",
INTEGER = "INTEGER",
NULL = "NULL",
NUMBER = "NUMBER",
REAL = "REAL",
STRING = "STRING",
SMALL_INT = "SMALLINT",
UNKNOWN_FUNCTION = "UNKNOWN_FUNCTION"
}
export declare enum CallableExpressionResponse {
FUNCTION = "FUNCTION",
EXPRESSION_LIST = "EXPRESSION_LIST",
SUCCESS = "SUCCESS",
NON_CALLABLE = "NON_CALLABLE"
}
export declare const isValidIntervalValue: RegExp;
export declare const relationalTypes: SqlExpressionLiteral[];
export declare const qualifiers: TokenType[];
export declare function convertArcgisTypeToSqlReturnType(arcgisType: ArcGISFieldType): SqlExpressionLiteral;
export declare const identifyNodeReturnType: (node: __esri.SQLNode, fields: ApiVariable[]) => SqlExpressionLiteral | "time-only" | "unknown_function";
/**
* Helper function to identify if the given type is able to be used in arithmetic operations
*/
export declare const isArithmeticType: (type: SqlExpressionLiteral) => boolean;
/**
* SQL allows arithmetic operations on intervals combined with dates or numbers.
*/
export declare const isValidIntervalArithmetic: (leftNode: __esri.SQLNode, rightNode: __esri.SQLNode, fields: ApiVariable[]) => boolean;
export declare const isNumericType: (type: SqlExpressionLiteral) => boolean;
export declare const formatListToString: (types: SqlExpressionLiteral[], delimiter: string) => string;
export declare const formatType: (type: string) => string;
export declare const getValueFromNode: (node: __esri.SQLNode) => number | string;
export declare const addNewMarker: (message: string, range: __esri.SQLSourceLocation | IRange, markers: editor.IMarkerData[], isNodeFormat?: boolean) => void;
export declare const validateTypeMatch: (node: __esri.SQLNode, expectedType: NodeReturnType, markers: editor.IMarkerData[], fields: ApiVariable[]) => void;