UNPKG

6.35 kBSource Map (JSON)View Raw
1{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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","sourcesContent":["import { rootPath } from \"../utils\";\nimport { readFileSync, writeFileSync, existsSync } from \"fs\";\nimport { join } from \"path\";\nimport * as globby from \"globby\";\nimport * as mkdirp from \"mkdirp\";\nimport * as rimraf from \"rimraf\";\nimport * as sh from \"shelljs\";\nimport chalk from \"chalk\";\n\nconst writeFile = (fullpath: string, content) => {\n const sections = fullpath.split(\"/\");\n sections.pop();\n const path = sections.join(\"/\");\n mkdirp.sync(path);\n writeFileSync(fullpath, content);\n};\n\nconst copyTemplate = async (\n name: string,\n dirname: string,\n { mode, d, force }\n) => {\n const pkg = {\n name,\n version: \"0.0.1\",\n private: true,\n scripts: {\n dev: \"tp dev\",\n build: \"tp build\",\n test: \"tp test\"\n }\n };\n const paths: string[] = await globby(\n join(__dirname, `../../templates/${mode}/**/*`)\n );\n const files = paths.map((path: string) => {\n const splittedName = path.split(\n join(__dirname, `../../templates/${mode}/`)\n );\n return {\n name: splittedName[splittedName.length - 1],\n content: readFileSync(path)\n };\n });\n\n if (d) {\n console.log(paths);\n console.log(files);\n }\n\n if (!paths || !paths.length) {\n console.log(chalk.red(\"Template not exists.\"));\n process.exit(1);\n return;\n }\n\n if (force) {\n rimraf.sync(dirname);\n }\n\n if (existsSync(dirname)) {\n console.log(chalk.red(\"Dirname already exists.\"));\n console.log(\n `use ${chalk.blue(\"--force\")} to delete it and create a new one.`\n );\n process.exit(1);\n return;\n }\n\n mkdirp.sync(dirname);\n\n files.forEach(file => {\n writeFile(join(rootPath, name, file.name), file.content);\n });\n writeFile(join(rootPath, name, \"package.json\"), JSON.stringify(pkg, null, 2));\n};\n\nconst installPackages = (dirname: string, mode: string) => {\n const hasYarn = sh.which(\"yarn\");\n const install = hasYarn ? \"yarn add\" : \"npm install --save\";\n const devInstall = hasYarn ? \"yarn add -D\" : \"npm install --save-dev\";\n\n const dependencies = [\"@babel/runtime\"];\n const devDependencies = [\n \"typepack\",\n \"@types/node\",\n \"@types/jest\",\n \"@babel/core\",\n \"@babel/preset-env\",\n \"@babel/plugin-transform-runtime\"\n ];\n\n if (mode === \"react\") {\n const reactDeps = [\"react\", \"react-dom\"];\n const reactDevDeps = [\"@types/react\", \"@types/react-dom\"];\n dependencies.push(...reactDeps);\n devDependencies.push(...reactDevDeps);\n }\n\n sh.cd(dirname);\n if (\n sh.exec(`${install} ${dependencies.join(\" \")}`).code !== 0 ||\n sh.exec(`${devInstall} ${devDependencies.join(\" \")}`).code !== 0\n ) {\n sh.echo(\"Error: failed to install needed modules\");\n sh.exit(1);\n }\n};\n\nmodule.exports = async (name: string, opts) => {\n const dirname = join(rootPath, name);\n await copyTemplate(name, dirname, opts);\n installPackages(dirname, opts.mode);\n};\n"]}
\No newline at end of file