Skip to content

Instantly share code, notes, and snippets.

@nkhil
nkhil / for-each-async-await.js
Created June 13, 2021 20:41
Do not use async/await inside forEach functions
async function someAsyncFuncion(num) {
return await new Promise(resolve => resolve(num))
}
function orchestrator() {
[1, 2, 3, 4, 5].forEach(async num => {
console.log('console 1 fired')
const promiseResolvedValue = await someAsyncFuncion(num)
console.log(promiseResolvedValue)
console.log('console 2 fired')
@nkhil
nkhil / Calculator.md
Last active June 9, 2021 11:47
Create a simple calculator that given a string of operators (), +, -, *, / and numbers separated by spaces returns the value of that expression
const s3 = require('./s3') // This is the file where we use aws-sdk's S3 CopyObject method
const mockS3Instance = {
copyObject: jest.fn().mockReturnThis(),
promise: jest.fn().mockReturnThis(),
catch: jest.fn(),
}
jest.mock('aws-sdk', () => {
return { S3: jest.fn(() => mockS3Instance) }
const AWS = require('aws-sdk')
// a function that returns a promise
function copyFileToS3() {
// initialise AWS S3
const s3 = new AWS.S3({
accessKeyId: 'whatever',
secretAccessKey: 'whatever',
endpoint: 'http://localhost:4566', // localstack is running on port 4566. Imagine this was the real S3 endpoint

Agenda investigation spike

Attempt 1:

BEHAVIOUR: This enforces only one instance carrying out jobs at a time

const Agenda = require('agenda');
const path = require('path');
const { spawn } = require('child_process');
// Run using Jest
describe('logger behaviour', () => {
it('logs out multiple params - 2 strings', done => {
const testAppFilePath = path.join(
__dirname,
'../logger.js',
@nkhil
nkhil / logger.js
Last active February 2, 2021 20:52
testing logging to stdout in node - test setup
const logger = require('./logger.js');
logger.info({ foo: 'bar' }, 'param2');
// Outputs:
// {"level":30,"time":1612298595613,"msg":"param2","pid":3039,"hostname":"whatever","foo":"bar","v":1}

Sum of Pairs

Given a list of integers and a single sum value, return the first two values (parse from the left please) in order of appearance that add up to form the sum. CodeWars kata link

Note: The following solution is not by me. It was one of the first solutions in the showcase under 'Solutions'. Apologies for not attributing the authors.

var sum_pairs = function (ints, s) {
@nkhil
nkhil / s3.md
Last active October 8, 2020 08:19
Creating copies of files

Create bucket 'test'

awslocal s3api create-bucket --bucket test --region us-east-1

Copy local file into S3

awslocal s3 cp test.txt s3://test/test.txt
@nkhil
nkhil / longest_palindrome.md
Last active September 14, 2020 13:58
Given a string, find the longest palindrome (JavaScript)

Find the longest palindrome (JavaScript)

This is my solution to the longest palindrome kata on Code Wars.

Solution

  function reverseString(st) {
    return st.split('').reverse().join('')
 }