export class CMS extends Effect.Service<CMS>()("CMS", {
effect: (draftMode: boolean) => Effect.gen(function*() {
const accessToken = yield* Config.redacted("CONTENTFUL_ACCESS_TOKEN")
const space = yield* Config.string("CONTENTFUL_SPACE_ID")
const client = createClient({
accessToken: Redacted.value(accessToken),
space,
host: draftMode ? "preview.contentful.com" : "cdn.contentful.com"
})
return client
})
}){}
const program = (draftMode: boolean) => Effect.gen(function*() {
const cms = yield* CMS
}).pipe(Effect.provide(CMS.Default(draftMode)))
export class CMS extends Effect.Service<CMS>()("CMS", {
effect: (draftMode: boolean) => Effect.gen(function*() {
const accessToken = yield* Config.redacted("CONTENTFUL_ACCESS_TOKEN")
const space = yield* Config.string("CONTENTFUL_SPACE_ID")
const client = createClient({
accessToken: Redacted.value(accessToken),
space,
host: draftMode ? "preview.contentful.com" : "cdn.contentful.com"
})
return client
})
}){}
const program = (draftMode: boolean) => Effect.gen(function*() {
const cms = yield* CMS
}).pipe(Effect.provide(CMS.Default(draftMode)))