@furystack/rest 4.1.4 → 4.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,10 +16,14 @@ const tryDecodeQueryParam = (queryParam) => {
16
16
  };
17
17
  exports.tryDecodeQueryParam = tryDecodeQueryParam;
18
18
  const deserializeQueryString = (fullQueryString) => {
19
- const entries = fullQueryString
20
- .replace('?', '') // trim starting ?
19
+ const queryString = fullQueryString?.replace?.('?', ''); // trim starting ?
20
+ if (!queryString) {
21
+ return {};
22
+ }
23
+ const entries = queryString
21
24
  .split('&')
22
- .map((value) => value.split('='));
25
+ .map((value) => value.split('='))
26
+ .filter(([key, value]) => key?.length && value?.length); // filter out empty keys
23
27
  const dedupedValues = entries
24
28
  .reduce((prev, current) => {
25
29
  const currentKey = current[0];
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-query-string.js","sourceRoot":"","sources":["../src/deserialize-query-string.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,UAAe,EAAE,EAAE;IACrD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAE,UAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KACtE;IAAC,MAAM;QACN,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,UAAU,CAAA;SAClB;KACF;AACH,CAAC,CAAA;AAVY,QAAA,mBAAmB,uBAU/B;AAEM,MAAM,sBAAsB,GAAG,CAAC,eAAuB,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,eAAe;SAC5B,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,kBAAkB;SACnC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAEnC,MAAM,aAAa,GAAG,OAAO;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;QACzD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAA;YAC5F,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;SACjB;QACD,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAGtF,CAAA;QACD,OAAO,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC5B,CAAC,EAAE,EAAwC,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAExD,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;AAC1C,CAAC,CAAA;AAxBY,QAAA,sBAAsB,0BAwBlC"}
1
+ {"version":3,"file":"deserialize-query-string.js","sourceRoot":"","sources":["../src/deserialize-query-string.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,UAAe,EAAE,EAAE;IACrD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAE,UAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KACtE;IAAC,MAAM;QACN,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,UAAU,CAAA;SAClB;KACF;AACH,CAAC,CAAA;AAVY,QAAA,mBAAmB,uBAU/B;AAEM,MAAM,sBAAsB,GAAG,CAAC,eAAuB,EAAE,EAAE;IAChE,MAAM,WAAW,GAAG,eAAe,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAAC,kBAAkB;IAE1E,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,EAAE,CAAA;KACV;IAED,MAAM,OAAO,GAAG,WAAW;SACxB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC,CAAA,CAAC,wBAAwB;IAElF,MAAM,aAAa,GAAG,OAAO;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,YAAY,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;QACzD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAA;YAC5F,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;SACjB;QACD,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAGtF,CAAA;QACD,OAAO,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC5B,CAAC,EAAE,EAAwC,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAExD,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;AAC1C,CAAC,CAAA;AA9BY,QAAA,sBAAsB,0BA8BlC"}
@@ -3,12 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const deserialize_query_string_1 = require("./deserialize-query-string");
4
4
  const serialize_to_query_string_1 = require("./serialize-to-query-string");
5
5
  describe('deserializeQueryString', () => {
6
+ it('Should serialize a null value', () => {
7
+ expect((0, deserialize_query_string_1.deserializeQueryString)(null)).toEqual({});
8
+ });
9
+ it('Should serialize an undefined value', () => {
10
+ expect((0, deserialize_query_string_1.deserializeQueryString)(undefined)).toEqual({});
11
+ });
12
+ it('Should serialize an empty string value', () => {
13
+ expect((0, deserialize_query_string_1.deserializeQueryString)('')).toEqual({});
14
+ });
15
+ it('Should serialize a string value with no keys / values', () => {
16
+ expect((0, deserialize_query_string_1.deserializeQueryString)('?')).toEqual({});
17
+ });
18
+ it('Should serialize a string with given value but empty key', () => {
19
+ expect((0, deserialize_query_string_1.deserializeQueryString)('?=alma')).toEqual({});
20
+ });
21
+ it('Should serialize a string with given key but empty value', () => {
22
+ expect((0, deserialize_query_string_1.deserializeQueryString)('?alma=')).toEqual({});
23
+ });
6
24
  it('Should serialize a list of primitive values', () => {
7
25
  expect((0, deserialize_query_string_1.deserializeQueryString)('?foo=value&bar=2&baz=false')).toEqual({ foo: 'value', bar: 2, baz: false });
8
26
  });
9
27
  it('Should serialize an array', () => {
10
28
  expect((0, deserialize_query_string_1.deserializeQueryString)('?foo[]=value&foo[]=2&foo[]=false')).toEqual({ foo: ['value', 2, false] });
11
29
  });
30
+ it('Should override a value if not specified as an array', () => {
31
+ expect((0, deserialize_query_string_1.deserializeQueryString)('?foo=value&foo=2&foo=false&foo=bar')).toEqual({ foo: 'bar' });
32
+ });
12
33
  it('Should serialize and deserialize an object with primitives', () => {
13
34
  const value = { foo: 1, bar: 'foo', baz: false, asd: null };
14
35
  expect((0, deserialize_query_string_1.deserializeQueryString)((0, serialize_to_query_string_1.serializeToQueryString)(value))).toEqual(value);
@@ -17,8 +38,8 @@ describe('deserializeQueryString', () => {
17
38
  const value = { foo: [1, 'foo', false, null] };
18
39
  expect((0, deserialize_query_string_1.deserializeQueryString)((0, serialize_to_query_string_1.serializeToQueryString)(value))).toEqual(value);
19
40
  });
20
- it('Should serialize and deserialize two arrays with primitives', () => {
21
- const value = { foo: [1, 'foo', false, null], bar: [3, 'bar', true, -3.5] };
41
+ it('Should serialize and deserialize a complex structure', () => {
42
+ const value = { foo: [1, 'foo', false, null], bar: [3, 'bar', true, -3.5], baz: 'no' };
22
43
  expect((0, deserialize_query_string_1.deserializeQueryString)((0, serialize_to_query_string_1.serializeToQueryString)(value))).toEqual(value);
23
44
  });
24
45
  });
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-query-string.spec.js","sourceRoot":"","sources":["../src/deserialize-query-string.spec.ts"],"names":[],"mappings":";;AAAA,yEAAmE;AACnE,2EAAoE;AAEpE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,IAAA,iDAAsB,EAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5G,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,IAAA,iDAAsB,EAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1G,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;QAC3D,MAAM,CAAC,IAAA,iDAAsB,EAAC,IAAA,kDAAsB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAA;QAC9C,MAAM,CAAC,IAAA,iDAAsB,EAAC,IAAA,kDAAsB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAA;QAC3E,MAAM,CAAC,IAAA,iDAAsB,EAAC,IAAA,kDAAsB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"deserialize-query-string.spec.js","sourceRoot":"","sources":["../src/deserialize-query-string.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@furystack/rest",
3
- "version": "4.1.4",
3
+ "version": "4.1.5",
4
4
  "description": "Generic REST package",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -2,6 +2,30 @@ import { deserializeQueryString } from './deserialize-query-string'
2
2
  import { serializeToQueryString } from './serialize-to-query-string'
3
3
 
4
4
  describe('deserializeQueryString', () => {
5
+ it('Should serialize a null value', () => {
6
+ expect(deserializeQueryString(null as any)).toEqual({})
7
+ })
8
+
9
+ it('Should serialize an undefined value', () => {
10
+ expect(deserializeQueryString(undefined as any)).toEqual({})
11
+ })
12
+
13
+ it('Should serialize an empty string value', () => {
14
+ expect(deserializeQueryString('')).toEqual({})
15
+ })
16
+
17
+ it('Should serialize a string value with no keys / values', () => {
18
+ expect(deserializeQueryString('?')).toEqual({})
19
+ })
20
+
21
+ it('Should serialize a string with given value but empty key', () => {
22
+ expect(deserializeQueryString('?=alma')).toEqual({})
23
+ })
24
+
25
+ it('Should serialize a string with given key but empty value', () => {
26
+ expect(deserializeQueryString('?alma=')).toEqual({})
27
+ })
28
+
5
29
  it('Should serialize a list of primitive values', () => {
6
30
  expect(deserializeQueryString('?foo=value&bar=2&baz=false')).toEqual({ foo: 'value', bar: 2, baz: false })
7
31
  })
@@ -10,6 +34,10 @@ describe('deserializeQueryString', () => {
10
34
  expect(deserializeQueryString('?foo[]=value&foo[]=2&foo[]=false')).toEqual({ foo: ['value', 2, false] })
11
35
  })
12
36
 
37
+ it('Should override a value if not specified as an array', () => {
38
+ expect(deserializeQueryString('?foo=value&foo=2&foo=false&foo=bar')).toEqual({ foo: 'bar' })
39
+ })
40
+
13
41
  it('Should serialize and deserialize an object with primitives', () => {
14
42
  const value = { foo: 1, bar: 'foo', baz: false, asd: null }
15
43
  expect(deserializeQueryString(serializeToQueryString(value))).toEqual(value)
@@ -20,8 +48,8 @@ describe('deserializeQueryString', () => {
20
48
  expect(deserializeQueryString(serializeToQueryString(value))).toEqual(value)
21
49
  })
22
50
 
23
- it('Should serialize and deserialize two arrays with primitives', () => {
24
- const value = { foo: [1, 'foo', false, null], bar: [3, 'bar', true, -3.5] }
51
+ it('Should serialize and deserialize a complex structure', () => {
52
+ const value = { foo: [1, 'foo', false, null], bar: [3, 'bar', true, -3.5], baz: 'no' }
25
53
  expect(deserializeQueryString(serializeToQueryString(value))).toEqual(value)
26
54
  })
27
55
  })
@@ -11,10 +11,16 @@ export const tryDecodeQueryParam = (queryParam: any) => {
11
11
  }
12
12
 
13
13
  export const deserializeQueryString = (fullQueryString: string) => {
14
- const entries = fullQueryString
15
- .replace('?', '') // trim starting ?
14
+ const queryString = fullQueryString?.replace?.('?', '') // trim starting ?
15
+
16
+ if (!queryString) {
17
+ return {}
18
+ }
19
+
20
+ const entries = queryString
16
21
  .split('&')
17
22
  .map((value) => value.split('='))
23
+ .filter(([key, value]) => key?.length && value?.length) // filter out empty keys
18
24
 
19
25
  const dedupedValues = entries
20
26
  .reduce((prev, current) => {
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-query-string.d.ts","sourceRoot":"","sources":["../src/deserialize-query-string.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,eAAgB,GAAG,QAUlD,CAAA;AAED,eAAO,MAAM,sBAAsB,oBAAqB,MAAM,QAwB7D,CAAA"}
1
+ {"version":3,"file":"deserialize-query-string.d.ts","sourceRoot":"","sources":["../src/deserialize-query-string.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,eAAgB,GAAG,QAUlD,CAAA;AAED,eAAO,MAAM,sBAAsB,oBAAqB,MAAM,QA8B7D,CAAA"}