ekyc

Electronic KYC process with uploading ID document using OAuth 2.1 (experimental)
Log | Files | Refs | README | LICENSE

ratelimit.ts (701B)


      1 import { RATE_LIMIT, RATE_LIMIT_TTL } from "#core/domain/constants.ts";
      2 import { Limiter } from "#core/domain/limiter.ts";
      3 import { RateLimit } from "#core/domain/rate_limit.ts";
      4 
      5 export type RateLimitDto = {
      6   key: string;
      7   count: number;
      8   expire: Date;
      9   version: number;
     10 };
     11 
     12 export function mapFromRateLimit(rateLimit: RateLimit): RateLimitDto {
     13   return {
     14     key: rateLimit.key,
     15     count: rateLimit.limiter.count,
     16     expire: new Date(rateLimit.limiter.expire),
     17     version: rateLimit.version,
     18   };
     19 }
     20 
     21 export function mapToRateLimit(dto: RateLimitDto) {
     22   return new RateLimit(
     23     dto.key,
     24     new Limiter(RATE_LIMIT, RATE_LIMIT_TTL, dto.count, dto.expire.getTime()),
     25     dto.version,
     26   );
     27 }