From 85cdd46f0082afb8ed09dcb0983071daa6bde38c Mon Sep 17 00:00:00 2001 From: William Carroll Date: Tue, 11 Feb 2020 17:07:04 +0000 Subject: [PATCH] Attempt to support TypeScript for coding challenges I was a bit weaker than I expected to be in my most recent interview using TypeScript. To improve, I think I'd like to attempt solving some of the InterviewCake.com questions using TypeScript. If you've read the previous commits, the inspiration for `run` arose because I need to call `npx ts-code `, which is easy enough to remember, but I'd still rather just call `run `. --- .gitignore | 1 + deepmind/part_two/.envrc | 2 + deepmind/part_two/package-lock.json | 73 ++++++++++++++++++++ deepmind/part_two/package.json | 15 ++++ deepmind/part_two/reverse-string-in-place.ts | 6 ++ deepmind/part_two/shell.nix | 10 +++ 6 files changed, 107 insertions(+) create mode 100644 deepmind/part_two/.envrc create mode 100644 deepmind/part_two/package-lock.json create mode 100644 deepmind/part_two/package.json create mode 100644 deepmind/part_two/reverse-string-in-place.ts create mode 100644 deepmind/part_two/shell.nix diff --git a/.gitignore b/.gitignore index cda768f08..115d4f1a0 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ __pycache__ /monzo_ynab/ynab/fixture.json /monzo_ynab/monzo/fixture.json /monzo_ynab/kv.json +node_modules/ diff --git a/deepmind/part_two/.envrc b/deepmind/part_two/.envrc new file mode 100644 index 000000000..b80e28b4b --- /dev/null +++ b/deepmind/part_two/.envrc @@ -0,0 +1,2 @@ +source_up +eval "$(lorri direnv)" diff --git a/deepmind/part_two/package-lock.json b/deepmind/part_two/package-lock.json new file mode 100644 index 000000000..94c89c597 --- /dev/null +++ b/deepmind/part_two/package-lock.json @@ -0,0 +1,73 @@ +{ + "name": "deepmind-part-two", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ts-node": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.2.tgz", + "integrity": "sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "3.1.1" + } + }, + "typescript": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", + "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + } + } +} diff --git a/deepmind/part_two/package.json b/deepmind/part_two/package.json new file mode 100644 index 000000000..c9ef307ca --- /dev/null +++ b/deepmind/part_two/package.json @@ -0,0 +1,15 @@ +{ + "name": "deepmind-part-two", + "version": "1.0.0", + "description": "Practicing coding interview questions", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "William Carroll", + "license": "MIT", + "devDependencies": { + "ts-node": "^8.6.2", + "typescript": "^3.7.5" + } +} diff --git a/deepmind/part_two/reverse-string-in-place.ts b/deepmind/part_two/reverse-string-in-place.ts new file mode 100644 index 000000000..628b95a6b --- /dev/null +++ b/deepmind/part_two/reverse-string-in-place.ts @@ -0,0 +1,6 @@ +function main(x: number) { + console.log(x + 1); + console.log("Hello, world."); +} + +main(10); diff --git a/deepmind/part_two/shell.nix b/deepmind/part_two/shell.nix new file mode 100644 index 000000000..606dd7167 --- /dev/null +++ b/deepmind/part_two/shell.nix @@ -0,0 +1,10 @@ +{ pkgs ? import {}, ... }: + +pkgs.mkShell { + buildInputs = with pkgs; [ + nodejs + python3 + go + goimports + ]; +}