Skip to content

Instantly share code, notes, and snippets.

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

Yogesh N. Manware ynmanware

🏠
Working from home
View GitHub Profile
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
const {
RawRsaKeyringNode,
buildClient,
CommitmentPolicy,
} = require ('@aws-crypto/client-node')
const { generateKeyPair } = require ('crypto')
const { promisify } = require ('util')
const csvFilePath = './resources/field_enum.csv';
const csv = require('csvtojson');
const fs = require('fs');
csv()
.fromFile(csvFilePath)
.then((jsonObj) => {
writeFileToDisk(jsonObj);
});
@ynmanware
ynmanware / GzipUtil.js
Created June 17, 2020 13:33
Compress and Decompress in NodeJs
const zlib = require('zlib'); //inbuilt in NodeJs
const sizeof = require('object-sizeof'); //npm
const input = "Compressing messages and decompressing messages";
(async function () {
// compress
console.info(`String size: ${sizeof(input)}`);
let buffer = await zlib.deflateSync(input);
const compressedString = buffer.toString('base64');
@ynmanware
ynmanware / GzipUtil.java
Created June 17, 2020 13:32
Compress and Decompress in Java
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStreamReader;
import java.util.Base64;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class GzipUtil {
@ynmanware
ynmanware / parseDotNotation
Created December 5, 2019 06:38
convert dot notation to json object
function parseDotNotation(str, obj, result) {
const keys = str.split(".");
const l = Math.max(1, keys.length - 1);
let key, i;
for (i = 0; i < l; ++i) {
key = keys[i];
result[key] = result[key] || {};
result = result[key];
}
async function execute() {
const startTime = new Date();
const promises = [];
for (let i = 1; i < 11; i++) {
promises.push(someTimeConsumingFunction(i));
}
await Promise.all(promises);
console.log(`Total time taken: ${(new Date() - startTime)} millis`);
}
@ynmanware
ynmanware / Array-to-Object-converter.js
Last active September 23, 2019 01:00
add the [{key: someKey1, value:someValue1}{key: someKey2, value:someValue2}] to {someKey1:someValue1, someKey2:someValue2}
const result = describedby.map(value => {
const simplifiedObj = {};
simplifiedObj[value.key] = value.value;
return simplifiedObj;
}).reduce(ArrayToObjectReducer);
const ArrayToObjectReducer = (accumulator, currentValue) => {
for (const key in currentValue) {
@ynmanware
ynmanware / flatten-object.js
Created September 23, 2019 00:56
Flatter the nested object using kye 'key_child_key_so_on:'
function flattenObject(prefix, inData) {
let result = {};
for (const key in inData) {
if (key == 'DescribedBy') {
result = Object.assign({}, result, parseDescribedBy(prefix, inData[key]));
} else if (typeof inData[key] === 'object' && inData[key] !== null) {
if ('ItemInvolvesNetworkTrail' != key){
result = Object.assign({}, result, flattenObject(formatKey(prefix, key), inData[key]));
}
} else {
@ynmanware
ynmanware / add-underscore-before-caps.js
Created September 23, 2019 00:52
insert underscore before each capital letter
let newString = '';
for (let i = 0; i < formattedKey.length; i++) {
if (i != 0 && formattedKey[i].match(/[A-Z]/) != null) {
if (formattedKey[i + 1] && !(formattedKey[i + 1].match(/[A-Z]/) != null)) {
newString = `${newString}_${formattedKey[i]}`;
} else {
newString = `${newString}${formattedKey[i]}`;
}
} else {
newString = `${newString}${formattedKey[i]}`;
@ynmanware
ynmanware / lambda-tester.js
Created August 24, 2019 19:45
Lambdatester
jest.mock('./eventProcessor');
const lambdaTester = require('lambda-tester').noVersionCheck();
const handler = require('./index').handler;
const testEvent = require('./resources/s3_event_fls_1');
const processor = require('./eventProcessor');
describe('handler', function () {
beforeAll(() => {