UNPKG

jok

Version:

Bundle of utility functions for code generation related to nodejs and graphql

68 lines (67 loc) 2.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var fs = require("fs"); var path = require("path"); var messages = require("./messages"); var copy_dir_1 = require("./utils/copy-dir"); var install_1 = require("./utils/install"); function default_1(_a) { var projectName = _a.projectName, nextjs = _a.nextjs, graphql = _a.graphql; createJokioApp({ projectName: projectName, nextjs: nextjs, graphql: graphql, }); } exports.default = default_1; function createJokioApp(opts) { var projectName = opts.projectName; if (!projectName) { console.log(messages.missingProjectName()); process.exit(1); } if (fs.existsSync(projectName) && projectName !== '.') { console.log(messages.alreadyExists(projectName)); process.exit(1); } var projectPath = (opts.projectPath = process.cwd() + '/' + projectName); var templateName = 'default'; if (opts.nextjs) { templateName = 'nextjs'; } if (opts.graphql) { templateName = 'graphql'; } if (opts.nextjs && opts.graphql) { templateName = 'nextjs+graphql'; } var templatePath = path.resolve(__dirname, "../../../templates/project/" + templateName); (0, copy_dir_1.default)({ templatePath: templatePath, templateName: templateName, projectPath: projectPath, projectName: projectName, }) .then(installWithMessageFn(opts)) .catch(function (err) { throw err; }); } function installWithMessageFn(opts) { var projectName = opts.projectName; var projectPath = opts.projectPath; return function installWithMessage() { return (0, install_1.default)({ projectName: projectName, projectPath: projectPath, packages: [], }) .then(function () { console.log(messages.start(projectName)); }) .catch(function (err) { throw err; }); }; }