Here's how you could create custom error classes in Node.js using latest ES6 / ES2015 syntax.
I've tried to make it as lean and unobtrusive as possible.
errors/AppError.js
// CLI | |
// 1. yarn init | |
// 2. yarn add @babel/core @babel/preset-env babel-loader webpack webpack-cli webpack-dev-server --dev | |
// 3. Add webpack.config.js | |
// 4. Add babel.config.js | |
// 5. Add script '"watch": "webpack-dev-server" | |
// Enjoy <3 |
/** | |
* Async iterators simple example. | |
* | |
* by Dmitry Soshnikov <[email protected]> | |
* MIT Style License, 2018 | |
*/ | |
async function* streamChunks() { | |
yield genChunk(1); | |
yield genChunk(2); |
var Middleware = function() {}; | |
Middleware.prototype.use = function(fn) { | |
var self = this; | |
this.go = (function(stack) { | |
return function(next) { | |
stack.call(self, function() { | |
fn.call(self, next.bind(self)); | |
}); |
// cancelable promise | |
// originaly by @istarkov | |
const makeCancelable = (promise) => { | |
let hasCanceled_ = false; | |
const wrappedPromise = new Promise((resolve, reject) => { | |
promise.then((val) => | |
hasCanceled_ ? reject({isCanceled: true}) : resolve(val), | |
error => console.warn |
const fs = require('fs') | |
const path = require('path') | |
const os = require('os') | |
const walk = function (dir, done) { | |
let results = [] | |
fs.readdir(dir, function (err, list) { | |
if (err) return done(err) | |
let pending = list.length | |
if (!pending) return done(null, results) |
// === Arrays | |
var [a, b] = [1, 2]; | |
console.log(a, b); | |
//=> 1 2 | |
// Use from functions, only select from pattern | |
var foo = () => [1, 2, 3]; |
const fs = require('fs'); | |
fs.readFile('eslintlog.json', 'utf8', (err, data) => { | |
if (err) throw err; | |
let parsed = JSON.parse(data); | |
grabWarnings(parsed) | |
.forEach(generateCmd); | |
}); |