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

74 lines (73 loc) 2.7 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; if (overlay) { /* eslint-disable no-await-in-loop */ // Alternatively we can apply all overlays in parallel // https://stackoverflow.com/questions/48957022/unexpected-await-inside-a-loop-no-await-in-loop for (const overlayFile of overlay) { await api.applyOverlay(overlayFile); } /* eslint-enable no-await-in-loop */ } const [definition, references] = api.extractDefinition(); 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'); } } } }