UNPKG

bump-cli

Version:

The Bump CLI is used to interact with your API documentation hosted on Bump.sh by using the API of developers.bump.sh

65 lines (64 loc) 2.3 kB
import debug from 'debug'; export class Deploy { _bump; constructor(bumpClient) { this._bump = bumpClient; } async createVersion(request, token) { const response = await this._bump.postVersion(request, token); let version; switch (response.status) { case 204: { break; } case 201: { version = response.data ?? { doc_public_url: 'https://bump.sh', id: '' }; break; } default: { this.d(`API status response was ${response.status}. Expected 201 or 204.`); throw new Error('Unexpected server response. Please contact support at https://bump.sh if this error persists'); } } return version; } /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ d(formatter, ...args) { return debug(`bump-cli:core:deploy`)(formatter, ...args); } async run(api, dryRun, documentation, token, hub, autoCreate, documentationName, branch, overlay, temporary) { let version; const [definition, references] = await api.extractDefinition(undefined, overlay); const request = { auto_create_documentation: autoCreate && !dryRun, branch_name: branch, definition, documentation, documentation_name: documentationName, hub, references, temporary, }; if (dryRun) { await this.validateVersion(request, token); } else { version = await this.createVersion(request, token); } return version; } // Function signature type taken from @types/debug // Debugger(formatter: any, ...args: any[]): void; async validateVersion(version, token) { const response = await this._bump.postValidation(version, token); switch (response.status) { case 200: { break; } default: { this.d(`API status response was ${response.status}. Expected 200.`); throw new Error('Unexpected server response. Please contact support at https://bump.sh if this error persists'); } } } }