@sparted/shared-library 1.0.8 → 1.0.11

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.
@@ -2,19 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var buildSearchParams = require('../http/build-search-params.js');
5
6
  var getCdnFromS3Url_util = require('./utils/get-cdn-from-s3-url.util.js');
6
7
  var getCdnUrl_util = require('./utils/get-cdn-url.util.js');
7
8
 
8
- const imgixTransformationQueries = ({ fit, devicePixelRatio, height, width, quality, }) => [
9
- '?auto=compress,format',
10
- fit === 'crop' ? '&fit=crop' : '',
11
- Number.isFinite(devicePixelRatio) ? `&dpr=${devicePixelRatio}` : '',
12
- Number.isFinite(height) ? `&h=${height}` : '',
13
- Number.isFinite(width) ? `&w=${width}` : '',
14
- quality !== undefined && quality >= 0 && quality <= 100
15
- ? `&q=${quality}`
16
- : '',
17
- ].join('');
9
+ const imgixTransformationQueries = ({ fit, width, height, quality, compress = true, devicePixelRatio, }) => {
10
+ const params = {
11
+ auto: compress ? 'compress,format' : undefined,
12
+ fit: fit === 'crop' ? 'crop' : undefined,
13
+ dpr: Number.isFinite(devicePixelRatio) ? devicePixelRatio : undefined,
14
+ h: Number.isFinite(height) ? height : undefined,
15
+ w: Number.isFinite(width) ? width : undefined,
16
+ q: quality !== undefined && quality >= 0 && quality <= 100 ? quality : undefined,
17
+ };
18
+ const searchParams = buildSearchParams.buildSearchParams(params).toString();
19
+ return searchParams ? `?${searchParams}` : '';
20
+ };
18
21
  const twicpicsTransformationQueries = (params) => {
19
22
  if (params.fit !== undefined) {
20
23
  if (params.width === undefined || params.height === undefined) {
@@ -25,7 +28,9 @@ const twicpicsTransformationQueries = (params) => {
25
28
  return `?twic=v1/${params.fit}=${params.width}x${params.height}`;
26
29
  }
27
30
  if (params.width !== undefined) {
28
- const resizeHeight = params.height !== undefined ? `x${params.height}` : '';
31
+ const resizeHeight = params.height !== undefined
32
+ ? `x${params.height}`
33
+ : '';
29
34
  return `?twic=v1/cover=${params.width}${resizeHeight}`;
30
35
  }
31
36
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"cdn.factory.js","sources":["../../src/cdn/cdn.factory.ts"],"sourcesContent":["import type { CreateCdn, TransformationQueries } from './types';\nimport { getCdnFromS3UrlFactory } from './utils/get-cdn-from-s3-url.util';\nimport { getCdnUrlFactory } from './utils/get-cdn-url.util';\n\nexport const imgixTransformationQueries: TransformationQueries = ({\n fit,\n devicePixelRatio,\n height,\n width,\n quality,\n}) => [\n '?auto=compress,format',\n fit === 'crop' ? '&fit=crop' : '',\n Number.isFinite(devicePixelRatio) ? `&dpr=${devicePixelRatio}` : '',\n Number.isFinite(height) ? `&h=${height}` : '',\n Number.isFinite(width) ? `&w=${width}` : '',\n quality !== undefined && quality >= 0 && quality <= 100\n ? `&q=${quality}`\n : '',\n].join('');\n\nexport const twicpicsTransformationQueries: TransformationQueries = (\n params,\n) => {\n if (params.fit !== undefined) {\n if (params.width === undefined || params.height === undefined) {\n // eslint-disable-next-line no-console\n console.error('⚠️ The Twicpics api needs a width and a height.');\n return '';\n }\n return `?twic=v1/${params.fit}=${params.width}x${params.height}`;\n }\n if (params.width !== undefined) {\n const resizeHeight = params.height !== undefined ? `x${params.height}` : '';\n return `?twic=v1/cover=${params.width}${resizeHeight}`;\n }\n return '';\n};\n\n/**\n *\n * @param type cdn provider: 'twicpics' | 'imgix'\n * @param domain provider domain\n * @param instanceMapper domain + the result of the instanceMapper will form the base path\n * @returns \\{ getCdnUrl, transformationQueries \\}\n */\nexport const createCdn: CreateCdn = ({ type, domain, instanceMapper }) => {\n const getCdnUrl = getCdnUrlFactory({\n domain,\n instanceMapper,\n transformationQueries:\n type === 'imgix'\n ? imgixTransformationQueries\n : twicpicsTransformationQueries,\n });\n\n return {\n getCdnUrl,\n getCdnFromS3Url: getCdnFromS3UrlFactory({\n getCdnUrl,\n }),\n };\n};\n"],"names":["getCdnUrlFactory","getCdnFromS3UrlFactory"],"mappings":";;;;;;;AAIa,MAAA,0BAA0B,GAA0B,CAAC,EAChE,GAAG,EACH,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,OAAO,GACR,KAAK;IACJ,uBAAuB;IACvB,GAAG,KAAK,MAAM,GAAG,WAAW,GAAG,EAAE;AACjC,IAAA,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAA,KAAA,EAAQ,gBAAgB,CAAA,CAAE,GAAG,EAAE;AACnE,IAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAA,GAAA,EAAM,MAAM,CAAA,CAAE,GAAG,EAAE;AAC7C,IAAA,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAA,GAAA,EAAM,KAAK,CAAA,CAAE,GAAG,EAAE;IAC3C,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG;UACnD,CAAM,GAAA,EAAA,OAAO,CAAE,CAAA;AACjB,UAAE,EAAE;AACP,CAAA,CAAC,IAAI,CAAC,EAAE,EAAE;AAEE,MAAA,6BAA6B,GAA0B,CAClE,MAAM,KACJ;AACF,IAAA,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;QAC5B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;;AAE7D,YAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAClE,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,OAAO,CAAY,SAAA,EAAA,MAAM,CAAC,GAAG,CAAI,CAAA,EAAA,MAAM,CAAC,KAAK,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,KAAA;AACD,IAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;AAC9B,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,GAAG,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAA,CAAE,GAAG,EAAE,CAAC;AAC5E,QAAA,OAAO,kBAAkB,MAAM,CAAC,KAAK,CAAG,EAAA,YAAY,EAAE,CAAC;AACxD,KAAA;AACD,IAAA,OAAO,EAAE,CAAC;AACZ,EAAE;AAEF;;;;;;AAMG;AACI,MAAM,SAAS,GAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,KAAI;IACvE,MAAM,SAAS,GAAGA,+BAAgB,CAAC;QACjC,MAAM;QACN,cAAc;QACd,qBAAqB,EACnB,IAAI,KAAK,OAAO;AACd,cAAE,0BAA0B;AAC5B,cAAE,6BAA6B;AACpC,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,eAAe,EAAEC,2CAAsB,CAAC;YACtC,SAAS;SACV,CAAC;KACH,CAAC;AACJ;;;;;;"}
1
+ {"version":3,"file":"cdn.factory.js","sources":["../../src/cdn/cdn.factory.ts"],"sourcesContent":["import { buildSearchParams } from '../http/build-search-params';\nimport type { CreateCdn, TransformationQueries } from './types';\nimport { getCdnFromS3UrlFactory } from './utils/get-cdn-from-s3-url.util';\nimport { getCdnUrlFactory } from './utils/get-cdn-url.util';\n\nexport const imgixTransformationQueries: TransformationQueries = ({\n fit,\n width,\n height,\n quality,\n compress = true,\n devicePixelRatio,\n}) => {\n const params = {\n auto: compress ? 'compress,format' : undefined,\n fit: fit === 'crop' ? 'crop' : undefined,\n dpr: Number.isFinite(devicePixelRatio) ? devicePixelRatio : undefined,\n h: Number.isFinite(height) ? height : undefined,\n w: Number.isFinite(width) ? width : undefined,\n q: quality !== undefined && quality >= 0 && quality <= 100 ? quality : undefined,\n };\n const searchParams = buildSearchParams(params).toString();\n\n return searchParams ? `?${searchParams}` : '';\n};\n\nexport const twicpicsTransformationQueries: TransformationQueries = (\n params,\n) => {\n if (params.fit !== undefined) {\n if (params.width === undefined || params.height === undefined) {\n // eslint-disable-next-line no-console\n console.error('⚠️ The Twicpics api needs a width and a height.');\n return '';\n }\n\n return `?twic=v1/${params.fit}=${params.width}x${params.height}`;\n }\n if (params.width !== undefined) {\n const resizeHeight = params.height !== undefined\n ? `x${params.height}`\n : '';\n\n return `?twic=v1/cover=${params.width}${resizeHeight}`;\n }\n\n return '';\n};\n\n/**\n *\n * @param type cdn provider: 'twicpics' | 'imgix'\n * @param domain provider domain\n * @param instanceMapper domain + the result of the instanceMapper will form the base path\n * @returns \\{ getCdnUrl, transformationQueries \\}\n */\nexport const createCdn: CreateCdn = ({ type, domain, instanceMapper }) => {\n const getCdnUrl = getCdnUrlFactory({\n domain,\n instanceMapper,\n transformationQueries:\n type === 'imgix'\n ? imgixTransformationQueries\n : twicpicsTransformationQueries,\n });\n\n return {\n getCdnUrl,\n getCdnFromS3Url: getCdnFromS3UrlFactory({\n getCdnUrl,\n }),\n };\n};\n"],"names":["buildSearchParams","getCdnUrlFactory","getCdnFromS3UrlFactory"],"mappings":";;;;;;;;MAKa,0BAA0B,GAA0B,CAAC,EAChE,GAAG,EACH,KAAK,EACL,MAAM,EACN,OAAO,EACP,QAAQ,GAAG,IAAI,EACf,gBAAgB,GACjB,KAAI;AACH,IAAA,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS;QAC9C,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS;AACxC,QAAA,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,GAAG,SAAS;AACrE,QAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS;AAC/C,QAAA,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS;AAC7C,QAAA,CAAC,EAAE,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG,GAAG,OAAO,GAAG,SAAS;KACjF,CAAC;IACF,MAAM,YAAY,GAAGA,mCAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE1D,OAAO,YAAY,GAAG,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,GAAG,EAAE,CAAC;AAChD,EAAE;AAEW,MAAA,6BAA6B,GAA0B,CAClE,MAAM,KACJ;AACF,IAAA,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;QAC5B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;;AAE7D,YAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;AAClE,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAED,QAAA,OAAO,CAAY,SAAA,EAAA,MAAM,CAAC,GAAG,CAAI,CAAA,EAAA,MAAM,CAAC,KAAK,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,KAAA;AACD,IAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;AAC9B,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS;AAC9C,cAAE,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,CAAE,CAAA;cACnB,EAAE,CAAC;AAEP,QAAA,OAAO,kBAAkB,MAAM,CAAC,KAAK,CAAG,EAAA,YAAY,EAAE,CAAC;AACxD,KAAA;AAED,IAAA,OAAO,EAAE,CAAC;AACZ,EAAE;AAEF;;;;;;AAMG;AACI,MAAM,SAAS,GAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,KAAI;IACvE,MAAM,SAAS,GAAGC,+BAAgB,CAAC;QACjC,MAAM;QACN,cAAc;QACd,qBAAqB,EACnB,IAAI,KAAK,OAAO;AACd,cAAE,0BAA0B;AAC5B,cAAE,6BAA6B;AACpC,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,SAAS;QACT,eAAe,EAAEC,2CAAsB,CAAC;YACtC,SAAS;SACV,CAAC;KACH,CAAC;AACJ;;;;;;"}
@@ -5,6 +5,10 @@ export declare type Transformation = {
5
5
  height?: number;
6
6
  devicePixelRatio?: number;
7
7
  quality?: number;
8
+ /**
9
+ * Only for imgix transformations. Default is true.
10
+ */
11
+ compress?: boolean;
8
12
  };
9
13
  export declare type CdnParams = {
10
14
  asThumbnail?: boolean;
@@ -0,0 +1,2 @@
1
+ import type { Primitive } from '../types';
2
+ export declare const buildSearchParams: (params: Record<string, Primitive | undefined>) => URLSearchParams;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const buildSearchParams = (params) => {
6
+ const definedParams = Object
7
+ .entries(params)
8
+ .reduce((acc, [key, value]) => {
9
+ if (value !== undefined) {
10
+ return Object.assign(Object.assign({}, acc), { [key]: String(value) });
11
+ }
12
+ return acc;
13
+ }, {});
14
+ return new URLSearchParams(definedParams);
15
+ };
16
+
17
+ exports.buildSearchParams = buildSearchParams;
18
+ //# sourceMappingURL=build-search-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-search-params.js","sources":["../../src/http/build-search-params.ts"],"sourcesContent":["import type { Primitive } from '../types';\n\nexport const buildSearchParams = (params: Record<string, Primitive | undefined>): URLSearchParams => {\n const definedParams = Object\n .entries(params)\n .reduce((acc, [key, value]) => {\n if (value !== undefined) {\n return {\n ...acc,\n [key]: String(value),\n };\n }\n\n return acc;\n }, {} as Record<string, string>);\n\n return new URLSearchParams(definedParams);\n};\n"],"names":[],"mappings":";;;;AAEa,MAAA,iBAAiB,GAAG,CAAC,MAA6C,KAAqB;IAClG,MAAM,aAAa,GAAG,MAAM;SACzB,OAAO,CAAC,MAAM,CAAC;SACf,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CACN,EAAA,EAAA,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EACpB,CAAA,CAAA;AACH,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACZ,EAAE,EAA4B,CAAC,CAAC;AAEnC,IAAA,OAAO,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;AAC5C;;;;"}
package/http/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './encode-search-object';
2
2
  export * from './fetch-with-timeout';
3
+ export * from './build-search-params';
package/http/index.js CHANGED
@@ -4,10 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var encodeSearchObject = require('./encode-search-object.js');
6
6
  var fetchWithTimeout = require('./fetch-with-timeout.js');
7
+ var buildSearchParams = require('./build-search-params.js');
7
8
 
8
9
 
9
10
 
10
11
  exports.encodeSearchObject = encodeSearchObject.encodeSearchObject;
11
12
  exports.encodeSearchValue = encodeSearchObject.encodeSearchValue;
12
13
  exports.fetchWithTimeout = fetchWithTimeout.fetchWithTimeout;
14
+ exports.buildSearchParams = buildSearchParams.buildSearchParams;
13
15
  //# sourceMappingURL=index.js.map
package/http/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
package/index.js CHANGED
@@ -13,6 +13,7 @@ var formatNumber = require('./formatting/format-number.js');
13
13
  var runWhile = require('./fp/run-while.js');
14
14
  var encodeSearchObject = require('./http/encode-search-object.js');
15
15
  var fetchWithTimeout = require('./http/fetch-with-timeout.js');
16
+ var buildSearchParams = require('./http/build-search-params.js');
16
17
  var createLinkedList = require('./linked-list/create-linked-list.js');
17
18
  var clampNumber = require('./math/clamp-number.js');
18
19
  var interpolate = require('./math/interpolate.js');
@@ -50,6 +51,7 @@ exports.runWhile = runWhile.runWhile;
50
51
  exports.encodeSearchObject = encodeSearchObject.encodeSearchObject;
51
52
  exports.encodeSearchValue = encodeSearchObject.encodeSearchValue;
52
53
  exports.fetchWithTimeout = fetchWithTimeout.fetchWithTimeout;
54
+ exports.buildSearchParams = buildSearchParams.buildSearchParams;
53
55
  exports.createLinkedList = createLinkedList.createLinkedList;
54
56
  exports.clampNumber = clampNumber.clampNumber;
55
57
  exports.interpolate = interpolate.interpolate;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparted/shared-library",
3
- "version": "1.0.8",
3
+ "version": "1.0.11",
4
4
  "repository": "git@github.com:Sparted/shared-library.git",
5
5
  "author": "Thomas <duprethomasfr@gmail.com>",
6
6
  "license": "MIT",
@@ -58,4 +58,4 @@
58
58
  "^.+\\.(t|j)s$": "ts-jest"
59
59
  }
60
60
  }
61
- }
61
+ }
@@ -1,3 +1,4 @@
1
1
  export declare type Primitive = string | number | boolean;
2
2
  export declare type Nullable<T> = T | null;
3
3
  export declare type ValueType = Primitive | null | void | Array<any> | ReadonlyArray<any>;
4
+ export declare type ValueOf<T> = T[keyof T];