@breadstone/archipel-platform-resources
v0.0.32
Published
Strategy-based resource loading infrastructure for NestJS with file system, blob storage, and embedded resource support plus optional caching.
Maintainers
Readme
@breadstone/archipel-platform-resources
Multi-strategy resource management for NestJS with file system, blob storage, and embedded buffer support.
Features
- Pluggable strategies — File system, blob storage, or embedded buffers
- MIME type detection — Automatic via the
mime-typeslibrary - Optional caching — Integrates with
@breadstone/archipel-platform-caching - NestJS integration — Global
ResourceModule.forRoot()with injectableResourceManager
Quick Start
import { ResourceModule, ResourceManager } from '@breadstone/archipel-platform-resources';
import { FileResourceStrategy } from '@breadstone/archipel-platform-resources';
@Module({
imports: [
ResourceModule.forRoot({
strategies: [new FileResourceStrategy({ basePath: './assets' })],
}),
],
})
export class AppModule {}Supported Strategies
| Strategy | Description |
| -------------------------- | --------------------------------------------------------------- |
| FileResourceStrategy | Loads resources from the local file system with glob support |
| BlobResourceStrategy | Loads resources from a blob storage adapter (Vercel, Azure, S3) |
| EmbeddedResourceStrategy | Serves pre-loaded in-memory buffers |
Import Options
// Main import
import { ResourceModule, ResourceManager } from '@breadstone/archipel-platform-resources';
// Strategy-specific (tree-shakable sub-exports)
import { FileResourceStrategy } from '@breadstone/archipel-platform-resources/file';
import { BlobResourceStrategy } from '@breadstone/archipel-platform-resources/blob';
import { EmbeddedResourceStrategy } from '@breadstone/archipel-platform-resources/embedded';Error Handling
| Error Class | When Thrown |
| ----------------------- | --------------------------------- |
| ResourceNotFoundError | Requested resource does not exist |
Resource Limits
| Limit | Value | Description |
| ---------------- | ---------- | ------------------------------------------------- |
| Strategy timeout | 30 seconds | ResourceManager aborts strategy calls after 30s |
Peer Dependencies
| Package | Required | Notes |
| --------------------------------------- | -------- | ------------------------ |
| @breadstone/archipel-platform-caching | No | Optional caching support |
| @nestjs/common | Yes | NestJS core |
| glob | Yes | File glob matching |
| mime-types | Yes | MIME type detection |
Documentation
📖 Package Docs: .docs/packages/platform-resources/index.md
Development
# Build
yarn nx build platform-resources
# Test
yarn nx test platform-resources
# Lint
yarn nx lint platform-resources