+1
.gitignore
+1
.gitignore
···
1
+
node_modules
+11
.zed/settings.json
+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
+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
+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
ts/index.ts
···
1
+
console.log("Nothing actually here");
+12
ts/package.json
+12
ts/package.json
+29
ts/tsconfig.json
+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
+
}