Use Cases

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.

#Claude Code #Bun #runtime #JavaScript #performance