diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..d43bd34 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +.devenv/ +.direnv/ +node_modules/ +result/ +package-lock.json +docs/ +devenv.yaml diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..47174e4 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "semi": true, + "singleQuote": true, + "trailingComma": "all", + "printWidth": 100 +} diff --git a/devenv.nix b/devenv.nix index a855c8e..6b80616 100644 --- a/devenv.nix +++ b/devenv.nix @@ -6,9 +6,15 @@ }: { # https://devenv.sh/packages/ packages = with pkgs; [ + guile just # Nix code formatter alejandra + # TypeScript tooling + nodePackages.typescript + nodePackages.typescript-language-server + # JavaScript/TypeScript formatter + nodePackages.prettier ]; # https://devenv.sh/languages/ @@ -25,6 +31,7 @@ # https://devenv.sh/pre-commit-hooks/ git-hooks.hooks = { alejandra.enable = true; + prettier.enable = true; check-added-large-files = { enable = true; args = ["--maxkb=16384"]; diff --git a/package.json b/package.json index d15cd71..a125c05 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,10 @@ { "devDependencies": { "@mariozechner/pi-coding-agent": "^0.65.0" + }, + "scripts": { + "typecheck": "tsc --noEmit", + "format": "prettier . --write", + "format:check": "prettier . --check" } } diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..6412b58 --- /dev/null +++ b/src/index.ts @@ -0,0 +1 @@ +export const hello = (name: string): string => `Hello, ${name}!`; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..41d855c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "strict": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "noEmit": true + }, + "include": ["src/**/*.ts", "scripts/**/*.ts", "*.ts"] +}