Skip to content

Instantly share code, notes, and snippets.

View elycruz's full-sized avatar

Ely De La Cruz elycruz

View GitHub Profile
@elycruz
elycruz / .jshintrc
Created May 15, 2015 19:06
Good starting point .jshintrc file.
{
"maxerr" : 50, // {int} Maximum error before stopping
// Enforcing
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : false, // true: Identifiers must be in camelCase
"curly" : false, // true: Require {} for every new block or scope
"eqeqeq" : true, // true: Require triple equals (===) for comparison
"forin" : false, // true: Require filtering for..in loops with obj.hasOwnProperty()
"immed" : true, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
@elycruz
elycruz / Namespace.js
Created May 22, 2015 22:48
Php Styled Autoloader for NodeJs
/**
* Created by Ely on 5/22/2015.
*/
require('sjljs');
var path = require('path'),
fs = require('fs');
var Namespace = sjl.Extendable.extend(function Namespace (dir, allowedFileExts) {
@elycruz
elycruz / numToHex.js
Last active November 14, 2017 02:02
Javascript number to hexadecimal string function.
/**
* 'Fast Remainder' method for number to hex.
* @see http://www.wikihow.com/Convert-from-Decimal-to-Hexadecimal (fast remainder method (method 2)).
*/
const hexMap = [
[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5],
[6, 6], [7, 7], [8, 8], [9, 9], [10, 'A'], [11, 'B'],
[12, 'C'], [13, 'D'], [14, 'E'], [15, 'F']
];
// Simple fibonacci series generator. Generates fibonacci series from 0 to `limit` number.
function fib (limit) {
var out = [],
a = 0,
b = 1;
while (a < limit) {
out.push(a);
if (b <= limit) {
out.push(b);
}
/**
* Created by elydelacruz on 11/8/16.
* Simple function to extract delimited content from a string.
*/
'use strict';
/**
* Returns whether our content has opening and closing delimiters.
* @param content {String}
define(function () {
'use strict';
var typeofIsObject = function (value) { return typeof value === 'object'; },
hasOwnProperty = function (obj, key) { return Object.prototype.hasOwnProperty.call(obj, key) };
function deepEquals (obj1, obj2) {
return Object.keys(obj1).every(function (key) {
if (!hasOwnProperty(obj2, key)) {
@elycruz
elycruz / versionNumReadStream.js
Created December 13, 2017 03:14
Outputs the version number of an npm package through a readstream.
const
util = require('util'),
stream = require('stream'),
Readable = stream.Readable,
packageJson = require('../package');
function VersionNumberReadStream (options) {
Readable.call(this, Object.assign({
encoding: 'utf8',
objectMode: false,
@elycruz
elycruz / scrollWindowTo.js
Created April 13, 2018 03:13
Scroll window to position (copied from somewhere (don't remember where)). Is a useful script (this version is slightly updated from the original to take into account float values in modern browser and also clear the animation frame (old version didn't do that)).
import {isset} from 'fjl';
const easings = {
linear(t) {
return t;
},
easeInQuad(t) {
return t * t;
},
easeOutQuad(t) {
@elycruz
elycruz / assoc_list_helpers.js
Created June 11, 2018 18:24
Idea for assoc_list_helpers (for going to and fro associated lists on specific keys and as a whole) (untested, and/or incomplete implementations)
/**
* Idea for assoc_list_helpers (for going to and fro associated lists on specific keys and as a whole) (untested, and/or incomplete implementations)
*/
const
/**
* Returns an associated list on incoming's object type.
* @note Does deep conversion on all values of passed in type's type.
* @note Useful for working with object primitive (json and the like).
@elycruz
elycruz / array-as-table-utils.ts
Created October 3, 2020 19:35
Utilities for fetching an item's index in an array being treated as a table.
export const
getRowIndex = (itemIdx: number, itemsPerRow: number): number =>
Math.round((itemIdx - (itemIdx % itemsPerRow)) / itemsPerRow),
getColumnIndex = (itemIdx: number, itemsPerRow: number): number =>
itemIdx % itemsPerRow
;