const make = Effect.gen(function* (_) {
const db = yield* SqliteDrizzle.SqliteDrizzle;
const validateToken = (token: string) =>
Effect.gen(function* (_) {
const result = yield* db
.select()
.from(tokensTable)
.where(eq(tokensTable.token, token));
const token_ = yield* Array.head(result).pipe(
Effect.catchAll(InvalidToken.create)
);
if (token_.expiresAt < new Date()) {
return yield* new ExpiredToken();
}
});
return {
validateToken,
};
});
const DrizzleLive = SqliteDrizzle.layer.pipe(
Layer.succeed(SqliteDrizzle.SqliteDrizzle, db)
);
const make = Effect.gen(function* (_) {
const db = yield* SqliteDrizzle.SqliteDrizzle;
const validateToken = (token: string) =>
Effect.gen(function* (_) {
const result = yield* db
.select()
.from(tokensTable)
.where(eq(tokensTable.token, token));
const token_ = yield* Array.head(result).pipe(
Effect.catchAll(InvalidToken.create)
);
if (token_.expiresAt < new Date()) {
return yield* new ExpiredToken();
}
});
return {
validateToken,
};
});
const DrizzleLive = SqliteDrizzle.layer.pipe(
Layer.succeed(SqliteDrizzle.SqliteDrizzle, db)
);