blob: 7bb1f4bc60fe8ed35792aed9e5698f9517df2ef0 [file] [log] [blame]
TODO: image field is not pre-evaluated (not a huge deal)
TODO: allow dynamic fields
-- in.cue --
key: "app01"
manifests: [
{
deployment: #map: [string]: { name: string, image: string, desc: string }
deployment: #map: "\(key)": name: "app01"
},
{
deployment: #map: app01: image: "image01"
// TODO: allow
// deployment: #map: "\("app03")": image: "image01"
}
]
// unify
results: _
for _, manifest in manifests {
results: manifest
}
-- out/eval --
(struct){
key: (string){ "app01" }
manifests: (#list){
0: (struct){
deployment: (struct){
#map: (#struct){
app01: (#struct){
name: (string){ "app01" }
image: (string){ string }
desc: (string){ string }
}
}
}
}
1: (struct){
deployment: (struct){
#map: (#struct){
app01: (#struct){
image: (string){ "image01" }
}
}
}
}
}
results: (struct){
deployment: (struct){
#map: (#struct){
app01: (#struct){
image: (string){ "image01" }
name: (string){ "app01" }
desc: (string){ string }
}
}
}
}
}
-- out/compile --
--- in.cue
{
key: "app01"
manifests: [
{
deployment: {
#map: {
[string]: {
name: string
image: string
desc: string
}
}
}
deployment: {
#map: {
"\(〈3;key〉)": {
name: "app01"
}
}
}
},
{
deployment: {
#map: {
app01: {
image: "image01"
}
}
}
},
]
results: _
for _, manifest in 0;manifests {
results: 1;manifest
}
}