{"version":3,"file":"use-language-extensions.cjs","sources":["../../../app/hooks/use-language-extensions.ts"],"sourcesContent":["import { useCallback } from \"react\"\nimport { Extension } from \"@codemirror/state\"\nimport { useTypescript } from \"./use-typescript\"\nimport { javascript } from \"@codemirror/lang-javascript\"\n\ntype Props = {\n  id: string\n}\n\nexport function useLanguageExtensions(props: Props) {\n  const { id } = props\n\n  const { createWorker: createTsWorker } = useTypescript({\n    id,\n  })\n\n  const getLanguageExtensions = useCallback(async (initialContent = \"\"): Promise<Extension[]> => {\n    const langExtensions: Extension[] = []\n    \n    langExtensions.push(\n      javascript({\n        jsx: true,\n        typescript: true,\n      }),\n    )\n\n    // 异步加载 TypeScript 扩展\n    const tsExtension = await createTsWorker(initialContent)\n    langExtensions.push(tsExtension)\n\n    return langExtensions\n  }, [createTsWorker])\n\n  return {\n    getLanguageExtensions,\n  }\n}\n"],"names":["useTypescript","useCallback","javascript"],"mappings":";;;;;AASO,SAAS,sBAAsB,OAAc;AAClD,QAAM,EAAE,OAAO;AAEf,QAAM,EAAE,cAAc,eAAA,IAAmBA,4BAAc;AAAA,IACrD;AAAA,EAAA,CACD;AAED,QAAM,wBAAwBC,MAAAA,YAAY,OAAO,iBAAiB,OAA6B;AAC7F,UAAM,iBAA8B,CAAA;AAEpC,mBAAe;AAAA,MACbC,iBAAW;AAAA,QACT,KAAK;AAAA,QACL,YAAY;AAAA,MAAA,CACb;AAAA,IAAA;AAIH,UAAM,cAAc,MAAM,eAAe,cAAc;AACvD,mBAAe,KAAK,WAAW;AAE/B,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,CAAC;AAEnB,SAAO;AAAA,IACL;AAAA,EAAA;AAEJ;;"}