Skip to content

Commit fc13250

Browse files
committed
refactor: rename throwOnParameterLimitExceeded to throwOnLimitExceeded
- adds clarity for using the same variable (`throwOnLimitExceeded`) for both `parameterLimit` and `arrayLimit`.
1 parent affbfc0 commit fc13250

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,17 +135,17 @@ var limited = qs.parse('a=b&c=d', { parameterLimit: 1 });
135135
assert.deepEqual(limited, { a: 'b' });
136136
```
137137

138-
If you want an error to be thrown whenever the parameter limit is exceeded, set the `throwOnParameterLimitExceeded` option to `true`. This option will generate a descriptive error if the query string exceeds the parameterLimit.
138+
If you want an error to be thrown whenever the parameter limit is exceeded, set the `throwOnLimitExceeded` option to `true`. This option will generate a descriptive error if the query string exceeds the parameterLimit.
139139
```javascript
140140
try {
141-
qs.parse('a=1&b=2&c=3&d=4', { parameterLimit: 3, throwOnParameterLimitExceeded: true });
141+
qs.parse('a=1&b=2&c=3&d=4', { parameterLimit: 3, throwOnLimitExceeded: true });
142142
} catch (err) {
143143
assert(err instanceof Error);
144144
assert.strictEqual(err.message, 'Parameter limit exceeded. Only 3 parameters allowed.');
145145
}
146146
```
147147

148-
When `throwOnParameterLimitExceeded` is set to `false` (default), **qs** will parse up to the specified `parameterLimit` and ignore the rest without throwing an error.
148+
When `throwOnLimitExceeded` is set to `false` (default), **qs** will parse up to the specified `parameterLimit` and ignore the rest without throwing an error.
149149

150150
To bypass the leading question mark, use `ignoreQueryPrefix`:
151151

lib/parse.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ var parseValues = function parseQueryStringValues(str, options) {
6262
var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
6363
var parts = cleanStr.split(
6464
options.delimiter,
65-
options.throwOnParameterLimitExceeded ? limit + 1 : limit
65+
options.throwOnLimitExceeded ? limit + 1 : limit
6666
);
6767

6868
// Check if parts exceed the parameter limit and handle it
69-
if (options.throwOnParameterLimitExceeded && parts.length > limit) {
69+
if (options.throwOnLimitExceeded && parts.length > limit) {
7070
throw new Error(`Parameter limit exceeded. Only ${limit} parameters allowed.`);
7171
}
7272

@@ -247,8 +247,8 @@ var normalizeParseOptions = function normalizeParseOptions(opts) {
247247
throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
248248
}
249249

250-
if (typeof opts.throwOnParameterLimitExceeded !== 'undefined' && typeof opts.throwOnParameterLimitExceeded !== 'boolean') {
251-
throw new TypeError('`throwOnParameterLimitExceeded` option must be a boolean');
250+
if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {
251+
throw new TypeError('`throwOnLimitExceeded` option must be a boolean');
252252
}
253253

254254
var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
@@ -283,7 +283,7 @@ var normalizeParseOptions = function normalizeParseOptions(opts) {
283283
plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
284284
strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,
285285
strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,
286-
throwOnParameterLimitExceeded: typeof opts.throwOnParameterLimitExceeded === 'boolean' ? opts.throwOnParameterLimitExceeded : false
286+
throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false
287287
};
288288
};
289289

test/parse.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,41 +1037,41 @@ test('parse()', function (t) {
10371037

10381038
t.test('parameter limit tests', function (st) {
10391039
st.test('does not throw error when within parameter limit', function (sst) {
1040-
const result = qs.parse('a=1&b=2&c=3', { parameterLimit: 5, throwOnParameterLimitExceeded: true });
1040+
const result = qs.parse('a=1&b=2&c=3', { parameterLimit: 5, throwOnLimitExceeded: true });
10411041
sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'Should parse without errors');
10421042
sst.end();
10431043
});
10441044

1045-
st.test('throws error when throwOnParameterLimitExceeded is present but not boolean', function (sst) {
1045+
st.test('throws error when throwOnLimitExceeded is present but not boolean', function (sst) {
10461046
sst.throws(
10471047
function () {
1048-
qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnParameterLimitExceeded: "true" });
1048+
qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnLimitExceeded: "true" });
10491049
},
1050-
new TypeError('`throwOnParameterLimitExceeded` option must be a boolean'),
1051-
'Should throw error when throwOnParameterLimitExceeded is present and not boolean'
1050+
new TypeError('`throwOnLimitExceeded` option must be a boolean'),
1051+
'Should throw error when throwOnLimitExceeded is present and not boolean'
10521052
);
10531053
sst.end();
10541054
});
10551055

10561056
st.test('throws error when parameter limit exceeded', function (sst) {
10571057
sst.throws(
10581058
function () {
1059-
qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnParameterLimitExceeded: true });
1059+
qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnLimitExceeded: true });
10601060
},
10611061
new Error('Parameter limit exceeded. Only 3 parameters allowed.'),
10621062
'Should throw error when parameter limit is exceeded'
10631063
);
10641064
sst.end();
10651065
});
10661066

1067-
st.test('silently truncates when throwOnParameterLimitExceeded is not given', function (sst) {
1067+
st.test('silently truncates when throwOnLimitExceeded is not given', function (sst) {
10681068
const result = qs.parse('a=1&b=2&c=3&d=4&e=5', { parameterLimit: 3 });
10691069
sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'Should parse and truncate silently');
10701070
sst.end();
10711071
});
10721072

10731073
st.test('silently truncates when parameter limit exceeded without error', function (sst) {
1074-
const result = qs.parse('a=1&b=2&c=3&d=4&e=5', { parameterLimit: 3, throwOnParameterLimitExceeded: false });
1074+
const result = qs.parse('a=1&b=2&c=3&d=4&e=5', { parameterLimit: 3, throwOnLimitExceeded: false });
10751075
sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'Should parse and truncate silently');
10761076
sst.end();
10771077
});

0 commit comments

Comments
 (0)