Skip to content
This repository was archived by the owner on Oct 20, 2022. It is now read-only.

Commit b58cc06

Browse files
authored
Merge pull request #425 from netlify/fix/remove-feature-flag
2 parents 31dc860 + 4d5036f commit b58cc06

File tree

4 files changed

+19
-30
lines changed

4 files changed

+19
-30
lines changed

src/all.js

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,19 @@ export const parseAllRedirects = async function ({
1111
netlifyConfigPath,
1212
configRedirects = [],
1313
minimal = false,
14-
featureFlags = {},
1514
}) {
1615
const [
1716
{ redirects: fileRedirects, errors: fileParseErrors },
1817
{ redirects: parsedConfigRedirects, errors: configParseErrors },
19-
] = await Promise.all([getFileRedirects(redirectsFiles, featureFlags), getConfigRedirects(netlifyConfigPath)])
20-
const { redirects: normalizedFileRedirects, errors: fileNormalizeErrors } = normalizeRedirects(
21-
fileRedirects,
22-
minimal,
23-
featureFlags,
24-
)
18+
] = await Promise.all([getFileRedirects(redirectsFiles), getConfigRedirects(netlifyConfigPath)])
19+
const { redirects: normalizedFileRedirects, errors: fileNormalizeErrors } = normalizeRedirects(fileRedirects, minimal)
2520
const { redirects: normalizedParsedConfigRedirects, errors: parsedConfigNormalizeErrors } = normalizeRedirects(
2621
parsedConfigRedirects,
2722
minimal,
28-
featureFlags,
2923
)
3024
const { redirects: normalizedConfigRedirects, errors: configNormalizeErrors } = normalizeRedirects(
3125
configRedirects,
3226
minimal,
33-
featureFlags,
3427
)
3528
const { redirects, errors: mergeErrors } = mergeRedirects({
3629
fileRedirects: normalizedFileRedirects,
@@ -47,10 +40,8 @@ export const parseAllRedirects = async function ({
4740
return { redirects, errors }
4841
}
4942

50-
const getFileRedirects = async function (redirectsFiles, featureFlags) {
51-
const resultsArrays = await Promise.all(
52-
redirectsFiles.map((redirectFile) => parseFileRedirects(redirectFile, featureFlags)),
53-
)
43+
const getFileRedirects = async function (redirectsFiles) {
44+
const resultsArrays = await Promise.all(redirectsFiles.map((redirectFile) => parseFileRedirects(redirectFile)))
5445
return concatResults(resultsArrays)
5546
}
5647

src/line_parser.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ import { isUrl } from './url.js'
2424
// - "Sign" is a special condition
2525
// Unlike "redirects" in "netlify.toml", the "headers" and "edge_handlers"
2626
// cannot be specified.
27-
export const parseFileRedirects = async function (redirectFile, featureFlags) {
28-
const results = await parseRedirects(redirectFile, featureFlags)
27+
export const parseFileRedirects = async function (redirectFile) {
28+
const results = await parseRedirects(redirectFile)
2929
return splitResults(results)
3030
}
3131

32-
const parseRedirects = async function (redirectFile, featureFlags) {
32+
const parseRedirects = async function (redirectFile) {
3333
if (!(await pathExists(redirectFile))) {
3434
return []
3535
}
@@ -42,7 +42,7 @@ const parseRedirects = async function (redirectFile, featureFlags) {
4242
.split('\n')
4343
.map(normalizeLine)
4444
.filter(hasRedirect)
45-
.map((redirectLine) => parseRedirect(redirectLine, featureFlags))
45+
.map((redirectLine) => parseRedirect(redirectLine))
4646
}
4747

4848
const readRedirectFile = async function (redirectFile) {
@@ -61,9 +61,9 @@ const hasRedirect = function ({ line }) {
6161
return line !== '' && !isComment(line)
6262
}
6363

64-
const parseRedirect = function ({ line, index }, featureFlags) {
64+
const parseRedirect = function ({ line, index }) {
6565
try {
66-
return parseRedirectLine(line, featureFlags)
66+
return parseRedirectLine(line)
6767
} catch (error) {
6868
return new Error(`Could not parse redirect line ${index + 1}:
6969
${line}
@@ -72,7 +72,7 @@ ${error.message}`)
7272
}
7373

7474
// Parse a single redirect line
75-
const parseRedirectLine = function (line, featureFlags) {
75+
const parseRedirectLine = function (line) {
7676
const [from, ...parts] = trimComment(line.split(LINE_TOKENS_REGEXP))
7777

7878
if (parts.length === 0) {
@@ -86,7 +86,7 @@ const parseRedirectLine = function (line, featureFlags) {
8686
} = parseParts(from, parts)
8787

8888
const query = parsePairs(queryParts)
89-
const { status, force } = parseStatus(statusPart, featureFlags)
89+
const { status, force } = parseStatus(statusPart)
9090
const { Sign, signed = Sign, ...conditions } = parsePairs(conditionsParts)
9191
return { from, query, to, status, force, conditions, signed }
9292
}
@@ -129,14 +129,14 @@ const isToPart = function (part) {
129129
}
130130

131131
// Parse the `status` part
132-
const parseStatus = function (statusPart, featureFlags) {
132+
const parseStatus = function (statusPart) {
133133
if (statusPart === undefined) {
134134
return {}
135135
}
136136

137137
const status = transtypeStatusCode(statusPart)
138138

139-
if (featureFlags.redirects_parser_normalize_status && !isValidStatusCode(status)) {
139+
if (!isValidStatusCode(status)) {
140140
return { status: statusPart, force: false }
141141
}
142142

src/normalize.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,23 @@ import { isUrl } from './url.js'
99
// Validate and normalize an array of `redirects` objects.
1010
// This step is performed after `redirects` have been parsed from either
1111
// `netlify.toml` or `_redirects`.
12-
export const normalizeRedirects = function (redirects, minimal, featureFlags) {
12+
export const normalizeRedirects = function (redirects, minimal) {
1313
if (!Array.isArray(redirects)) {
1414
const error = new TypeError(`Redirects must be an array not: ${redirects}`)
1515
return splitResults([error])
1616
}
1717

18-
const results = redirects.map((obj, index) => parseRedirect(obj, index, minimal, featureFlags))
18+
const results = redirects.map((obj, index) => parseRedirect(obj, index, minimal))
1919
return splitResults(results)
2020
}
2121

22-
const parseRedirect = function (obj, index, minimal, featureFlags) {
22+
const parseRedirect = function (obj, index, minimal) {
2323
if (!isPlainObj(obj)) {
2424
return new TypeError(`Redirects must be objects not: ${obj}`)
2525
}
2626

2727
try {
28-
return parseRedirectObject(obj, minimal, featureFlags)
28+
return parseRedirectObject(obj, minimal)
2929
} catch (error) {
3030
return new Error(`Could not parse redirect number ${index + 1}:
3131
${JSON.stringify(obj)}
@@ -56,7 +56,6 @@ const parseRedirectObject = function (
5656
headers = {},
5757
},
5858
minimal,
59-
featureFlags,
6059
) {
6160
if (from === undefined) {
6261
throw new Error('Missing "from" field')
@@ -66,7 +65,7 @@ const parseRedirectObject = function (
6665
throw new Error('"headers" field must be an object')
6766
}
6867

69-
const statusA = featureFlags.redirects_parser_normalize_status ? normalizeStatus(status) : status
68+
const statusA = normalizeStatus(status)
7069
const finalTo = addForwardRule(from, statusA, to)
7170
const { scheme, host, path } = parseFrom(from)
7271
const proxy = isProxy(statusA, finalTo)

tests/helpers/main.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ const parseRedirects = async function ({ redirectsFiles, netlifyConfigPath, conf
2626
...(netlifyConfigPath && { netlifyConfigPath: addConfigFixtureDir(netlifyConfigPath) }),
2727
configRedirects,
2828
minimal,
29-
featureFlags: { redirects_parser_normalize_status: true },
3029
})
3130
}
3231

0 commit comments

Comments
 (0)