aws-cloudformation / aws-cloudformation/cloudformation-cli-typescript-plugin

Resource model break when specifying an array with unique: true

未关闭
#97 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
TypeScript
星标
46
派生
18
PR 合并指标
30 天内没有已合并 PR

描述

I've noticed when specifying an array with unique: true translates the model into a Set instead of an Array (makes sense)

but then when passing an actual array as example input, the resource provider fails. Consider for example:

```
"Tags": {
"type": "array",
"maxItems": 50,
"uniqueItems": true,
"insertionOrder": false,
"description": "An array of key-value pairs to apply to this resource.",
"items": {
"$ref": "#/definitions/Tag"
}
},
```

with input:

```
"Tags": [{
"Key": "name",
"Value": "value"
}]
```

gives error

`"message": "Error: Error: Unsupported type: object [Tag] for tags (Error)",`

Removing the `uniqueItems` fixes the issue and the main thing I notice is that in the generated code the type changes from a Set to an Array

贡献指南

打开贡献指南

调研方向

使用所示 schema 和示例输入复现该故障,然后检查生成的 TypeScript 模型和 resource-provider 路径,查找启用 uniqueItems 的数组。比较移除 uniqueItems 后的行为;当 Tag 对象示例数组能够被接受,同时唯一性仍能得到正确表示时,即视为完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
aws, typescript
领域
backend-api-design, cloud
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。