UNPKG

@figma/code-connect

Version:

A tool for connecting your design system components in code with your design system in Figma

62 lines 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CodeConnectLanguage = exports.CodeConnectLabel = void 0; exports.getInferredLanguageForRaw = getInferredLanguageForRaw; /** * Default Code Connect labels for native parsers */ var CodeConnectLabel; (function (CodeConnectLabel) { CodeConnectLabel["React"] = "React"; CodeConnectLabel["Storybook"] = "Storybook"; CodeConnectLabel["SwiftUI"] = "SwiftUI"; CodeConnectLabel["Compose"] = "Compose"; CodeConnectLabel["WebComponents"] = "Web Components"; CodeConnectLabel["HTML"] = "HTML"; CodeConnectLabel["Vue"] = "Vue"; CodeConnectLabel["Angular"] = "Angular"; CodeConnectLabel["Code"] = "Code"; })(CodeConnectLabel || (exports.CodeConnectLabel = CodeConnectLabel = {})); /** * Supported Code Connect languages for syntax highlighting and formatting */ var CodeConnectLanguage; (function (CodeConnectLanguage) { CodeConnectLanguage["TypeScript"] = "typescript"; CodeConnectLanguage["Swift"] = "swift"; CodeConnectLanguage["Kotlin"] = "kotlin"; CodeConnectLanguage["HTML"] = "html"; CodeConnectLanguage["Raw"] = "raw"; })(CodeConnectLanguage || (exports.CodeConnectLanguage = CodeConnectLanguage = {})); /** * Maps Code Connect labels to their corresponding language for syntax highlighting. * This is used for raw template files to infer the correct language. */ const LABEL_TO_LANGUAGE_MAP = { [CodeConnectLabel.React]: CodeConnectLanguage.TypeScript, [CodeConnectLabel.Storybook]: CodeConnectLanguage.TypeScript, [CodeConnectLabel.SwiftUI]: CodeConnectLanguage.Swift, [CodeConnectLabel.Compose]: CodeConnectLanguage.Kotlin, [CodeConnectLabel.WebComponents]: CodeConnectLanguage.HTML, [CodeConnectLabel.HTML]: CodeConnectLanguage.HTML, [CodeConnectLabel.Vue]: CodeConnectLanguage.TypeScript, [CodeConnectLabel.Angular]: CodeConnectLanguage.TypeScript, [CodeConnectLabel.Code]: CodeConnectLanguage.Raw, }; /** * Infers the appropriate language for a raw template file based on its label. * Falls back to 'raw' if the label is not recognized. * * @param label - The label associated with the Code Connect file * @returns The corresponding language identifier for syntax highlighting */ function getInferredLanguageForRaw(label) { // Try to match against known labels (enum values) const knownLabel = Object.values(CodeConnectLabel).find((enumLabel) => enumLabel === label); if (knownLabel) { return LABEL_TO_LANGUAGE_MAP[knownLabel]; } // Fallback to raw for unknown labels return CodeConnectLanguage.Raw; } //# sourceMappingURL=label_language_mapping.js.map