Skip to content
This repository was archived by the owner on Feb 15, 2024. It is now read-only.

Commit a262f1a

Browse files
committed
Make yFiles npm module installation work with yarn, quit early when installation fails
1 parent 64b73dc commit a262f1a

19 files changed

+81
-15
lines changed

generators/app/index.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ const promptOptions = require("./promptOptions");
1919
module.exports = class extends Generator {
2020
initializing() {
2121
this.minimumModules = [];
22+
// Unless this is enabled, installation errors will just be swallowed.
23+
this.options["force-install"] = true
24+
25+
this.on('error', function(e) {
26+
this.env.error(e)
27+
return false
28+
})
2229
}
2330

2431
prompting() {
@@ -690,7 +697,7 @@ module.exports = class extends Generator {
690697
const yfilesLibPath = path.join(this.props.yfilesPath, 'lib/es-modules')
691698
const yFilesPackageJson = require(path.resolve(path.join(yfilesLibPath, 'package.json')))
692699
const yFilesNpmVersion = yFilesPackageJson.version
693-
let yFilesDepPath = path.resolve(yfilesLibPath, 'yfiles-' + yFilesNpmVersion + '.tgz')
700+
let yFilesDepPath = path.resolve(yfilesLibPath, `yfiles-${this.props.useYarn ? 'v' : ''}${yFilesNpmVersion}.tgz`)
694701
extend(pkg, {
695702
dependencies: {
696703
yfiles: yFilesDepPath

generators/app/templates/webpack4.config.ejs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const config = {
2828
exclude: /(node_modules|lib[/\\]yfiles)/,
2929
loader: 'babel-loader',
3030
options: {
31+
compact: true,
3132
presets: ['@babel/preset-env', '@babel/preset-typescript']
3233
}
3334
},
@@ -45,6 +46,7 @@ const config = {
4546
exclude: /(node_modules|bower_components|lib)/,
4647
loader: 'babel-loader',
4748
options: {
49+
compact: true,
4850
presets: ['@babel/preset-env']
4951
}
5052
},
@@ -70,7 +72,11 @@ const config = {
7072
filename: '[name].css',
7173
chunkFilename: '[id].css'
7274
})
73-
]
75+
],
76+
performance: {
77+
// don't complain about large chunks/assets
78+
hints: false
79+
}
7480
};
7581

7682
module.exports = function (env, options) {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "generator-yfiles-app",
3-
"version": "3.0.4",
3+
"version": "3.0.5",
44
"description": "A generator that scaffolds a yFiles for HTML powered application. Requires local yFiles package.",
55
"homepage": "https://www.yworks.com",
66
"author": {

test/amd-vscode.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ const util = require('./support/util');
1010
const defaultAnswers = require('./support/defaultPromptAnswers');
1111
const promptOptions = require("../generators/app/promptOptions");
1212
const defaultInit = require('./support/defaultInit');
13+
const initTest = require('./support/initTest');
14+
1315

1416
const answers = Object.assign({},defaultAnswers, {
1517
"buildTool": promptOptions.buildTool.NONE,
@@ -25,6 +27,8 @@ describe('AMD + VS Code', function () {
2527

2628
this.timeout(125000)
2729

30+
before(initTest(answers))
31+
2832
before(function(done) {
2933
const that = this;
3034
this.app = helpers

test/esmodules-es6-vscode.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const util = require('./support/util');
1010
const defaultAnswers = require('./support/defaultPromptAnswers');
1111
const promptOptions = require("../generators/app/promptOptions");
1212
const defaultInit = require('./support/defaultInit');
13+
const initTest = require('./support/initTest');
1314

1415
const answers = Object.assign({},defaultAnswers, {
1516
"moduleType": promptOptions.moduleType.ES6_MODULES,
@@ -25,6 +26,8 @@ describe('ES Modules + ES6 + vscode', function () {
2526

2627
this.timeout(125000)
2728

29+
before(initTest(answers))
30+
2831
before(function(done) {
2932
const that = this;
3033
this.app = helpers
@@ -35,7 +38,9 @@ describe('ES Modules + ES6 + vscode', function () {
3538
'skip-message': true,
3639
'skip-install': false
3740
})
38-
.withPrompts(answers).then(function(dir) {return defaultInit(__filename, dir)}).then(function(dir) {
41+
.withPrompts(answers).then(function(dir) {
42+
return defaultInit(__filename, dir)
43+
}).then(function(dir) {
3944
that.dir = dir;
4045
done();
4146
})

test/esmodules-es6-webstorm.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const util = require('./support/util');
1010
const defaultAnswers = require('./support/defaultPromptAnswers');
1111
const promptOptions = require("../generators/app/promptOptions");
1212
const defaultInit = require('./support/defaultInit');
13+
const initTest = require('./support/initTest');
1314

1415
const answers = Object.assign({},defaultAnswers, {
1516
"moduleType": promptOptions.moduleType.ES6_MODULES,
@@ -25,6 +26,8 @@ describe('ES Modules + ES6 + WebStorm', function () {
2526

2627
this.timeout(125000)
2728

29+
before(initTest(answers))
30+
2831
before(function(done) {
2932
const that = this;
3033
this.app = helpers

test/esmodules-typescipt.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const util = require('./support/util');
1010
const defaultAnswers = require('./support/defaultPromptAnswers');
1111
const promptOptions = require("../generators/app/promptOptions");
1212
const defaultInit = require('./support/defaultInit');
13+
const initTest = require('./support/initTest');
1314

1415
const answers = Object.assign({},defaultAnswers, {
1516
"language": promptOptions.language.TypeScript,
@@ -24,6 +25,8 @@ describe('ES Modules + TypeScript', function () {
2425

2526
this.timeout(125000)
2627

28+
before(initTest(answers))
29+
2730
before(function(done) {
2831
const that = this;
2932
this.app = helpers
@@ -77,9 +80,6 @@ describe('ES Modules + TypeScript', function () {
7780
it('uses webpack 4', function() {
7881
assert.fileContent('package.json', /"webpack": "\^?4/)
7982
})
80-
it('uses ts-loader 4', function() {
81-
assert.fileContent('package.json', /"ts-loader": "\^?4/)
82-
})
8383

8484
it('runs', function (done) {
8585
util.maybeOpenInBrowser(this.dir,done);

test/npm-es6-vscode.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const util = require('./support/util');
1010
const defaultAnswers = require('./support/defaultPromptAnswers');
1111
const promptOptions = require("../generators/app/promptOptions");
1212
const defaultInit = require('./support/defaultInit');
13+
const initTest = require('./support/initTest');
1314

1415
const answers = Object.assign({},defaultAnswers, {
1516
"moduleType": promptOptions.moduleType.NPM,
@@ -25,6 +26,8 @@ describe('Local NPM module + ES6 + VSCode', function () {
2526

2627
this.timeout(125000)
2728

29+
before(initTest(answers))
30+
2831
before(function(done) {
2932
const that = this;
3033
this.app = helpers

test/npm-es6.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const util = require('./support/util');
1010
const defaultAnswers = require('./support/defaultPromptAnswers');
1111
const promptOptions = require("../generators/app/promptOptions");
1212
const defaultInit = require('./support/defaultInit');
13+
const initTest = require('./support/initTest');
1314

1415
const answers = Object.assign({},defaultAnswers, {
1516
"moduleType": promptOptions.moduleType.NPM,
@@ -24,6 +25,8 @@ describe('Local NPM module + ES6', function () {
2425

2526
this.timeout(125000)
2627

28+
before(initTest(answers))
29+
2730
before(function(done) {
2831
const that = this;
2932
this.app = helpers

test/npm-typescript.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const util = require('./support/util');
1010
const defaultAnswers = require('./support/defaultPromptAnswers');
1111
const promptOptions = require("../generators/app/promptOptions");
1212
const defaultInit = require('./support/defaultInit');
13+
const initTest = require('./support/initTest');
1314

1415
const answers = Object.assign({},defaultAnswers, {
1516
"moduleType": promptOptions.moduleType.NPM,
@@ -24,6 +25,8 @@ describe('Local NPM module + TypeScript', function () {
2425

2526
this.timeout(125000)
2627

28+
before(initTest(answers))
29+
2730
before(function(done) {
2831
const that = this;
2932
this.app = helpers

0 commit comments

Comments
 (0)