mlld
Version:
mlld: llm scripting language
1 lines • 16.2 kB
Source Map (JSON)
{"version":3,"sources":["../core/types/variable/TypeGuards.ts"],"names":["isSimpleText","variable","type","isInterpolatedText","isTemplate","isFileContent","isSectionContent","isObject","isArray","isComputed","isCommandResult","isPath","isImported","isExecutable","isPipelineInput","isStructuredValueVariable","isPrimitive","isTextLike","isStructured","isExternal","VariableTypeGuards","hasType","getMatchingTypes","types","push","validateType","expectedType","isAnyType","includes","filterByType","variables","guard","filter","findByType","find","countByType","v","length","groupByType","groups","Map","existing","get","set","isStructuredValue","FastTypeGuards","isAnyTextType","isAnyDataType","isComplexType","requiresLazyEvaluation","internal","isComplex"],"mappings":"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","file":"chunk-EIWSEMQ4.mjs","sourcesContent":["/**\n * Variable Type Guards\n * \n * Runtime type checking and TypeScript type narrowing functions for all variable types.\n */\n\nimport {\n Variable,\n VariableTypeDiscriminator,\n SimpleTextVariable,\n InterpolatedTextVariable,\n TemplateVariable,\n FileContentVariable,\n SectionContentVariable,\n ObjectVariable,\n ArrayVariable,\n ComputedVariable,\n CommandResultVariable,\n PathVariable,\n ImportedVariable,\n ExecutableVariable,\n PipelineInputVariable,\n PrimitiveVariable,\n TextLikeVariable,\n StructuredVariable,\n ExternalVariable,\n StructuredValueVariable\n} from './VariableTypes';\n\n// =========================================================================\n// INDIVIDUAL TYPE GUARDS\n// =========================================================================\n\n/**\n * Type guard for SimpleTextVariable\n */\nexport function isSimpleText(variable: Variable): variable is SimpleTextVariable {\n return variable.type === 'simple-text';\n}\n\n/**\n * Type guard for InterpolatedTextVariable\n */\nexport function isInterpolatedText(variable: Variable): variable is InterpolatedTextVariable {\n return variable.type === 'interpolated-text';\n}\n\n/**\n * Type guard for TemplateVariable\n */\nexport function isTemplate(variable: Variable): variable is TemplateVariable {\n return variable.type === 'template';\n}\n\n/**\n * Type guard for FileContentVariable\n */\nexport function isFileContent(variable: Variable): variable is FileContentVariable {\n return variable.type === 'file-content';\n}\n\n/**\n * Type guard for SectionContentVariable\n */\nexport function isSectionContent(variable: Variable): variable is SectionContentVariable {\n return variable.type === 'section-content';\n}\n\n/**\n * Type guard for ObjectVariable\n */\nexport function isObject(variable: Variable): variable is ObjectVariable {\n return variable.type === 'object';\n}\n\n/**\n * Type guard for ArrayVariable\n */\nexport function isArray(variable: Variable): variable is ArrayVariable {\n return variable.type === 'array';\n}\n\n/**\n * Type guard for ComputedVariable\n */\nexport function isComputed(variable: Variable): variable is ComputedVariable {\n return variable.type === 'computed';\n}\n\n/**\n * Type guard for CommandResultVariable\n */\nexport function isCommandResult(variable: Variable): variable is CommandResultVariable {\n return variable.type === 'command-result';\n}\n\n/**\n * Type guard for PathVariable\n */\nexport function isPath(variable: Variable): variable is PathVariable {\n return variable.type === 'path';\n}\n\n/**\n * Type guard for ImportedVariable\n */\nexport function isImported(variable: Variable): variable is ImportedVariable {\n return variable.type === 'imported';\n}\n\n/**\n * Type guard for ExecutableVariable\n */\nexport function isExecutable(variable: Variable): variable is ExecutableVariable {\n return variable.type === 'executable';\n}\n\n/**\n * Type guard for PipelineInputVariable\n */\nexport function isPipelineInput(variable: Variable): variable is PipelineInputVariable {\n return variable.type === 'pipeline-input';\n}\n\n/**\n * Type guard for StructuredValueVariable\n */\nexport function isStructuredValueVariable(variable: Variable): variable is StructuredValueVariable {\n return variable.type === 'structured';\n}\n\n/**\n * Type guard for PrimitiveVariable\n */\nexport function isPrimitive(variable: Variable): variable is PrimitiveVariable {\n return variable.type === 'primitive';\n}\n\n\n// =========================================================================\n// COMPOSITE TYPE GUARDS\n// =========================================================================\n\n/**\n * Check if variable contains text-like content\n */\nexport function isTextLike(variable: Variable): variable is TextLikeVariable {\n return isSimpleText(variable) || \n isInterpolatedText(variable) || \n isTemplate(variable) || \n isFileContent(variable) || \n isSectionContent(variable) ||\n isCommandResult(variable);\n}\n\n/**\n * Check if variable contains structured data\n */\nexport function isStructured(variable: Variable): variable is StructuredVariable {\n return isObject(variable) || isArray(variable) || isStructuredValueVariable(variable);\n}\n\n/**\n * Check if variable was created from external content\n */\nexport function isExternal(variable: Variable): variable is ExternalVariable {\n return isFileContent(variable) || \n isSectionContent(variable) || \n isImported(variable) || \n isCommandResult(variable) ||\n isComputed(variable);\n}\n\n// =========================================================================\n// UTILITY TYPE GUARDS\n// =========================================================================\n\n/**\n * Type guard class for organized access to all type checking functions\n */\nexport class VariableTypeGuards {\n // Individual type guards\n static isSimpleText = isSimpleText;\n static isInterpolatedText = isInterpolatedText;\n static isTemplate = isTemplate;\n static isFileContent = isFileContent;\n static isSectionContent = isSectionContent;\n static isObject = isObject;\n static isArray = isArray;\n static isComputed = isComputed;\n static isCommandResult = isCommandResult;\n static isPath = isPath;\n static isImported = isImported;\n static isExecutable = isExecutable;\n static isPipelineInput = isPipelineInput;\n static isStructuredValue = isStructuredValueVariable;\n static isPrimitive = isPrimitive;\n\n // Composite type guards\n static isTextLike = isTextLike;\n static isStructured = isStructured;\n static isExternal = isExternal;\n\n /**\n * Check if variable has a specific type discriminator\n */\n static hasType(variable: Variable, type: VariableTypeDiscriminator): boolean {\n return variable.type === type;\n }\n\n /**\n * Get all type discriminators that match the variable\n */\n static getMatchingTypes(variable: Variable): VariableTypeDiscriminator[] {\n const types: VariableTypeDiscriminator[] = [variable.type];\n \n // Add composite type categories\n if (this.isTextLike(variable)) {\n types.push('simple-text'); // Representing text-like category\n }\n \n if (this.isStructured(variable)) {\n types.push('object'); // Representing structured category\n }\n \n if (this.isExternal(variable)) {\n types.push('imported'); // Representing external category\n }\n \n return types;\n }\n\n /**\n * Validate that a variable matches expected type\n */\n static validateType(\n variable: Variable, \n expectedType: VariableTypeDiscriminator\n ): boolean {\n return variable.type === expectedType;\n }\n\n /**\n * Check if variable is of any of the specified types\n */\n static isAnyType(\n variable: Variable, \n types: VariableTypeDiscriminator[]\n ): boolean {\n return types.includes(variable.type);\n }\n\n /**\n * Filter variables by type\n */\n static filterByType<T extends Variable>(\n variables: Variable[],\n guard: (variable: Variable) => variable is T\n ): T[] {\n return variables.filter(guard);\n }\n\n /**\n * Find first variable of specified type\n */\n static findByType<T extends Variable>(\n variables: Variable[],\n guard: (variable: Variable) => variable is T\n ): T | undefined {\n return variables.find(guard);\n }\n\n /**\n * Count variables by type\n */\n static countByType(\n variables: Variable[],\n type: VariableTypeDiscriminator\n ): number {\n return variables.filter(v => v.type === type).length;\n }\n\n /**\n * Group variables by their types\n */\n static groupByType(variables: Variable[]): Map<VariableTypeDiscriminator, Variable[]> {\n const groups = new Map<VariableTypeDiscriminator, Variable[]>();\n \n for (const variable of variables) {\n const existing = groups.get(variable.type) || [];\n existing.push(variable);\n groups.set(variable.type, existing);\n }\n \n return groups;\n }\n}\n\n// =========================================================================\n// PERFORMANCE OPTIMIZED TYPE CHECKING\n// =========================================================================\n\n/**\n * Fast type checking utilities for performance-critical paths\n */\nexport class FastTypeGuards {\n /**\n * Fast check for text types (most common)\n */\n static isAnyTextType(variable: Variable): boolean {\n const type = variable.type;\n return type === 'simple-text' || \n type === 'interpolated-text' || \n type === 'template' ||\n type === 'file-content' ||\n type === 'section-content' ||\n type === 'command-result';\n }\n\n /**\n * Fast check for data types\n */\n static isAnyDataType(variable: Variable): boolean {\n const type = variable.type;\n return type === 'object' || \n type === 'array' || \n type === 'computed' || \n type === 'primitive';\n }\n\n /**\n * Fast check for complex types that might need special handling\n */\n static isComplexType(variable: Variable): boolean {\n const type = variable.type;\n return type === 'imported' || \n type === 'executable' || \n type === 'pipeline-input' ||\n type === 'path';\n }\n\n /**\n * Check if variable type requires lazy evaluation\n */\n static requiresLazyEvaluation(variable: Variable): boolean {\n return isTemplate(variable) ||\n isPipelineInput(variable) ||\n (isImported(variable) && variable.internal?.isComplex);\n }\n}\n"]}