UNPKG

@omostan/ngx-idle

Version:

A module for responding to idle users in Angular applications. this is a forked version of the original @ng-Idle

1 lines 7.92 kB
{"version":3,"file":"ng-idle-keepalive.mjs","sources":["../../../projects/keepalive/src/lib/keepalive.ts","../../../projects/keepalive/src/lib/module.ts","../../../projects/keepalive/src/public-api.ts","../../../projects/keepalive/src/ng-idle-keepalive.ts"],"sourcesContent":["import { EventEmitter, Injectable, NgZone, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { KeepaliveSvc } from '@ng-idle/core';\r\n\r\n/**\r\n * An example of an injectable service.\r\n */\r\n@Injectable()\r\nexport class Keepalive extends KeepaliveSvc implements OnDestroy {\r\n private pingRequest: HttpRequest<any>;\r\n private pingInterval: number = 10 * 60;\r\n private pingHandle: any;\r\n\r\n /*\r\n * An event emitted when the service is pinging.\r\n */\r\n public onPing: EventEmitter<any> = new EventEmitter();\r\n\r\n /*\r\n * An event emitted when the service has pinged an HTTP endpoint and received a response.\r\n */\r\n public onPingResponse: EventEmitter<HttpResponse<any>> = new EventEmitter<\r\n HttpResponse<any>\r\n >();\r\n\r\n /*\r\n * Initializes a new instance of Keepalive\r\n * @param http - The HTTP service.\r\n */\r\n constructor(private http: HttpClient, private zone: NgZone) {\r\n super();\r\n }\r\n\r\n /*\r\n * Sets the string or Request that should be used when pinging.\r\n * @param url - The URL or Request object to use when pinging.\r\n * @return The current Request used when pinging.\r\n */\r\n request<T>(url?: string | HttpRequest<T>): HttpRequest<T> {\r\n if (typeof url === 'string') {\r\n this.pingRequest = new HttpRequest<T>('GET', url);\r\n } else if (url instanceof HttpRequest) {\r\n this.pingRequest = url;\r\n } else if (url === null) {\r\n this.pingRequest = null;\r\n }\r\n\r\n return this.pingRequest;\r\n }\r\n\r\n /*\r\n * Sets the interval (in seconds) at which the ping operation will occur when start() is called.\r\n * @param seconds - The ping interval in seconds.\r\n * @return The current interval value.\r\n */\r\n interval(seconds?: number): number {\r\n if (!isNaN(seconds) && seconds > 0) {\r\n this.pingInterval = seconds;\r\n } else if (!isNaN(seconds) && seconds <= 0) {\r\n throw new Error('Interval value must be greater than zero.');\r\n }\r\n\r\n return this.pingInterval;\r\n }\r\n\r\n /*\r\n * Immediately performs the ping operation. If a request has been set, an HTTP\r\n * request will be made and the response will be emitted via the\r\n * onPingResponse event.\r\n */\r\n ping(): void {\r\n this.onPing.emit(null);\r\n if (this.pingRequest) {\r\n this.http.request(this.pingRequest).subscribe(\r\n (response: HttpResponse<any>) => {\r\n this.onPingResponse.emit(response);\r\n },\r\n (error: HttpResponse<any>) => {\r\n this.onPingResponse.emit(error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n /*\r\n * Starts pinging on an interval.\r\n */\r\n start(): void {\r\n this.stop();\r\n\r\n this.zone.runOutsideAngular(() => {\r\n this.pingHandle = setInterval(() => {\r\n this.zone.run(() => {\r\n this.ping();\r\n });\r\n }, this.pingInterval * 1000);\r\n });\r\n }\r\n\r\n /*\r\n * Stops pinging on an interval.\r\n */\r\n stop(): void {\r\n if (this.hasPingHandle()) {\r\n clearInterval(this.pingHandle);\r\n this.pingHandle = null;\r\n }\r\n }\r\n\r\n /*\r\n * Performs any cleanup tasks when Angular destroys the instance.\r\n */\r\n ngOnDestroy(): void {\r\n this.stop();\r\n }\r\n\r\n /*\r\n * Returns whether or not the service will ping automatically at the specified interval.\r\n * @return True if the service will ping at the specified interval; otherwise, false.\r\n */\r\n isRunning(): boolean {\r\n return this.hasPingHandle();\r\n }\r\n\r\n private hasPingHandle(): boolean {\r\n return this.pingHandle !== null && typeof this.pingHandle !== 'undefined';\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { KeepaliveSvc, NgIdleModule } from '@ng-idle/core';\r\n\r\nimport { Keepalive } from './keepalive';\r\n\r\n@NgModule({ imports: [NgIdleModule.forRoot()] })\r\nexport class NgIdleKeepaliveModule {\r\n static forRoot(): ModuleWithProviders<NgIdleKeepaliveModule> {\r\n return {\r\n ngModule: NgIdleKeepaliveModule,\r\n providers: [Keepalive, { provide: KeepaliveSvc, useExisting: Keepalive }]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of keepalive\r\n */\r\n\r\nexport * from './lib/keepalive';\r\nexport * from './lib/module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}