k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
25 lines (22 loc) • 780 B
text/typescript
import { Resource_Top, type DataSource } from "@k8ts/instruments"
import { CDK } from "@k8ts/sample-interfaces"
import { v1 } from "../../kinds/default"
import { resolveDataSourceRecord } from "./resolver"
export interface ConfigMap_Props<Keys extends string = string> {
$data: Record<Keys, DataSource>
}
export class ConfigMap<
Name extends string = string,
Keys extends string = string
> extends Resource_Top<Name, ConfigMap_Props<Keys>> {
get keys(): Keys[] {
return Object.keys(this.props.$data) as Keys[]
}
get kind() {
return v1.ConfigMap._
}
protected async body(): Promise<CDK.KubeConfigMapProps> {
const resolvedRecord = await resolveDataSourceRecord(this, this.props.$data)
return resolvedRecord
}
}