Skip to content

Instantly share code, notes, and snippets.

View garenyondem's full-sized avatar
:shipit:

Garen Yöndem garenyondem

:shipit:
  • Afiniti
  • 20:35 (UTC +03:00)
View GitHub Profile
@garenyondem
garenyondem / diff.js
Created February 21, 2019 20:25
Diff using Lodash
module.exports = function difference(object, base) {
function changes(object, base) {
let arrayIndexCounter = 0;
return _.transform(object, function (result, value, key) {
if (!_.isEqual(value, base[key])) {
let resultKey = _.isArray(base) ? arrayIndexCounter++ : key;
result[resultKey] = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;
console.log("Result: " + JSON.stringify(result));
}
});
@garenyondem
garenyondem / encryptor.js
Last active October 23, 2018 20:08
Encrypt or decrypt strings in Node.js
const crypto = require('crypto');
module.exports = class Encryptor {
constructor(encryptionKey) {
this.ENCRYPTION_KEY = encryptionKey.toString(); // Must be 256 bits (32 characters)
this.IV_LENGTH = 16; // For AES, this is always 16
}
encrypt(text) {
let iv = crypto.randomBytes(this.IV_LENGTH);
@garenyondem
garenyondem / toWesternNumerals.js
Last active October 18, 2018 14:10
Convert Arabic or Persian numerals to Western numerals
String.prototype.toWesternNumerals = function () {
return this.replace(/[\u0660-\u0669]/g, (c) => {
return c.charCodeAt(0) - 0x0660;
}).replace(/[\u06f0-\u06f9]/g, (c) => {
return c.charCodeAt(0) - 0x06f0;
});
}
@garenyondem
garenyondem / specialDaysHelper.js
Created October 18, 2018 13:42
Mother's day & father's day helper
'use strict';
function getMothersDay(year) {
// Earliest possible Mothers day
var date = new Date(year, 4, 7);
date.setDate(7 + (7 - date.getDay()));
return date;
}
function getFathersDay(year) {
// Earliest possible Fathers day
@garenyondem
garenyondem / qrCode.js
Last active October 10, 2018 14:50 — forked from sjcotto/qrCode.js
Generate QR Code and save to mongodb
'use strict';
const qr = require('qr-image');
const mongoose = require('mongoose');
const Grid = require('gridfs');
const json = {
email: 'john@doe.com',
name: 'John Doe'
};
@garenyondem
garenyondem / hashid.js
Last active September 30, 2018 19:30 — forked from fiznool/hashid.js
Short 'hash' ID generator.
'use strict';
const ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-+';
const ALPHABET_LENGTH = ALPHABET.length;
const ID_LENGTH = 8;
const UNIQUE_RETRIES = 9999;
let HashID = {};
HashID.generate = function () {
function randomLatLon() {
let lat = (Math.random() * 180 - 90).toFixed(8)
let lon = (Math.random() * 360 - 180).toFixed(8)
return {
lat,
lon
}
}
@garenyondem
garenyondem / nonce.js
Created September 12, 2018 11:46
Create random strings for one time usage
function nonce(length) {
var text = '';
var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (var i = 0; i < length; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
module.exports = nonce;
:loop
start "My Great App Name" "C:\Users\Garen\Desktop\greatapp.exe" "param1"
timeout /t 600
goto loop
const fs = require('fs').promises
(async () => {
try {
const data = JSON.parse(await fs.readFile('/path/to/file.json', 'utf8'))
} catch(err) {
console.error(err)
}
})()