Skip to content

Instantly share code, notes, and snippets.

@kishmiryan-karlen
kishmiryan-karlen / GeneratorsThrowAndCache.js
Last active August 29, 2015 14:22
Using AJAX with generators. Demonstrating the exception throwing and handling as well as caching the data.
// jQuery AJAX simulator
var $ = {
ajax: function(opts, returnData, throwError) {
console.log(`Request URL: ${opts.url}`);
console.log(`Request data: ${opts.data}`);
var timer = Math.round() * 10 + 1;
if (throwError && typeof opts.error === 'function') {
// jQuery AJAX simulator
var $ = {
ajax: function(opts, returnData, throwError) {
console.log(`Request URL: ${opts.url}`);
console.log(`Request data: ${opts.data}`);
var timer = Math.round() * 10 + 1;
if (throwError && typeof opts.error === 'function') {
// jQuery Ajax simulator
var $ = {
ajax: function(opts, returnData, throwError) {
console.log(`Request URL: ${opts.url}`);
console.log(`Request data: ${opts.data}`);
var timer = Math.round() * 10 + 1;
if (throwError && typeof opts.error === 'function') {
function *generator() {
yield 'hello';
yield 'world';
}
// Usage
var iter = generator();
console.log(iter.next());
console.log(iter.next());
function createIterator(items) {
var currentIndex = 0;
return {
next: function() {
if (items[currentIndex]) {
return { value: items[currentIndex], done: false };
} else {
return { value: undefined, done: true };
@kishmiryan-karlen
kishmiryan-karlen / AjaxSimulator.js
Last active August 29, 2015 14:16
Simple simulator for jQuery's ajax() method
// Notes:
// 1. Use the second parameter to simulate a response data.
// 2. Use the third (boolean) parameter to simulate a failed request.
// jQuery's AJAX simulator
var $ = {
ajax: function(opts, returnData, throwError) {
console.group('AJAX Request');
console.log('Request URL: ', opts.url);
@kishmiryan-karlen
kishmiryan-karlen / SearchArray.js
Last active August 29, 2015 14:06
A function written in pure JavaScript, which allows to find an object in array of objects using another object or array of objects as a query.
function search(searchQuery, data) {
if(searchQuery instanceof Array) {
return searchQuery.reduce(function(prev, current, index, array) {
return prev.concat(search(current, data));
}, []);
}
var results = data.filter(function(el) {
for(var prop in searchQuery) {
if(searchQuery[prop] instanceof Array) {
@kishmiryan-karlen
kishmiryan-karlen / Switch.css
Last active May 6, 2019 09:24
A CSS, which turns boring checkboxes into nice On/Off switches. Just include it in your styles.
input[type="checkbox"] {
-webkit-appearance: none;
border: 2px solid #bdbdbd;
width: 61px;
height: 27px;
border-radius: 2px;
display: inline-block;
position: relative;
outline: none;
cursor: pointer;
@kishmiryan-karlen
kishmiryan-karlen / Apply LUT (LookUpTable).js
Created August 13, 2014 12:59
A function that helps to apply LUT to image. Make sure to change the canvas IDs or to create temporary canvases.
/**
* Created by Karlen on 13-Aug-14.
*/
var imageContext = document.getElementById('imageCanvas').getContext('2d'),
lutContext = document.getElementById('lutCanvas').getContext('2d');
function applyLUT(image, lut) {
var imageData, lutData, iData, lData;