@provisioner/common
Version:
Common stuff for provisioners
48 lines • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppHelper = void 0;
const contracts_1 = require("@provisioner/contracts");
const APP_DOCUMENT = {
apiVersion: 'system.codezero.io/v1',
kind: 'App'
};
class AppHelper extends contracts_1.AppHelper {
async read(cluster, errorMessage) {
const result = await cluster.read(this.resource);
result.throwIfError(errorMessage);
return result.as();
}
async list(cluster, errorMessage) {
const result = !this.name ?
await cluster.list(this.resource) :
await cluster.list(this.resource, { fieldSelector: `metadata.name=${this.name}` });
result.throwIfError(errorMessage);
return Array.from(result.each('App'));
}
static async byInterface(cluster, interfaceName, errorMessage) {
const result = await cluster.list({
...APP_DOCUMENT,
metadata: {
labels: {
[`system.codezero.io/interface-${interfaceName}`]: 'true'
}
}
});
result.throwIfError(errorMessage);
return Array.from(result.each('App'));
}
}
exports.AppHelper = AppHelper;
AppHelper.template = (namespace, name) => ({
apiVersion: 'system.codezero.io/v1',
kind: 'App',
metadata: {
...(name ? { name } : undefined),
...(namespace ? { namespace } : undefined)
}
});
AppHelper.from = (namespace, name) => {
const template = AppHelper.template(namespace, name);
return new AppHelper(template);
};
//# sourceMappingURL=app.js.map