123456789101112131415161718192021222324252627282930 |
- /* eslint-disable eslint-comments/disable-enable-pair */
- /* eslint-disable import/no-mutable-exports */
- let CURRENT: string | string[] = 'NULL';
- type CurrentAuthorityType = string | string[] | (() => typeof CURRENT);
- /**
- * use authority or getAuthority
- * @param {string|()=>String} currentAuthority
- */
- const renderAuthorize = <T>(Authorized: T): ((currentAuthority: CurrentAuthorityType) => T) => (
- currentAuthority: CurrentAuthorityType,
- ): T => {
- if (currentAuthority) {
- if (typeof currentAuthority === 'function') {
- CURRENT = currentAuthority();
- }
- if (
- Object.prototype.toString.call(currentAuthority) === '[object String]' ||
- Array.isArray(currentAuthority)
- ) {
- CURRENT = currentAuthority as string[];
- }
- } else {
- CURRENT = 'NULL';
- }
- return Authorized;
- };
- export { CURRENT };
- export default <T>(Authorized: T) => renderAuthorize<T>(Authorized);
|