import { SpecifyError, specifyErrors } from '../errors/index.js'; import { generateBarrelFileParserName } from './parsers-generation/generate-barrel-file/definition.js'; import { generateBarrelFileHandler } from './parsers-generation/generate-barrel-file/generateBarrelFileHandler.js'; import { postReplaceStringParserName } from './parsers-generation/post-replace-string/definition.js'; import { postReplaceStringHandler } from './parsers-generation/post-replace-string/postReplaceStringHandler.js'; import { prettierParserName } from './parsers-generation/prettier/definition.js'; import { prettierHandler } from './parsers-generation/prettier/prettierHandler.js'; import { svgToJsxParserName } from './parsers-generation/svg-to-jsx/definition.js'; import { svgToJsxHandler } from './parsers-generation/svg-to-jsx/svgToJsxHandler.js'; import { svgToTsxParserName } from './parsers-generation/svg-to-tsx/definition.js'; import { svgToTsxHandler } from './parsers-generation/svg-to-tsx/svgToTsxHandler.js'; import { svgoParserName } from './parsers-generation/svgo/definition.js'; import { svgoHandler } from './parsers-generation/svgo/svgoHandler.js'; import { toBitmapFileParserName } from './parsers-generation/to-bitmap-file/definition.js'; import { toBitmapFileHandler } from './parsers-generation/to-bitmap-file/toBitmapFileHandler.js'; import { toCssCustomPropertiesParserName } from './parsers-generation/to-css-custom-properties/definition.js'; import { toCssCustomPropertiesHandler } from './parsers-generation/to-css-custom-properties/toCssCustomPropertiesHandler.js'; import { toCssFontImportParserName } from './parsers-generation/to-css-font-import/definition.js'; import { toCssFontImportHandler } from './parsers-generation/to-css-font-import/toCssFontImportHandler.js'; import { toCssTextStyleParserName } from './parsers-generation/to-css-text-style/definition.js'; import { toCssTextStyleHandler } from './parsers-generation/to-css-text-style/toCssTextStyleHandler.js'; import { toFileParserName } from './parsers-generation/to-file/definition.js'; import { toFileHandler } from './parsers-generation/to-file/toFileHandler.js'; import { toFlutterParserName } from './parsers-generation/to-flutter/definition.js'; import { toFlutterHandler } from './parsers-generation/to-flutter/toFlutterHandler.js'; import { toJavascriptParserName } from './parsers-generation/to-javascript/definition.js'; import { toJavascriptHandler } from './parsers-generation/to-javascript/toJavascriptHandler.js'; import { toJsonListParserName } from './parsers-generation/to-json-list/definition.js'; import { toJsonListHandler } from './parsers-generation/to-json-list/toJsonListHandler.js'; import { toJsonParserName } from './parsers-generation/to-json/definition.js'; import { toJsonHandler } from './parsers-generation/to-json/toJsonHandler.js'; import { toKotlinParserName } from './parsers-generation/to-kotlin/definition.js'; import { toKotlinHandler } from './parsers-generation/to-kotlin/toKotlinHandler.js'; import { toReactNativeParserName } from './parsers-generation/to-react-native/definition.js'; import { toReactNativeHandler } from './parsers-generation/to-react-native/toReactNativeHandler.js'; import { toScssMapParserName } from './parsers-generation/to-scss-map/definition.js'; import { toScssMapHandler } from './parsers-generation/to-scss-map/toScssMapHandler.js'; import { toScssMixinTextStyleParserName } from './parsers-generation/to-scss-mixin-text-style/definition.js'; import { toScssMixinTextStyleHandler } from './parsers-generation/to-scss-mixin-text-style/toScssMixinTextStyleHandler.js'; import { toScssVariablesParserName } from './parsers-generation/to-scss-variables/definition.js'; import { toScssVariablesHandler } from './parsers-generation/to-scss-variables/toScssVariablesHandler.js'; import { toSdtfParserName } from './parsers-generation/to-sdtf/definition.js'; import { toSdtfHandler } from './parsers-generation/to-sdtf/toSdtfHandler.js'; import { toStyleDictionaryParserName } from './parsers-generation/to-style-dictionnary/definition.js'; import { toStyleDictionaryHandler } from './parsers-generation/to-style-dictionnary/toStyleDictionaryHandler.js'; import { toSvgFileParserName } from './parsers-generation/to-svg-file/definition.js'; import { toSvgFileHandler } from './parsers-generation/to-svg-file/toSvgFileHandler.js'; import { toSwiftParserName } from './parsers-generation/to-swift/definition.js'; import { toSwiftHandler } from './parsers-generation/to-swift/toSwiftHandler.js'; import { toTailwindParserName } from './parsers-generation/to-tailwind/definition.js'; import { toTailwindHandler } from './parsers-generation/to-tailwind/toTailwindHandler.js'; import { toTypescriptParserName } from './parsers-generation/to-typescript/definition.js'; import { toTypescriptHandler } from './parsers-generation/to-typescript/toTypescriptHandler.js'; import { changeCaseHandler } from './parsers-utility/change-case/changeCase.js'; import { changeCaseParserName } from './parsers-utility/change-case/definition.js'; import { convertColorHandler } from './parsers-utility/convert-color/convertColor.js'; import { convertColorParserName } from './parsers-utility/convert-color/definition.js'; import { convertDimensionHandler } from './parsers-utility/convert-dimension/convertDimension.js'; import { convertDimensionParserName } from './parsers-utility/convert-dimension/definition.js'; import { filterParserName } from './parsers-utility/filter/definition.js'; import { filterHandler } from './parsers-utility/filter/filter.js'; import { makeLineHeightRelativeParserName } from './parsers-utility/make-line-height-relative/definition.js'; import { makeLineHeightRelativeHandler } from './parsers-utility/make-line-height-relative/makeLineHeightRelative.js'; import { prefixByParserName } from './parsers-utility/prefix-by/definition.js'; import { prefixByHandler } from './parsers-utility/prefix-by/prefixBy.js'; import { registerViewParserName } from './parsers-utility/register-view/definition.js'; import { registerViewHandler } from './parsers-utility/register-view/registerViewHandler.js'; import { replaceStringParserName } from './parsers-utility/replace-string/definition.js'; import { replaceStringHandler } from './parsers-utility/replace-string/replaceString.js'; import { roundNumberParserName } from './parsers-utility/round-number/definition.js'; import { roundNumberHandler } from './parsers-utility/round-number/roundNumber.js'; import { selectModesParserName } from './parsers-utility/select-modes/definition.js'; import { selectModesHandler } from './parsers-utility/select-modes/selectModes.js'; import { suffixByParserName } from './parsers-utility/suffix-by/definition.js'; import { suffixByHandler } from './parsers-utility/suffix-by/suffixBy.js'; export const builtInParserHandlersMap = { // generation [generateBarrelFileParserName]: generateBarrelFileHandler, [postReplaceStringParserName]: postReplaceStringHandler, [prettierParserName]: prettierHandler, [svgToJsxParserName]: svgToJsxHandler, [svgToTsxParserName]: svgToTsxHandler, [svgoParserName]: svgoHandler, [toBitmapFileParserName]: toBitmapFileHandler, [toCssCustomPropertiesParserName]: toCssCustomPropertiesHandler, [toCssFontImportParserName]: toCssFontImportHandler, [toCssTextStyleParserName]: toCssTextStyleHandler, [toFileParserName]: toFileHandler, [toFlutterParserName]: toFlutterHandler, [toJavascriptParserName]: toJavascriptHandler, [toJsonParserName]: toJsonHandler, [toJsonListParserName]: toJsonListHandler, [toKotlinParserName]: toKotlinHandler, [toReactNativeParserName]: toReactNativeHandler, [toScssMapParserName]: toScssMapHandler, [toScssMixinTextStyleParserName]: toScssMixinTextStyleHandler, [toScssVariablesParserName]: toScssVariablesHandler, [toSdtfParserName]: toSdtfHandler, [toStyleDictionaryParserName]: toStyleDictionaryHandler, [toSvgFileParserName]: toSvgFileHandler, [toSwiftParserName]: toSwiftHandler, [toTailwindParserName]: toTailwindHandler, [toTypescriptParserName]: toTypescriptHandler, // utility [changeCaseParserName]: changeCaseHandler, [convertColorParserName]: convertColorHandler, [convertDimensionParserName]: convertDimensionHandler, [filterParserName]: filterHandler, [makeLineHeightRelativeParserName]: makeLineHeightRelativeHandler, [prefixByParserName]: prefixByHandler, [registerViewParserName]: registerViewHandler, [replaceStringParserName]: replaceStringHandler, [selectModesParserName]: selectModesHandler, [suffixByParserName]: suffixByHandler, [roundNumberParserName]: roundNumberHandler, } as const; export function getBuiltInParserHandler( parserName: Key, ): (typeof builtInParserHandlersMap)[Key] { const maybeParserFn = builtInParserHandlersMap[parserName]; if (!maybeParserFn) { throw new SpecifyError({ errorKey: specifyErrors.PARSERS_ENGINE_INVALID_PARSER_INPUT.errorKey, publicMessage: `Unknown built-in parser: "${parserName}".`, }); } return maybeParserFn; }