Skip to content

untrustnova/nova-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Nova Framework

Core framework Nova.js yang berjalan sebagai dependency di node_modules. Berisi kernel, routing, modul, dan integrasi DB.

Instalasi

npm install @untrustnova/nova-framework

Paket Ekspor

import { NovaKernel } from '@untrustnova/nova-framework/kernel';
import { defineConfig, react, tailwindcss } from '@untrustnova/nova-framework/config';
import { route } from '@untrustnova/nova-framework/routing';
import { storageModule, cacheModule, logsModule } from '@untrustnova/nova-framework/modules';
import { Controller } from '@untrustnova/nova-framework/controller';
import { app } from '@untrustnova/nova-framework/app';

Kernel (Ringkas)

import config from './nova.config.js';
import { NovaKernel } from '@untrustnova/nova-framework/kernel';
import { storageModule, cacheModule, logsModule } from '@untrustnova/nova-framework/modules';

const app = new NovaKernel(config);

app.registerModule('storage', storageModule);
app.registerModule('cache', cacheModule);
app.registerModule('logs', logsModule);

app.start();

Routing

Mendukung handler sederhana ala Laravel:

import { route } from '@untrustnova/nova-framework/routing';

export default () => {
  const routes = route();
  routes.get('/', 'HomeController@index');
  return routes.toArray();
};

Middleware dapat ditambahkan di level route:

routes.post('/posts', authMiddleware, 'PostsController@store');

Handler juga bisa menggunakan Request/Response:

routes.get('/ping', (request, response) => {
  response.json({ ok: true });
});

App Helper

const db = app.db;
const cache = app.cache();

Database (Drizzle)

Drizzle digunakan untuk SQL:

  • SQLite (better-sqlite3)
  • MySQL (mysql2)
  • PostgreSQL (pg)

MongoDB dan Supabase diposisikan sebagai NoSQL dan memerlukan adapter khusus.

Modul Bawaan

  • Storage (local, S3, MinIO)
  • Cache (memory, redis)
  • Logs (paperlog)

Security Default

Nova menyetel header keamanan dasar dan membatasi ukuran body request. Atur melalui security di nova.config.js.

export default defineConfig({
  security: {
    bodyLimit: 1024 * 1024,
  },
});

Lisensi

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published