Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 1x 1x 5x 1x 4x 4x 4x 4x 1x 1x 1x 1x 4x 5x 5x 4x 1x 4x 2x 2x | import express from 'express'
import fs from 'fs-extra'
import morgan from 'morgan'
import path from 'path'
import logger from '@wdio/logger'
const log = logger('@wdio/static-server-service')
const DEFAULT_LOG_NAME = 'wdio-static-server-service.log'
export default class StaticServerLauncher {
onPrepare({
outputDir,
staticServerFolders: folders,
staticServerPort: port = 4567,
staticServerMiddleware: middleware = []
}) {
if (!folders) {
return
}
this.server = express()
this.folders = folders
this.port = port
if (outputDir) {
const file = path.join(outputDir, DEFAULT_LOG_NAME)
fs.createFileSync(file)
const stream = fs.createWriteStream(file)
this.server.use(morgan('tiny', { stream }))
}
(Array.isArray(folders) ? folders : [folders]).forEach((folder) => {
log.info('Mounting folder `%s` at `%s`', path.resolve(folder.path), folder.mount)
this.server.use(folder.mount, express.static(folder.path))
})
middleware.forEach(
(ware) => this.server.use(ware.mount, ware.middleware))
return new Promise((resolve, reject) => this.server.listen(this.port, (err) => {
/* istanbul ignore next */
if (err) {
log.error(`Couldn't start static server: ${err.message}`)
return reject(err)
}
log.info(`Static server running at http://localhost:${port}`)
resolve()
}))
}
}
|