New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@nodeboot/aot

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nodeboot/aot

Node-Boot module for Ahead-of-Time (AOT) compilation. Generates node-boot beans and OpenAPI schemas at compile time

latest
Source
npmnpm
Version
1.4.0
Version published
Maintainers
1
Created
Source

@nodeboot/aot

🧠 Ahead-of-Time (AOT) support for the Node-Boot framework — enabling faster startup, intelligent component scanning, and OpenAPI-ready model schemas.

✨ Overview

@nodeboot/aot provides a set of tools and decorators to optimize Node-Boot apps for production, by shifting expensive runtime operations to build-time via Ahead-of-Time (AOT) processing.

It includes:

  • 🔍 Bean Scanner & Generator (node-boot-aot-beans.js) Scans compiled files for decorators like @Service, @Controller, etc., and generates a precomputed node-boot-beans.json.

  • 📦 Component Scanner Decorator (@EnableComponentScan) Automatically imports application components at runtime from the prebuilt manifest or falls back to dynamic scanning.

  • 🧬 Model Schema Generator (node-boot-aot-models.js) Converts @Model-decorated classes into OpenAPI-compatible JSON Schemas.

📦 Installation

npm install @nodeboot/aot --save-dev

⚙️ Usage Guide

1. 🧠 Generate AOT Beans Metadata

After building your app (tsc), run the AOT bean scanner to precompile metadata for your components:

node node-boot-aot-beans.js

Add to package.json:

{
    "scripts": {
        "postbuild": "node node-boot-aot-beans.js"
    }
}

This will output dist/node-boot-beans.json — a list of all .js files that contain key decorators such as @Service, @Controller, etc.

2. 🧬 Generate OpenAPI JSON Schemas from @Model Classes

To convert all @Model-decorated classes into OpenAPI-compatible schema:

node node-boot-aot-models.js

This will generate: dist/node-boot-models.json — structured like:

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "components": {
        "schemas": {
            "UserModel": {
                "type": "object",
                "properties": {
                    "id": {"type": "string"},
                    "name": {"type": "string"}
                }
            }
        }
    }
}

🔁 All-in-One Runner

Runs both scripts in one go. Ideal for post-build automation.

node node-boot-aot.js

💡 Suggested in package.json:

{
    "scripts": {
        "postbuild": "node node-boot-aot.js"
    }
}

🧠 Runtime Integration

In your main application class, use the @EnableComponentScan() decorator to bootstrap bean registration:

import {EnableComponentScan} from "@nodeboot/aot";

@EnableComponentScan()
@NodeBootApplication()
export class MyApp implements NodeBootApp {
    start(): Promise<NodeBootAppView> {
        return NodeBoot.run(ExpressServer);
    }
}

Optional: Use Custom Decorators

@EnableComponentScan({
  customDecorators: [MyCustomBean, AnotherDecorator]
})

✅ Automatically resolves the dist/ directory in production and performs active scanning in dev (or if no JSON file is found).

📁 Directory Expectations

DirectoryPurpose
src/Your TypeScript source files
dist/Compiled output after tsc
.jsonOutput files: node-boot-beans.json, node-boot-models.json

🛠 Internals

Scripts

  • node-boot-aot-beans.js: Scans compiled JS files for known decorators (@Service, @Controller, etc.) and generates node-boot-beans.json.

  • node-boot-aot-models.js: Scans @Model()-decorated classes and generates a JSON Schema file (node-boot-models.json).

  • node-boot-cycle-detector.js: Detects circular dependencies in the bean graph, ensuring no infinite loops in component/service resolution.

  • node-boot-aot.js: Combines all AOT scripts into a single runner for convenience.

Decorator

  • @EnableComponentScan(options?: { customDecorators?: Function[] }): Scans and imports bean modules based on decorators. Uses prebuilt JSON for performance when available.

✅ Benefits

  • Fast Startup: Avoids expensive runtime filesystem scans in production.
  • Predictable Component Importing: Always imports only what’s required.
  • OpenAPI-Ready: JSON schema generation for API modeling & docs.
  • Flexible: Supports custom decorators and intelligent fallbacks.

🔮 Future Ideas

  • CLI interface for all AOT operations
  • Watch mode for development
  • Decorator metadata validation

👨‍💻 Author

Manuel Santos 📧 ney.br.santos@gmail.com 🌐 GitHub

📝 License

MIT — feel free to use, modify, and contribute.

Keywords

boot

FAQs

Package last updated on 25 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts