ngx-cookie-backend
Version:
Implementation of Angular 1.x $cookies service to Angular
1 lines • 8.42 kB
Source Map (JSON)
{"version":3,"file":"ngx-cookie-backend.mjs","sources":["../../../projects/ngx-cookie-backend/src/lib/cookie-backend-writer.service.ts","../../../projects/ngx-cookie-backend/src/lib/cookie-backend.module.ts","../../../projects/ngx-cookie-backend/src/public-api.ts","../../../projects/ngx-cookie-backend/src/ngx-cookie-backend.ts"],"sourcesContent":["import { Inject, Injectable, Optional } from '@angular/core';\nimport { REQUEST, RESPONSE } from '@nguniversal/express-engine/tokens';\nimport { CookieOptions as ExpressCookieOptions, Request, Response } from 'express';\nimport { CookieOptions, ICookieWriterService, isEmpty, isString } from 'ngx-cookie';\n\nconst COOKIE_SEPARATOR = ';';\n\n@Injectable()\nexport class CookieBackendWriterService implements ICookieWriterService {\n constructor(@Optional() @Inject(REQUEST) private request: Request,\n @Optional() @Inject(RESPONSE) private response: Response) {}\n\n readAllAsString(): string {\n const requestHeadersCookies = this.request?.headers?.cookie;\n const cookiesFromRequest: string[] = requestHeadersCookies?.split(COOKIE_SEPARATOR) ?? [];\n const addedCookies: string[] = this.getNormalizedResponseCookies();\n const allCookies = this.latestUniqueCookieValues(cookiesFromRequest, addedCookies);\n return allCookies.join(COOKIE_SEPARATOR);\n }\n\n write(name: string, value: string | undefined, options?: CookieOptions): void {\n this.response?.cookie(name, value, this.getOptions(options));\n }\n\n private getOptions(options?: CookieOptions): ExpressCookieOptions {\n if (isEmpty(options)) {\n return {};\n }\n const opts = {...options};\n if (!isEmpty(options.expires)) {\n opts.expires = this.getExpires(options.expires);\n }\n return opts as ExpressCookieOptions;\n }\n\n private getExpires(expires?: string | Date): Date | undefined {\n return isString(expires) ? new Date(expires as string) : (expires as Date);\n }\n\n private getNormalizedResponseCookies(): string[] {\n const responseCookies = (this.response?.getHeader('Set-Cookie') as string | string[]) ?? '';\n const addedCookies: string[] = Array.isArray(responseCookies) ? responseCookies : [responseCookies];\n return addedCookies.flatMap(cookieEntry => cookieEntry.split(COOKIE_SEPARATOR));\n }\n\n private latestUniqueCookieValues(oldCookies: string[], newerCookies: string[]): string[] {\n const cookiesMap = new Map<string, string>();\n const oldAndNewCookies: string[] = [...oldCookies, ...newerCookies];\n oldAndNewCookies\n .filter(value => !isEmpty(value))\n .map(cookie => cookie.split('='))\n .forEach(([key, value]) => cookiesMap.set(key.trim(), value));\n const result: string[] = [];\n cookiesMap.forEach((value, key) => result.push(`${key}=${value}`));\n return result;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { COOKIE_OPTIONS, COOKIE_WRITER, CookieModule, CookieOptions, CookieOptionsProvider } from 'ngx-cookie';\n\nimport { CookieBackendWriterService } from './cookie-backend-writer.service';\n\n\n@NgModule({\n imports: [CookieModule],\n providers: [CookieOptionsProvider]\n})\nexport class CookieBackendModule {\n\n /**\n * Use this method in your root module to provide the CookieService\n */\n static withOptions(options: CookieOptions = {}): ModuleWithProviders<CookieModule> {\n return {\n ngModule: CookieModule,\n providers: [\n {provide: COOKIE_OPTIONS, useValue: options},\n {provide: COOKIE_WRITER, useClass: CookieBackendWriterService}\n ]\n };\n }\n\n /**\n * @deprecated use `CookieBackendModule.withOptions()` instead\n * Use this method in your root module to provide the CookieService\n */\n static forRoot(options: CookieOptions = {}): ModuleWithProviders<CookieModule> {\n return this.withOptions(options);\n }\n\n /**\n * @deprecated use `CookieBackendModule.withOptions()` instead\n * Use this method in your other (non root) modules to import the directive/pipe\n */\n static forChild(options: CookieOptions = {}): ModuleWithProviders<CookieModule> {\n return this.withOptions(options);\n }\n\n}\n","/*\n * Public API Surface of ngx-cookie-backend\n */\n\nexport * from './lib/cookie-backend-writer.service';\nexport * from './lib/cookie-backend.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}