From acf9a709b7967af42b5d4b586578258767411ce8 Mon Sep 17 00:00:00 2001 From: Chris Manson Date: Fri, 18 Sep 2020 17:11:39 +0100 Subject: [PATCH] make sure that you a prompted to add `node: current` to targets --- .../blueprints/ember-cli-fastboot/index.js | 29 +++++++++++++++---- packages/ember-cli-fastboot/package.json | 3 +- yarn.lock | 2 +- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/packages/ember-cli-fastboot/blueprints/ember-cli-fastboot/index.js b/packages/ember-cli-fastboot/blueprints/ember-cli-fastboot/index.js index db6f60f89..b146642fc 100644 --- a/packages/ember-cli-fastboot/blueprints/ember-cli-fastboot/index.js +++ b/packages/ember-cli-fastboot/blueprints/ember-cli-fastboot/index.js @@ -1,6 +1,9 @@ /* eslint-env node */ const recast = require('recast'); const { readFileSync, writeFileSync } = require('fs'); +const { join, dirname } = require('path') +const tmp = require('tmp'); +const mkdirp = require('mkdirp'); module.exports = { description: '', @@ -8,13 +11,25 @@ module.exports = { // no-op }, - afterInstall() { - let targetsFile = './config/targets.js' + filesPath() { + return this._filesPath; + }, + + _targetsFile(project) { + let configPath = 'config'; - if(this.project.isEmberCLIAddon()) { - targetsFile = './tests/dummy/config/targets.js'; + if (project.pkg['ember-addon'] && project.pkg['ember-addon']['configPath']) { + configPath = project.pkg['ember-addon']['configPath']; } + return join(configPath, 'targets.js'); + }, + + install(options) { + this._filesPath = tmp.dirSync().name; + + const targetsFile = this._targetsFile(options.project); + const targetsAst = recast.parse(readFileSync(targetsFile)); recast.visit(targetsAst, { @@ -39,6 +54,10 @@ module.exports = { } }); - writeFileSync(targetsFile, recast.print(targetsAst, { tabWidth: 2, quote: 'single' }).code); + let newFile = join(this._filesPath, targetsFile); + mkdirp.sync(dirname(newFile)); + writeFileSync(newFile, recast.print(targetsAst, { tabWidth: 2, quote: 'single' }).code); + + return this._super.install.apply(this, arguments); } }; diff --git a/packages/ember-cli-fastboot/package.json b/packages/ember-cli-fastboot/package.json index f350d5fad..51174d79f 100644 --- a/packages/ember-cli-fastboot/package.json +++ b/packages/ember-cli-fastboot/package.json @@ -39,8 +39,9 @@ "fs-extra": "^7.0.0", "json-stable-stringify": "^1.0.1", "md5-hex": "^2.0.0", + "mkdirp": "^1.0.4", "recast": "^0.19.1", - "silent-error": "^1.1.0" + "tmp": "^0.2.1" }, "devDependencies": { "body-parser": "^1.18.3", diff --git a/yarn.lock b/yarn.lock index cbc795b41..31ba3cf52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10843,7 +10843,7 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.0: dependencies: minimist "^1.2.5" -mkdirp@^1.0.3: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==