From 11fd4cb826a4809978ac761753041b4737754511 Mon Sep 17 00:00:00 2001 From: Daniel Heras Quesada Date: Thu, 27 Nov 2025 22:40:24 +0100 Subject: [PATCH] feat: deno base project --- deno.json | 12 ++++++++++++ deno.lock | 23 +++++++++++++++++++++++ src/exercises/assets/day_1_input.txt | 1 + src/exercises/day_1.ts | 4 ++++ src/main.ts | 17 +++++++++++++++++ src/main_test.ts | 6 ++++++ 6 files changed, 63 insertions(+) create mode 100644 deno.json create mode 100644 deno.lock create mode 100644 src/exercises/assets/day_1_input.txt create mode 100644 src/exercises/day_1.ts create mode 100644 src/main.ts create mode 100644 src/main_test.ts diff --git a/deno.json b/deno.json new file mode 100644 index 0000000..3037a87 --- /dev/null +++ b/deno.json @@ -0,0 +1,12 @@ +{ + "tasks": { + "dev": "deno run -R --watch src/main.ts", + "today:dev": "deno run -R --watch src/main.ts $(date +%e)", + "today": "deno run -R src/main.ts $(date +%e)", + "test": "deno test --parallel src" + }, + "imports": { + "@std/assert": "jsr:@std/assert@1", + "@/": "./src/" + } +} diff --git a/deno.lock b/deno.lock new file mode 100644 index 0000000..4fa95d0 --- /dev/null +++ b/deno.lock @@ -0,0 +1,23 @@ +{ + "version": "5", + "specifiers": { + "jsr:@std/assert@1": "1.0.14", + "jsr:@std/internal@^1.0.10": "1.0.10" + }, + "jsr": { + "@std/assert@1.0.14": { + "integrity": "68d0d4a43b365abc927f45a9b85c639ea18a9fab96ad92281e493e4ed84abaa4", + "dependencies": [ + "jsr:@std/internal" + ] + }, + "@std/internal@1.0.10": { + "integrity": "e3be62ce42cab0e177c27698e5d9800122f67b766a0bea6ca4867886cbde8cf7" + } + }, + "workspace": { + "dependencies": [ + "jsr:@std/assert@1" + ] + } +} diff --git a/src/exercises/assets/day_1_input.txt b/src/exercises/assets/day_1_input.txt new file mode 100644 index 0000000..345e6ae --- /dev/null +++ b/src/exercises/assets/day_1_input.txt @@ -0,0 +1 @@ +Test diff --git a/src/exercises/day_1.ts b/src/exercises/day_1.ts new file mode 100644 index 0000000..95303f3 --- /dev/null +++ b/src/exercises/day_1.ts @@ -0,0 +1,4 @@ +export default function FirstDayExerciseName() { + console.log("test_module"); + return 1; +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..45be015 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,17 @@ +async function main(): Promise { + const args = Deno.args; + if (!args || args.length !== 1) { + return Promise.resolve(-1); + } + const day = parseInt(args[0]); + + const module = await import(`./exercises/day_${day}.ts`); + module.default(); + + return Promise.resolve(0); +} + +// Learn more at https://docs.deno.com/runtime/manual/examples/module_metadata#concepts +if (import.meta.main) { + await main(); +} diff --git a/src/main_test.ts b/src/main_test.ts new file mode 100644 index 0000000..4a2ef09 --- /dev/null +++ b/src/main_test.ts @@ -0,0 +1,6 @@ +import { assertEquals } from "@std/assert"; +import { add } from "./main.ts"; + +Deno.test(function addTest() { + assertEquals(add(2, 3), 5); +});