Skip to content

Instantly share code, notes, and snippets.

@PanJ
PanJ / ctx-1.js
Last active December 12, 2016 15:04
Context-ful Architecture 1
// import stuffs
app.delete('/todos/:id', (req, res) => { // deletes a todo and return current todo list
const ctx = new TodoContext(req);
Promise.resolve()
.then(() => authorize(['user', 'admin']))
.then(({ user, roles }) => {
let promise;
if (roles.indexOf('admin') >= 0 && req.query.permanent)
promise = Todo.remove({ _id: req.params.id});
@PanJ
PanJ / async-1.js
Created December 24, 2016 18:43
Async/await 1
setTimeout(function () {
console.log('แสดงอันที่สอง (หลังจากอันแรก 1 วินาที)');
}, 1000);
console.log('แสดงอันแรก');
@PanJ
PanJ / async-2.js
Created December 24, 2016 18:43
Async/await 2
if (confirm('Are you sure?')) {
console.log('Confirmed');
} else {
console.log('Canceled');
}
@PanJ
PanJ / async-3.js
Created December 24, 2016 18:43
Async/await 3
function do(cb) {
doA(function(err, a) {
if (err) cb(err);
doB(a, function(err, b) {
if (err) cb(err);
doC(b, function(err, c) {
cb(err);
});
});
});
@PanJ
PanJ / async-4.js
Created December 24, 2016 18:43
Async/await 4
function do() {
return doA().then(function(a) {
return doB(a);
}).then(function(b) {
return doC(b);
});
}
@PanJ
PanJ / async-5.js
Created December 24, 2016 18:43
Async/await 5
async function do() {
const a = await doA();
const b = await doB(a);
const c = await doC(b);
}
@PanJ
PanJ / async-6.js
Created December 24, 2016 18:43
Async/await 6
async function do() {
const a = await doA();
const [b, c] = await Promise.all([doB(a), doC(a)]);
}
@PanJ
PanJ / secretArchivesLock.js
Created July 14, 2017 18:02
secretArchivesLock
function secretArchivesLock(lock, actions) {
const getCol = (lock, index) => {
return lock.map(r => r.charAt(index)).filter((x) => x !== '.')
}
const getRows = (lock) => lock.map((v) => v.split("").filter((x) => x !== '.'));
const getCols = (lock) => Array.apply(null, Array(lock[0].length)).map((_, i) => getCol(lock, i))
const fillLeft = (vector, length) =>
Array.apply(null, Array(length - vector.length)).map(() => '.').concat(vector);
const fillRight = (vector, length) =>
vector.concat(Array.apply(null, Array(length - vector.length)).map(() => '.'));
@PanJ
PanJ / sample-flutter.dart
Created September 18, 2017 15:32
Sample Flutter
@override
class ChatMessage extends StatelessWidget {
ChatMessage({this.snapshot, this.animation});
final DataSnapshot snapshot;
final Animation animation;
Widget build(BuildContext context) {
return new SizeTransition(
sizeFactor: new CurvedAnimation(
parent: animation, curve: Curves.easeOut),
@PanJ
PanJ / .block
Created January 26, 2018 06:04
Film Flowers Petal Starter Code
license: gpl-3.0