Top 23 ECMAScript Open-Source Projects
-
Project mention: What unpopular opinion do you have that will have people come at you like this? | reddit.com/r/webdev | 2022-08-02
See StandardJS style / formatter.
-
Project mention: Docusaurus 2.0 – Meta's static site generator to build documentation sites | news.ycombinator.com | 2022-08-01
IMHO Rust is useful for its speed. Many frontend tools use Rust today (like swc, napi-rs...).
We are willing to include Rust in Docusaurus in the future (alongside Node.js), as it can help to build the static doc site faster. BTW our docusaurus prod site (docusaurus.io) is built using swc already (https://swc.rs/)
Now using a 100% Rust tool to build a doc site would be great too, but at the end of the day if you want a great experience you'll also need some JS and not just plain static HTML files. And Rust devs are more likely less "frontend-y" (I've been a backend Scala dev 10 years ago, I know how good looking UIs are produced by backend devs ^^). So I guess a combination of Node.js + Rust is great, and the frontend community that care about UI/UX is more likely to contribute to the JS side to polish things.
-
Appwrite
Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!
-
ESLint for code linting
-
Puedes obtener más información de estas aquí
-
Project mention: Show HN: We are trying to (finally) get tail-calls into the WebAssembly standard | news.ycombinator.com | 2022-07-12
4. Proposed something else [ https://github.com/tc39/proposal-ptc-syntax ]
While apple is against Syntactic tail calls, they’re mainly just opposed to versions of it that would remove/unrequire the tail-call optimisation they already do: https://github.com/tc39/ecma262/issues/535
For the version of it that is backwards compatible, they wouldn’t need to do anything other than recognise it as valid syntax. Their main concern is that it "could add confusion with very little benefit."
-
Project mention: Same file components vs functions that return JSX | reddit.com/r/reactjs | 2022-07-25
Prevent creating unstable components inside components (react/no-unstable-nested-components)
-
Project mention: Algorithm to simplify a 100-variable Boolean expression? | reddit.com/r/algorithms | 2022-06-04
I used ESPrima, but any parser would do in this case. I then wrote a simple function to extract all "atomic" non-boolean expressions from it.
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
boa
Boa is an embeddable and experimental Javascript engine written in Rust. Currently, it has support for some of the language.
Project mention: Boa – Experimental JavaScript lexer, parser and interpreter written in Rust | news.ycombinator.com | 2022-07-04 -
ECMAScript-new-features-list
A comprehensive list of new ES features, including ES2015 (ES6), ES2016, ES2017, ES2018, ES2019
Project mention: ES6? ECMAScript? Entenda o que isso tem a ver com o Javascript | dev.to | 2022-06-13Lista de todas as features (en-US)
-
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.
-
Hmm right, haven't found too many controversial things in https://github.com/standard/eslint-config-standard/blob/master/.eslintrc.json, besides no-semi fixed by semi-standard and comma-dangle "never" (sucks for git history, they should allow it for multiline cases https://eslint.org/docs/rules/comma-dangle#always-multiline)
-
Project mention: [AskJS] Why are encryption and validation APIs async? | reddit.com/r/javascript | 2022-04-05
Another: https://github.com/neomjs/neo
-
Project mention: 14 Linting Rules To Help You Write Asynchronous Code in JavaScript | dev.to | 2022-03-25
The following rules are additional ESLint rules for Node.js provided by the eslint-plugin-node plugin. To use them, you need to install and add the plugin to the plugins array in your .eslintrc configuration file.
-
Project mention: Abstract Syntax Trees: They're Actually Used Everywhere -- But What Are They? | dev.to | 2021-11-17
Traverse that AST and replace or inject code: Extraverse
-
https://github.com/suchipi/grep-ast https://github.com/estools/esquery https://estools.github.io/esquery/ https://astexplorer.net/ https://www.youtube.com/watch?v=d0pOgY8__JM
-
Project mention: Python is in the browser. No idea if this will lead to chaos or harmony... | reddit.com/r/ProgrammerHumor | 2022-05-01
There was a proposal a little while back for BinAST which gets you some of the same benefits as bytecode, but not all... mainly just reducing the parse time and maybe even allowing more pipelined evaluation. See https://github.com/binast/binjs-ref
-
People have tried: https://github.com/jkcfg/jk
But yeah I agree. The thing is, if all you need is robust determinism why do you need a full functional language with currying and other complex concepts?
Google had the same problem for Bazel, and their solution (Starlark) is way easier to understand.
-
-
JavaScriptEngineSwitcher
JavaScript Engine Switcher determines unified interface for access to the basic features of popular JavaScript engines (ChakraCore, Jering.Javascript.NodeJS, Jint, Jurassic, MSIE JavaScript Engine for .NET, NiL.JS, Microsoft ClearScript.V8 and VroomJs). This library allows you to quickly and easily switch to using of another JavaScript engine.
Its using https://github.com/Taritsyn/JavaScriptEngineSwitcher under the hood.
-
-
Filtering out components from other code may be tricky. Even if you assume any file ending in .jsx or .tsx is a component it's still possible for those files to export other functions or multiple components. So you have to figure out which exported function is the component. Maybe assume any function starting with a capital letter (e.g. "Component") is a component. You may want to investigate Javascript tokenizers like js-tokens, which will make it easier for you to examine the code inside of each file. But a few regular expressions would work as well.
-
It then builds on the assumption that all of Javascript performance scales linearly based on the results of that fishy benchmark. Never mind that in C you can stack allocate, or use arena allocators, or use a million of other tricks, where in JS, once you write {}, you got a heap allocation that you don't have any control over (and if you think this doesn't matter, this is one of the reasons why esbuild is so much faster than babel, or heck even kataw, the fastest JS parsing toolkit I'm aware of).
-
ECMAScript related posts
Index
What are some of the best open-source ECMAScript projects? This list will help you:
Project | Stars | |
---|---|---|
1 | Standard | 27,280 |
2 | swc | 23,230 |
3 | ESLint | 21,007 |
4 | proposals | 15,750 |
5 | ecma262 | 13,435 |
6 | eslint-plugin-react | 7,931 |
7 | esprima | 6,573 |
8 | boa | 3,211 |
9 | ECMAScript-new-features-list | 3,167 |
10 | escodegen | 2,418 |
11 | eslint-config-standard | 2,341 |
12 | neo | 2,295 |
13 | eslint-plugin-node | 880 |
14 | estraverse | 872 |
15 | esquery | 616 |
16 | binjs-ref | 415 |
17 | jk | 376 |
18 | snuggsi | 357 |
19 | JavaScriptEngineSwitcher | 357 |
20 | awesome-standard | 338 |
21 | js-tokens | 321 |
22 | kataw | 314 |
23 | proposal-cancellation | 256 |
Are you hiring? Post a new remote job listing for free.