Framework
FlashcorePluginDefinition<TClientExtensions, TModelExtensions, TState>
Interface: FlashcorePluginDefinition<TClientExtensions, TModelExtensions, TState>
Flashcore plugin definition.
Plugins can extend Flashcore with:
- Middleware that intercepts CRUD operations
- Model extensions (methods added to all models)
- Client extensions (methods under Flashcore.$.{pluginName})
- Custom index providers (trie, fulltext, geo, etc.)
- Custom query operators
Type Parameters
| Type Parameter | Default type |
|---|---|
TClientExtensions | Record<string, unknown> |
TModelExtensions | Record<string, unknown> |
TState | Record<string, unknown> |
Properties
| Property | Modifier | Type | Description |
|---|---|---|---|
clientExtensions? | public | TClientExtensions | Client extensions - methods under Flashcore.$.{pluginName}. e.g., Flashcore.$.audit.history() |
indexProviders? | public | Record<string, IndexProvider<unknown>> | Custom index providers (trie, fulltext, geo, etc.). |
methods? | public | Record<string, (...args) => unknown> | Private plugin methods - available via this in middleware. |
middleware? | public | PluginMiddleware | Middleware hooks - intercept CRUD operations. |
modelExtensions? | public | TModelExtensions & ThisType<FlashcoreModel<{ id: string; }> & TModelExtensions> | Model extensions - methods added directly to all models. e.g., user.restore(), user.subscribe() |
name | readonly | string | Plugin name - used as namespace for client extensions. e.g., name: 'audit' → Flashcore.$.audit.* |
queryOperators? | public | Record<string, QueryOperatorFn> | Custom query operators that work with custom indexes. |
queryResolvers? | public | Record<string, ModelQueryResolver> | Model-level query resolvers for complete control over query execution. |
Methods
setup()?
optional setup(ctx): void | Promise<void>Called once when plugin is applied during Flashcore.$.init(). Use to set up state, mark models with metadata, register indexes.
Parameters
| Parameter | Type |
|---|---|
ctx | PluginSetupContext<TState> |
Returns
void | Promise<void>
shutdown()?
optional shutdown(): void | Promise<void>Called during Flashcore shutdown. Use to clean up resources (timers, subscriptions, etc.).
Returns
void | Promise<void>
