angular / angular/angular-cli

Add interface to cover UpdateRecorderBase's "apply" method

Offen
#16,003 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
area: @angular-devkit/schematics feature feature: insufficient votes
Vorherrschende Sprache
TypeScript
Sterne
27k
Forks
11.8k
Ø Merge
14 Std. 23 Min.
Gemergte PRs (30 T.)
162

Beschreibung

# 🚀 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)

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
cli, tooling
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.