UNPKG

@ynmstudio/utils

Version:
1 lines 10.8 kB
{"version":3,"file":"ynmstudio-utils-interceptors.mjs","sources":["../../../projects/ynm-utils/interceptors/src/craft/craft-iframe-resizer.interceptor.ts","../../../projects/ynm-utils/interceptors/src/craft/craft-preview.interceptor.ts","../../../projects/ynm-utils/interceptors/src/craft/craft-security.interceptor.ts","../../../projects/ynm-utils/interceptors/src/ynmstudio-utils-interceptors.ts"],"sourcesContent":["import { Location, isPlatformBrowser } from \"@angular/common\";\nimport { HttpRequest, HttpHandlerFn, HttpEvent, HttpHandler, HttpInterceptor } from \"@angular/common/http\";\nimport { inject, Injectable, PLATFORM_ID } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n/** Inject With Credentials into the request */\n@Injectable()\nexport class CraftIframeResizerInterceptor implements HttpInterceptor {\n constructor() { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const platform = inject(PLATFORM_ID);\n if (!isPlatformBrowser(platform)) return next.handle(req);\n\n const location = inject(Location);\n\n if (req.url.includes('/api')) {\n const [, paramString] = location.path().split('?');\n const urlParams = new URLSearchParams(paramString);\n if (urlParams.has('x-craft-live-preview') && urlParams.has('token')) {\n import(\"iframe-resizer\")\n .then(() => console.log('iFrameResizer loaded'))\n .catch(error => console.error(error));\n }\n return next.handle(req);\n } else {\n return next.handle(req);\n }\n }\n}\n\nexport const craftIframeResizerInterceptor = (\n req: HttpRequest<unknown>, next: HttpHandlerFn\n) => {\n const platform = inject(PLATFORM_ID);\n if (!isPlatformBrowser(platform)) return next(req);\n\n const location = inject(Location);\n\n if (req.url.includes('/api')) {\n const [, paramString] = location.path().split('?');\n const urlParams = new URLSearchParams(paramString);\n if (urlParams.has('x-craft-live-preview') && urlParams.has('token')) {\n import(\"iframe-resizer\")\n .then(() => console.log('iFrameResizer loaded'))\n .catch(error => console.error(error));\n }\n return next(req);\n } else {\n return next(req);\n }\n}","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpResponse, HttpHandlerFn } from '@angular/common/http';\nimport { filter, Observable } from 'rxjs';\nimport { Location } from '@angular/common';\nimport { IsrService } from '@rx-angular/isr/browser';\n\n\n\n/** Inject Preview Token into the request */\n@Injectable()\nexport class CraftPreviewInterceptor implements HttpInterceptor {\n #location = inject(Location);\n #isrService = inject(IsrService, { optional: true }) ?? undefined;\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n if (req.url.includes('/api')) {\n const [, paramString] = this.#location.path().split('?');\n const urlParams = new URLSearchParams(paramString);\n if (urlParams.has('x-craft-live-preview') && urlParams.has('token')) {\n const duplicate = req.clone({\n setParams: {\n token: urlParams.get(\"token\") || \"\",\n fetchPolicy: 'no-cache',\n },\n });\n\n this.#isrService?.addError({\n name: 'Craft CMS Preview Mode',\n message: 'Page should not get cached in preview mode',\n } as Error);\n\n return next.handle(duplicate).pipe(\n filter((event: any) => event instanceof HttpResponse),\n\n );\n } else {\n return next.handle(req);\n }\n } else {\n return next.handle(req);\n }\n }\n}\n\n\nexport const craftPreviewInterceptor = (\n req: HttpRequest<unknown>, next: HttpHandlerFn\n) => {\n const location = inject(Location);\n const isrService = inject(IsrService, { optional: true }) ?? undefined;\n\n\n if (req.url.includes('/api')) {\n const [, paramString] = location.path().split('?');\n const urlParams = new URLSearchParams(paramString);\n if ((urlParams.has('x-craft-live-preview') || urlParams.has('x-craft-preview')) && urlParams.has('token')) {\n\n const duplicate = req.clone({\n setParams: {\n token: urlParams.get(\"token\") || \"\",\n fetchPolicy: 'no-cache',\n },\n });\n isrService?.addError({\n name: 'Craft CMS Preview Mode',\n message: 'Page should not get cached in preview mode',\n } as Error);\n\n return next(duplicate).pipe(\n filter((event: any) => event instanceof HttpResponse)\n );\n } else {\n return next(req);\n }\n } else {\n return next(req);\n }\n}\n\n\n/**\n * @deprecated Use `craftPreviewInterceptor` instead\n */\nexport const CraftPreviewInterceptorFn = craftPreviewInterceptor;","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpHeaders, HttpInterceptorFn } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n/** Inject With Credentials into the request */\n@Injectable()\nexport class CraftSecurityInterceptor implements HttpInterceptor {\n constructor() { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n req = req.clone({\n // withCredentials: req.body && req.body.query ? false : true,\n headers: new HttpHeaders({\n Accept: 'application/json',\n }),\n });\n\n return next.handle(req);\n }\n}\nexport const craftSecurityInterceptor: HttpInterceptorFn = (\n req,\n next\n) => {\n req = req.clone({\n // withCredentials: req.body && req.body.query ? false : true,\n setHeaders: {\n Accept: 'application/json',\n },\n });\n\n return next(req);\n};\n\n/**\n * @deprecated Use `craftSecurityInterceptor` instead\n */\nexport const CraftSecurityInterceptorFn = craftSecurityInterceptor;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}