ngx-check-permission
Version:
Angular library which checks the permission status and returns the permission status for the following api's .push, midi, camera, microphone, speaker, device-info, background-fetch, background-sync, bluetooth, persistent-storage, ambient-light-sensor, acc
66 lines • 6.6 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class NgxCheckPermissionService {
constructor() {
this.permissionsNames = [
'geolocation',
'notifications',
'push',
'midi',
'camera',
'microphone',
'speaker',
'device-info',
'background-fetch',
'background-sync',
'bluetooth',
'persistent-storage',
'ambient-light-sensor',
'accelerometer',
'gyroscope',
'magnetometer',
'clipboard',
'display-capture',
'nfc',
];
}
async getAllPermissions() {
const allPermissions = [];
// We use Promise.all to wait until all the permission queries are resolved
await Promise.all(this.permissionsNames.map(async (permissionName) => {
try {
let permission;
switch (permissionName) {
case 'push':
// Not necessary but right now Chrome only supports push messages with notifications
permission = await navigator.permissions.query({
name: permissionName,
});
break;
default:
permission = await navigator.permissions.query({
name: permissionName,
});
}
allPermissions.push({ permissionName, state: permission.state });
}
catch (e) {
allPermissions.push({
permissionName,
state: 'error',
errorMessage: e.toString(),
});
}
}));
return allPermissions;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NgxCheckPermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NgxCheckPermissionService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NgxCheckPermissionService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: () => [] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNoZWNrLXBlcm1pc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaGVjay1wZXJtaXNzaW9uL3NyYy9saWIvbmd4LWNoZWNrLXBlcm1pc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDO1FBQ1EscUJBQWdCLEdBQUc7WUFDekIsYUFBYTtZQUNiLGVBQWU7WUFDZixNQUFNO1lBQ04sTUFBTTtZQUNOLFFBQVE7WUFDUixZQUFZO1lBQ1osU0FBUztZQUNULGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLFdBQVc7WUFDWCxvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLGVBQWU7WUFDZixXQUFXO1lBQ1gsY0FBYztZQUNkLFdBQVc7WUFDWCxpQkFBaUI7WUFDakIsS0FBSztTQUNOLENBQUM7SUFyQmMsQ0FBQztJQXVCVixLQUFLLENBQUMsaUJBQWlCO1FBQzVCLE1BQU0sY0FBYyxHQUFRLEVBQUUsQ0FBQztRQUMvQiwyRUFBMkU7UUFDM0UsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGNBQW1CLEVBQUUsRUFBRTtZQUN0RCxJQUFJO2dCQUNGLElBQUksVUFBVSxDQUFDO2dCQUNmLFFBQVEsY0FBYyxFQUFFO29CQUN0QixLQUFLLE1BQU07d0JBQ1QscUZBQXFGO3dCQUNyRixVQUFVLEdBQUcsTUFBTSxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDN0MsSUFBSSxFQUFFLGNBQWM7eUJBQ3JCLENBQUMsQ0FBQzt3QkFDSCxNQUFNO29CQUNSO3dCQUNFLFVBQVUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDOzRCQUM3QyxJQUFJLEVBQUUsY0FBYzt5QkFDckIsQ0FBQyxDQUFDO2lCQUNOO2dCQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ2xFO1lBQUMsT0FBTyxDQUFNLEVBQUU7Z0JBQ2YsY0FBYyxDQUFDLElBQUksQ0FBQztvQkFDbEIsY0FBYztvQkFDZCxLQUFLLEVBQUUsT0FBTztvQkFDZCxZQUFZLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtpQkFDM0IsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQzs4R0F0RFUseUJBQXlCO2tIQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5neENoZWNrUGVybWlzc2lvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuICBwcml2YXRlIHBlcm1pc3Npb25zTmFtZXMgPSBbXG4gICAgJ2dlb2xvY2F0aW9uJyxcbiAgICAnbm90aWZpY2F0aW9ucycsXG4gICAgJ3B1c2gnLFxuICAgICdtaWRpJyxcbiAgICAnY2FtZXJhJyxcbiAgICAnbWljcm9waG9uZScsXG4gICAgJ3NwZWFrZXInLFxuICAgICdkZXZpY2UtaW5mbycsXG4gICAgJ2JhY2tncm91bmQtZmV0Y2gnLFxuICAgICdiYWNrZ3JvdW5kLXN5bmMnLFxuICAgICdibHVldG9vdGgnLFxuICAgICdwZXJzaXN0ZW50LXN0b3JhZ2UnLFxuICAgICdhbWJpZW50LWxpZ2h0LXNlbnNvcicsXG4gICAgJ2FjY2VsZXJvbWV0ZXInLFxuICAgICdneXJvc2NvcGUnLFxuICAgICdtYWduZXRvbWV0ZXInLFxuICAgICdjbGlwYm9hcmQnLFxuICAgICdkaXNwbGF5LWNhcHR1cmUnLFxuICAgICduZmMnLFxuICBdO1xuXG4gIHB1YmxpYyBhc3luYyBnZXRBbGxQZXJtaXNzaW9ucygpIHtcbiAgICBjb25zdCBhbGxQZXJtaXNzaW9uczogYW55ID0gW107XG4gICAgLy8gV2UgdXNlIFByb21pc2UuYWxsIHRvIHdhaXQgdW50aWwgYWxsIHRoZSBwZXJtaXNzaW9uIHF1ZXJpZXMgYXJlIHJlc29sdmVkXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLnBlcm1pc3Npb25zTmFtZXMubWFwKGFzeW5jIChwZXJtaXNzaW9uTmFtZTogYW55KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbGV0IHBlcm1pc3Npb247XG4gICAgICAgICAgc3dpdGNoIChwZXJtaXNzaW9uTmFtZSkge1xuICAgICAgICAgICAgY2FzZSAncHVzaCc6XG4gICAgICAgICAgICAgIC8vIE5vdCBuZWNlc3NhcnkgYnV0IHJpZ2h0IG5vdyBDaHJvbWUgb25seSBzdXBwb3J0cyBwdXNoIG1lc3NhZ2VzIHdpdGggIG5vdGlmaWNhdGlvbnNcbiAgICAgICAgICAgICAgcGVybWlzc2lvbiA9IGF3YWl0IG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7XG4gICAgICAgICAgICAgICAgbmFtZTogcGVybWlzc2lvbk5hbWUsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHBlcm1pc3Npb24gPSBhd2FpdCBuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe1xuICAgICAgICAgICAgICAgIG5hbWU6IHBlcm1pc3Npb25OYW1lLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWxsUGVybWlzc2lvbnMucHVzaCh7IHBlcm1pc3Npb25OYW1lLCBzdGF0ZTogcGVybWlzc2lvbi5zdGF0ZSB9KTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgYWxsUGVybWlzc2lvbnMucHVzaCh7XG4gICAgICAgICAgICBwZXJtaXNzaW9uTmFtZSxcbiAgICAgICAgICAgIHN0YXRlOiAnZXJyb3InLFxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBlLnRvU3RyaW5nKCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gYWxsUGVybWlzc2lvbnM7XG4gIH1cbn1cbiJdfQ==