escodegen | Monocle | |
---|---|---|
3 | 5 | |
2,620 | 1,632 | |
0.2% | 0.1% | |
1.2 | 8.2 | |
26 days ago | 9 days ago | |
JavaScript | Scala | |
BSD 2-clause "Simplified" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
escodegen
-
How to make your own programming language in JavaScript
What's cool about Esprima syntax is that there are tools that generate code based on their AST. An example is escodegen which takes Esprima AST as input and outputs JavaScript code. You can think that you can use just strings to generate code, but this solution will not scale. In this tutorial, I show only a single if statement but you will run into a lot of problems if you will have more complex code.
- Show HN: Monocle – bidirectional code generation library
-
Abstract Syntax Trees: They're Actually Used Everywhere -- But What Are They?
Unparse the modified AST back into Javascript: Escodegen
Monocle
-
Ref in cats-effect. When should I use it, and when should I not?
Without concurrency, using a Ref doesn't buy you anything over just using a var. If you want the benefits of immutability with an API that resembles mutability, you have to use something like Monocle.
-
Show HN: Monocle – bidirectional code generation library
A very popular Scala optics library is also called Monocle. I’ve been a happy user for a few years:
https://github.com/optics-dev/Monocle
-
Monocle 3 release candidate - a super useful and simple library for optics with poetic api
See example https://www.optics.dev/Monocle/
- Monocle 3.0.0-M1 is released for Scala 2.13 and Scala 3
-
Monocle 3 Roadmap
We always have work to do, for example to define scalfix rules to automate the migration https://github.com/optics-dev/Monocle/issues/1001
What are some alternatives?
recast - JavaScript syntax tree transformer, nondestructive pretty-printer, and automatic source map generator
Quicklens - Modify deeply nested case class fields
esprima - ECMAScript parsing infrastructure for multipurpose analysis
Shapeless - Generic programming for Scala
espree - An Esprima-compatible JavaScript parser
Chimney - Scala library for boilerplate-free, type-safe data transformations
astring - 🌳 Tiny and fast JavaScript code generator from an ESTree-compliant AST.
cats - Lightweight, modular, and extensible library for functional programming.
estree - The ESTree Spec
Scalaz - Principled Functional Programming in Scala
estraverse - ECMAScript JS AST traversal functions
Scala Graph - Graph for Scala is intended to provide basic graph functionality seamlessly fitting into the Scala Collection Library. Like the well known members of scala.collection, Graph for Scala is an in-memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way.