nestjs-stellate
v10.2.0
Published
Stellate.co Module for Nest Framework
Readme
🛰️ NestJS Stellate Module
This lightweight module for NestJS handles cache purge operations via the Stellate API and lets you trigger query and type purges using simple decorators.
Installation
$ npm i --save nestjs-stellateQuick Start
Install
Add the StellateModule to your AppModule to configure the service once and make the purge interceptor available globally.
// app.module.ts
import { Module } from '@nestjs/common';
import { StellateModule } from 'nestjs-stellate';
@Module({
imports: [
StellateModule.forRoot({
serviceName: '<service-name>', // your Stellate service name
purgeToken: '<token>', // API token for Stellate admin API
debug: false, // enable verbose debug logging (optional)
}),
],
})
export class AppModule {}Available Decorators
StellatePurgeQuery
Use the StellatePurgeQuery decorator on a resolver method (typically a mutation) to clear the cache for one or more GraphQL queries after the mutation runs.
Pass an array of query names exactly as they appear in your client operations.
Example – app.resolver.ts
import { StellatePurgeQuery } from 'nestjs-stellate';
@Mutation(() => Post)
@StellatePurgeQuery(['allPosts', 'feed'])
async upvotePost(@Args('postId') postId: number) {
// Perform your update
return this.postService.upvote(postId);
}StellatePurgeType
Use the StellatePurgeType decorator on a resolver method (usually a mutation) to clear the cache for a specific type.
The second argument (<type-id-reference>) should be the name of a field in the resolver's return object that contains the entity ID.
Example – app.resolver.ts
import { StellatePurgeType } from 'nestjs-stellate';
@Mutation(() => Post)
@StellatePurgeType('post', 'id')
async upvotePost(@Args('postId') postId: number) {
// return object must include an "id" field
return this.postService.upvote(postId);
}