CMU Coding Bootcamp

init(TS): Initialize typescript requirements

thecoded.prof b545761f cb1ecc02

verified
+1
.gitignore
··· 1 + node_modules
+11
.zed/settings.json
··· 1 + // Folder-specific settings 2 + // 3 + // For a full list of overridable settings, and general information on folder-specific settings, 4 + // see the documentation: https://zed.dev/docs/configuring-zed#settings-files 5 + { 6 + "languages": { 7 + "TypeScript": { 8 + "tab_size": 4 9 + } 10 + } 11 + }
+34 -7
nilla.nix
··· 8 8 nilla = import pins.nilla; 9 9 in 10 10 nilla.create ( 11 - { config, lib }: 11 + { config }: 12 12 { 13 13 config = { 14 14 inputs = { ··· 19 19 packages.cmu-graphics = { 20 20 systems = [ "x86_64-linux" ]; 21 21 package = 22 - { 23 - pkgs, 24 - python313, 25 - fetchPypi 26 - }: 22 + { 23 + pkgs, 24 + python313, 25 + fetchPypi, 26 + }: 27 27 let 28 28 pname = "cmu_graphics"; 29 29 version = "1.1.43"; ··· 56 56 57 57 }; 58 58 }; 59 - shells.default = config.shells.python; 59 + shells.default = config.shells.ts; 60 60 shells.python = { 61 61 # Declare what systems the shell can be used on. 62 62 systems = [ "x86_64-linux" ]; ··· 95 95 ppkgs.numpy 96 96 ])) 97 97 pkgs.black 98 + ]; 99 + }; 100 + }; 101 + shells.ts = { 102 + systems = [ "x86_64-linux" ]; 103 + 104 + shell = 105 + { 106 + pkgs, 107 + mkShell, 108 + }: 109 + mkShell { 110 + shellHook = '' 111 + zed() { 112 + /nix/store/071zfnbgg4f8i95rp6r5077z6mis3ss0-zed-editor-0.208.5/libexec/zed-editor "$@" & disown 113 + } 114 + export -f zed 115 + ''; 116 + packages = [ 117 + pkgs.bun 118 + pkgs.eslint_d 119 + pkgs.eslint 120 + pkgs.typescript 121 + pkgs.typescript-language-server 122 + pkgs.package-version-server 123 + pkgs.nixd 124 + pkgs.nil 98 125 ]; 99 126 }; 100 127 };
+29
ts/bun.lock
··· 1 + { 2 + "lockfileVersion": 1, 3 + "workspaces": { 4 + "": { 5 + "name": "ts", 6 + "devDependencies": { 7 + "@types/bun": "latest", 8 + }, 9 + "peerDependencies": { 10 + "typescript": "^5", 11 + }, 12 + }, 13 + }, 14 + "packages": { 15 + "@types/bun": ["@types/bun@1.3.0", "", { "dependencies": { "bun-types": "1.3.0" } }, "sha512-+lAGCYjXjip2qY375xX/scJeVRmZ5cY0wyHYyCYxNcdEXrQ4AOe3gACgd4iQ8ksOslJtW4VNxBJ8llUwc3a6AA=="], 16 + 17 + "@types/node": ["@types/node@24.8.1", "", { "dependencies": { "undici-types": "~7.14.0" } }, "sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q=="], 18 + 19 + "@types/react": ["@types/react@19.2.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA=="], 20 + 21 + "bun-types": ["bun-types@1.3.0", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-u8X0thhx+yJ0KmkxuEo9HAtdfgCBaM/aI9K90VQcQioAmkVp3SG3FkwWGibUFz3WdXAdcsqOcbU40lK7tbHdkQ=="], 22 + 23 + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], 24 + 25 + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], 26 + 27 + "undici-types": ["undici-types@7.14.0", "", {}, "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA=="], 28 + } 29 + }
+1
ts/index.ts
··· 1 + console.log("Nothing actually here");
+12
ts/package.json
··· 1 + { 2 + "name": "ts", 3 + "module": "index.ts", 4 + "devDependencies": { 5 + "@types/bun": "latest" 6 + }, 7 + "peerDependencies": { 8 + "typescript": "^5" 9 + }, 10 + "private": true, 11 + "type": "module" 12 + }
+29
ts/tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + // Environment setup & latest features 4 + "lib": ["ESNext"], 5 + "target": "ESNext", 6 + "module": "Preserve", 7 + "moduleDetection": "force", 8 + "jsx": "react-jsx", 9 + "allowJs": true, 10 + 11 + // Bundler mode 12 + "moduleResolution": "bundler", 13 + "allowImportingTsExtensions": true, 14 + "verbatimModuleSyntax": true, 15 + "noEmit": true, 16 + 17 + // Best practices 18 + "strict": true, 19 + "skipLibCheck": true, 20 + "noFallthroughCasesInSwitch": true, 21 + "noUncheckedIndexedAccess": true, 22 + "noImplicitOverride": true, 23 + 24 + // Some stricter flags (disabled by default) 25 + "noUnusedLocals": false, 26 + "noUnusedParameters": false, 27 + "noPropertyAccessFromIndexSignature": false 28 + } 29 + }