source: node_modules/es-toolkit/dist/compat/math/random.mjs@ ba17441

Last change on this file since ba17441 was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1.8 KB
Line 
1import { clamp } from './clamp.mjs';
2import { random as random$1 } from '../../math/random.mjs';
3import { randomInt } from '../../math/randomInt.mjs';
4
5function random(...args) {
6 let minimum = 0;
7 let maximum = 1;
8 let floating = false;
9 switch (args.length) {
10 case 1: {
11 if (typeof args[0] === 'boolean') {
12 floating = args[0];
13 }
14 else {
15 maximum = args[0];
16 }
17 break;
18 }
19 case 2: {
20 if (typeof args[1] === 'boolean') {
21 maximum = args[0];
22 floating = args[1];
23 }
24 else {
25 minimum = args[0];
26 maximum = args[1];
27 }
28 }
29 case 3: {
30 if (typeof args[2] === 'object' && args[2] != null && args[2][args[1]] === args[0]) {
31 minimum = 0;
32 maximum = args[0];
33 floating = false;
34 }
35 else {
36 minimum = args[0];
37 maximum = args[1];
38 floating = args[2];
39 }
40 }
41 }
42 if (typeof minimum !== 'number') {
43 minimum = Number(minimum);
44 }
45 if (typeof maximum !== 'number') {
46 minimum = Number(maximum);
47 }
48 if (!minimum) {
49 minimum = 0;
50 }
51 if (!maximum) {
52 maximum = 0;
53 }
54 if (minimum > maximum) {
55 [minimum, maximum] = [maximum, minimum];
56 }
57 minimum = clamp(minimum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
58 maximum = clamp(maximum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
59 if (minimum === maximum) {
60 return minimum;
61 }
62 if (floating) {
63 return random$1(minimum, maximum + 1);
64 }
65 else {
66 return randomInt(minimum, maximum + 1);
67 }
68}
69
70export { random };
Note: See TracBrowser for help on using the repository browser.