UNPKG

@dillonkearns/elm-graphql

Version:

<img src="https://cdn.jsdelivr.net/gh/martimatix/logo-graphqelm/logo.svg" alt="dillonearns/elm-graphql logo" width="40%" align="right">

94 lines (76 loc) 1.99 kB
const { validate } = require('@webpack-contrib/cli-utils'); const flags = require('../schemas/flags'); function parseGroup(obj, prefix) { let result; for (const key of Object.keys(obj)) { if (obj[key] && key.indexOf(prefix) === 0) { if (!result) { result = {}; } const name = key.replace(prefix, '').toLowerCase(); result[name] = obj[key]; } } return result; } module.exports = { flags, apply(argv) { const result = Object.assign({}, argv); const https = parseGroup(argv, 'https'); const open = parseGroup(argv, 'open'); const devMiddleware = argv.devWare || {}; const hotClient = argv.hotClient || {}; validate({ argv, flags, prefix: 'serve' }); if (https) { if (https.pass) { https.passphrase = https.pass; delete https.pass; } result.https = https; delete result.httpsCert; delete result.httpsKey; delete result.httpsPass; delete result.httpsPfx; } if (open) { if (!open.path) { open.path = '/'; } result.open = open; delete result.openApp; delete result.openPath; } if (argv.devWare) { result.devMiddleware = argv.devWare; delete result.devWare; } if (argv.hotClient === false) { hotClient.hmr = false; } else { if (argv.hmr === false) { hotClient.hmr = false; } if (argv.reload === false) { hotClient.reload = false; delete result.reload; } } delete result.hmr; if (argv.logLevel) { devMiddleware.logLevel = result.logLevel; hotClient.logLevel = result.logLevel; } if (argv.logTime) { devMiddleware.logTime = true; hotClient.logTime = true; } if (Object.keys(devMiddleware).length) { result.devMiddleware = devMiddleware; } if (Object.keys(hotClient).length) { result.hotClient = hotClient; } return result; }, };