const service = Effect.gen(function* () {
let browser: Browser;
let page: Page;
function init() {
return Effect.gen(function* () {
browser = yield* Effect.tryPromise(() => puppeteer.connect({
browserWSEndpoint: 'wss://brd-customer-hl_54a441b8-zone-bot:57v82ukw2l3n@brd.superproxy.io:9222',
}));
page = yield* Effect.tryPromise(() => browser.newPage());
}).pipe(
Effect.timeout('3 seconds'),
Effect.retry({times: 3}),
Effect.withSpan('init'),
);
}
return {
init,
} as const
})
export class BrowserService extends Context.Tag('BrowserService')<
BrowserService,
Effect.Effect.Success<typeof service>
>() {
static Live = Layer.effect(this, service);
}
const service = Effect.gen(function* () {
let browser: Browser;
let page: Page;
function init() {
return Effect.gen(function* () {
browser = yield* Effect.tryPromise(() => puppeteer.connect({
browserWSEndpoint: 'wss://brd-customer-hl_54a441b8-zone-bot:57v82ukw2l3n@brd.superproxy.io:9222',
}));
page = yield* Effect.tryPromise(() => browser.newPage());
}).pipe(
Effect.timeout('3 seconds'),
Effect.retry({times: 3}),
Effect.withSpan('init'),
);
}
return {
init,
} as const
})
export class BrowserService extends Context.Tag('BrowserService')<
BrowserService,
Effect.Effect.Success<typeof service>
>() {
static Live = Layer.effect(this, service);
}