UNPKG

6.85 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/setup.js"],"names":["createProjectSync","configPackageSync","copyTemplates","installPackage","versionControlSync","projectDir","spinner","start","mkdirResult","code","Error","stderr","cdResult","succeed","error","message","fail","silent","packageJson","require","overridedConfig","Object","assign","stringifiedConfig","JSON","stringify","writeFileSync","Promise","resolve","reject","tempPath","mkdirSync","join","copySync","depPromises","map","depSettings","dev","packages","all","then","result","catch","errors","commands","forEach","command"],"mappings":"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","file":"setup.js","sourcesContent":["import path from 'path'\nimport fs from 'fs'\nimport fsExtra from 'fs-extra'\nimport ora from 'ora'\nimport { ncp } from 'ncp'\nimport temp from 'temp'\n\nimport {\n exit, mkdir, cd, exec,\n} from 'shelljs'\n\nimport logger from './logger'\n\nimport {\n resolvePath,\n} from './utils'\n\nimport {\n TEMPLATE_REPO,\n DEPENDENCIES,\n PACKAGE_JSON,\n} from './config'\n\nexport function createProjectSync(projectDir) {\n const spinner = ora(`1. Create project in ${projectDir}`).start()\n\n try {\n const mkdirResult = mkdir(projectDir)\n\n if (mkdirResult.code !== 0) {\n throw new Error(mkdirResult.stderr)\n }\n\n const cdResult = cd(projectDir)\n\n if (cdResult.code !== 0) {\n throw new Error(cdResult.stderr)\n }\n\n spinner.succeed()\n } catch (error) {\n logger.error(error.message)\n spinner.fail()\n exit(1)\n }\n}\n\nexport function configPackageSync() {\n const spinner = ora('2. Configurate package.json').start()\n\n try {\n exec('npm init --force', { silent: true })\n\n /* eslint-disable global-require, import/no-dynamic-require */\n const packageJson = require(resolvePath('package.json'))\n /* eslint-enable */\n\n const overridedConfig = Object.assign(packageJson, PACKAGE_JSON)\n const stringifiedConfig = JSON.stringify(overridedConfig, null, 2)\n\n fs.writeFileSync(resolvePath('package.json'), stringifiedConfig)\n\n spinner.succeed()\n } catch (error) {\n logger.error(error.message)\n spinner.fail()\n exit(1)\n }\n}\n\nexport function copyTemplates(projectDir) {\n return new Promise((resolve, reject) => {\n const spinner = ora('3. Copy template files to src folder').start()\n const tempPath = temp.mkdirSync('templates')\n\n exec(`git clone --quiet ${TEMPLATE_REPO} ${tempPath}`)\n\n ncp(path.join(tempPath, 'src'), path.join(projectDir, 'src'), (error) => {\n if (error) {\n logger.error(error)\n spinner.fail()\n reject(error)\n return\n }\n\n fsExtra.copySync(\n path.join(tempPath, '.gitignore'),\n path.join(projectDir, '.gitignore'),\n )\n\n fsExtra.copySync(\n path.join(tempPath, 'webpack.config.babel.js'),\n path.join(projectDir, 'webpack.config.babel.js'),\n )\n\n spinner.succeed()\n resolve()\n })\n })\n}\n\nexport function installPackage() {\n const spinner = ora('4. Install package dependencies').start()\n\n const depPromises = DEPENDENCIES.map(depSettings => (\n new Promise((resolve) => {\n exec(`yarn add ${depSettings.dev ? '--dev' : ''} ${depSettings.packages.join(' ')}`, () => {\n resolve()\n })\n })\n ))\n\n return Promise\n .all(depPromises)\n .then((result) => {\n spinner.succeed()\n return result\n })\n .catch((errors) => {\n spinner.fail()\n throw errors\n })\n}\n\nexport function versionControlSync() {\n const commands = [\n 'git init',\n 'git add .',\n 'git commit -m \"Initial commit\"',\n ]\n\n const spinner = ora('5. Setup version control').start()\n\n try {\n commands.forEach((command) => {\n const result = exec(command, { silent: true })\n\n if (result.code !== 0) {\n throw new Error(result.stderr)\n }\n });\n\n spinner.succeed()\n } catch (error) {\n logger.error(error.message)\n spinner.fail()\n exit(1)\n }\n}\n"]}
\No newline at end of file