jok
Version:
Bundle of utility functions for code generation related to nodejs and graphql
68 lines (67 loc) • 2.03 kB
JavaScript
;
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;
});
};
}