Skip to content

Instantly share code, notes, and snippets.

View chathurawidanage's full-sized avatar
🏠
Working from home

Chathura Widanage chathurawidanage

🏠
Working from home
View GitHub Profile
@chathurawidanage
chathurawidanage / onecallback.js
Last active March 30, 2018 06:29
Using One Callback which accepts two arguements
function task(callback){
//do task
if(failed){
callback(error,null);
}else{
callback(null,error);
}
}
//calling task
@chathurawidanage
chathurawidanage / withpromises.js
Created April 5, 2018 04:41
Replacing callbacks with promises
function task(){
return new Promise((resolve,reject)=>{
//do task
if(failed){
reject(err);
}else{
resolve(data);
}
});
}
@chathurawidanage
chathurawidanage / promisethentwoargs.js
Created April 5, 2018 05:20
Promise then with two callback recievers
function task(){
return new Promise((resolve,reject)=>{
//do task
if(failed){
reject(err);
}else{
resolve(data);
}
});
}
@chathurawidanage
chathurawidanage / proxy_lambda_invocation.js
Created April 24, 2018 09:44
Proxy Lambda Invocation
try {
let lambda = require(`/tmp/${projectName}/${event.lambda}`);
lambda.handler(event.testEvent, context, callback);
} catch (e) {
console.error(e);
callback("Runtime Error Occurred", null);
}
@chathurawidanage
chathurawidanage / object_entries.js
Last active June 18, 2020 08:22
Iterating Over Object Entries in JS using Object.entries | Performance Comparison [https://gists.cwidanage.com/2018/06/how-to-iterate-over-object-entries-in.html]
let obj = {
key1: "value1",
key2: "value2",
key3: "value3"
}
//convinient forEach
Object.entries(obj).forEach(entry => {
let key = entry[0];
let value = entry[1];
@chathurawidanage
chathurawidanage / object_values.js
Last active November 20, 2019 21:11
Iterating Over Object Entries in JS using Object.values : Performance Comparison [https://gists.cwidanage.com/2018/06/how-to-iterate-over-object-entries-in.html]
let obj = {
key1: "value1",
key2: "value2",
key3: "value3"
}
//convinient forEach
Object.values(obj).forEach(value => {
//use value here
});
@chathurawidanage
chathurawidanage / object_keys.js
Last active November 20, 2019 21:12
Iterating Over Object Entries in JS using Object.keys | Performance Comparison [https://gists.cwidanage.com/2018/06/how-to-iterate-over-object-entries-in.html]
let obj = {
key1: "value1",
key2: "value2",
key3: "value3"
}
//convinient forEach
Object.keys(obj).forEach(key => {
let value = obj[key];
//use key and value here
@chathurawidanage
chathurawidanage / for_in.js
Last active December 1, 2020 09:26
Iterating Over Object Entries in JS using for...in | Performance Comparison [https://gists.cwidanage.com/2018/06/how-to-iterate-over-object-entries-in.html]
let obj = {
key1: "value1",
key2: "value2",
key3: "value3"
}
for (const key in obj) {
let value = obj[key];
//optional check for properties from prototype chain
@chathurawidanage
chathurawidanage / get_own_prop.js
Last active November 20, 2019 21:13
Iterating Over Object Entries in JS using Object.getOwnPropertyNames | Performance Comparison [https://gists.cwidanage.com/2018/06/how-to-iterate-over-object-entries-in.html]
let obj = {
key1: "value1",
key2: "value2",
key3: "value3"
}
// convinient forEach
Object.getOwnPropertyNames(obj).forEach(key => {
let value = obj[key];
//use key and value here
@chathurawidanage
chathurawidanage / object_it_performance.js
Last active August 16, 2023 03:47
Script to compare performance of Object values iterating techniques | Performance Comparison [https://gists.cwidanage.com/2018/06/how-to-iterate-over-object-entries-in.html]
const { PerformanceObserver, performance } = require('perf_hooks');
let objectSize = 1000000;
let iterations = 100;
console.log("Starting performance test with %d object size and %d iterations",
objectSize, iterations);
let values = {
ENTRIES: 0,