Combine default parameters and destructuring for a compact version of the defaults / overrides pattern.
function foo ({
bar = 'no',
baz = 'works!'
} = {}) {
const parseAttributes = payload => payload | |
.split(',') | |
.map(pair => pair.split('=')) | |
.filter(pair => pair.length === 2) | |
.map(([key,val]) => ({ [key]: val })) | |
// > parseAttributes('pmin=5,pmax=40') | |
// [ { pmin: '5' }, { pmax: '40' } ] |
// reverse proxy (HTTP(s) to LWM2M over MQTT) | |
// this should be mounted on an Express app | |
const router = require('express').Router() | |
const shepherd = require('lib/shepherd'); | |
const ch = require('lib/status'); // coap to http status | |
const herrero = require('herrero'); | |
const bodyParser = require('body-parser') | |
const { NotFoundError } = herrero; |
var util = require('util') | |
function hook_stdout(callback) { | |
var old_write = process.stdout.write | |
process.stdout.write = (function(write) { | |
return function(string, encoding, fd) { | |
write.apply(process.stdout, arguments) | |
callback(string, encoding, fd) | |
} |
function delay(expressionAsFunction) { | |
var result; | |
var isEvaluated = false; | |
return function () { | |
if (!isEvaluated) | |
result = expressionAsFunction(); | |
return result; | |
}; | |
} |
'use strict'; | |
const statusCodes = require('http').STATUS_CODES; | |
function createError(code, name) { | |
return function(message) { | |
Error.captureStackTrace(this, this.constructor); | |
this.name = name; | |
this.message = message; | |
this.statusCode = code; | |
} |
import express from "express"; | |
/** | |
* Takes a route handling function and returns a function | |
* that wraps it after first checking that the strings in | |
* `reserved` are not part of `req.body`. Used for ensuring | |
* create and update requests do not overwrite server-generated | |
* values. | |
*/ | |
function checkReservedParams(routeHandler, ...reserved) { |
// | |
// This server will start a bash shell and expose it | |
// over socket.io to a browser. See ./term.html for the | |
// client side. | |
// | |
// You should probably: | |
// | |
// npm install socket.io | |
// curl -O https://github.com/LearnBoost/Socket.IO/raw/master/socket.io.min.js | |
// |
// http://lists.boost.org/Archives/boost/2014/06/214213.php | |
// http://stackoverflow.com/questions/25338795/is-there-a-name-for-this-tuple-creation-idiom | |
#include <iostream> | |
#include <string> | |
#include <functional> | |
auto list = [](auto ...xs) { | |
return [=](auto access) { return access(xs...); }; | |
}; |