Bun dengan Claude Code
Pelajari tentang Bun menggunakan Claude Code. Tips praktis dan contoh kode disertakan.
Mempercepat Penggunaan Bun Runtime dengan Claude Code
Bun adalah runtime all-in-one untuk JavaScript/TypeScript. Dengan package manager, bundler, dan test runner bawaan, ia berjalan beberapa kali lebih cepat dari Node.js. Gunakan Claude Code untuk mengadopsi fitur-fitur kuat Bun secara efisien.
Memulai Project
> Buat project web app baru dengan Bun.
> Sertakan TypeScript, framework Hono, dan setup test.
bun init my-app
cd my-app
bun add hono
// src/index.ts
import { Hono } from 'hono';
import { cors } from 'hono/cors';
import { logger } from 'hono/logger';
const app = new Hono();
app.use('*', logger());
app.use('/api/*', cors());
app.get('/api/health', (c) => {
return c.json({ status: 'ok', runtime: 'bun' });
});
app.get('/api/users/:id', async (c) => {
const id = c.req.param('id');
const user = await getUser(id);
return c.json(user);
});
export default {
port: 3000,
fetch: app.fetch,
};
Memanfaatkan Built-in API Bun
> Implementasikan data store sederhana menggunakan API operasi file Bun dan SQLite.
// src/db.ts
import { Database } from 'bun:sqlite';
const db = new Database('app.db', { create: true });
db.run(`
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
`);
export const createUser = db.prepare(
'INSERT INTO users (name, email) VALUES ($name, $email)'
);
export const getUser = db.prepare(
'SELECT * FROM users WHERE id = $id'
);
// Operasi file Bun
export async function saveUpload(file: File) {
const path = `./uploads/${file.name}`;
await Bun.write(path, file);
return path;
}
export async function readConfig() {
const file = Bun.file('./config.json');
return await file.json();
}
Menjalankan Test
Bun memiliki test runner bawaan yang cepat.
> Tulis test untuk API endpoint.
> Gunakan test runner Bun.
// src/index.test.ts
import { describe, expect, it, beforeAll, afterAll } from 'bun:test';
describe('API endpoints', () => {
it('GET /api/health mengembalikan ok', async () => {
const res = await fetch('http://localhost:3000/api/health');
const data = await res.json();
expect(res.status).toBe(200);
expect(data.status).toBe('ok');
});
it('GET /api/users/:id mengembalikan user', async () => {
const res = await fetch('http://localhost:3000/api/users/1');
expect(res.status).toBe(200);
const user = await res.json();
expect(user).toHaveProperty('name');
});
});
# Jalankan test
bun test
# Mode watch
bun test --watch
# Coverage
bun test --coverage
Bundle dan Build
> Bundle kode frontend dengan Bun.
> Aktifkan juga tree-shaking dan minify.
// build.ts
await Bun.build({
entrypoints: ['./src/client/index.tsx'],
outdir: './dist',
target: 'browser',
minify: true,
splitting: true,
sourcemap: 'external',
define: {
'process.env.NODE_ENV': '"production"',
},
});
console.log('Build complete!');
Summary
Bun secara signifikan meningkatkan pengalaman pengembangan dengan kecepatan luar biasa dan toolchain terintegrasi. Dikombinasikan dengan Claude Code, API dan pattern khusus Bun juga bisa dipelajari dengan cepat. Lihat juga Panduan Pengembangan API dan Strategi Testing.
Untuk detail Bun, lihat Dokumentasi Resmi Bun.
Related Posts
Cara Mempercepat Side Project dengan Claude Code [Dengan Contoh]
Pelajari cara mempercepat project development personal secara drastis menggunakan Claude Code. Dilengkapi contoh nyata dan workflow praktis dari ide hingga deployment.
Cara Mengotomatisasi Refactoring dengan Claude Code
Pelajari cara mengotomatisasi code refactoring secara efisien menggunakan Claude Code. Dilengkapi prompt praktis dan pola refactoring konkret untuk project nyata.
Panduan Lengkap Konfigurasi CORS dengan Claude Code
Pelajari tentang panduan lengkap konfigurasi CORS menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.