@strapi/generate-new
Version:
Generate a new Strapi application.
1 lines • 2.57 kB
Source Map (JSON)
{"version":3,"file":"fetch-npm-template.mjs","sources":["../../src/utils/fetch-npm-template.ts"],"sourcesContent":["import path from 'path';\nimport execa from 'execa';\nimport chalk from 'chalk';\nimport type { PackageInfo } from '../types';\n\n// Gets the package version on npm. Will fail if the package does not exist\nasync function getPackageInfo(packageName: string): Promise<PackageInfo> {\n const { stdout } = await execa('npm', ['view', packageName, 'name', 'version', '--silent']);\n // Use regex to parse name and version from CLI result\n const match = stdout.match(/(?<=')(.*?)(?=')/gm);\n\n if (!match) {\n throw new Error('Could not match');\n }\n\n const [name, version] = match;\n return { name, version };\n}\n\nexport async function getTemplatePackageInfo(template: string): Promise<PackageInfo> {\n // Check if template is a shorthand\n try {\n const longhand = `@strapi/template-${template}`;\n const packageInfo = await getPackageInfo(longhand);\n // Hasn't crashed so it is indeed a shorthand\n return packageInfo;\n } catch (error) {\n // Ignore error, we now know it's not a shorthand\n }\n // Fetch version of the non-shorthand package\n try {\n return await getPackageInfo(template);\n } catch (error) {\n throw new Error(`Could not find package ${chalk.yellow(template)} on npm`);\n }\n}\n\nexport async function downloadNpmTemplate({ name, version }: PackageInfo, parentDir: string) {\n // Download from npm\n await execa('npm', ['install', `${name}@${version}`, '--no-save', '--silent'], {\n cwd: parentDir,\n });\n\n // Return the path of the actual template\n const exactTemplatePath = path.dirname(\n require.resolve(`${name}/package.json`, { paths: [parentDir] })\n );\n\n return exactTemplatePath;\n}\n"],"names":[],"mappings":";;;AAMA,eAAe,eAAe,aAA2C;AACvE,QAAM,EAAE,OAAA,IAAW,MAAM,MAAM,OAAO,CAAC,QAAQ,aAAa,QAAQ,WAAW,UAAU,CAAC;AAEpF,QAAA,QAAQ,OAAO,MAAM,oBAAoB;AAE/C,MAAI,CAAC,OAAO;AACJ,UAAA,IAAI,MAAM,iBAAiB;AAAA,EACnC;AAEM,QAAA,CAAC,MAAM,OAAO,IAAI;AACjB,SAAA,EAAE,MAAM;AACjB;AAEA,eAAsB,uBAAuB,UAAwC;AAE/E,MAAA;AACI,UAAA,WAAW,oBAAoB,QAAQ;AACvC,UAAA,cAAc,MAAM,eAAe,QAAQ;AAE1C,WAAA;AAAA,WACA,OAAO;AAAA,EAEhB;AAEI,MAAA;AACK,WAAA,MAAM,eAAe,QAAQ;AAAA,WAC7B,OAAO;AACd,UAAM,IAAI,MAAM,0BAA0B,MAAM,OAAO,QAAQ,CAAC,SAAS;AAAA,EAC3E;AACF;AAEA,eAAsB,oBAAoB,EAAE,MAAM,QAAA,GAAwB,WAAmB;AAErF,QAAA,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,OAAO,IAAI,aAAa,UAAU,GAAG;AAAA,IAC7E,KAAK;AAAA,EAAA,CACN;AAGD,QAAM,oBAAoB,KAAK;AAAA,IAC7B,QAAQ,QAAQ,GAAG,IAAI,iBAAiB,EAAE,OAAO,CAAC,SAAS,GAAG;AAAA,EAAA;AAGzD,SAAA;AACT;"}