* Process the command line arguments --noextensions, --extensions, and * --extensions_from and return a list of the referenced extensions. * * @param {boolean=} preBuild * @return {!Array }
(preBuild = false)
| 176 | * @return {!Array<string>} |
| 177 | */ |
| 178 | function getExtensionsToBuild(preBuild = false) { |
| 179 | extensionsToBuild = argv.core_runtime_only ? [] : DEFAULT_EXTENSION_SET; |
| 180 | if (argv.extensions) { |
| 181 | if (typeof argv.extensions !== 'string') { |
| 182 | log(red('ERROR:'), 'Missing list of extensions.'); |
| 183 | process.exit(1); |
| 184 | } else if (argv.extensions === 'inabox') { |
| 185 | argv.extensions = INABOX_EXTENSION_SET.join(','); |
| 186 | } |
| 187 | const explicitExtensions = argv.extensions.replace(/\s/g, '').split(','); |
| 188 | extensionsToBuild = dedupe(extensionsToBuild.concat(explicitExtensions)); |
| 189 | } |
| 190 | if (argv.extensions_from) { |
| 191 | const extensionsFrom = getExtensionsFromArg(argv.extensions_from); |
| 192 | extensionsToBuild = dedupe(extensionsToBuild.concat(extensionsFrom)); |
| 193 | } |
| 194 | if ( |
| 195 | !preBuild && |
| 196 | !argv.noextensions && |
| 197 | !argv.extensions && |
| 198 | !argv.extensions_from && |
| 199 | !argv.core_runtime_only |
| 200 | ) { |
| 201 | const allExtensions = []; |
| 202 | for (const extension in EXTENSIONS) { |
| 203 | allExtensions.push(EXTENSIONS[extension].name); |
| 204 | } |
| 205 | extensionsToBuild = dedupe(extensionsToBuild.concat(allExtensions)); |
| 206 | } |
| 207 | return extensionsToBuild; |
| 208 | } |
| 209 | |
| 210 | /** |
| 211 | * Parses the --extensions, --extensions_from, and the --noextensions flags, |
no test coverage detected