LogoRobo.js
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 ParameterDefault type
TClientExtensionsRecord<string, unknown>
TModelExtensionsRecord<string, unknown>
TStateRecord<string, unknown>

Properties

PropertyModifierTypeDescription
clientExtensions?publicTClientExtensionsClient extensions - methods under Flashcore.$.{pluginName}. e.g., Flashcore.$.audit.history()
indexProviders?publicRecord<string, IndexProvider<unknown>>Custom index providers (trie, fulltext, geo, etc.).
methods?publicRecord<string, (...args) => unknown>Private plugin methods - available via this in middleware.
middleware?publicPluginMiddlewareMiddleware hooks - intercept CRUD operations.
modelExtensions?publicTModelExtensions & ThisType<FlashcoreModel<{ id: string; }> & TModelExtensions>Model extensions - methods added directly to all models. e.g., user.restore(), user.subscribe()
namereadonlystringPlugin name - used as namespace for client extensions. e.g., name: 'audit' → Flashcore.$.audit.*
queryOperators?publicRecord<string, QueryOperatorFn>Custom query operators that work with custom indexes.
queryResolvers?publicRecord<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

ParameterType
ctxPluginSetupContext<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>

On this page