Модуль для работы с базой данных, логированием и файловой системой в Bitburner.
Сервис для работы с базой данных в стиле TypeORM. Поддерживает:
- Создание и управление таблицами
- CRUD операции
- Связи между таблицами (one-to-one, one-to-many, many-to-many)
- Условия поиска с операторами (Equal, Not, MoreThan, LessThan и т.д.)
Сервис для логирования с поддержкой:
- Различных уровней логирования (DEBUG, INFO, SUCCESS, WARNING, ERROR)
- Записи логов в файл
- Экспорта логов
- Ограничения количества записей
Сервис для работы с файлами:
- Чтение файлов
- Запись файлов
- Добавление данных в конец файла
Примеры использования каждого сервиса находятся в директории src/examples/:
database-example.ts- примеры работы с базой данныхrelations-example.ts- примеры работы со связями между таблицамиlogger-example.ts- примеры использования логгераdelete-records-example.ts- примеры удаления записейtest-logging.ts- тесты системы логированияtest-log-paths.ts- тесты валидации путей логированияtest-direct-logger.ts- тесты прямых вызовов логгера
src/
├── hacknet/
│ ├── common/
│ │ └── abstract-service.ts
│ ├── modules/
│ │ ├── database/
│ │ │ └── database.service.ts
│ │ ├── logger/
│ │ │ └── logger.service.ts
│ │ └── file-manager/
│ │ └── file-manager.service.ts
│ └── hacknet.module.ts
└── examples/
├── database-example.ts
├── relations-example.ts
├── logger-example.ts
└── ...
import { HacknetModule } from "/hacknet/hacknet.module";
export async function main(ns: NS) {
const hacknet = new HacknetModule(ns);
const db = hacknet.database;
const logger = hacknet.logger;
const fileManager = hacknet.fileManager;
// Пример создания таблицы
db.createTable("users", {
columns: [
{ name: "name", unique: true },
{ name: "level", unique: false },
],
});
// Пример логирования
logger.info("MyScript", "Начинаем работу");
// Пример работы с файлами
fileManager.write("/tmp/test.txt", "Hello, World!");
}