UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

46 lines 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClusterRole = void 0; const instruments_1 = require("@k8ts/instruments"); const doddle_1 = require("doddle"); const rbac_1 = require("../../kinds/rbac"); class ClusterRole_Scope { Rule(...resources) { return { verbs(...verbs) { return { resources: resources, verbs: verbs }; } }; } } class ClusterRole extends instruments_1.Resource_Top { get kind() { return rbac_1.rbac.v1.ClusterRole._; } constructor(name, props) { super(name, props); } _fromObject(rule) { return { apiGroups: Array.from(new Set(rule.resources.map(x => x.parent.parent.name))), resources: rule.resources.map(r => r.plural), verbs: rule.verbs }; } body() { const rules = (0, doddle_1.seq)(this.props.rules(new ClusterRole_Scope())) .map(rule => { return this._fromObject(rule); }) .toArray() .pull(); return { rules: rules }; } } exports.ClusterRole = ClusterRole; //# sourceMappingURL=cluster-role.js.map