ember-try 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -4
- package/README.md +14 -52
- package/index.js +2 -2
- package/lib/commands/config.js +8 -8
- package/lib/commands/reset.js +8 -10
- package/lib/commands/try-each.js +14 -16
- package/lib/commands/try-ember.js +16 -19
- package/lib/commands/try-one.js +23 -28
- package/lib/dependency-manager-adapters/npm.js +121 -87
- package/lib/dependency-manager-adapters/pnpm.js +170 -0
- package/lib/dependency-manager-adapters/workspace.js +40 -32
- package/lib/tasks/reset.js +9 -2
- package/lib/tasks/try-each.js +78 -67
- package/lib/utils/config.js +54 -64
- package/lib/utils/dependency-manager-adapter-factory.js +27 -9
- package/lib/utils/find-ember-path.js +7 -8
- package/lib/utils/result-summary.js +15 -13
- package/lib/utils/run-command.js +15 -20
- package/lib/utils/run.js +11 -11
- package/lib/utils/scenario-manager.js +18 -29
- package/package.json +50 -53
- package/.circleci/config.yml +0 -207
- package/.codeclimate.yml +0 -17
- package/.dependabot/config.yml +0 -9
- package/config/environment.js +0 -5
- package/lib/dependency-manager-adapters/bower.js +0 -198
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-try",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "An ember-cli addon to test against multiple
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "An ember-cli addon to test against multiple dependencies, such as ember and ember-data.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon",
|
|
7
7
|
"testing"
|
|
@@ -22,71 +22,68 @@
|
|
|
22
22
|
"test": "tests"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
|
-
"
|
|
26
|
-
"build": "ember build",
|
|
27
|
-
"client-test": "./run-smoke-test.sh all-commands.sh",
|
|
28
|
-
"lint": "eslint lib test",
|
|
29
|
-
"lint:hbs": "ember-template-lint .",
|
|
30
|
-
"lint:js": "eslint .",
|
|
25
|
+
"lint": "eslint .",
|
|
31
26
|
"node-test": "mocha test/**/*.js",
|
|
32
27
|
"node-test-with-coverage": "nyc --reporter lcov npm run-script node-test && node_modules/.bin/codecov",
|
|
33
|
-
"smoke-test": "./run-smoke-test.sh smoke-test.sh",
|
|
34
|
-
"smoke-test-yarn": "./run-smoke-test.sh smoke-test-yarn.sh",
|
|
35
28
|
"start": "ember serve",
|
|
36
|
-
"test": "npm run-script lint && npm run-script node-test
|
|
29
|
+
"test": "npm run-script lint && npm run-script node-test"
|
|
37
30
|
},
|
|
38
31
|
"dependencies": {
|
|
39
|
-
"chalk": "^
|
|
40
|
-
"cli-table3": "^0.
|
|
32
|
+
"chalk": "^4.1.2",
|
|
33
|
+
"cli-table3": "^0.6.0",
|
|
41
34
|
"core-object": "^3.1.5",
|
|
42
|
-
"debug": "^4.
|
|
43
|
-
"ember-try-config": "^
|
|
44
|
-
"execa": "^1.0
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"rimraf": "^2.6.3",
|
|
50
|
-
"rsvp": "^4.7.0",
|
|
51
|
-
"walk-sync": "^1.1.3"
|
|
35
|
+
"debug": "^4.3.2",
|
|
36
|
+
"ember-try-config": "^4.0.0",
|
|
37
|
+
"execa": "^4.1.0",
|
|
38
|
+
"fs-extra": "^9.0.1",
|
|
39
|
+
"resolve": "^1.20.0",
|
|
40
|
+
"rimraf": "^3.0.2",
|
|
41
|
+
"walk-sync": "^2.2.0"
|
|
52
42
|
},
|
|
53
43
|
"devDependencies": {
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"ember-cli-inject-live-reload": "^2.0.1",
|
|
65
|
-
"ember-cli-sri": "^2.1.1",
|
|
66
|
-
"ember-cli-template-lint": "^1.0.0-beta.3",
|
|
67
|
-
"ember-cli-uglify": "^2.1.0",
|
|
68
|
-
"ember-disable-prototype-extensions": "^1.1.3",
|
|
69
|
-
"ember-export-application-global": "^2.0.0",
|
|
70
|
-
"ember-load-initializers": "^2.0.0",
|
|
71
|
-
"ember-maybe-import-regenerator": "^0.1.6",
|
|
72
|
-
"ember-qunit": "^4.4.1",
|
|
73
|
-
"ember-resolver": "^5.1.3",
|
|
74
|
-
"ember-source": "~3.10.0",
|
|
75
|
-
"eslint": "^5.16.0",
|
|
76
|
-
"eslint-plugin-ember": "^6.4.1",
|
|
77
|
-
"eslint-plugin-node": "^8.0.1",
|
|
78
|
-
"glob": "^7.1.4",
|
|
79
|
-
"json": "^9.0.6",
|
|
80
|
-
"loader.js": "^4.7.0",
|
|
81
|
-
"mocha": "^6.1.4",
|
|
44
|
+
"chai": "^4.3.4",
|
|
45
|
+
"codecov": "^3.8.3",
|
|
46
|
+
"ember-cli": "~3.22.0",
|
|
47
|
+
"eslint": "^7.31.0",
|
|
48
|
+
"eslint-config-prettier": "^6.15.0",
|
|
49
|
+
"eslint-plugin-node": "^11.1.0",
|
|
50
|
+
"eslint-plugin-prettier": "^3.1.4",
|
|
51
|
+
"glob": "^7.2.0",
|
|
52
|
+
"json": "^10.0.0",
|
|
53
|
+
"mocha": "^8.2.1",
|
|
82
54
|
"mockery": "^2.1.0",
|
|
83
|
-
"nyc": "^
|
|
55
|
+
"nyc": "^15.1.0",
|
|
56
|
+
"prettier": "^2.4.1",
|
|
57
|
+
"release-it": "^14.11.6",
|
|
58
|
+
"release-it-lerna-changelog": "^3.1.0",
|
|
59
|
+
"rsvp": "^4.7.0",
|
|
84
60
|
"tmp-sync": "^1.1.0"
|
|
85
61
|
},
|
|
86
62
|
"engines": {
|
|
87
|
-
"node": "
|
|
63
|
+
"node": "10.* || 12.* || >= 14.*"
|
|
64
|
+
},
|
|
65
|
+
"publishConfig": {
|
|
66
|
+
"registry": "https://registry.npmjs.org"
|
|
88
67
|
},
|
|
89
68
|
"ember-addon": {
|
|
90
69
|
"configPath": "tests/dummy/config"
|
|
70
|
+
},
|
|
71
|
+
"release-it": {
|
|
72
|
+
"plugins": {
|
|
73
|
+
"release-it-lerna-changelog": {
|
|
74
|
+
"infile": "CHANGELOG.md",
|
|
75
|
+
"launchEditor": true
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"git": {
|
|
79
|
+
"tagName": "v${version}"
|
|
80
|
+
},
|
|
81
|
+
"github": {
|
|
82
|
+
"release": true,
|
|
83
|
+
"tokenRef": "GITHUB_AUTH"
|
|
84
|
+
},
|
|
85
|
+
"npm": {
|
|
86
|
+
"publish": false
|
|
87
|
+
}
|
|
91
88
|
}
|
|
92
89
|
}
|
package/.circleci/config.yml
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
# Use the latest 2.1 version of CircleCI pipeline processing engine, see https://circleci.com/docs/2.0/configuration-reference/
|
|
2
|
-
version: 2.1
|
|
3
|
-
|
|
4
|
-
# Use a package of configuration called an orb, see https://circleci.com/docs/2.0/orb-intro/
|
|
5
|
-
orbs:
|
|
6
|
-
node: circleci/node@1.0.1
|
|
7
|
-
|
|
8
|
-
commands:
|
|
9
|
-
npm-smoke-test:
|
|
10
|
-
steps:
|
|
11
|
-
- run: node --version
|
|
12
|
-
- run: npm version
|
|
13
|
-
- checkout
|
|
14
|
-
- node/with-cache:
|
|
15
|
-
steps:
|
|
16
|
-
- run: npm run smoke-test
|
|
17
|
-
|
|
18
|
-
yarn-smoke-test:
|
|
19
|
-
steps:
|
|
20
|
-
- run: node --version
|
|
21
|
-
- run: npm version
|
|
22
|
-
- checkout
|
|
23
|
-
- node/install-yarn
|
|
24
|
-
- node/with-cache:
|
|
25
|
-
steps:
|
|
26
|
-
- run: yarn smoke-test-yarn
|
|
27
|
-
|
|
28
|
-
node-test:
|
|
29
|
-
steps:
|
|
30
|
-
- run: node --version
|
|
31
|
-
- run: npm version
|
|
32
|
-
- checkout
|
|
33
|
-
- node/install-yarn
|
|
34
|
-
- node/with-cache:
|
|
35
|
-
steps:
|
|
36
|
-
- run:
|
|
37
|
-
name: Install dependencies
|
|
38
|
-
command: yarn install
|
|
39
|
-
- run: yarn node-test-with-coverage
|
|
40
|
-
|
|
41
|
-
floating-deps:
|
|
42
|
-
steps:
|
|
43
|
-
- run: node --version
|
|
44
|
-
- run: npm version
|
|
45
|
-
- checkout
|
|
46
|
-
- node/install-yarn
|
|
47
|
-
- node/with-cache:
|
|
48
|
-
steps:
|
|
49
|
-
- run:
|
|
50
|
-
name: Install dependencies (floating)
|
|
51
|
-
command: yarn install --no-lockfile
|
|
52
|
-
- run: yarn node-test
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
jobs:
|
|
56
|
-
lint:
|
|
57
|
-
docker:
|
|
58
|
-
- image: circleci/node:lts
|
|
59
|
-
steps:
|
|
60
|
-
- run: node --version
|
|
61
|
-
- run: npm version
|
|
62
|
-
- checkout
|
|
63
|
-
- node/install-yarn
|
|
64
|
-
- node/with-cache:
|
|
65
|
-
steps:
|
|
66
|
-
- run:
|
|
67
|
-
name: Install dependencies
|
|
68
|
-
command: yarn install
|
|
69
|
-
- run:
|
|
70
|
-
name: Lint files
|
|
71
|
-
command: yarn lint
|
|
72
|
-
|
|
73
|
-
node-v8-smoke-test:
|
|
74
|
-
docker:
|
|
75
|
-
- image: circleci/node:8-browsers
|
|
76
|
-
steps:
|
|
77
|
-
- npm-smoke-test
|
|
78
|
-
|
|
79
|
-
node-v8-yarn-smoke-test:
|
|
80
|
-
docker:
|
|
81
|
-
- image: circleci/node:8-browsers
|
|
82
|
-
steps:
|
|
83
|
-
- yarn-smoke-test
|
|
84
|
-
|
|
85
|
-
node-lts-smoke-test:
|
|
86
|
-
docker:
|
|
87
|
-
- image: circleci/node:lts-browsers
|
|
88
|
-
steps:
|
|
89
|
-
- npm-smoke-test
|
|
90
|
-
|
|
91
|
-
yarn-lts-smoke-test:
|
|
92
|
-
docker:
|
|
93
|
-
- image: circleci/node:lts-browsers
|
|
94
|
-
steps:
|
|
95
|
-
- yarn-smoke-test
|
|
96
|
-
|
|
97
|
-
node-current-smoke-test:
|
|
98
|
-
docker:
|
|
99
|
-
- image: circleci/node:current-browsers
|
|
100
|
-
steps:
|
|
101
|
-
- npm-smoke-test
|
|
102
|
-
|
|
103
|
-
yarn-current-smoke-test:
|
|
104
|
-
docker:
|
|
105
|
-
- image: circleci/node:current-browsers
|
|
106
|
-
steps:
|
|
107
|
-
- yarn-smoke-test
|
|
108
|
-
|
|
109
|
-
all-commands-smoke-test:
|
|
110
|
-
docker:
|
|
111
|
-
- image: circleci/node:lts-browsers
|
|
112
|
-
steps:
|
|
113
|
-
- run: node --version
|
|
114
|
-
- run: npm version
|
|
115
|
-
- checkout
|
|
116
|
-
- node/with-cache:
|
|
117
|
-
steps:
|
|
118
|
-
- run: npm run client-test
|
|
119
|
-
|
|
120
|
-
node-lts-test:
|
|
121
|
-
docker:
|
|
122
|
-
- image: circleci/node:lts-browsers
|
|
123
|
-
steps:
|
|
124
|
-
- node-test
|
|
125
|
-
|
|
126
|
-
floating-deps:
|
|
127
|
-
docker:
|
|
128
|
-
- image: circleci/node:lts-browsers
|
|
129
|
-
steps:
|
|
130
|
-
- floating-deps
|
|
131
|
-
|
|
132
|
-
deploy:
|
|
133
|
-
docker:
|
|
134
|
-
- image: circleci/node:lts-browsers
|
|
135
|
-
steps:
|
|
136
|
-
- run: node --version
|
|
137
|
-
- run: npm version
|
|
138
|
-
- checkout
|
|
139
|
-
- node/install-yarn
|
|
140
|
-
- node/with-cache:
|
|
141
|
-
steps:
|
|
142
|
-
- run:
|
|
143
|
-
name: Install dependencies
|
|
144
|
-
command: yarn install
|
|
145
|
-
- run: yarn global add auto-dist-tag
|
|
146
|
-
- run: auto-dist-tag --write
|
|
147
|
-
- run:
|
|
148
|
-
name: Authenticate with registry
|
|
149
|
-
command: echo "//registry.npmjs.org/:_authToken=$npm_TOKEN" > ~/repo/.npmrc
|
|
150
|
-
- run:
|
|
151
|
-
name: Publish package
|
|
152
|
-
command: npm publish
|
|
153
|
-
|
|
154
|
-
# Orchestrate or schedule a set of jobs, see https://circleci.com/docs/2.0/workflows/
|
|
155
|
-
workflows:
|
|
156
|
-
nightly:
|
|
157
|
-
triggers:
|
|
158
|
-
- schedule:
|
|
159
|
-
cron: "0 0 * * *"
|
|
160
|
-
filters:
|
|
161
|
-
branches:
|
|
162
|
-
only:
|
|
163
|
-
- master
|
|
164
|
-
jobs:
|
|
165
|
-
- floating-deps
|
|
166
|
-
test-and-deploy:
|
|
167
|
-
jobs:
|
|
168
|
-
- lint
|
|
169
|
-
- node-lts-test
|
|
170
|
-
- floating-deps
|
|
171
|
-
- node-v8-smoke-test:
|
|
172
|
-
requires:
|
|
173
|
-
- lint
|
|
174
|
-
- node-lts-test
|
|
175
|
-
- node-v8-yarn-smoke-test:
|
|
176
|
-
requires:
|
|
177
|
-
- lint
|
|
178
|
-
- node-lts-test
|
|
179
|
-
- node-lts-smoke-test:
|
|
180
|
-
requires:
|
|
181
|
-
- lint
|
|
182
|
-
- node-lts-test
|
|
183
|
-
- yarn-lts-smoke-test:
|
|
184
|
-
requires:
|
|
185
|
-
- lint
|
|
186
|
-
- node-lts-test
|
|
187
|
-
- node-current-smoke-test:
|
|
188
|
-
requires:
|
|
189
|
-
- lint
|
|
190
|
-
- node-lts-test
|
|
191
|
-
- yarn-current-smoke-test:
|
|
192
|
-
requires:
|
|
193
|
-
- lint
|
|
194
|
-
- node-lts-test
|
|
195
|
-
- all-commands-smoke-test:
|
|
196
|
-
requires:
|
|
197
|
-
- lint
|
|
198
|
-
- node-lts-test
|
|
199
|
-
- deploy:
|
|
200
|
-
requires:
|
|
201
|
-
- all-commands-smoke-test
|
|
202
|
-
filters:
|
|
203
|
-
tags:
|
|
204
|
-
only: /^v.*/
|
|
205
|
-
branches:
|
|
206
|
-
ignore: /.*/
|
|
207
|
-
|
package/.codeclimate.yml
DELETED
package/.dependabot/config.yml
DELETED
package/config/environment.js
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const CoreObject = require('core-object');
|
|
4
|
-
const fs = require('fs-extra');
|
|
5
|
-
const RSVP = require('rsvp');
|
|
6
|
-
const path = require('path');
|
|
7
|
-
const extend = require('extend');
|
|
8
|
-
const debug = require('debug')('ember-try:dependency-manager-adapter:bower');
|
|
9
|
-
const rimraf = RSVP.denodeify(require('rimraf'));
|
|
10
|
-
const resolve = require('resolve');
|
|
11
|
-
const findEmberPath = require('../utils/find-ember-path');
|
|
12
|
-
|
|
13
|
-
module.exports = CoreObject.extend({
|
|
14
|
-
init() {
|
|
15
|
-
this._super.apply(this, arguments);
|
|
16
|
-
this.run = this.run || require('../utils/run');
|
|
17
|
-
this.hasBowerFileInitially = fs.existsSync(path.join(this.cwd, this.bowerJSONFileName));
|
|
18
|
-
},
|
|
19
|
-
bowerJSONFileName: 'bower.json',
|
|
20
|
-
bowerJSONBackupFileName: 'bower.json.ember-try',
|
|
21
|
-
defaultBowerJSON() {
|
|
22
|
-
return {
|
|
23
|
-
name: 'ember-try-placeholder',
|
|
24
|
-
dependencies: {},
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
configKey: 'bower',
|
|
28
|
-
setup() {
|
|
29
|
-
if (this.hasBowerFileInitially) {
|
|
30
|
-
return this._backupBowerFile();
|
|
31
|
-
} else {
|
|
32
|
-
return RSVP.resolve();
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
_writeBowerFileWithDepSetChanges(depSet) {
|
|
36
|
-
let adapter = this;
|
|
37
|
-
let baseBowerJSON;
|
|
38
|
-
let bowerFile = path.join(adapter.cwd, adapter.bowerJSONFileName);
|
|
39
|
-
|
|
40
|
-
if (this.hasBowerFileInitially) {
|
|
41
|
-
let backupBowerFile = path.join(adapter.cwd, adapter.bowerJSONBackupFileName);
|
|
42
|
-
baseBowerJSON = JSON.parse(fs.readFileSync(backupBowerFile));
|
|
43
|
-
} else {
|
|
44
|
-
baseBowerJSON = this.defaultBowerJSON();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
let newBowerJSON = adapter._bowerJSONForDependencySet(baseBowerJSON, depSet);
|
|
48
|
-
|
|
49
|
-
debug('Write bower.json with: \n', JSON.stringify(newBowerJSON));
|
|
50
|
-
|
|
51
|
-
fs.writeFileSync(bowerFile, JSON.stringify(newBowerJSON, null, 2));
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
/* Compute whether or not there are bower dependencies to install.
|
|
55
|
-
*
|
|
56
|
-
* @return true iff `depSet` has either dependencies or devDependencies
|
|
57
|
-
*/
|
|
58
|
-
_hasDependencies(depSet) {
|
|
59
|
-
if (!depSet) { return false; }
|
|
60
|
-
|
|
61
|
-
let dependencies = Object.assign({}, depSet.dependencies, depSet.devDependencies);
|
|
62
|
-
|
|
63
|
-
return Object.keys(dependencies).length > 0;
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
changeToDependencySet(depSet) {
|
|
67
|
-
let adapter = this;
|
|
68
|
-
|
|
69
|
-
debug('Changing to dependency set: %s', JSON.stringify(depSet));
|
|
70
|
-
|
|
71
|
-
if (!this._hasDependencies(depSet)) {
|
|
72
|
-
return RSVP.resolve([]);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
adapter._writeBowerFileWithDepSetChanges(depSet);
|
|
76
|
-
|
|
77
|
-
return adapter._install().then(() => {
|
|
78
|
-
let deps = extend({}, depSet.dependencies || {}, depSet.devDependencies || {});
|
|
79
|
-
let currentDeps = Object.keys(deps).map((dep) => {
|
|
80
|
-
return {
|
|
81
|
-
name: dep,
|
|
82
|
-
versionExpected: deps[dep],
|
|
83
|
-
versionSeen: adapter._findCurrentVersionOf(dep),
|
|
84
|
-
packageManager: 'bower',
|
|
85
|
-
};
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
debug('Switched to dependencies: \n', currentDeps);
|
|
89
|
-
|
|
90
|
-
return RSVP.Promise.resolve(currentDeps);
|
|
91
|
-
});
|
|
92
|
-
},
|
|
93
|
-
cleanup() {
|
|
94
|
-
let adapter = this;
|
|
95
|
-
if (this.hasBowerFileInitially) {
|
|
96
|
-
return adapter._restoreOriginalBowerFile().then(() => {
|
|
97
|
-
debug('Remove backup bower.json');
|
|
98
|
-
return rimraf(path.join(adapter.cwd, adapter.bowerJSONBackupFileName));
|
|
99
|
-
}).catch((e) => {
|
|
100
|
-
console.log('Error cleaning up bower scenario:', e); // eslint-disable-line no-console
|
|
101
|
-
})
|
|
102
|
-
.then(() => {
|
|
103
|
-
return adapter._install();
|
|
104
|
-
});
|
|
105
|
-
} else {
|
|
106
|
-
return rimraf(path.join(adapter.cwd, adapter.bowerJSONFileName)).then(() => {
|
|
107
|
-
return rimraf(path.join(adapter.cwd, 'bower_components'));
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
_findCurrentVersionOf(packageName) {
|
|
112
|
-
let filename = path.join(this.cwd, 'bower_components', packageName, 'bower.json');
|
|
113
|
-
if (fs.existsSync(filename)) {
|
|
114
|
-
return JSON.parse(fs.readFileSync(filename)).version;
|
|
115
|
-
} else {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
_install() {
|
|
120
|
-
let adapter = this;
|
|
121
|
-
return rimraf(path.join(adapter.cwd, 'bower_components'))
|
|
122
|
-
.then(() => {
|
|
123
|
-
debug('Removed bower_components');
|
|
124
|
-
return adapter._runBowerInstall();
|
|
125
|
-
});
|
|
126
|
-
},
|
|
127
|
-
_runBowerInstall() {
|
|
128
|
-
let adapter = this;
|
|
129
|
-
let options = this.managerOptions || [];
|
|
130
|
-
let commandParts = ['install', '--config.interactive=false'];
|
|
131
|
-
return adapter._findBowerPath(adapter.cwd).then((bowerPath) => {
|
|
132
|
-
debug('Run bower install using bower at %s', bowerPath);
|
|
133
|
-
return adapter.run('node', [].concat([bowerPath], commandParts, options), { cwd: adapter.cwd });
|
|
134
|
-
});
|
|
135
|
-
},
|
|
136
|
-
_bowerJSONForDependencySet(bowerJSON, depSet) {
|
|
137
|
-
if (!bowerJSON.resolutions) {
|
|
138
|
-
bowerJSON.resolutions = {};
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
this._overrideBowerJSONDependencies(bowerJSON, depSet, 'dependencies');
|
|
142
|
-
this._overrideBowerJSONDependencies(bowerJSON, depSet, 'devDependencies');
|
|
143
|
-
|
|
144
|
-
return bowerJSON;
|
|
145
|
-
},
|
|
146
|
-
_overrideBowerJSONDependencies(bowerJSON, depSet, kindOfDependency) {
|
|
147
|
-
if (!depSet[kindOfDependency]) { return; }
|
|
148
|
-
let pkgs = Object.keys(depSet[kindOfDependency]);
|
|
149
|
-
|
|
150
|
-
pkgs.forEach((pkg) => {
|
|
151
|
-
if (!bowerJSON[kindOfDependency]) {
|
|
152
|
-
bowerJSON[kindOfDependency] = {};
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
let version = depSet[kindOfDependency][pkg];
|
|
156
|
-
if (version === null) {
|
|
157
|
-
delete bowerJSON[kindOfDependency][pkg];
|
|
158
|
-
delete bowerJSON.resolutions[pkg];
|
|
159
|
-
} else {
|
|
160
|
-
bowerJSON[kindOfDependency][pkg] = version;
|
|
161
|
-
|
|
162
|
-
if (depSet.resolutions && depSet.resolutions[pkg]) {
|
|
163
|
-
bowerJSON.resolutions[pkg] = depSet.resolutions[pkg];
|
|
164
|
-
} else {
|
|
165
|
-
bowerJSON.resolutions[pkg] = version;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
},
|
|
170
|
-
_restoreOriginalBowerFile() {
|
|
171
|
-
let copy = RSVP.denodeify(fs.copy);
|
|
172
|
-
|
|
173
|
-
debug('Restore original bower.json');
|
|
174
|
-
|
|
175
|
-
return copy(path.join(this.cwd, this.bowerJSONBackupFileName),
|
|
176
|
-
path.join(this.cwd, this.bowerJSONFileName));
|
|
177
|
-
},
|
|
178
|
-
_backupBowerFile() {
|
|
179
|
-
let copy = RSVP.denodeify(fs.copy);
|
|
180
|
-
|
|
181
|
-
debug('Backup bower.json');
|
|
182
|
-
|
|
183
|
-
return copy(path.join(this.cwd, this.bowerJSONFileName),
|
|
184
|
-
path.join(this.cwd, this.bowerJSONBackupFileName));
|
|
185
|
-
},
|
|
186
|
-
_findBowerPath() {
|
|
187
|
-
let adapter = this;
|
|
188
|
-
return findEmberPath(adapter.cwd).then((emberPath) => {
|
|
189
|
-
/* Find bower's entry point module relative to ember-cli's entry point script */
|
|
190
|
-
let bowerPath = adapter._resolveModule('bower', { basedir: path.dirname(emberPath) });
|
|
191
|
-
|
|
192
|
-
return `"${path.join(bowerPath, '..', '..', 'bin', 'bower')}"`;
|
|
193
|
-
});
|
|
194
|
-
},
|
|
195
|
-
_resolveModule(moduleName, options) {
|
|
196
|
-
return resolve.sync(moduleName, options);
|
|
197
|
-
},
|
|
198
|
-
});
|