UNPKG

1.81 kBJavaScriptView Raw
1'use strict'
2
3const { isTruthy } = require('./utils/remove_falsy')
4
5// `build.commandOrigin`, `build.publishOrigin` and `plugins[*].origin` constants
6const UI_ORIGIN = 'ui'
7const CONFIG_ORIGIN = 'config'
8const DEFAULT_ORIGIN = 'default'
9const INLINE_ORIGIN = 'inline'
10
11// Add `build.commandOrigin`, `build.publishOrigin` and `plugins[*].origin`.
12// This shows whether those properties came from the `ui` or from the `config`.
13const addOrigins = function (config, origin) {
14 const configA = addBuildCommandOrigin({ config, origin })
15 const configB = addBuildPublishOrigin({ config: configA, origin })
16 const configC = addConfigPluginOrigin({ config: configB, origin })
17 const configD = addHeadersOrigin({ config: configC, origin })
18 const configE = addRedirectsOrigin({ config: configD, origin })
19 return configE
20}
21
22const addBuildCommandOrigin = function ({ config, config: { build = {} }, origin }) {
23 return isTruthy(build.command) ? { ...config, build: { ...build, commandOrigin: origin } } : config
24}
25
26const addBuildPublishOrigin = function ({ config, config: { build = {} }, origin }) {
27 return isTruthy(build.publish) ? { ...config, build: { ...build, publishOrigin: origin } } : config
28}
29
30const addConfigPluginOrigin = function ({ config, config: { plugins }, origin }) {
31 return Array.isArray(plugins) ? { ...config, plugins: plugins.map((plugin) => ({ ...plugin, origin })) } : config
32}
33
34const addHeadersOrigin = function ({ config, config: { headers }, origin }) {
35 return isTruthy(headers) ? { ...config, headersOrigin: origin } : config
36}
37
38const addRedirectsOrigin = function ({ config, config: { redirects }, origin }) {
39 return isTruthy(redirects) ? { ...config, redirectsOrigin: origin } : config
40}
41
42module.exports = { addOrigins, UI_ORIGIN, CONFIG_ORIGIN, DEFAULT_ORIGIN, INLINE_ORIGIN }