Skip to content

Instantly share code, notes, and snippets.

View tincho's full-sized avatar

Martin tincho

View GitHub Profile
@tincho
tincho / copyValues.js
Last active January 28, 2019 17:04
utility to extract values at given paths from given objects
// iteration 0
// adding deep diving for key paths
// based on getProperty()
// try on tddbin.com
function copyFrom(obj) {
const values = (...keys) => keys.map(k => getProperty(k)(obj));
return { values };
}
/**
* @license MIT
* @requires AngularJs 1.x
* @author github.com/tincho
* Tiny helper for listener deregistration on scope destroy
* You'll have to wrap it up in a module/provider/whatever
* (that's out of my focus)
*/
function LDisposer(scope) {
var _list = [];
@tincho
tincho / download.js
Created October 25, 2017 16:15
script for downloading HTTP-Auth'ed file through XHR
var form = document.getElementById("dlFile");
form.onsubmit = function(e) {
e.preventDefault();
var user = form.user.value; // "mayoristas";
var pass = form.pass.value;
requestFile(user, pass);
return false;
}
@tincho
tincho / Ajaxify.js
Created June 28, 2017 19:14
simple jquery snippet to override a native form's with an ajax call
// requires jQuery!
const noop = () => {};
const constant = v => () => v;
const beTrue = constant(true); // () => true;
function $Ajaxify(form, ...callbacks) {
if (typeof callbacks[0] === 'object') {
var {
onSuccess = noop, onError = noop, beforeSend = beTrue
@tincho
tincho / date-utils.js
Last active July 13, 2022 04:17
some utils for JS Date handling
/*
why fixDate?
if we create a JS Date writing:
var d = new Date("2015-05-15")
we are not specifying any timezone
the browser/environment will asume it is UTC+000,
and always represent it in user's LOCAL TIMEZONE!
so, running in an environment located in a UTC-3 zone,
d would actually show 2015-05-14 at 21:00
and may lead to errors.
@tincho
tincho / introrx.md
Created March 2, 2017 13:30 — forked from staltz/introrx.md
The introduction to Reactive Programming you've been missing
@tincho
tincho / alltogethernow.js
Last active June 11, 2018 16:17
all functional-programming js tools i've written
// var logHello = _partial(console.log, "hello ");
// logHello("world");
// accepts _partial (fn reference) as placeholder just like underscore accepts _
// var partialApplied = _partial(originalFn, _partial, "second", _partial, "fifth");
// partialApplied("first", "third") will call originalFn("first", "second", "third", "fifth")
function _partial() {
var args = Array.prototype.slice.call(arguments);
var method = args.shift();
var self = this;
@tincho
tincho / compose.js
Last active January 9, 2017 20:30
ES6 compose
// both answers copied from challange posted at e-mail list of my former job
// not-so oneliner
var compose = function () {
var composableFunctions = Array.prototype.slice.call(arguments).reverse();
return (x) => composableFunctions.reduce((result, composable) => composable(result), x);
/*
ES5:
return function(x) {
return composableFunctions.reduce(function(result, composable) {
@tincho
tincho / getData.js
Created December 29, 2016 16:00
Sample vainilla XHR get function
function getData(uri, done, evt) {
var request = new XMLHttpRequest();
request.open('GET', uri);
request.onreadystatechange = function() {
if(! (request.readyState == 4 && request.status === 200)) {
return;
}
return done(request);