Bỏ qua, đến nội dung

@digiforce-nc/app

Package@digiforce-nc/app
Vai tròApplication bootstrap - entry point khởi động Digiforce server

Tổng quan

@digiforce-nc/app là điểm vào (entry point) để khởi động một ứng dụng Digiforce. Package này thực hiện ba bước tuần tự:

  1. Load configuration - đọc file cấu hình ứng dụng
  2. Static plugin imports - nạp trước các plugin được khai báo tĩnh
  3. Start Gateway - khởi tạo và chạy server thông qua Gateway từ @digiforce-nc/server

Cách hoạt động

getConfig()

Đọc cấu hình ứng dụng từ các nguồn (file .env, environment variables, config files). Trả về object cấu hình đầy đủ bao gồm:

  • Database connection
  • Server port & host
  • Plugin list
  • Logging level
  • Các tùy chọn runtime khác
ts
const config = await getConfig();
// {
//   database: { dialect: 'postgres', host: 'localhost', ... },
//   port: 13000,
//   plugins: ['users', 'acl', ...],
//   ...
// }

runPluginStaticImports()

Pre-load các plugin được import tĩnh (static import) - những plugin khai báo trực tiếp trong cấu hình ứng dụng thay vì dynamic load từ database.

Bước này đảm bảo các plugin core luôn sẵn sàng trước khi Gateway bắt đầu lifecycle chính.

Gateway

Gateway là class từ @digiforce-nc/server, quản lý toàn bộ application lifecycle:

Giai đoạnMô tả
createTạo Application instance, kết nối database
startinit()load()install()/upgrade()start()
restartDừng app hiện tại, tạo instance mới và start lại
stopGraceful shutdown - đóng kết nối, cleanup resources

Quan hệ với CLI

Khi chạy lệnh digiforce start, CLI (@digiforce-nc/cli) gọi package này:

bash
# Tương đương gọi @digiforce-nc/app
bun digiforce start

Flow đầy đủ:

CLI (digiforce start)
  → @digiforce-nc/app
    → getConfig()
    → runPluginStaticImports()
    → Gateway.start()
      → Application.init()
      → Application.load()
      → Application.start()

Dependencies

PackageVai trò
@digiforce-nc/serverCung cấp GatewayApplication - engine chính
@digiforce-nc/databaseKết nối và quản lý database

TIP

@digiforce-nc/app là package mỏng - logic chính nằm trong @digiforce-nc/server. Package này chỉ đóng vai trò "keo dán" giữa config, plugin imports, và Gateway.