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
JavaScript
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');
}
}
}
}