ワンクリックで
getting-started
Use when scanning NestJS providers with DiscoveryService-backed utilities.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when scanning NestJS providers with DiscoveryService-backed utilities.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when working with the @wisemen/nestjs-custom-fields package — developer-defined custom fields in NestJS with TypeORM persistence and runtime validation. Covers registering the CustomFieldDefinition entity, authoring definitions with customFieldDefinition(), storing resolved values via @CustomFieldValueColumn(), exposing them through CustomFieldValueDto / @IsCustomFields(), and validating submissions with CustomFieldDefinitionsRepository + validateCustomFieldValues(). Use this whenever a task involves custom field definitions, CustomFieldValue columns, custom-field DTOs, or tenant-scoped field definitions, even if the package is not named explicitly.
Use when defining Typesense collections, collectors, and search queries in NestJS APIs.
Generate PDFs through API2PDF in NestJS. Use when converting HTML or URLs to PDFs in apis.
Use when storing and validating multilingual text in NestJS apis with TypeORM and class-validator.
Use when configuring NATS messaging, subscribers, or the simple NatsClient in NestJS applications.
Use when writing tests for NestJS api packages with custom expect matchers, domain events, or transactional TypeORM use cases.
| name | getting-started |
| description | Use when scanning NestJS providers with DiscoveryService-backed utilities. |
Use ProviderExplorerModule when a NestJS package needs to discover all
registered class-based providers, then inject ProviderExplorer and filter
its providers list with your own decorators or metadata predicates.
Import ProviderExplorerModule anywhere you need provider discovery. The
module wraps Nest's DiscoveryModule internally.
import { Module } from '@nestjs/common'
import { ProviderExplorerModule } from '@wisemen/nestjs-provider-explorer'
import { DecoratedProviderRegistry } from './decorated-provider.registry.js'
@Module({
imports: [ProviderExplorerModule],
providers: [DecoratedProviderRegistry],
exports: [DecoratedProviderRegistry]
})
export class DecoratedProviderRegistryModule {}
Inject ProviderExplorer into a singleton service and iterate over
providers during bootstrap or lazy initialization.
import { Injectable, OnApplicationBootstrap } from '@nestjs/common'
import { ProviderExplorer } from '@wisemen/nestjs-provider-explorer'
@Injectable()
export class DecoratedProviderRegistry implements OnApplicationBootstrap {
constructor (
private providerExplorer: ProviderExplorer
) {}
onApplicationBootstrap (): void {
for (const provider of this.providerExplorer.providers) {
console.info(provider.providerClass.name)
}
}
}
The explorer only returns providers that have a class metatype and prototype, which avoids factory-only and value-only registrations.
The intended pattern is to pair the explorer with custom decorators or metadata guards, then register only the matching providers.
import { Injectable } from '@nestjs/common'
import { ProviderExplorer } from '@wisemen/nestjs-provider-explorer'
import { getQueueName, isQueueHandler } from './queue-handler.decorator.js'
@Injectable()
export class QueueHandlerRegistry {
constructor (
private providerExplorer: ProviderExplorer
) {}
build (): Map<string, object> {
const handlers = new Map<string, object>()
for (const provider of this.providerExplorer.providers) {
if (!isQueueHandler(provider.providerClass)) {
continue
}
handlers.set(
getQueueName(provider.providerClass),
provider.providerInstance
)
}
return handlers
}
}
Each discovered item includes:
providerClass: the class metatypeproviderInstance: the instantiated objectinstanceWrapper: Nest's InstanceWrapperUse providerInstance for singleton providers. When you must support transient
or request-scoped providers, inspect instanceWrapper and resolve via
ModuleRef instead of caching the instance directly.