UNPKG

2.31 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../lib/typescript/getTypeScriptIntent.ts"],"names":["getTypeScriptIntent","baseDir","pagesDir","tsConfigPath","path","join","hasTypeScriptConfiguration","content","fs","readFile","encoding","then","txt","trim","firstTimeSetup","typescriptFiles","length"],"mappings":"qFAAA,sBACA,kDACA,0CACA,sD,mFAIO,cAAeA,CAAAA,mBAAf,CACLC,OADK,CAELC,QAFK,CAG8B,CACnC,KAAMC,CAAAA,YAAY,CAAGC,cAAKC,IAAL,CAAUJ,OAAV,CAAmB,eAAnB,CAArB,CAEA;AACA;AACA,KAAMK,CAAAA,0BAA0B,CAAG,KAAM,2BAAWH,YAAX,CAAzC,CACA,GAAIG,0BAAJ,CAAgC,CAC9B,KAAMC,CAAAA,OAAO,CAAG,KAAMC,cAAGC,QAAH,CAAYN,YAAZ,CAA0B,CAAEO,QAAQ,CAAE,MAAZ,CAA1B,EAAgDC,IAAhD,CACnBC,GAAD,EAASA,GAAG,CAACC,IAAJ,EADW,CAEpB,IAAM,IAFc,CAAtB,CAIA,MAAO,CAAEC,cAAc,CAAEP,OAAO,GAAK,EAAZ,EAAkBA,OAAO,GAAK,IAAhD,CAAP,CACD,CAED;AACA;AACA;AACA;AACA,KAAMQ,CAAAA,eAAe,CAAG,KAAM,uCAC5Bb,QAD4B,CAE5B,eAF4B,CAG5B,0BAH4B,CAA9B,CAKA,GAAIa,eAAe,CAACC,MAApB,CAA4B,CAC1B,MAAO,CAAEF,cAAc,CAAE,IAAlB,CAAP,CACD,CAED,MAAO,MAAP,CACD","sourcesContent":["import { promises as fs } from 'fs'\nimport path from 'path'\nimport { fileExists } from '../file-exists'\nimport { recursiveReadDir } from '../recursive-readdir'\n\nexport type TypeScriptIntent = { firstTimeSetup: boolean }\n\nexport async function getTypeScriptIntent(\n baseDir: string,\n pagesDir: string\n): Promise<TypeScriptIntent | false> {\n const tsConfigPath = path.join(baseDir, 'tsconfig.json')\n\n // The integration turns on if we find a `tsconfig.json` in the user's\n // project.\n const hasTypeScriptConfiguration = await fileExists(tsConfigPath)\n if (hasTypeScriptConfiguration) {\n const content = await fs.readFile(tsConfigPath, { encoding: 'utf8' }).then(\n (txt) => txt.trim(),\n () => null\n )\n return { firstTimeSetup: content === '' || content === '{}' }\n }\n\n // Next.js also offers a friendly setup mode that bootstraps a TypeScript\n // project for the user when we detect TypeScript files. So, we need to check\n // the `pages/` directory for a TypeScript file.\n // Checking all directories is too slow, so this is a happy medium.\n const typescriptFiles = await recursiveReadDir(\n pagesDir,\n /.*\\.(ts|tsx)$/,\n /(node_modules|.*\\.d\\.ts)/\n )\n if (typescriptFiles.length) {\n return { firstTimeSetup: true }\n }\n\n return false\n}\n"]}
\No newline at end of file