@strapi/strapi
Version:
An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite
1 lines • 4.59 kB
Source Map (JSON)
{"version":3,"file":"try-quick-outdir.mjs","sources":["../../../../src/cli/utils/try-quick-outdir.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nconst DEFAULT_OUT_DIR = 'dist';\n\n/**\n * Strip `//` and `/* *\\/` comments from JSON-like text without loading `typescript`.\n */\nconst stripJsonComments = (input: string): string => {\n let result = '';\n let inString = false;\n let stringChar = '';\n let i = 0;\n\n while (i < input.length) {\n const char = input[i];\n const next = input[i + 1];\n\n if (inString) {\n result += char;\n\n if (char === '\\\\') {\n result += input[i + 1] ?? '';\n i += 2;\n } else if (char === stringChar) {\n inString = false;\n i += 1;\n } else {\n i += 1;\n }\n } else if (char === '\"' || char === \"'\") {\n inString = true;\n stringChar = char;\n result += char;\n i += 1;\n } else if (char === '/' && next === '/') {\n while (i < input.length && input[i] !== '\\n') {\n i += 1;\n }\n } else if (char === '/' && next === '*') {\n i += 2;\n while (i < input.length && !(input[i] === '*' && input[i + 1] === '/')) {\n i += 1;\n }\n i += 2;\n } else {\n result += char;\n i += 1;\n }\n }\n\n return result;\n};\n\n/**\n * Read `compilerOptions.outDir` from tsconfig.json without loading `typescript` or\n * `@strapi/typescript-utils`. Returns null when the file cannot be parsed or when\n * `extends` may define outDir (fall back to resolveOutDir).\n */\nconst tryQuickOutDir = (appDir: string, tsconfigPath: string): string | null => {\n let raw: unknown;\n\n try {\n const contents = fs.readFileSync(tsconfigPath, 'utf8');\n raw = JSON.parse(stripJsonComments(contents));\n } catch {\n return null;\n }\n\n if (!raw || typeof raw !== 'object') {\n return null;\n }\n\n const config = raw as { extends?: string; compilerOptions?: { outDir?: string } };\n const localOutDir = config.compilerOptions?.outDir;\n\n if (config.extends && localOutDir === undefined) {\n return null;\n }\n\n return path.resolve(appDir, localOutDir ?? DEFAULT_OUT_DIR);\n};\n\nexport { tryQuickOutDir, stripJsonComments };\n"],"names":["DEFAULT_OUT_DIR","stripJsonComments","input","result","inString","stringChar","i","length","char","next","tryQuickOutDir","appDir","tsconfigPath","raw","contents","fs","readFileSync","JSON","parse","config","localOutDir","compilerOptions","outDir","extends","undefined","path","resolve"],"mappings":"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"}