angular / angular/angular-cli

Add interface to cover UpdateRecorderBase's "apply" method

Đang mở
#16,003 4 bình luận 0 reaction 0 người được giao Xem trên GitHub
area: @angular-devkit/schematics feature feature: insufficient votes
Ngôn ngữ chính
TypeScript
Star
27k
Fork
11.8k
Merge trung bình
14 giờ 23 phút
Pull request đã merge (30 ngày)
162

Mô tả

# 🚀 Feature request

### Command (mark with an `x`)

```
- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [x] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc
```

### Description
Currently when writing schematics, the `HostTree` expects an `UpdateRecorderBase` for it's `commitUpdate(...)` function. This sharply limits creating custom schematic helpers, since any change needs to be done with an actual `UpdateRecorderBase`.

### Describe the solution you'd like
Include a new `UpdateRecord` interface (however you want to call it) that outlines the `UpdateRecorderBase`'s `apply()` function and remove the need for the `UpdateRecorderBase` specifically to be used with the `HostTree.commitUpdate(...)`

I have no problems cloning the repo and making the changes myself, but I would prefer some discussion around the subject to make sure it's in-line with the rest of the schematics implementations.

### Describe alternatives you've considered
I looked into implementing my own `TreeInterface`, but the `HostTree` I would base it on uses a number of "backend" specific functionality that is not exported. Not to mention it would be incredibly tedious to re-implement this very basic class, when we are only trying to extend how an update occurs against the `Tree`.

### Links
[HostTree](https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/schematics/src/tree/host-tree.ts)
[UpdateRecorderBase](https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/schematics/src/tree/recorder.ts)
[UpdateRecorder](https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/schematics/src/tree/interface.ts)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start by reading packages/angular_devkit/schematics/src/tree/host-tree.ts, recorder.ts, and interface.ts, focusing on HostTree.commitUpdate(...) and UpdateRecorderBase.apply(). Review the generate command's schematics usage to understand the public API boundary. Done means a new update interface can be used by commitUpdate(...) without requiring UpdateRecorderBase specifically.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
typescript
Lĩnh vực
cli, tooling
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.