Skip to content

Instantly share code, notes, and snippets.

View LightSpeedC's full-sized avatar

Kazuaki Nishizawa LightSpeedC

View GitHub Profile
@LightSpeedC
LightSpeedC / http-proxy-plus-stealth-mode.js
Last active May 11, 2019 12:30
Node.js で https をサポートする http proxy サーバを 80行で書いた ref: https://qiita.com/LightSpeedC/items/5c1edc2c974206c743f4
if ('proxy-connection' in cliReq.headers) {
cliReq.headers['connection'] = cliReq.headers['proxy-connection'];
delete cliReq.headers['proxy-connection'];
delete cliReq.headers['cache-control'];
}
@LightSpeedC
LightSpeedC / file0.txt
Last active May 1, 2019 02:20
React v15でカレンダーを作ってみた ref: https://qiita.com/LightSpeedC/items/8679c9d4069523b737ea
平成29/2017年2月
日 月 火 水 木 金 土
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28
@LightSpeedC
LightSpeedC / http-proxy-server-in-10-lines.js
Last active December 14, 2018 23:47
Node.jsによる必要最小限のhttpサーバとhttpsサーバとhttp proxyサーバ ref: https://qiita.com/LightSpeedC/items/3cae342fd7e79a21869f
const http = require('http'), url = require('url');
http.createServer((cliReq, cliRes) => {
const x = url.parse(cliReq.url);
const opt = {host: x.hostname, port: x.port || 80, path: x.path,
method: cliReq.method, headers: cliReq.headers};
const svrReq = http.request(opt, svrRes => {
cliRes.writeHead(svrRes.statusCode, svrRes.headers);
svrRes.pipe(cliRes); });
cliReq.pipe(svrReq);
}).listen(8080);
var target;
target: for (;;) switch (target) {
case undefined:
console.log('init');
case 'start':
console.log('start');
@LightSpeedC
LightSpeedC / express-app1.js
Last active February 8, 2018 15:11
[Node.js] 簡単なWebサーバとして静的ファイル配信/ディレクトリ一覧機能のサンプルコード ref: https://qiita.com/LightSpeedC/items/d2793e9d213e767a8dc8
'use strict';
require('express')()
.use(require('express').static('.'))
.use(require('serve-index')('.', {icons: true}))
.listen(process.env.PORT || 3000);
@LightSpeedC
LightSpeedC / aa-chan1.js
Last active October 26, 2017 22:14
[JavaScript] 非同期処理のコールバック地獄から抜け出す方法 ref: http://qiita.com/LightSpeedC/items/7980a6e790d6cb2d6dad
'use strict';
var aa = require('aa');
var Channel = aa.Channel;
var get = require('./get');
aa(function*() {
var ch = Channel();
get('a.txt', ch);
@LightSpeedC
LightSpeedC / es-next-async-await-ex.js
Last active October 25, 2017 12:46
ES2017 async/await + Promise で解決できる事、とES2015(ES6) generators (yield) + Promise + npm aa (async-await) で解決できる事 ref: http://qiita.com/LightSpeedC/items/95e3db59276e5d1d1a0d
'use strict';
require('babel-polyfill'); // おまじない
//require('regenerator').runtime();
console.log('main: start');
main().then(function (val) {
console.log('main: finish:', val);
});
@LightSpeedC
LightSpeedC / 普通版の竹内関数.js
Last active November 27, 2016 22:00
竹内関数を遅延評価で高速化してみた(JavaScript/Node.js/ES2015/ES6) ref: http://qiita.com/LightSpeedC/items/304c4bb1d2ea3381a446
'use strict';
// tarai(x: number, y: number, z: number): number;
const tarai = (x, y, z) => x <= y ? y :
tarai(tarai(x - 1, y, z),
tarai(y - 1, z, x),
tarai(z - 1, x, y));
bench('takeuchi tarai', tarai, 10, 5, 0);
bench('takeuchi tarai', tarai, 12, 6, 0);
@LightSpeedC
LightSpeedC / file0.txt
Last active November 27, 2016 21:49
React v15をやってみよう (1) - まずはHTMLだけで ref: http://qiita.com/LightSpeedC/items/484fec44a2ca15e48f49
$ node -v
v6.x.x
$ npm -v
v3.x.x
@LightSpeedC
LightSpeedC / file0.js
Created October 10, 2016 08:03
argumentsオブジェクトを配列(Array)にする方法 ref: http://qiita.com/LightSpeedC/items/5cf07f94b051d0a8d4f1
Object.setPrototypeOf(arguments, Array.prototype);
// または
arguments.__proto__ = Array.prototype;