compiler: syntactic sugar for combine
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
- Ambito
- compilers
Direzione di ricerca
Non viene indicato alcun punto di ingresso per file o test. Inizia esaminando la gestione delle operation expressions del compilatore e l'implementazione esistente di combine, quindi confronta la sintassi pipe proposta con la proposta di pipeline di TC39 collegata. Il lavoro è completato quando si è concordata la sintassi valida, la catena viene compilata in combine e viene definita la restrizione sulle istruzioni di blocco.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
One thing that's very hard to do in job writing is do muliple steps in one.
each is the usual usecase, where I want to do:
each($.data, get, fn, post)
Where what I really want in the each is a little pipeline which processes each item through multiple operations
I can do this today with promises:
each($.data, get.then(fn).then(post))
But it's ugly, the compiler creaks, and error handling isn't great
You can also use combine, which is cool but no-one knows about it:
each($.data, combine(get(), fn(), post()))
I'm just wondering if we can do some syntactic sugar for combine, like:
each($.data, [get, fn, post])
But we probably can't distinguish this piping sort of expression from an array.
What if we used something more like piping?
each($.data, get |> fn |> post)
each($.data, get | fn | post)
each($.data, get > fn > post)
each($.data, @[get,fn , post])
Not terribly neat or intuitive.
using a pipe is OK but the synax isn't reserved, so how would I catch it?
JS does have a proposal for a pipeline operator: https://github.com/tc39/proposal-pipeline-operator
So it's this then:
each($.data, get |> fn |> post)
The compiler detects the chain and compiles it to:
each($.data, combine(get, fn, post))
You cannot use the pipe operator inside a block statement. Use it only in place of an operation.
- Lingua principale
- TypeScript
- Stelle
- 21
- Fork
- 22
- Merge medio
- 1g 6h
- PR unite (30g)
- 26
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenFn/kit
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
OpenFn/kit#1574 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenFn/kit#1551 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Worker: ignore sentry errors `Credential environment mismatch`Forse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
OpenFn/kit#1460 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
CLI
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
ui(ListToolbar): search takes the full row on a phone instead of sharing it with the result countAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno
-
priority:high
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
immich-app/immich#32426 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue hacktoberfest help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
libredb/libredb-studio#1756 ·
I maintainer di solito rispondono entro 1 giorno