Skip to content

Instantly share code, notes, and snippets.

View louislatreille's full-sized avatar

Louis Latreille louislatreille

View GitHub Profile
@louislatreille
louislatreille / decodeMorseClever.js
Created August 6, 2021 16:05
(Article) You should aim to forget how your code works
const decodeMorse = (morseCode) => {
return morseCode
.trim()
.split(/ | /)
.map( (code) => MORSE_CODE[code] || ' ')
.join('');
}
@louislatreille
louislatreille / decodeMorse.test.js
Last active August 6, 2021 16:05
(Article - You should aim to forget how your code works)
describe("GIVEN a call to decodeMorse", () => {
[... additional tests to cover non-edge cases ...]
it('THEN it decodes the special SOS code', () => {
Test.assertEquals(decodeMorse('...---...'), 'SOS');
});
it('THEN it decodes the special = code', () => {
Test.assertEquals(decodeMorse('-...-'), '=');
});
@louislatreille
louislatreille / decodeMorse.js
Last active August 6, 2021 16:06
(Article - You should aim to forget how your code works)
const decodeMorse = (morseCode) => {
// Morse words are separated by 3 spaces
const morseWords = morseCode.trim().split(' ');
return morseWords.map(morseWordToEnglishWord).join(' ');
}
const morseWordToEnglishWord = (morseWord) => {
// Morse letters are separated by 1 space
const morseLetters = morseWord.split(' ');
return morseLetters.map(morseLetterToEnglishLetter).join('');
@louislatreille
louislatreille / decodeMorseMeaningfulNames.js
Created August 6, 2021 16:23
Article - You should aim to forget how your code works
return morseWords.map(morseWordToEnglishWord).join(' ');
@louislatreille
louislatreille / decodeMorseComments.js
Created August 6, 2021 16:24
Article - You should aim to forget how your code works
// Morse letters are separated by 1 space
const morseLetters = morseWord.split(' ');
@louislatreille
louislatreille / decodeMorseCleverSplit.js
Created August 19, 2021 13:49
(Article) You should aim to forget how your code works
split(/ | /)
@louislatreille
louislatreille / fooBarMorseCode.js
Created August 19, 2021 13:53
(Article) You should aim to forget how your code works
const code = '..-. --- --- -... .- .-.'; //FOO BAR
@louislatreille
louislatreille / decodeMorseCleverComments.js
Created August 23, 2021 00:05
(Article) You should aim to forget how your code works
const decodeMorse = (morseCode) => {
return morseCode
.trim()
// Each Morse code words are split by 3 spaces, and each letters are split by 1 space.
// The order of the two sequences below is important. We always check for 2 spaces first
// and then for one space. This allows to split all letters properly because 2 spaces
// will not match one space. If we do hit a 3 spaces sequence, we will first split on
// the 2 spaces, which will leave us with a right substring starting with 1 space.
// This will then be split again because of the trailing space. The 3 spaces will then
// result in 3 substrings. The expected left substring letter, an empty string, and the
@louislatreille
louislatreille / index.ts
Created April 3, 2022 00:50
pulumiServerlessJourney - index.ts
import * as apigateway from "@pulumi/aws-apigateway";
import * as aws from "@pulumi/aws";
export const api = new apigateway.RestAPI("pulumi-serverless-journey", {
stageName: "dev",
routes: [
{
path: "/function1",
method: "POST",
eventHandler: new aws.lambda.CallbackFunction("function1", {
@louislatreille
louislatreille / serverless.ts
Last active April 3, 2022 12:50
pulumiServerlessJourney - serverless.ts
import { createFunctionHandler } from "@resources/createFunctionHandler";
import type { AWS } from "@serverless/typescript";
const serverlessConfiguration: AWS = {
service: "pulumi-serverless-journey",
frameworkVersion: "3",
provider: {
name: "aws",
runtime: "nodejs14.x",
region: "us-east-1",