UNPKG

4.69 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../src/commands/init/template.ts"],"names":["installTemplatePackage","templateName","root","npm","logger","debug","PackageManager","init","preferYarn","silent","install","getTemplateConfig","templateSourceDir","configFilePath","path","resolve","fs","existsSync","CLIError","chalk","underline","dim","require","copyTemplate","templateDir","templatePath","regexStr","process","cwd","exclude","RegExp","executePostInitScript","postInitScript","scriptPath","stdio"],"mappings":";;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;;AACA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;AASO,eAAeA,sBAAf,CACLC,YADK,EAELC,IAFK,EAGLC,GAHK,EAIL;AACAC,qBAAOC,KAAP,CAAc,4BAA2BJ,YAAa,EAAtD;;AAEA,QAAMK,cAAc,CAACC,IAAf,CAAoB;AACxBC,IAAAA,UAAU,EAAE,CAACL,GADW;AAExBM,IAAAA,MAAM,EAAE,IAFgB;AAGxBP,IAAAA;AAHwB,GAApB,CAAN;AAMA,SAAOI,cAAc,CAACI,OAAf,CAAuB,CAACT,YAAD,CAAvB,EAAuC;AAC5CO,IAAAA,UAAU,EAAE,CAACL,GAD+B;AAE5CM,IAAAA,MAAM,EAAE,IAFoC;AAG5CP,IAAAA;AAH4C,GAAvC,CAAP;AAKD;;AAEM,SAASS,iBAAT,CACLV,YADK,EAELW,iBAFK,EAGW;AAChB,QAAMC,cAAc,GAAGC,gBAAKC,OAAL,CACrBH,iBADqB,EAErB,cAFqB,EAGrBX,YAHqB,EAIrB,oBAJqB,CAAvB;;AAOAG,qBAAOC,KAAP,CAAc,uBAAsBQ,cAAe,EAAnD;;AACA,MAAI,CAACG,cAAGC,UAAH,CAAcJ,cAAd,CAAL,EAAoC;AAClC,UAAM,KAAIK,oBAAJ,EACH,sBAAqBL,cAAe,iBAAgBZ,YAAa;AACxE,mBAAmBkB,iBAAMC,SAAN,CAAgBC,GAAhB,CACX,iGADW,CAEX,EAJE,CAAN;AAMD;;AACD,SAAOC,OAAO,CAACT,cAAD,CAAd;AACD;;AAEM,eAAeU,YAAf,CACLtB,YADK,EAELuB,WAFK,EAGLZ,iBAHK,EAIL;AACA,QAAMa,YAAY,GAAGX,gBAAKC,OAAL,CACnBH,iBADmB,EAEnB,cAFmB,EAGnBX,YAHmB,EAInBuB,WAJmB,CAArB;;AAOApB,qBAAOC,KAAP,CAAc,yBAAwBoB,YAAa,EAAnD;;AACA,MAAIC,QAAQ,GAAGZ,gBAAKC,OAAL,CAAaU,YAAb,EAA2B,cAA3B,CAAf;;AACA,QAAM,wBAAUA,YAAV,EAAwBE,OAAO,CAACC,GAAR,EAAxB,EAAuC;AAC3CC,IAAAA,OAAO,EAAE,CAAC,IAAIC,MAAJ,CAAW,qCAAuBJ,QAAvB,CAAX,CAAD;AADkC,GAAvC,CAAN;AAGD;;AAEM,SAASK,qBAAT,CACL9B,YADK,EAEL+B,cAFK,EAGLpB,iBAHK,EAIL;AACA,QAAMqB,UAAU,GAAGnB,gBAAKC,OAAL,CACjBH,iBADiB,EAEjB,cAFiB,EAGjBX,YAHiB,EAIjB+B,cAJiB,CAAnB;;AAOA5B,qBAAOC,KAAP,CAAc,sCAAqC4B,UAAW,EAA9D;;AAEA,SAAO,sBAAMA,UAAN,EAAkB;AAACC,IAAAA,KAAK,EAAE;AAAR,GAAlB,CAAP;AACD","sourcesContent":["import execa from 'execa';\nimport path from 'path';\nimport {logger, CLIError} from '@react-native-community/cli-tools';\nimport * as PackageManager from '../../tools/packageManager';\nimport copyFiles from '../../tools/copyFiles';\nimport replacePathSepForRegex from '../../tools/replacePathSepForRegex';\nimport fs from 'fs';\nimport chalk from 'chalk';\n\nexport type TemplateConfig = {\n placeholderName: string;\n templateDir: string;\n postInitScript?: string;\n titlePlaceholder?: string;\n};\n\nexport async function installTemplatePackage(\n templateName: string,\n root: string,\n npm?: boolean,\n) {\n logger.debug(`Installing template from ${templateName}`);\n\n await PackageManager.init({\n preferYarn: !npm,\n silent: true,\n root,\n });\n\n return PackageManager.install([templateName], {\n preferYarn: !npm,\n silent: true,\n root,\n });\n}\n\nexport function getTemplateConfig(\n templateName: string,\n templateSourceDir: string,\n): TemplateConfig {\n const configFilePath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n 'template.config.js',\n );\n\n logger.debug(`Getting config from ${configFilePath}`);\n if (!fs.existsSync(configFilePath)) {\n throw new CLIError(\n `Couldn't find the \"${configFilePath} file inside \"${templateName}\" template. Please make sure the template is valid.\n Read more: ${chalk.underline.dim(\n 'https://github.com/react-native-community/cli/blob/master/docs/init.md#creating-custom-template',\n )}`,\n );\n }\n return require(configFilePath);\n}\n\nexport async function copyTemplate(\n templateName: string,\n templateDir: string,\n templateSourceDir: string,\n) {\n const templatePath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n templateDir,\n );\n\n logger.debug(`Copying template from ${templatePath}`);\n let regexStr = path.resolve(templatePath, 'node_modules');\n await copyFiles(templatePath, process.cwd(), {\n exclude: [new RegExp(replacePathSepForRegex(regexStr))],\n });\n}\n\nexport function executePostInitScript(\n templateName: string,\n postInitScript: string,\n templateSourceDir: string,\n) {\n const scriptPath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n postInitScript,\n );\n\n logger.debug(`Executing post init script located ${scriptPath}`);\n\n return execa(scriptPath, {stdio: 'inherit'});\n}\n"]}
\No newline at end of file