From cf9b1048a26a423339f39a8e95b14e147f6113df Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Tue, 16 Oct 2018 16:43:01 -0400 Subject: [PATCH] feat: Allow use of --discovery-url parameter (#1377) Make it possible for the user to call the generate script passing a --discovery-url parameter --- src/generator/generate.ts | 12 ++++++++---- src/generator/generator.ts | 8 ++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/generator/generate.ts b/src/generator/generate.ts index 8daefae3c4e..b4b97e857cc 100644 --- a/src/generator/generate.ts +++ b/src/generator/generate.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import * as minimist from 'minimist'; import * as path from 'path'; import * as rimraf from 'rimraf'; import {install} from 'source-map-support'; @@ -24,13 +25,16 @@ import {Generator} from './generator'; // enable source map support install(); +const argv = minimist(process.argv.slice(2)); +const DEFAULT_DISCOVERY_URL = 'https://www.googleapis.com/discovery/v1/apis/'; +const discoveryUrl = argv['discovery-url']; + const debug = true; -const args = process.argv.slice(2); const gen = new Generator({debug, includePrivate: false}); async function main() { - if (args.length) { - args.forEach(async url => { + if (!discoveryUrl && argv._.length > 0) { + argv._.forEach(async url => { await gen.generateAPI(url); console.log('Generated API for ' + url); }); @@ -39,7 +43,7 @@ async function main() { const apiPath = path.join(__dirname, '../../../src/apis'); await util.promisify(rimraf)(apiPath); console.log('Generating APIs...'); - await gen.generateAllAPIs(); + await gen.generateAllAPIs(discoveryUrl || DEFAULT_DISCOVERY_URL); console.log('Finished generating APIs!'); } } diff --git a/src/generator/generator.ts b/src/generator/generator.ts index fa9ffa437f1..b49f7f5cc36 100644 --- a/src/generator/generator.ts +++ b/src/generator/generator.ts @@ -28,10 +28,6 @@ const cliArgs = argv._; const writeFile = util.promisify(fs.writeFile); const readDir = util.promisify(fs.readdir); -const DISCOVERY_URL = argv['discovery-url'] ? - argv['discovery-url'] : - (cliArgs.length ? cliArgs[0] : - 'https://www.googleapis.com/discovery/v1/apis/'); const FRAGMENT_URL = 'https://storage.googleapis.com/apisnippets-staging/public/'; @@ -177,9 +173,9 @@ export class Generator { /** * Generate all APIs and write to files. */ - async generateAllAPIs() { + async generateAllAPIs(discoveryUrl: string) { const headers = this.options.includePrivate ? {} : {'X-User-Ip': '0.0.0.0'}; - const res = await this.request({url: DISCOVERY_URL, headers}); + const res = await this.request({url: discoveryUrl, headers}); const apis = res.data.items; const queue = new Q({concurrency: 10}); console.log(`Generating ${apis.length} APIs...`);