k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
197 lines • 9.57 kB
JavaScript
"use strict";
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Stage = exports.Factory = void 0;
const instruments_1 = require("@k8ts/instruments");
const chalk_1 = __importDefault(require("chalk"));
const stacktracey_1 = __importDefault(require("stacktracey"));
const resources_1 = require("../resources");
const cronjob_1 = require("../resources/cronjob");
var Factory;
(function (Factory) {
class Base {
origin;
constructor(origin) {
this.origin = origin;
}
_metaWithName(name) {
return this.origin.meta.add({
name
});
}
}
Factory.Base = Base;
let Cluster = (() => {
let _classDecorators = [instruments_1.auto_register];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Base;
var Cluster = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
Cluster = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
__runInitializers(_classThis, _classExtraInitializers);
}
PersistentVolume(name, props) {
return new resources_1.Pv.Pv(this.origin, this._metaWithName(name), props);
}
Namespace(name, props) {
return new resources_1.Namespace.Namespace(this.origin, this._metaWithName(name), props);
}
};
return Cluster = _classThis;
})();
Factory.Cluster = Cluster;
let Namespaced = (() => {
let _classDecorators = [instruments_1.auto_register];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Base;
var Namespaced = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
Namespaced = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
__runInitializers(_classThis, _classExtraInitializers);
}
Claim(name, mode) {
return new resources_1.Pvc.Pvc(this.origin, this._metaWithName(name), mode);
}
CronJob(name, props) {
return new cronjob_1.K8tsCronJob(this.origin, this._metaWithName(name), props);
}
ConfigMap(name, props) {
return new resources_1.ConfigMap.ConfigMap(this.origin, this._metaWithName(name), props);
}
HttpRoute(name, props) {
return new resources_1.HttpRoute.HttpRoute(this.origin, this._metaWithName(name), props);
}
Secret(name, props) {
return new resources_1.Secret.Secret(this.origin, this._metaWithName(name), props);
}
Service(name, props) {
return new resources_1.Service.Service(this.origin, this._metaWithName(name), props);
}
Deployment(name, props) {
const builder = this;
const traceHere = new instruments_1.Trace(new stacktracey_1.default().slice(2));
return {
Template(templateProps) {
return {
POD(producer) {
const dep = new resources_1.Deployment.Deployment(builder.origin, builder._metaWithName(name), {
...props,
$template: {
...templateProps,
$POD: producer
}
});
instruments_1.TraceEmbedder.set(dep.node, traceHere);
dep.node.origin["__attach_resource__"]([dep.node]);
return dep;
}
};
}
};
}
DomainRoute(name, props) {
return new resources_1.HttpRoute.HttpRoute(this.origin, this._metaWithName(name), props);
}
PodTemplate(name, props) {
const props_ = typeof props === "function" ? { $POD: props } : props;
return new resources_1.PodTemplate.PodTemplate(this.origin, this._metaWithName(name), props_);
}
};
return Namespaced = _classThis;
})();
Factory.Namespaced = Namespaced;
})(Factory || (exports.Factory = Factory = {}));
let Stage = (() => {
let _classDecorators = [(0, instruments_1.displayers)({
simple: s => s.text,
pretty: stage => chalk_1.default.bgGreenBright.bold.black(` ${stage.text} `)
})];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
var Stage = class {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
Stage = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
__runInitializers(_classThis, _classExtraInitializers);
}
stage;
text;
constructor(stage) {
this.stage = stage;
this.text = `${stage.toUpperCase()}`;
}
get _emoji() {
switch (this.stage) {
case "gathering":
return "🛒";
case "loading":
return "🚚";
case "manifesting":
return "👻";
case "start":
return "🚀";
case "saving":
return "💾";
case "serializing":
return "🖨️";
case "done":
return "✅";
}
}
};
return Stage = _classThis;
})();
exports.Stage = Stage;
//# sourceMappingURL=factory.js.map