Refactor entire project (#39)
- Use more modern TypeScript conventions - Use JavaScript Kubernetes Client - Add unit tests - Add integration tests - Add TypeScript compile verify workflow - Switch codeowners
This commit is contained in:
14
lib/types/cluster.js
Normal file
14
lib/types/cluster.js
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseCluster = exports.Cluster = void 0;
|
||||
var Cluster;
|
||||
(function (Cluster) {
|
||||
Cluster["ARC"] = "arc";
|
||||
Cluster["GENERIC"] = "generic";
|
||||
})(Cluster = exports.Cluster || (exports.Cluster = {}));
|
||||
/**
|
||||
* Converts a string to the Cluster enum
|
||||
* @param str The cluster type (case insensitive)
|
||||
* @returns The Cluster enum or undefined if it can't be parsed
|
||||
*/
|
||||
exports.parseCluster = (str) => Cluster[Object.keys(Cluster).filter((k) => Cluster[k].toString().toLowerCase() === str.toLowerCase())[0]];
|
41
lib/types/k8sSecret.js
Normal file
41
lib/types/k8sSecret.js
Normal file
@@ -0,0 +1,41 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseK8sSecret = void 0;
|
||||
const util = __importStar(require("util"));
|
||||
/**
|
||||
* Throws an error if an object does not have all required fields to be a K8sSecret
|
||||
* @param secret
|
||||
* @returns A type guarded K8sSecret
|
||||
*/
|
||||
function parseK8sSecret(secret) {
|
||||
if (!secret)
|
||||
throw Error("K8s secret yaml is invalid");
|
||||
if (!secret.data)
|
||||
throw k8sSecretMissingFieldError("data");
|
||||
if (!secret.data.token)
|
||||
throw k8sSecretMissingFieldError("token");
|
||||
if (!secret.data["ca.crt"])
|
||||
throw k8sSecretMissingFieldError("ca.crt");
|
||||
return secret;
|
||||
}
|
||||
exports.parseK8sSecret = parseK8sSecret;
|
||||
const k8sSecretMissingFieldError = (field) => Error(util.format("K8s secret yaml does not contain %s field", field));
|
15
lib/types/method.js
Normal file
15
lib/types/method.js
Normal file
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.parseMethod = exports.Method = void 0;
|
||||
var Method;
|
||||
(function (Method) {
|
||||
Method["KUBECONFIG"] = "kubeconfig";
|
||||
Method["SERVICE_ACCOUNT"] = "service-account";
|
||||
Method["SERVICE_PRINCIPAL"] = "service-principal";
|
||||
})(Method = exports.Method || (exports.Method = {}));
|
||||
/**
|
||||
* Converts a string to the Method enum
|
||||
* @param str The method (case insensitive)
|
||||
* @returns The Method enum or undefined if it can't be parsed
|
||||
*/
|
||||
exports.parseMethod = (str) => Method[Object.keys(Method).filter((k) => Method[k].toString().toLowerCase() === str.toLowerCase())[0]];
|
Reference in New Issue
Block a user