(dependencies)
| 124 | } |
| 125 | |
| 126 | async function updateDependencies(dependencies) { |
| 127 | for (let dependencyKey in dependencies) { |
| 128 | let dependencyName = removeTemplateExpression(dependencyKey); |
| 129 | |
| 130 | if (!shouldCheckDependency(dependencyName)) { |
| 131 | continue; |
| 132 | } |
| 133 | |
| 134 | let previousValue = dependencies[dependencyKey]; |
| 135 | |
| 136 | // grab the first char (~ or ^) |
| 137 | let prefix = previousValue[0]; |
| 138 | let isValidPrefix = prefix === '~' || prefix === '^'; |
| 139 | |
| 140 | // handle things from blueprints/app/files/package.json like `^2.4.0<% if (welcome) { %>` |
| 141 | let templateSuffix = previousValue.includes('<') ? previousValue.slice(previousValue.indexOf('<')) : ''; |
| 142 | |
| 143 | // check if we are dealing with `~<%= emberCLIVersion %>` |
| 144 | let hasVersion = previousValue[1] !== '<'; |
| 145 | |
| 146 | if (hasVersion && isValidPrefix) { |
| 147 | const semverRange = OPTIONS.latest ? 'latest' : removeTemplateExpression(previousValue); |
| 148 | try { |
| 149 | const newVersion = await latestVersion(dependencyName, semverRange); |
| 150 | |
| 151 | dependencies[dependencyKey] = `${prefix}${newVersion}${templateSuffix}`; |
| 152 | } catch (err) { |
| 153 | console.warn(`Error checking new version of ${dependencyName}: ${err.message}`); |
| 154 | } |
| 155 | } |
| 156 | } |
| 157 | } |
| 158 | |
| 159 | function removeTemplateExpression(dependency) { |
| 160 | if (dependency.includes('<') === false) { |
no test coverage detected
searching dependent graphs…