From 3328eb99625e7df28202e57cd8c159f8b7708ac5 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 1 Dec 2020 13:16:50 +0200 Subject: Initial setup with TS --- .gitignore | 1 + day1/index.ts | 7 ++ day1/input.txt | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ index.ts | 17 +++++ package-lock.json | 89 ++++++++++++++++++++++++ package.json | 29 ++++++++ types.d.ts | 1 + 7 files changed, 344 insertions(+) create mode 100644 .gitignore create mode 100644 day1/index.ts create mode 100644 day1/input.txt create mode 100644 index.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 types.d.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/day1/index.ts b/day1/index.ts new file mode 100644 index 0000000..638acb9 --- /dev/null +++ b/day1/index.ts @@ -0,0 +1,7 @@ +import { ExerciseModuleFunc } from "../types"; + +const day1: ExerciseModuleFunc = (input: string) => { + console.log(input); +} + +export default day1; diff --git a/day1/input.txt b/day1/input.txt new file mode 100644 index 0000000..f522f3f --- /dev/null +++ b/day1/input.txt @@ -0,0 +1,200 @@ +1227 +1065 +329 +1063 +1889 +1700 +1805 +1373 +389 +1263 +1276 +1136 +1652 +1981 +1406 +1249 +1197 +1379 +1050 +1791 +1703 +2001 +1842 +1707 +1486 +1204 +1821 +1807 +1712 +1871 +1599 +1390 +1219 +1612 +1980 +1857 +1511 +1702 +1455 +1303 +1052 +1754 +1545 +1488 +1848 +1236 +1549 +1887 +1970 +1123 +1686 +1404 +1688 +1106 +1296 +401 +1829 +1693 +1389 +1957 +914 +1176 +1348 +1275 +1624 +1401 +1045 +1396 +1352 +1569 +1060 +1235 +1679 +1503 +1340 +1872 +1410 +1077 +958 +1681 +1189 +1466 +1087 +1852 +1293 +1139 +1300 +1323 +661 +1388 +1983 +1325 +1112 +1774 +1858 +1785 +1616 +1255 +1198 +1354 +1124 +1834 +1417 +1918 +1496 +33 +1150 +1861 +1172 +2006 +1199 +1558 +1919 +1620 +1613 +1710 +1477 +1592 +1709 +1909 +1670 +1922 +1840 +1768 +1982 +1193 +1736 +1877 +1770 +1191 +1433 +1072 +1148 +1225 +1147 +1171 +1424 +1913 +1228 +1339 +1814 +1504 +1251 +1240 +1272 +1500 +1927 +1428 +1641 +1453 +1729 +1976 +1808 +1180 +1024 +1108 +1085 +1669 +1636 +1005 +1520 +1929 +1626 +1551 +1234 +1988 +1256 +1524 +1571 +1506 +1977 +1749 +1408 +1540 +1934 +1810 +1328 +1910 +1478 +1600 +1699 +1413 +1446 +1798 +1013 +1998 +1661 +1058 +1051 +1220 +1447 +1675 +1912 +1668 +1932 +1962 +1055 +1757 +1116 +1090 diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..37218ee --- /dev/null +++ b/index.ts @@ -0,0 +1,17 @@ +import * as fs from "fs"; +import { ExerciseModuleFunc } from "./types"; +const args = process.argv; + +const exerciseName = args[2]; +const modulePath = `./${exerciseName}`; + +const inputPath = `./${exerciseName}/input.txt`; +const inputBuffer: Buffer = fs.readFileSync(inputPath); +const inputText = inputBuffer.toString(); + +import(modulePath).then(m => { + const defaultFunc = m.default as ExerciseModuleFunc; + defaultFunc(inputText); +}).catch(err => { + console.error(err); +}); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2e2ccf5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,89 @@ +{ + "name": "aoc-2020", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/node": { + "version": "14.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", + "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", + "dev": true + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "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==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ts-node": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "typescript": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", + "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4c4ba7d --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "aoc-2020", + "version": "1.0.0", + "description": "Advent of code 2020", + "main": "index.js", + "scripts": { + "start": "ts-node index.ts", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/jantuomi/aoc-2020.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/jantuomi/aoc-2020/issues" + }, + "homepage": "https://github.com/jantuomi/aoc-2020#readme", + "dependencies": { + "rxjs": "6.6.3", + "ts-node": "9.0.0", + "typescript": "4.1.2" + }, + "devDependencies": { + "@types/node": "14.14.10", + "prettier": "2.2.1" + } +} diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 0000000..6739537 --- /dev/null +++ b/types.d.ts @@ -0,0 +1 @@ +export type ExerciseModuleFunc = (input: string) => void; -- cgit v1.3