Loading...
Loading...
This skill should be used when the user asks to "create a TypeScript project", "set up Node.js project", "scaffold new project", "initialize TypeScript repo", "create a new library", "set up a CLI tool", or mentions setting up a new TypeScript/Node.js codebase.
npx skill4agent add paulrberg/dot-agents template-ts-node| File | Purpose |
|---|---|
| Project metadata, dependencies, and scripts |
| TypeScript compiler configuration |
| Linting and formatting rules |
| Task automation and project commands |
| Test framework configuration |
| Version control exclusions |
| Git line-ending and merge behavior |
| Git hooks for pre-commit automation |
| Dependency lock file (Bun) |
mkdir project-name
cd project-name
git initresources/@sablier/devkitpackage.jsontsconfig.json@sablier/devkit/tsconfig/base.jsonbiome.jsoncultracite/core@sablier/devkit/biome/basejustfile@sablier/devkit/just/base.justvitest.config.ts.gitignore.gitattributesbun install@sablier/devkitgithub:sablier-labs/devkittypescriptvitest@biomejs/biomehuskyjustbun run preparemkdir src
touch src/index.tssrc/index.ts// -------------------------------------------------------------------------- //
// EXPORTS //
// -------------------------------------------------------------------------- //
export const VERSION = "0.1.0";just full-checkgithub:sablier-labs/devkitcompilerOptionstsconfig.json{
"extends": "@sablier/devkit/tsconfig/base.json",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}strict: trueesModuleInterop: trueskipLibCheck: truemodule: "ESNext"target: "ES2022"biome.jsonc{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"extends": ["ultracite/core", "@sablier/devkit/biome/base"],
"formatter": {
"indentStyle": "space",
"lineWidth": 120
}
}justfileimport "./node_modules/@sablier/devkit/just/base.just"
# Default recipe
default:
@just --list
# Project-specific recipes only
[group("app")]
build:
na tscjust-clivitest.config.tsimport { defineConfig } from "vitest/config";
export default defineConfig({
test: {
globals: true,
environment: "node",
coverage: {
provider: "v8",
reporter: ["text", "json", "html"],
},
},
});just| Recipe | Alias | Description |
|---|---|---|
| | Run all code checks (biome + prettier + types) |
| | Run all code fixes |
| | Run Biome linting and formatting checks |
| | Apply Biome fixes |
| | Run Biome linter only |
| | TypeScript type checking (tsgo/tsc) |
| | Build with TypeScript |
| | Check Prettier formatting |
| | Apply Prettier formatting |
| | Check for unused exports/dependencies |
| | Fix unused exports/dependencies |
| Clean .DS_Store files | |
| Remove node_modules recursively | |
| Install dependencies with ni |
just build # Compile TypeScript (project entry point)
just dev # Start development mode with file watching
just test # Run tests with Vitest
just test-ui # Run tests with Vitest UIjustfile{
"scripts": {
"prepare": "husky install"
}
}project-name/
├── src/
│ ├── index.ts # Main entry point
│ ├── lib/ # Library code
│ ├── utils/ # Utility functions
│ └── types/ # Type definitions
├── test/
│ └── index.test.ts # Test files
├── dist/ # Compiled output (gitignored)
├── coverage/ # Test coverage reports (gitignored)
├── node_modules/ # Dependencies (gitignored)
├── package.json
├── tsconfig.json
├── biome.jsonc
├── justfile
├── vitest.config.ts
├── .gitignore
├── .gitattributes
├── .husky/
│ └── pre-commit
├── bun.lockb
└── README.mdresources/| File | Purpose |
|---|---|
| Base package.json with devDependencies (adapt name, description) |
| TypeScript configuration extending devkit |
| Linting and formatting rules |
| Project-specific recipes only (imports devkit base) |
| Test framework setup for single repos |
| Shared test config for monorepos |
| Prettier config extending devkit |
| Prettier ignore patterns |
| Pre-commit hook configuration |
| Standard Node.js exclusions |
package.jsonjustfile@sablier/devkit/just/base.just{
"dependencies": {
"@sablier/devkit": "github:sablier-labs/devkit",
"zod": "^3.22.0"
}
}dependenciesdevDependencies{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
}
}test/.test.ts.spec.tsfeat:fix:docs:refactor:v1.0.0v1.1.0// src/lib/index.ts
export { functionA } from "./moduleA.js";
export { functionB } from "./moduleB.js";src/index.tstest/index.test.tsjust full-check./references/adapting-project-types.md./references/troubleshooting.md./references/ide-ci-integration.md./references/next-ui.md./references/monorepo.mdjust-clitypescriptbiomenode-deps@sablier/devkit