@sparted/shared-library 1.0.17 → 1.0.19

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.
package/index.js CHANGED
@@ -19,6 +19,7 @@ var clampNumber = require('./math/clamp-number.js');
19
19
  var interpolate = require('./math/interpolate.js');
20
20
  var numberRange = require('./math/number-range.js');
21
21
  var randomNumber = require('./math/random-number.js');
22
+ var median = require('./math/median.js');
22
23
  var mergeDeep = require('./object/merge-deep.js');
23
24
  var parseBoolean = require('./parsing/parse-boolean.js');
24
25
  var parseEnum = require('./parsing/parse-enum.js');
@@ -58,6 +59,7 @@ exports.interpolate = interpolate.interpolate;
58
59
  exports.assertNumberRange = numberRange.assertNumberRange;
59
60
  exports.isNumberInRange = numberRange.isNumberInRange;
60
61
  exports.randomNumber = randomNumber.randomNumber;
62
+ exports.median = median.median;
61
63
  exports.mergeDeep = mergeDeep.mergeDeep;
62
64
  exports.parseBoolean = parseBoolean.parseBoolean;
63
65
  exports.createEnumParser = parseEnum.createEnumParser;
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/math/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * from './clamp-number';
2
2
  export * from './interpolate';
3
3
  export * from './number-range';
4
4
  export * from './random-number';
5
+ export * from './median';
package/math/index.js CHANGED
@@ -6,6 +6,7 @@ var clampNumber = require('./clamp-number.js');
6
6
  var interpolate = require('./interpolate.js');
7
7
  var numberRange = require('./number-range.js');
8
8
  var randomNumber = require('./random-number.js');
9
+ var median = require('./median.js');
9
10
 
10
11
 
11
12
 
@@ -14,4 +15,5 @@ exports.interpolate = interpolate.interpolate;
14
15
  exports.assertNumberRange = numberRange.assertNumberRange;
15
16
  exports.isNumberInRange = numberRange.isNumberInRange;
16
17
  exports.randomNumber = randomNumber.randomNumber;
18
+ exports.median = median.median;
17
19
  //# sourceMappingURL=index.js.map
package/math/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":";;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function median(arr: number[]): number | null;
2
+ export declare function median(arr: number[], defaultValueIfEmpty: number): number;
package/math/median.js ADDED
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function median(arr, defaultValueIfEmpty) {
6
+ if (arr.length === 0) {
7
+ if (typeof defaultValueIfEmpty === 'number') {
8
+ return defaultValueIfEmpty;
9
+ }
10
+ return null;
11
+ }
12
+ const sorted = [...arr].sort((a, b) => a - b);
13
+ const mid = Math.floor(sorted.length / 2);
14
+ // If the length of the array is odd, return the middle element
15
+ if (sorted.length % 2 === 1) {
16
+ return sorted[mid];
17
+ }
18
+ // If the length of the array is even, return the average of the middle two elements
19
+ return (sorted[mid - 1] + sorted[mid]) / 2;
20
+ }
21
+
22
+ exports.median = median;
23
+ //# sourceMappingURL=median.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"median.js","sources":["../../src/math/median.ts"],"sourcesContent":["export function median(arr: number[]): number | null;\nexport function median(arr: number[], defaultValueIfEmpty: number): number;\nexport function median(arr: number[], defaultValueIfEmpty?: number) {\n if (arr.length === 0) {\n if (typeof defaultValueIfEmpty === 'number') {\n return defaultValueIfEmpty;\n }\n return null;\n }\n\n const sorted = [...arr].sort((a, b) => a - b);\n const mid = Math.floor(sorted.length / 2);\n\n // If the length of the array is odd, return the middle element\n if (sorted.length % 2 === 1) {\n return sorted[mid];\n }\n\n // If the length of the array is even, return the average of the middle two elements\n return (sorted[mid - 1] + sorted[mid]) / 2;\n}\n"],"names":[],"mappings":";;;;AAEgB,SAAA,MAAM,CAAC,GAAa,EAAE,mBAA4B,EAAA;AAChE,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;AAC3C,YAAA,OAAO,mBAAmB,CAAC;AAC5B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;;AAG1C,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AAC3B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,KAAA;;AAGD,IAAA,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparted/shared-library",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "repository": "git@github.com:Sparted/shared-library.git",
5
5
  "author": "Thomas <duprethomasfr@gmail.com>",
6
6
  "license": "MIT",