create-xdn-app
Advanced tools
Comparing version 1.1.0 to 1.2.0
@@ -10,4 +10,5 @@ /** | ||
origin: string | undefined; | ||
xdnVersion: string | undefined; | ||
_: string[]; | ||
$0: string; | ||
}; |
@@ -33,2 +33,6 @@ "use strict"; | ||
description: 'The hostname for the origin site', | ||
}) | ||
.option('xdnVersion', { | ||
type: 'string', | ||
description: 'The specific version of the XDN packages to use', | ||
}); | ||
@@ -35,0 +39,0 @@ }).argv; |
@@ -1,1 +0,1 @@ | ||
export default function install(packageManager: string): Promise<void>; | ||
export default function install(packageManager: string, version?: string): Promise<void>; |
@@ -20,4 +20,5 @@ "use strict"; | ||
const exec = util_1.default.promisify(child_process_1.exec); | ||
function install(packageManager) { | ||
function install(packageManager, version) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
version = version || 'latest'; | ||
const { dependencies, devDependencies } = require(path_1.join(process.cwd(), 'package.json')); | ||
@@ -27,5 +28,5 @@ let spinner = ora_1.default('Installing dependencies...').start(); | ||
// update all dependencies with "latest" to proper versions | ||
yield installDeps(packageManager, false, findLatest(dependencies)); | ||
yield installDeps(packageManager, false, findXDNPackages(dependencies), version); | ||
// update all devDependencies with "latest" to proper versions | ||
yield installDeps(packageManager, true, findLatest(devDependencies)); | ||
yield installDeps(packageManager, true, findXDNPackages(devDependencies), version); | ||
// install all remaining libs | ||
@@ -43,3 +44,3 @@ yield installDeps(packageManager); | ||
exports.default = install; | ||
function installDeps(packageManager, dev, dependencies) { | ||
function installDeps(packageManager, dev, dependencies, version) { | ||
if (dev === undefined) { | ||
@@ -61,14 +62,16 @@ // install existing modules in package.json | ||
} | ||
return exec(`${cmd} ${dependencies.join(' ')}`); | ||
const versioned = dependencies.map((pkg) => `${pkg}@${version || 'latest'}`); | ||
const install = `${cmd} ${versioned.join(' ')}`; | ||
return exec(install); | ||
} | ||
} | ||
/** | ||
* Returns the packages with version:latest in dependencies or devDependencies | ||
* Returns the @xdn/* packages in dependencies or devDependencies | ||
* @param deps | ||
*/ | ||
function findLatest(deps) { | ||
function findXDNPackages(deps) { | ||
const result = []; | ||
if (deps != null) { | ||
for (let [name, version] of Object.entries(deps)) { | ||
if (version === 'latest') { | ||
for (let name in deps) { | ||
if (name.startsWith('@xdn/')) { | ||
result.push(name); | ||
@@ -75,0 +78,0 @@ } |
@@ -26,3 +26,3 @@ #!/usr/bin/env node | ||
const getArgs_1 = __importDefault(require("./getArgs")); | ||
const prepareXDNConfig_1 = __importDefault(require("./prepareXDNConfig")); | ||
const prepareFiles_1 = __importDefault(require("./prepareFiles")); | ||
function main() { | ||
@@ -38,4 +38,4 @@ return __awaiter(this, void 0, void 0, function* () { | ||
assignName_1.default(name); | ||
prepareXDNConfig_1.default(answers); | ||
yield install_1.default(packageManager); | ||
prepareFiles_1.default(answers); | ||
yield install_1.default(packageManager, args.xdnVersion); | ||
console.log(chalk_1.default.green(chalk_1.default.bold('\nXDN app created! Run the following to start your app in development mode:\n'))); | ||
@@ -46,3 +46,3 @@ console.log(`cd ${name}`); | ||
console.log(chalk_1.default.green(chalk_1.default.bold('To deploy your app on the Moovweb XDN, run:\n'))); | ||
console.log(`${packageManager} run deploy`); | ||
console.log(`${packageManager} run xdn:deploy`); | ||
console.log(''); | ||
@@ -49,0 +49,0 @@ } |
{ | ||
"name": "create-xdn-app", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Creates apps for deplyoment on the Moovweb XDN.", | ||
@@ -42,4 +42,4 @@ "main": "index.js", | ||
"ts-node": "^8.10.1", | ||
"typescript": "^3.8.3" | ||
"typescript": "^3.9.7" | ||
} | ||
} |
@@ -60,4 +60,4 @@ "use strict"; | ||
default: | ||
return undefined; | ||
return 'example.com'; | ||
} | ||
} |
@@ -15,2 +15,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.downloadTemplate = void 0; | ||
const download_1 = __importDefault(require("download")); | ||
@@ -32,3 +33,3 @@ const decompress_1 = __importDefault(require("decompress")); | ||
const zipFile = path_1.join(templatesDir, zipFileName); | ||
let spinner = ora_1.default(`Downloading ${template} XDN template...`).start(); | ||
const spinner = ora_1.default(`Downloading ${template} XDN template...`).start(); | ||
try { | ||
@@ -35,0 +36,0 @@ yield download_1.default(TEMPLATES_REPO, templatesDir, { filename: zipFileName }); |
19400
453