angular / angular/angular-cli

Add interface to cover UpdateRecorderBase's "apply" method

Aberta
#16,003 4 comentários 0 reações 0 responsáveis Ver no GitHub
area: @angular-devkit/schematics feature feature: insufficient votes
Linguagem predominante
TypeScript
Estrelas
27k
Forks
11.8k
Merge médio
14h 23min
PRs com merge (30d)
162

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
typescript
Domínio
cli, tooling
Tipo de issue
Funcionalidade
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.