🏡 index : quine-global/webdriverio.git

const {
    After,
    AfterAll,
    AfterStep,

    Before,
    BeforeAll,
    BeforeStep,

    Given,
    When,
    Then,

    DataTable,

    World,

    setDefaultTimeout,
    setDefinitionFunctionWrapper,
    setWorldConstructor,
    defineParameterType,
    defineStep

// eslint-disable-next-line @typescript-eslint/no-require-imports
} = require('@cucumber/cucumber')

const adapterFactory = {
    init: async function initCucumberFramework (...args: unknown[]) {
        const { CucumberAdapter } = await import('./index.js')
        // @ts-expect-error just passing through args
        const adapter = new CucumberAdapter(...args as unknown[])
        const instance = await adapter.init()
        return instance
    },
    After,
    AfterAll,
    AfterStep,

    Before,
    BeforeAll,
    BeforeStep,

    Given,
    When,
    Then,

    DataTable,

    World,

    setDefaultTimeout,
    setDefinitionFunctionWrapper,
    setWorldConstructor,
    defineParameterType,
    defineStep,

    publishCucumberReport: async function (cucumberMessageDir: string) {
        const { publishCucumberReport } = await import('./index.js')
        await publishCucumberReport(cucumberMessageDir)
    }
}

module.exports = adapterFactory