browserify / browserify/static-module
feature: add an API that works on ASTs instead of pre-evaluated values
- Vorherrschende Sprache
- JavaScript
- Sterne
- 75
- Forks
- 22
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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_
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, static-module's Umgang mit vorab ausgewerteten Werten und seinen Sonderfall für Funktionsargumente als Callbacks zu untersuchen, und vergleiche anschließend den im Issue erwähnten static-eval-Patch. Als abgeschlossen gilt die Aufgabe, wenn eine AST-basierte API oder Option bereitgestellt wird, mit der Projekte wie cwise primitive Werte selektiv auswerten und die ASTs von Funktionsargumenten zur Stringifizierung mit escodegen erhalten können.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100