@dismissible/nestjs-item
v3.1.1
Published
Dismissible item library
Readme
Dismissible manages the state of your UI elements across sessions, so your users see what matters, once! No more onboarding messages reappearing on every tab, no more notifications haunting users across devices. Dismissible syncs dismissal state everywhere, so every message is intentional, never repetitive.
@dismissible/nestjs-item
Core data models and factory for dismissible items in NestJS applications.
Part of the Dismissible API - This library is part of the Dismissible API ecosystem. Visit dismissible.io for more information and documentation.
Overview
This library provides the foundational data structures for the Dismissible system:
DismissibleItemDto- The core data transfer object representing a dismissible itemDismissibleItemFactory- Factory for creating and manipulating dismissible items
Installation
npm install @dismissible/nestjs-itemGetting Started
Basic Usage
The DismissibleItemDto class represents a dismissible item with the following properties:
id- Unique identifier for the itemuserId- User identifier who owns the itemcreatedAt- Timestamp when the item was createddismissedAt- Optional timestamp when the item was dismissed
import { DismissibleItemDto } from '@dismissible/nestjs-item';
const item: DismissibleItemDto = {
id: 'welcome-banner',
userId: 'user-123',
createdAt: new Date(),
};Using the Factory
The DismissibleItemFactory provides methods for creating and manipulating items:
import { Module } from '@nestjs/common';
import { DismissibleItemModule, DismissibleItemFactory } from '@dismissible/nestjs-item';
@Module({
imports: [DismissibleItemModule],
})
export class AppModule {}
// In your service
import { Injectable } from '@nestjs/common';
import { DismissibleItemFactory, DismissibleItemDto } from '@dismissible/nestjs-item';
@Injectable()
export class MyService {
constructor(private readonly itemFactory: DismissibleItemFactory) {}
createItem(): DismissibleItemDto {
return this.itemFactory.create({
id: 'welcome-banner',
userId: 'user-123',
createdAt: new Date(),
});
}
dismissItem(item: DismissibleItemDto): DismissibleItemDto {
return this.itemFactory.createDismissed(item, new Date());
}
restoreItem(item: DismissibleItemDto): DismissibleItemDto {
return this.itemFactory.createRestored(item);
}
}API Reference
DismissibleItemDto
The main data transfer object for dismissible items.
class DismissibleItemDto {
id: string;
userId: string;
createdAt: Date;
dismissedAt?: Date;
}DismissibleItemFactory
Factory for creating and manipulating dismissible items.
Methods
create(options)- Create a new item from optionsclone(item)- Create a clone of an existing itemcreateDismissed(item, dismissedAt)- Create a dismissed version of an itemcreateRestored(item)- Create a restored (non-dismissed) version of an item
Related Packages
This library is typically used alongside other Dismissible packages:
@dismissible/nestjs-core- Main dismissible service and module@dismissible/nestjs-storage- Storage interface and adapters@dismissible/nestjs-postgres-storage- PostgreSQL storage adapter
License
MIT
