import { Position } from "codemirror"; import { EvaluationError, extraLibraries, PropertyEvaluationErrorType, } from "utils/DynamicBindingUtils"; import { JSHINT as jshint } from "jshint"; import { isEmpty, keys, last } from "lodash"; import { EvaluationScripts, EvaluationScriptType, ScriptTemplate, } from "workers/evaluate"; import { ECMA_VERSION } from "workers/constants"; import { getLintSeverity } from "components/editorComponents/CodeEditor/lintHelpers"; export const getPositionInEvaluationScript = ( type: EvaluationScriptType, ): Position => { const script = EvaluationScripts[type]; const index = script.indexOf(ScriptTemplate); const substr = script.substr(0, index); const lines = substr.split("\n"); const lastLine = last(lines) || ""; return { line: lines.length, ch: lastLine.length }; }; const EvaluationScriptPositions: Record = {}; function getEvaluationScriptPosition(scriptType: EvaluationScriptType) { if (isEmpty(EvaluationScriptPositions)) { // We are computing position of <