UNPKG

4.36 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../lib/typescript/diagnosticFormatter.ts"],"names":["DiagnosticCategory","getFormattedDiagnostic","ts","baseDir","diagnostic","message","reason","flattenDiagnosticMessageText","messageText","category","Warning","chalk","yellow","bold","Error","red","Suggestion","Message","cyan","file","pos","getLineAndCharacterOfPosition","start","line","character","fileName","path","posix","normalize","relative","replace","startsWith","toString","getFullText","getSourceFile","column","forceColor"],"mappings":"6HAAA,8DACA,oDACA,kD,mFAEA;AACA,8B,GACYA,CAAAA,kB,yDAAAA,kB,EAAAA,kB,CAAAA,kB,yBAAAA,kB,CAAAA,kB,qBAAAA,kB,CAAAA,kB,+BAAAA,kB,CAAAA,kB,4BAAAA,kB,8BAAAA,kB,MAOL,cAAeC,CAAAA,sBAAf,CACLC,EADK,CAELC,OAFK,CAGLC,UAHK,CAIY,CACjB,GAAIC,CAAAA,OAAO,CAAG,EAAd,CAEA,KAAMC,CAAAA,MAAM,CAAGJ,EAAE,CAACK,4BAAH,CAAgCH,UAAU,CAACI,WAA3C,CAAwD,IAAxD,CAAf,CACA,KAAMC,CAAAA,QAAQ,CAAGL,UAAU,CAACK,QAA5B,CACA,OAAQA,QAAR,EACE;AACA,IAAKT,CAAAA,kBAAkB,CAACU,OAAxB,CAAiC,CAC/BL,OAAO,EAAIM,eAAMC,MAAN,CAAaC,IAAb,CAAkB,cAAlB,EAAoC,IAA/C,CACA,MACD,CACD;AACA,IAAKb,CAAAA,kBAAkB,CAACc,KAAxB,CAA+B,CAC7BT,OAAO,EAAIM,eAAMI,GAAN,CAAUF,IAAV,CAAe,YAAf,EAA+B,IAA1C,CACA,MACD,CACD;AACA,IAAKb,CAAAA,kBAAkB,CAACgB,UAAxB,CACA,IAAKhB,CAAAA,kBAAkB,CAACiB,OAAxB,CACA,QAAS,CACPZ,OAAO,EAAIM,eAAMO,IAAN,CAAWL,IAAX,CAAgBJ,QAAQ,GAAK,CAAb,CAAiB,YAAjB,CAAgC,MAAhD,EAA0D,IAArE,CACA,MACD,CAjBH,CAmBAJ,OAAO,EAAIC,MAAM,CAAG,IAApB,CAEA,GAAIF,UAAU,CAACe,IAAf,CAAqB,CACnB,KAAMC,CAAAA,GAAG,CAAGhB,UAAU,CAACe,IAAX,CAAgBE,6BAAhB,CAA8CjB,UAAU,CAACkB,KAAzD,CAAZ,CACA,KAAMC,CAAAA,IAAI,CAAGH,GAAG,CAACG,IAAJ,CAAW,CAAxB,CACA,KAAMC,CAAAA,SAAS,CAAGJ,GAAG,CAACI,SAAJ,CAAgB,CAAlC,CAEA,GAAIC,CAAAA,QAAQ,CAAGC,cAAKC,KAAL,CAAWC,SAAX,CACbF,cAAKG,QAAL,CAAc1B,OAAd,CAAuBC,UAAU,CAACe,IAAX,CAAgBM,QAAvC,EAAiDK,OAAjD,CAAyD,KAAzD,CAAgE,GAAhE,CADa,CAAf,CAGA,GAAI,CAACL,QAAQ,CAACM,UAAT,CAAoB,GAApB,CAAL,CAA+B,CAC7BN,QAAQ,CAAG,KAAOA,QAAlB,CACD,CAEDpB,OAAO,CACLM,eAAMO,IAAN,CAAWO,QAAX,EACA,GADA,CAEAd,eAAMC,MAAN,CAAaW,IAAI,CAACS,QAAL,EAAb,CAFA,CAGA,GAHA,CAIArB,eAAMC,MAAN,CAAaY,SAAS,CAACQ,QAAV,EAAb,CAJA,CAKA,IALA,CAMA3B,OAPF,CASAA,OAAO,EACL,KACA,gCACED,UAAU,CAACe,IAAX,CAAgBc,WAAhB,CAA4B7B,UAAU,CAACe,IAAX,CAAgBe,aAAhB,EAA5B,CADF,CAEE,CACEZ,KAAK,CAAE,CAAEC,IAAI,CAAEA,IAAR,CAAcY,MAAM,CAAEX,SAAtB,CADT,CAFF,CAKE,CAAEY,UAAU,CAAE,IAAd,CALF,CAFF,CASD,CAED,MAAO/B,CAAAA,OAAP,CACD","sourcesContent":["import { codeFrameColumns } from 'next/dist/compiled/babel/code-frame'\nimport chalk from 'chalk'\nimport path from 'path'\n\n// eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */\nexport enum DiagnosticCategory {\n Warning = 0,\n Error = 1,\n Suggestion = 2,\n Message = 3,\n}\n\nexport async function getFormattedDiagnostic(\n ts: typeof import('typescript'),\n baseDir: string,\n diagnostic: import('typescript').Diagnostic\n): Promise<string> {\n let message = ''\n\n const reason = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n const category = diagnostic.category\n switch (category) {\n // Warning\n case DiagnosticCategory.Warning: {\n message += chalk.yellow.bold('Type warning') + ': '\n break\n }\n // Error\n case DiagnosticCategory.Error: {\n message += chalk.red.bold('Type error') + ': '\n break\n }\n // 2 = Suggestion, 3 = Message\n case DiagnosticCategory.Suggestion:\n case DiagnosticCategory.Message:\n default: {\n message += chalk.cyan.bold(category === 2 ? 'Suggestion' : 'Info') + ': '\n break\n }\n }\n message += reason + '\\n'\n\n if (diagnostic.file) {\n const pos = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!)\n const line = pos.line + 1\n const character = pos.character + 1\n\n let fileName = path.posix.normalize(\n path.relative(baseDir, diagnostic.file.fileName).replace(/\\\\/g, '/')\n )\n if (!fileName.startsWith('.')) {\n fileName = './' + fileName\n }\n\n message =\n chalk.cyan(fileName) +\n ':' +\n chalk.yellow(line.toString()) +\n ':' +\n chalk.yellow(character.toString()) +\n '\\n' +\n message\n\n message +=\n '\\n' +\n codeFrameColumns(\n diagnostic.file.getFullText(diagnostic.file.getSourceFile()),\n {\n start: { line: line, column: character },\n },\n { forceColor: true }\n )\n }\n\n return message\n}\n"]}
\No newline at end of file