UNPKG

@akveo/nga-auth

Version:
69 lines 3.37 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; import { Inject, Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/do'; import { ngaAuthOptionsToken } from '../auth.options'; import { deepExtend, getDeepFromObject } from '../helpers'; var NgaTokenService = (function () { function NgaTokenService(options) { var _this = this; this.options = options; this.defaultConfig = { token: { key: 'auth_app_token', getter: function () { return Observable.of(localStorage.getItem(_this.getConfigValue('token.key'))); }, setter: function (token) { return Observable.of(token) .do(function (t) { return localStorage.setItem(_this.getConfigValue('token.key'), t); }); }, deleter: function (token) { return Observable.of(token) .do(function (t) { return localStorage.removeItem(_this.getConfigValue('token.key')); }); }, }, }; this.config = {}; this.token$ = new BehaviorSubject(null); this.setConfig(options); this.get().subscribe(function (token) { return _this.publishToken(token); }); } NgaTokenService.prototype.setConfig = function (config) { this.config = deepExtend({}, this.defaultConfig, config); }; NgaTokenService.prototype.getConfigValue = function (key) { return getDeepFromObject(this.config, key, null); }; NgaTokenService.prototype.set = function (token) { this.publishToken(token); return this.getConfigValue('token.setter')(token); }; NgaTokenService.prototype.get = function () { return this.getConfigValue('token.getter')(); }; NgaTokenService.prototype.tokenChange = function () { return this.token$.publish().refCount(); }; NgaTokenService.prototype.clear = function () { this.publishToken(null); return this.getConfigValue('token.deleter')(); }; NgaTokenService.prototype.publishToken = function (token) { this.token$.next(token); }; return NgaTokenService; }()); NgaTokenService = __decorate([ Injectable(), __param(0, Inject(ngaAuthOptionsToken)), __metadata("design:paramtypes", [Object]) ], NgaTokenService); export { NgaTokenService }; //# sourceMappingURL=token.service.js.map