@dhruvp13/promo-code-memory
v0.1.0
Published
Zero-dependency in-memory `CouponRepository` for `@dhruvp13/promo-code-core`. Use it for local development, tests, and quick onboarding — no database required.
Maintainers
Readme
@dhruvp13/promo-code-memory
Zero-dependency in-memory CouponRepository for @dhruvp13/promo-code-core. Use it for local
development, tests, and quick onboarding — no database required.
Usage
import { InMemoryCouponRepository } from '@dhruvp13/promo-code-memory'
import { validateCoupon } from '@dhruvp13/promo-code-core'
const repo = new InMemoryCouponRepository({
coupons: [
{
id: '1',
code: 'SAVE20',
isActive: true,
startDate: '2024-01-01T00:00:00Z',
endDate: '2099-01-01T00:00:00Z',
rewardType: 'discount',
discountType: 'percentage',
discountValue: 20,
appliesTo: ['coin'],
globalUsageLimit: 0,
globalUsageCount: 0,
perUserLimit: 0,
firstTimePurchaseOnly: false,
},
],
})
const result = await validateCoupon(repo, {
code: 'SAVE20',
userId: 'user-1',
purchaseType: 'coin',
baseAmount: 5000,
})Not for production use — state is in-process only and lost on restart. For
production, implement CouponRepository against your database (see
@dhruvp13/promo-code-adapters).
