f5-conx-core
Version:
F5 SDK for JavaScript with Typescript type definitions
143 lines (142 loc) • 3.77 kB
TypeScript
/// <reference types="node" />
import { AtcVersions } from "./bigipModels";
import { ExtHttp } from '../externalHttps';
import { EventEmitter } from "events";
/**
* class for managing Automated Tool Chain services versions
*
* Uses atc meta data to query each service public repo and get release information
*
* @param extHttp client for external connectivity
* @param logger logger class for logging events within this class
*
*/
export declare class AtcVersionsClient {
/**
* client for handling external HTTP connectivity
* - also has the cache directory under .cacheDir
*/
extHttp: ExtHttp;
/**
* event emitter instance for this class
*/
events: EventEmitter;
/**
* ATC meta data including api endpoints, github releases url and main repo url
*/
atcMetaData: {
fast: {
endPoints: {
declare: string;
templateSets: string;
templates: string;
tasks: string;
info: string;
};
gitReleases: string;
repo: string;
schema: string;
};
as3: {
endPoints: {
declare: string;
tasks: string;
info: string;
};
gitReleases: string;
repo: string;
schema: string;
examples: string;
};
do: {
endPoints: {
declare: string;
task: string;
info: string;
inspect: string;
};
gitReleases: string;
repo: string;
schema: string;
parentSchema: string;
examples: string;
};
ts: {
endPoints: {
declare: string;
info: string;
};
gitReleases: string;
repo: string;
schema: string;
examples: string;
};
cf: {
endPoints: {
declare: string;
info: string;
inspect: string;
trigger: string;
reset: string;
};
gitReleases: string;
repo: string;
schema: string;
examples: string;
};
};
/**
* base atc version information that comes with the package
*
* *updated with every release of f5-conx-core*
*/
atcVersionsBaseCache: AtcVersions;
/**
* date of the last ATC version check
*/
lastCheckDate: Date | string | undefined;
/**
* date of the last ATC version update
*/
lastUpdatedDate: Date | string | undefined;
/**
* atc version cache name/location
*
* '/home/someUser/f5-conx-core/src/bigip/atcVersions.json'
*/
atcVersionsFileName: string;
/**
*
*/
cachePath: string;
/**
* object containing all the LATEST versions/releases/assets information for each ATC service.
*/
atcVersions: AtcVersions;
constructor(options: {
extHttp?: ExtHttp;
cachePath?: string;
eventEmitter?: EventEmitter;
});
/**
* returns atc version information
*
* will only query github to refresh once a day and saves details to file
*/
getAtcReleasesInfo(): Promise<AtcVersions>;
private loadReleaseInfoFromCache;
/**
* save atc release/versions information to cache
*/
private saveReleaseInfoToCache;
private refreshAtcReleasesInfo;
}
/**
* compares semver
*
* https://github.com/substack/semver-compare
*
* @param a
* @param b
*/
export declare function cmp(a: string, b: string): 1 | -1 | 0;