import { K8sResource, type DataSource, type Resource_Props_Top } from "@k8ts/instruments" import { K8S } from "@k8ts/sample-interfaces" import { merge } from "lodash" import { v1 } from "../../gvks/default" import { resolveDataSourceRecord } from "./resolver" export interface ConfigMap_Props extends Resource_Props_Top { $data?: Record } export class ConfigMap< Name extends string = string, Keys extends string = string > extends K8sResource> { get keys(): Keys[] { return Object.keys(this.props.$data ?? {}) as Keys[] } get kind() { return v1.ConfigMap._ } protected async __body__(): Promise { const resolvedRecord = await resolveDataSourceRecord(this, this.props.$data ?? {}) return merge(resolvedRecord, this.props.$$manifest) } }