@superawesome/permissions
Version:
Fine grained permissions / access control with ownerships & attribute picking, done right.
54 lines (41 loc) • 1.53 kB
TypeScript
/**
The default logger logs only `error` and `warn` to console. To provide custom logging from Permissions:
- implement `IPermissionsLogger` methods (or just create a plain JS object with these)
- pass an instance to [`setLogger()`](/miscellaneous/variables.html#setLogger)
```js
import { setLogger, IPermissionsLogger } from '@superawesome/permissions'
class MyLogger implements IPermissionsLogger {
error(message: string, data?: any) {
console.error(message, data);
},
...
}
setLogger(new MyLogger());
// internally its used like this
getLogger().warn('Something smelly!', {data: 'to prove it'})
// but you only really need it if you develop a plugin etc
```
To disable logging completely:
```js
setLogger(null);
```
*/
export interface IPermissionsLogger {
error(message: string, data?: any): void;
warn(message: string, data?: any): void;
debug(message: string, data?: any): void;
}
/**
* Set a **global** logger ([IPermissionsLogger](/interfaces/IPermissionsLogger.html)) used by the library, instead of the console built in one.
*
* Use `setLogger(null)` to disable it.
*
* See [IPermissionsLogger](/interfaces/IPermissionsLogger.html)
*/
export declare const setLogger: <T extends IPermissionsLogger>(l: T) => IPermissionsLogger;
/**
* Gives you the global logger so you can log eg `getLogger().warn('Something fishy!')`
*
* See [IPermissionsLogger](/interfaces/IPermissionsLogger.html)
*/
export declare const getLogger: () => IPermissionsLogger;