coersystem
Version:
Library for Angular projects
107 lines (102 loc) • 3.43 kB
JavaScript
import * as i0 from '@angular/core';
import { inject, Injectable, NgModule } from '@angular/core';
import { JwtModule, JwtHelperService } from '@auth0/angular-jwt';
import { User, Tools, Dates } from 'coersystem/tools';
function TOKEN() {
return User.Get()?.jwt || '';
}
function JWTModule(allowedDomains, disallowedRoutes) {
return JwtModule.forRoot({
config: {
tokenGetter: TOKEN,
allowedDomains,
disallowedRoutes
}
});
}
class JWTService {
constructor() {
this.jwtService = inject(JwtHelperService);
}
/** */
get jwt() {
return User.Get()?.jwt || '';
}
/** */
get expirationDate() {
try {
return Tools.IsNotOnlyWhiteSpace(this.jwt) && Tools.IsNotNull(this.jwtService.getTokenExpirationDate(this.jwt))
? Dates.ToFormatDB(this.jwtService.getTokenExpirationDate(this.jwt))
: null;
}
catch {
return null;
}
}
/** */
get isExpired() {
try {
return Tools.IsNotOnlyWhiteSpace(this.jwt)
? this.jwtService.isTokenExpired(this.jwt)
: true;
}
catch (message) {
console.error(message);
return true;
}
}
/** */
get claims() {
try {
return this.jwtService.decodeToken();
}
catch {
return {};
}
}
/** */
get isValid() {
try {
return !this.isExpired && Tools.GetPropertyList(this.claims).map(item => item.toLowerCase()).includes('user');
}
catch {
return false;
}
}
/** */
UpdateJWT(jwt) {
let user = User.Get();
if (user) {
user = Object.assign(user, { jwt });
User.Set(user);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: JWTService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: JWTService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: JWTService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
class ServicesModule {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule, providers: [
JWTService
] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ServicesModule, decorators: [{
type: NgModule,
args: [{
providers: [
JWTService
]
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { JWTModule, JWTService, ServicesModule };
//# sourceMappingURL=coersystem-services.mjs.map