Skip to content

Instantly share code, notes, and snippets.

View k1r0s's full-sized avatar

Ciro Iván k1r0s

View GitHub Profile
@k1r0s
k1r0s / advice.spec.js
Created December 6, 2017 23:35
kaop-ts caching advice showcase `memoization`
import { beforeMethod, afterMethod } from "..";
const methodSpy = jest.fn();
const Delay = secs => meta => setTimeout(meta.commit, secs);
const Cache = (function() {
const CACHE_KEY = "#CACHE";
return {
read: meta => {
@k1r0s
k1r0s / log-decorator.ts
Last active December 22, 2017 10:24
log decorator for JavaScript
import { afterMethod } from "kaop-ts";
export const Log = afterMethod(meta => {
const methodName = `${meta.target.constructor.name}::${meta.key}`;
console.info(`log-decorator: ${methodName} invoked!`);
console.info(`log-decorator: ${methodName} arguments -> `, meta.args);
console.info(`log-decorator: ${methodName} result -> `, meta.result);
});
@k1r0s
k1r0s / preact-bind-group.jsx
Created February 17, 2018 10:03
Basic overview of BindGroup component
import { h } from "preact";
import { BindGroup } from "preact-bind-group";
const changeCheck = change => console.log(change);
const payload = {
name: "Ciro",
country: "Spain",
dbird: "1990-09-22",
gender: "male",
const sayHello = () => console.log("hello")
function instanceFinisher(somethingToHappen) {
return function (target) {
const orig = target
target = (...args) => {
setTimeout(somethingToHappen)
orig.apply(this, args)
}
return target
const { beforeMethod } = require("kaop-ts");
const Log = meta => {
console.log(meta.key)
console.log(meta.scope)
console.log(meta.args)
}
function applyToAll(advice) {
return function applyAll(target) {
const ministore = _ => (initial => param => param ? initial = param : initial = initial)();
const s = ministore()
s(1) // 1
s() // 1
s() // 1
s("hola") // "hola"
s() // "hola"
{
"name": "hl2030",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "babel-node src"
},
"keywords": [],
"author": "",
import { setAdapter, AbstractResource } from "@ritley/core";
import Adapter from "@ritley/standalone-adapter";
import DataBase from "./database.service";
setAdapter(Adapter, {
"port": 8080
});
class SessionResource extends AbstractResource {
constructor() {
import low from "lowdb";
import FileAsync from "lowdb/adapters/FileAsync";
import config from "./database.config";
import shortid from "shortid";
export default class DataBase {
onConnected = undefined
constructor() {
this.onConnected = low(new FileAsync(config.path, {