aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2020-12-01 13:16:50 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2020-12-01 13:16:50 +0200
commit3328eb99625e7df28202e57cd8c159f8b7708ac5 (patch)
tree200b31e5a68454183e45e1316af408f7f4dfcdc0
parent6064019df1049c929fae3daa1325ef9c8817d38c (diff)
Initial setup with TS
-rw-r--r--.gitignore1
-rw-r--r--day1/index.ts7
-rw-r--r--day1/input.txt200
-rw-r--r--index.ts17
-rw-r--r--package-lock.json89
-rw-r--r--package.json29
-rw-r--r--types.d.ts1
7 files changed, 344 insertions, 0 deletions
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;