browserify / browserify/static-module

feature: add an API that works on ASTs instead of pre-evaluated values

Aperta
#57 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
JavaScript
Stelle
75
Fork
22
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

static-eval doesn't support function expressions like the `body` option in:

```js
cwise({
body: () => {}
})
```

I think because of this patch https://github.com/substack/static-eval/pull/18

static-module has a special case for function arguments as callbacks:

```js
readFile('xyz', function () {})
```

A possible solution may be to have a static-module option or a method like `staticModule.ast` that passes the parsed AST nodes to functions, instead of statically evaluated values. Projects like cwise could then use static-eval to selectively evaluate strings and other primitive types, and stringify the AST for function arguments using escodegen.

_Originally posted by @goto-bus-stop in https://github.com/browserify/static-module/issues/48#issuecomment-443202592_

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia esaminando la gestione da parte di static-module dei valori pre-valutati e il suo caso speciale per gli argomenti delle funzioni usati come callback, quindi confronta la patch di static-eval menzionata nell'issue. Il lavoro è completo quando viene esposta un'API o un'opzione basata su AST che consenta a progetti come cwise di valutare selettivamente i valori primitivi e preservare gli AST degli argomenti delle funzioni per la conversione in stringa con escodegen.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript
Ambito
tooling
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.