Skip to content

Instantly share code, notes, and snippets.

@n1ru4l
n1ru4l / rmrf.js
Created January 22, 2018 11:39
rm -rf
function rmrf (fs, directory, callback) {
fs.readdir(directory, function (err, list) {
if (err) return callback(err);
async.everySeries(list, function (item, callback) {
var filename = path.join(directory, item);
var stats = fs.stat(filename, function (err, stat) {
if (err) return callback(err);
if (filename === '.' || filename === '..') return callback();
if (stat.isDirectory()) return rmrf(fs, filename, callback);
fs.unlink(filename, callback);
@n1ru4l
n1ru4l / emitter.js
Created October 30, 2017 08:39
Emitter
const createEmitter = () => {
const handlersByEvent = new Map()
const on = (event, handler) => {
let handlers = handlersByEvent.get(event)
if (!handlers) {
handlers = []
handlersByEvent.set(event, handlers)
}
handlers.push(handler)
@n1ru4l
n1ru4l / helpers.js
Created September 26, 2017 08:18
Tiny Flow Helpers
export const once = (func: Function): Function => {
let called = false
let cachedValue = undefined
return (...args) => {
if (!called) {
cachedValue = func(...args)
called = true
}
return cachedValue
}
@n1ru4l
n1ru4l / components.lq-select.js
Last active September 21, 2017 18:08
New Twiddle
import Ember from 'ember'
const { Component } = Ember
export default Component.extend({
// properties
options: undefined,
selectedOption: undefined,
onChange: undefined,
})
@n1ru4l
n1ru4l / components.lq-select.js
Last active September 14, 2017 16:42
IT STILL WORKS
import Ember from 'ember'
const { Component } = Ember
export default Component.extend({
// props
availableItems: undefined,
selectedItem: undefined,
onSelectItem: undefined,
})
@n1ru4l
n1ru4l / index.js
Created August 7, 2017 10:47
Fetch blob and convert to base64
export const fetchAsBlob = url => fetch(url)
.then(response => response.blob());
export const convertBlobToBase64 = blob => new Promise((resolve, reject) => {
const reader = new FileReader;
reader.onerror = reject;
reader.onload = () => {
resolve(reader.result);
};
reader.readAsDataURL(blob);
@n1ru4l
n1ru4l / EventServiceProvider.php
Created July 31, 2017 13:27
Laravel realpath_cache clearing
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
actions: {
foo() {
alert('red box')
},
bar(ev) {
@n1ru4l
n1ru4l / controllers.application.js
Created June 10, 2017 13:41
onChange event demonstartion
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
model: {
sumText: 'sum text',
},
actions: {
changed() {
alert('onChange triggered')
@n1ru4l
n1ru4l / HTTPGetRequestForQueriesInterface.js
Created May 30, 2017 14:46
HTTPGetRequestForQueriesInterface
import { HTTPFetchNetworkInterface, printAST } from 'apollo-client';
/**
* Serialize a object to a query string
* @source https://stackoverflow.com/questions/1714786/query-string-encoding-of-a-javascript-object#comment47677757_18116302
*/
function serialize( obj ) {
return `?` + Object.keys(obj).map(k => k + `=` + encodeURIComponent(obj[k])).join(`&`);
}