This is a page to keep track of some useful Javascript stuff. It will be updated and curated periodically, it is not guaranteed to be always up to date, nor comprehensive.
Community
FRP(Functional Reactive Programming)
Name |
Note |
RxJS, RxJS 5.x and above |
An API for asynchronous programming with observable streams, in Javascript |
Immutable.js |
Immutable collections for JavaScript, by Facebook |
Bacon.js |
A small functional reactive programming lib for JavaScript |
Libraries
Name |
Note |
jQuery |
Legendary js library |
Zepto |
A minimalist JavaScript library for modern browsers with a largely jQuery-compatible API |
Moment.js |
A great library to Parse, validate, manipulate, and display dates in JavaScript, works with both browser and nodejs! |
passport.js |
Simple, unobtrusive authentication for Node.js, supports almost many different kinds of authentication methods and platforms, a must-have lib for many js projects |
Related languages
Name |
Note |
TypeScript |
A super set of javascript, with static check and more, developed by Microsoft, popular recently |
CoffeeScript |
a little language that compiles to javascript. |
Dart |
A language that compiles to javascript, but it is not javascript, developed and used by Google. |
Elm |
I don't know much about this yet |
ClojureScript |
Another new one? |
Testing
Test Runner
Name |
Note |
Karma |
A popular js test runner(for unit tests), run your tests inside several different Browsers(based on iframes), and generate reports |
Protractor |
An e2e(end-to-end) js test runner, using WebDriver APIs to interact with Browsers |
webdriveio |
A Selenium 2.0 bindings for NodeJS |
https://wallabyjs.com/ |
Commercial, requires license, a unit test runner, has great integration with code editors, runs your tests in realtime and show the results in your code editor |
Test Services
Test Frameworks
Name |
Note |
Jasmine |
BDD style testing framework, support works with Nodejs and Browser, battery included, built-in Spy Mock etc |
Mocha |
Another popular testing framework, works with Nodejs and Browser, with great Promise support, needs external assertion libraries like Chai.js |
ava |
Another test runner, with concurrent support |
Jest |
A battery-included test framework/runner, with many features like Mocking or Coverage built in, native support for React projects, built by Facebook |
Mock && Stub
Name |
Note |
supertest |
Fluent test apis for node HTTP test |
nock |
HTTP mocking and expectations library |
sinon |
Js test spy, stub, mocks |
Assert Library
Code Coverage
Name |
Note |
istanbul |
Code coverage tool, supports html and cov output |
Coveralls |
Online code coverage service |
Tools
Online JS & HTML & CSS Playground
AST(Abstract Syntax Tree) Parser
Name |
Note |
AST Explorer |
an online AST parsing and exploration service, using a wide range of AST parsers for JS, Html, CSS etc |
Esprima |
an js parser written in js |
Javascript with Types
Name |
Note |
TypeScript |
A Typed Super Set of Javascript, by Microsoft |
Flow |
A Static Type Checker for Javascript, by Facebook |
rtype |
Intuitive structural type notation for JavaScript |
jsig |
JavaScript signature notation |
Compilers & Transpilers
Babel | A Javascript compiler that enables you to use next generation javascript today.
Traceur | Another js.future to js.today compiler like Babel, by Google.
Linter & Hinter & Auto-Completion
Name |
Note |
JSHint |
a js lint tool, read the document of jshint will also let you know more about js quirks |
ESLint |
|
XO |
Beautiful js style linter, uses ESLint |
JSLint |
js code quality tool by Douglas Crockford |
Ternjs |
a stand-alone js code analysis engine, usually used for code autocompletion |
standardjs |
JavaScript Standard Style |
NPM Related Tools & Services
Modules
Package manager
Name |
Note |
NPM |
the de-facto NodeJS Javascript package manager |
Yarn |
another package manager by Facebook, compatible with NPM and Bower packages |
Bower |
it is almost dead, not used nowadays |
Module Bundler
Task runner
Code Compression, Uglify, Obscuration
Name |
Note |
YUI Compressor |
classic js compressor, written in java. |
Uglify |
JavaScript parser / mangler / compressor / beautifier library for NodeJS |
Uglify2 |
JavaScript parser / mangler / compressor / beautifier toolkit |
Closure Compiler |
parse analyze and optimize your js, download and run faster, by Google. |
Documentation
Name |
Note |
JsDoc |
|
EsDoc |
|
Dgeni |
Flexible JavaScript documentation generator used by AngularJS, Protractor and other JS projects |
Editors
Name |
Note |
Atom |
A hackable text editor by Github, based on Github's electron platfrom. |
Visual Studio Code |
another hackable text editor, powered by Microsoft, also built upon electron platform. My personal choice for typescript code. |
Nuclide |
A text editor build on top of Atom, optimized for javascript development. |
alm |
A cloud ready IDE for TypeScript |
WebStrom |
Smart javascript IDE built by JetBrains. |
WebComponents Solutions
Name |
Note |
Polymer |
A framework uses Web Components, Shadown Dom, HTML Import etc, still by Google, though it is not as popular as Angular React or Vue.js etc, but the design and concepts are really cool! |
skate.js |
A functional, featherweight and cross-framework compatible web component library built on W3C specs. |
svelte |
"The magical disappearing UI framework" -- Svelte Website |
stencil |
The magical, reusable web component generator, built by Ionic. |
Frontend Frameworks
Angular2 Resources
Node.js
Data Fetching
RESTful API | Popular and easy to use data fetching mechanism
GraphQL | A query language for your API, by Facebook
Falcor | A JavaScript library for efficient data fetching, by Netflix
Web Frameworks
Name |
For |
express |
Fast, unopinionated, minimalist web framework for Node.js |
koa |
next generation web framework for Node.js |
Useful NPM packages
Great JS & Node.js Books
Tags:
Reference
Javascript