function createConfig(config: PayloadConfig) {
return Effect.promise(() => buildConfig(config));
}
export const config = Effect.gen(function* () {
const db = yield* DbClient;
const secret = yield* Config.redacted('PAYLOAD_SECRET');
const vercelEnv = yield* Config.string('VERCEL_ENV').pipe(Config.option);
const runtime = yield* Effect.runtime<DbClient>();
return yield* createConfig({
debug: Option.getOrUndefined(vercelEnv) !== 'production',
secret: Redacted.value(secret),
collections: [
{
slug: 'test',
fields: [],
hooks: {
beforeRead: [
async ({ doc }) => {
await Effect.gen(function* () {
const dbClient = yield* DbClient;
yield* Effect.log('Test collection:', dbClient, doc);
}).pipe(Effect.provide(Logger.logFmt), Runtime.runPromise(runtime));
},
],
},
},
],
db,
email: emailAdapter,
});
});
function createConfig(config: PayloadConfig) {
return Effect.promise(() => buildConfig(config));
}
export const config = Effect.gen(function* () {
const db = yield* DbClient;
const secret = yield* Config.redacted('PAYLOAD_SECRET');
const vercelEnv = yield* Config.string('VERCEL_ENV').pipe(Config.option);
const runtime = yield* Effect.runtime<DbClient>();
return yield* createConfig({
debug: Option.getOrUndefined(vercelEnv) !== 'production',
secret: Redacted.value(secret),
collections: [
{
slug: 'test',
fields: [],
hooks: {
beforeRead: [
async ({ doc }) => {
await Effect.gen(function* () {
const dbClient = yield* DbClient;
yield* Effect.log('Test collection:', dbClient, doc);
}).pipe(Effect.provide(Logger.logFmt), Runtime.runPromise(runtime));
},
],
},
},
],
db,
email: emailAdapter,
});
});