@ng-supabase/core
Version:
ng-supabase is a component library and helper utilities for integrating Supabase in your angular application.
28 lines • 4.82 kB
JavaScript
// Angular.
import { inject } from '@angular/core';
import { Router, } from '@angular/router';
import { RouteService } from '../route.service';
import { SupabaseConfig } from '../supabase-config';
import { LogService } from '../logging/log.service';
import { SupabaseService } from '../supabase.service';
export const IsSignedIn = async (route, state) => {
const log = inject(LogService);
const supabase = inject(SupabaseService);
const router = inject(Router);
const config = inject(SupabaseConfig);
const routeService = inject(RouteService);
await supabase.clientReady;
const signedIn = supabase.isSignedIn;
if (!signedIn) {
const queryParams = {};
if (config.redirectParamName) {
const redirect = routeService.constructAbsoluteUrl(state.url);
queryParams[config.redirectParamName] = redirect;
}
log.info(`User cannot access route '${state.url}', redirecting to sign in page`);
return router.createUrlTree([config.routes.signIn], { queryParams });
}
log.debug(`Activating route '${state.url}' for 'IsSignedIn' guard`);
return supabase.isSignedIn;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2lnbmVkLWluLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYXV0aC1ndWFyZC9pcy1zaWduZWQtaW4uZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsV0FBVztBQUNYLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLE1BQU0sR0FJUCxNQUFNLGlCQUFpQixDQUFDO0FBSXpCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLEtBQUssRUFDNUMsS0FBNkIsRUFDN0IsS0FBMEIsRUFDMUIsRUFBRTtJQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFMUMsTUFBTSxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQzNCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFFckMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO1FBRWpDLElBQUksTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5RCxXQUFXLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ25ELENBQUM7UUFFRCxHQUFHLENBQUMsSUFBSSxDQUNOLDZCQUE2QixLQUFLLENBQUMsR0FBRyxnQ0FBZ0MsQ0FDdkUsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBSyxDQUFDLHFCQUFxQixLQUFLLENBQUMsR0FBRywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztBQUM3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyLlxuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBSb3V0ZXIsXG4gIENhbkFjdGl2YXRlRm4sXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8vIExvY2FsLlxuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tICcuLi9rZXktdmFsdWUnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBTdXBhYmFzZUNvbmZpZyB9IGZyb20gJy4uL3N1cGFiYXNlLWNvbmZpZyc7XG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vbG9nZ2luZy9sb2cuc2VydmljZSc7XG5pbXBvcnQgeyBTdXBhYmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zdXBhYmFzZS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IElzU2lnbmVkSW46IENhbkFjdGl2YXRlRm4gPSBhc3luYyAoXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxuKSA9PiB7XG4gIGNvbnN0IGxvZyA9IGluamVjdChMb2dTZXJ2aWNlKTtcbiAgY29uc3Qgc3VwYWJhc2UgPSBpbmplY3QoU3VwYWJhc2VTZXJ2aWNlKTtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdChTdXBhYmFzZUNvbmZpZyk7XG4gIGNvbnN0IHJvdXRlU2VydmljZSA9IGluamVjdChSb3V0ZVNlcnZpY2UpO1xuXG4gIGF3YWl0IHN1cGFiYXNlLmNsaWVudFJlYWR5O1xuICBjb25zdCBzaWduZWRJbiA9IHN1cGFiYXNlLmlzU2lnbmVkSW47XG5cbiAgaWYgKCFzaWduZWRJbikge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBLZXlWYWx1ZSA9IHt9O1xuXG4gICAgaWYgKGNvbmZpZy5yZWRpcmVjdFBhcmFtTmFtZSkge1xuICAgICAgY29uc3QgcmVkaXJlY3QgPSByb3V0ZVNlcnZpY2UuY29uc3RydWN0QWJzb2x1dGVVcmwoc3RhdGUudXJsKTtcbiAgICAgIHF1ZXJ5UGFyYW1zW2NvbmZpZy5yZWRpcmVjdFBhcmFtTmFtZV0gPSByZWRpcmVjdDtcbiAgICB9XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBVc2VyIGNhbm5vdCBhY2Nlc3Mgcm91dGUgJyR7c3RhdGUudXJsfScsIHJlZGlyZWN0aW5nIHRvIHNpZ24gaW4gcGFnZWBcbiAgICApO1xuXG4gICAgcmV0dXJuIHJvdXRlci5jcmVhdGVVcmxUcmVlKFtjb25maWcucm91dGVzLnNpZ25Jbl0sIHsgcXVlcnlQYXJhbXMgfSk7XG4gIH1cblxuICBsb2cuZGVidWcoYEFjdGl2YXRpbmcgcm91dGUgJyR7c3RhdGUudXJsfScgZm9yICdJc1NpZ25lZEluJyBndWFyZGApO1xuICByZXR1cm4gc3VwYWJhc2UuaXNTaWduZWRJbjtcbn07XG4iXX0=