@alextheman/utility 1.11.5 → 1.12.0

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/dist/index.cjs CHANGED
@@ -20,30 +20,31 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- addDaysToDate: () => add_days_to_date_default,
24
- appendSemicolon: () => append_semicolon_default,
25
- convertFileToBase64: () => convert_file_to_base_64_default,
26
- formatDateAndTime: () => format_date_and_time_default,
27
- getRandomNumber: () => get_random_number_default,
28
- isLeapYear: () => is_leap_year_default,
29
- isMonthlyMultiple: () => is_monthly_multiple_default,
30
- isSameDate: () => is_same_date_default,
31
- randomiseArray: () => randomise_array_default,
23
+ addDaysToDate: () => addDaysToDate_default,
24
+ appendSemicolon: () => appendSemicolon_default,
25
+ convertFileToBase64: () => convertFileToBase64_default,
26
+ formatDateAndTime: () => formatDateAndTime_default,
27
+ getRandomNumber: () => getRandomNumber_default,
28
+ isLeapYear: () => isLeapYear_default,
29
+ isMonthlyMultiple: () => isMonthlyMultiple_default,
30
+ isSameDate: () => isSameDate_default,
31
+ newEnv: () => newEnv_default,
32
+ randomiseArray: () => randomiseArray_default,
32
33
  range: () => range_default,
33
34
  truncate: () => truncate_default,
34
35
  wait: () => wait_default
35
36
  });
36
37
  module.exports = __toCommonJS(index_exports);
37
38
 
38
- // src/add-days-to-date.ts
39
+ // src/addDaysToDate.ts
39
40
  function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
40
41
  const newDate = currentDate;
41
42
  newDate.setDate(newDate.getDate() + dayIncrement);
42
43
  return newDate;
43
44
  }
44
- var add_days_to_date_default = addDaysToDate;
45
+ var addDaysToDate_default = addDaysToDate;
45
46
 
46
- // src/append-semicolon.ts
47
+ // src/appendSemicolon.ts
47
48
  function appendSemicolon(stringToAppendTo) {
48
49
  if (stringToAppendTo.includes("\n")) {
49
50
  throw new Error("MULTIPLE_LINE_ERROR");
@@ -54,9 +55,9 @@ function appendSemicolon(stringToAppendTo) {
54
55
  }
55
56
  return stringWithNoTrailingWhitespace[stringWithNoTrailingWhitespace.length - 1] === ";" ? stringWithNoTrailingWhitespace : `${stringWithNoTrailingWhitespace};`;
56
57
  }
57
- var append_semicolon_default = appendSemicolon;
58
+ var appendSemicolon_default = appendSemicolon;
58
59
 
59
- // src/convert-file-to-base-64.ts
60
+ // src/convertFileToBase64.ts
60
61
  function convertFileToBase64(file) {
61
62
  return new Promise((resolve, reject) => {
62
63
  const reader = new FileReader();
@@ -73,23 +74,23 @@ function convertFileToBase64(file) {
73
74
  };
74
75
  });
75
76
  }
76
- var convert_file_to_base_64_default = convertFileToBase64;
77
+ var convertFileToBase64_default = convertFileToBase64;
77
78
 
78
- // src/is-same-date.ts
79
+ // src/isSameDate.ts
79
80
  function isSameDate(firstDate, secondDate) {
80
81
  return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
81
82
  }
82
- var is_same_date_default = isSameDate;
83
+ var isSameDate_default = isSameDate;
83
84
 
84
- // src/format-date-and-time.ts
85
+ // src/formatDateAndTime.ts
85
86
  function formatDateAndTime(inputDate) {
86
- const yesterday = add_days_to_date_default(/* @__PURE__ */ new Date(), -1);
87
+ const yesterday = addDaysToDate_default(/* @__PURE__ */ new Date(), -1);
87
88
  const today = /* @__PURE__ */ new Date();
88
89
  const inputTime = `${inputDate.getHours().toString().padStart(2, "0")}:${inputDate.getMinutes().toString().padStart(2, "0")}`;
89
- if (is_same_date_default(inputDate, yesterday)) {
90
+ if (isSameDate_default(inputDate, yesterday)) {
90
91
  return `Yesterday at ${inputTime}`;
91
92
  }
92
- if (is_same_date_default(inputDate, today)) {
93
+ if (isSameDate_default(inputDate, today)) {
93
94
  return `Today at ${inputTime}`;
94
95
  }
95
96
  const formattedInputDay = inputDate.getDate().toString().padStart(2, "0");
@@ -97,27 +98,27 @@ function formatDateAndTime(inputDate) {
97
98
  const formattedInputYear = inputDate.getFullYear().toString();
98
99
  return `${formattedInputDay}/${formattedInputMonth}/${formattedInputYear}, ${inputTime}`;
99
100
  }
100
- var format_date_and_time_default = formatDateAndTime;
101
+ var formatDateAndTime_default = formatDateAndTime;
101
102
 
102
- // src/get-random-number.ts
103
+ // src/getRandomNumber.ts
103
104
  function getRandomNumber(lowerBound, upperBound) {
104
105
  if (lowerBound % 1 !== 0 || upperBound % 1 !== 0) {
105
106
  throw new Error("NON_INTEGER_INPUTS");
106
107
  }
107
108
  return Math.floor(Math.random() * (upperBound - lowerBound + 1) + lowerBound);
108
109
  }
109
- var get_random_number_default = getRandomNumber;
110
+ var getRandomNumber_default = getRandomNumber;
110
111
 
111
- // src/is-leap-year.ts
112
+ // src/isLeapYear.ts
112
113
  function isLeapYear(year) {
113
114
  if (year % 1 !== 0) {
114
115
  throw new Error("NON_INTEGER_INPUT");
115
116
  }
116
117
  return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
117
118
  }
118
- var is_leap_year_default = isLeapYear;
119
+ var isLeapYear_default = isLeapYear;
119
120
 
120
- // src/is-monthly-multiple.ts
121
+ // src/isMonthlyMultiple.ts
121
122
  function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
122
123
  if ([3, 5, 8, 10].includes(firstDate.getMonth())) {
123
124
  return firstDate.getDate() === 30 && secondDate.getDate() === 31;
@@ -126,7 +127,7 @@ function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
126
127
  }
127
128
  function nonLeapYearFebruaryChecks(firstDate, secondDate) {
128
129
  if (firstDate.getMonth() === 1) {
129
- if (!is_leap_year_default(firstDate.getFullYear()) && firstDate.getDate() === 28) {
130
+ if (!isLeapYear_default(firstDate.getFullYear()) && firstDate.getDate() === 28) {
130
131
  return [28, 29, 30, 31].includes(secondDate.getDate());
131
132
  }
132
133
  }
@@ -134,7 +135,7 @@ function nonLeapYearFebruaryChecks(firstDate, secondDate) {
134
135
  }
135
136
  function leapYearFebruaryChecks(firstDate, secondDate) {
136
137
  if (firstDate.getMonth() === 1) {
137
- if (is_leap_year_default(firstDate.getFullYear()) && firstDate.getDate() === 29) {
138
+ if (isLeapYear_default(firstDate.getFullYear()) && firstDate.getDate() === 29) {
138
139
  return [29, 30, 31].includes(secondDate.getDate());
139
140
  }
140
141
  }
@@ -152,19 +153,27 @@ function isMonthlyMultiple(firstDate, secondDate) {
152
153
  }
153
154
  return firstDate.getDate() === secondDate.getDate();
154
155
  }
155
- var is_monthly_multiple_default = isMonthlyMultiple;
156
+ var isMonthlyMultiple_default = isMonthlyMultiple;
156
157
 
157
- // src/randomise-array.ts
158
+ // src/newEnv.ts
159
+ var import_zod = require("zod");
160
+ var envSchema = import_zod.z.enum(["test", "development", "production"]);
161
+ function newEnv(data) {
162
+ return envSchema.parse(data);
163
+ }
164
+ var newEnv_default = newEnv;
165
+
166
+ // src/randomiseArray.ts
158
167
  function randomiseArray(array) {
159
168
  const mutableArray = [...array];
160
169
  const outputArray = [];
161
170
  do {
162
- const indexToRemove = get_random_number_default(0, mutableArray.length - 1);
171
+ const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
163
172
  outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
164
173
  } while (mutableArray.length > 0);
165
174
  return outputArray;
166
175
  }
167
- var randomise_array_default = randomiseArray;
176
+ var randomiseArray_default = randomiseArray;
168
177
 
169
178
  // src/range.ts
170
179
  function range(start, stop, step = 1) {
@@ -215,6 +224,7 @@ var wait_default = wait;
215
224
  isLeapYear,
216
225
  isMonthlyMultiple,
217
226
  isSameDate,
227
+ newEnv,
218
228
  randomiseArray,
219
229
  range,
220
230
  truncate,
package/dist/index.d.cts CHANGED
@@ -1,3 +1,5 @@
1
+ import { z } from 'zod';
2
+
1
3
  declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
2
4
 
3
5
  declare function appendSemicolon(stringToAppendTo: string): string;
@@ -14,6 +16,14 @@ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
14
16
 
15
17
  declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
16
18
 
19
+ declare const envSchema: z.ZodEnum<{
20
+ test: "test";
21
+ development: "development";
22
+ production: "production";
23
+ }>;
24
+ type Env = z.infer<typeof envSchema>;
25
+ declare function newEnv(data: unknown): Env;
26
+
17
27
  declare function randomiseArray(array: unknown[]): unknown[];
18
28
 
19
29
  declare function range(start: number, stop: number, step?: number): number[];
@@ -22,4 +32,4 @@ declare function truncate(stringToTruncate: string, maxLength?: number): string;
22
32
 
23
33
  declare function wait(seconds: number): Promise<void>;
24
34
 
25
- export { addDaysToDate, appendSemicolon, convertFileToBase64, formatDateAndTime, getRandomNumber, isLeapYear, isMonthlyMultiple, isSameDate, randomiseArray, range, truncate, wait };
35
+ export { type Env, addDaysToDate, appendSemicolon, convertFileToBase64, formatDateAndTime, getRandomNumber, isLeapYear, isMonthlyMultiple, isSameDate, newEnv, randomiseArray, range, truncate, wait };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { z } from 'zod';
2
+
1
3
  declare function addDaysToDate(currentDate?: Date, dayIncrement?: number): Date;
2
4
 
3
5
  declare function appendSemicolon(stringToAppendTo: string): string;
@@ -14,6 +16,14 @@ declare function isMonthlyMultiple(firstDate: Date, secondDate: Date): boolean;
14
16
 
15
17
  declare function isSameDate(firstDate: Date, secondDate: Date): boolean;
16
18
 
19
+ declare const envSchema: z.ZodEnum<{
20
+ test: "test";
21
+ development: "development";
22
+ production: "production";
23
+ }>;
24
+ type Env = z.infer<typeof envSchema>;
25
+ declare function newEnv(data: unknown): Env;
26
+
17
27
  declare function randomiseArray(array: unknown[]): unknown[];
18
28
 
19
29
  declare function range(start: number, stop: number, step?: number): number[];
@@ -22,4 +32,4 @@ declare function truncate(stringToTruncate: string, maxLength?: number): string;
22
32
 
23
33
  declare function wait(seconds: number): Promise<void>;
24
34
 
25
- export { addDaysToDate, appendSemicolon, convertFileToBase64, formatDateAndTime, getRandomNumber, isLeapYear, isMonthlyMultiple, isSameDate, randomiseArray, range, truncate, wait };
35
+ export { type Env, addDaysToDate, appendSemicolon, convertFileToBase64, formatDateAndTime, getRandomNumber, isLeapYear, isMonthlyMultiple, isSameDate, newEnv, randomiseArray, range, truncate, wait };
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- // src/add-days-to-date.ts
1
+ // src/addDaysToDate.ts
2
2
  function addDaysToDate(currentDate = /* @__PURE__ */ new Date(), dayIncrement = 1) {
3
3
  const newDate = currentDate;
4
4
  newDate.setDate(newDate.getDate() + dayIncrement);
5
5
  return newDate;
6
6
  }
7
- var add_days_to_date_default = addDaysToDate;
7
+ var addDaysToDate_default = addDaysToDate;
8
8
 
9
- // src/append-semicolon.ts
9
+ // src/appendSemicolon.ts
10
10
  function appendSemicolon(stringToAppendTo) {
11
11
  if (stringToAppendTo.includes("\n")) {
12
12
  throw new Error("MULTIPLE_LINE_ERROR");
@@ -17,9 +17,9 @@ function appendSemicolon(stringToAppendTo) {
17
17
  }
18
18
  return stringWithNoTrailingWhitespace[stringWithNoTrailingWhitespace.length - 1] === ";" ? stringWithNoTrailingWhitespace : `${stringWithNoTrailingWhitespace};`;
19
19
  }
20
- var append_semicolon_default = appendSemicolon;
20
+ var appendSemicolon_default = appendSemicolon;
21
21
 
22
- // src/convert-file-to-base-64.ts
22
+ // src/convertFileToBase64.ts
23
23
  function convertFileToBase64(file) {
24
24
  return new Promise((resolve, reject) => {
25
25
  const reader = new FileReader();
@@ -36,23 +36,23 @@ function convertFileToBase64(file) {
36
36
  };
37
37
  });
38
38
  }
39
- var convert_file_to_base_64_default = convertFileToBase64;
39
+ var convertFileToBase64_default = convertFileToBase64;
40
40
 
41
- // src/is-same-date.ts
41
+ // src/isSameDate.ts
42
42
  function isSameDate(firstDate, secondDate) {
43
43
  return firstDate.getDate() === secondDate.getDate() && firstDate.getMonth() === secondDate.getMonth() && firstDate.getFullYear() === secondDate.getFullYear();
44
44
  }
45
- var is_same_date_default = isSameDate;
45
+ var isSameDate_default = isSameDate;
46
46
 
47
- // src/format-date-and-time.ts
47
+ // src/formatDateAndTime.ts
48
48
  function formatDateAndTime(inputDate) {
49
- const yesterday = add_days_to_date_default(/* @__PURE__ */ new Date(), -1);
49
+ const yesterday = addDaysToDate_default(/* @__PURE__ */ new Date(), -1);
50
50
  const today = /* @__PURE__ */ new Date();
51
51
  const inputTime = `${inputDate.getHours().toString().padStart(2, "0")}:${inputDate.getMinutes().toString().padStart(2, "0")}`;
52
- if (is_same_date_default(inputDate, yesterday)) {
52
+ if (isSameDate_default(inputDate, yesterday)) {
53
53
  return `Yesterday at ${inputTime}`;
54
54
  }
55
- if (is_same_date_default(inputDate, today)) {
55
+ if (isSameDate_default(inputDate, today)) {
56
56
  return `Today at ${inputTime}`;
57
57
  }
58
58
  const formattedInputDay = inputDate.getDate().toString().padStart(2, "0");
@@ -60,27 +60,27 @@ function formatDateAndTime(inputDate) {
60
60
  const formattedInputYear = inputDate.getFullYear().toString();
61
61
  return `${formattedInputDay}/${formattedInputMonth}/${formattedInputYear}, ${inputTime}`;
62
62
  }
63
- var format_date_and_time_default = formatDateAndTime;
63
+ var formatDateAndTime_default = formatDateAndTime;
64
64
 
65
- // src/get-random-number.ts
65
+ // src/getRandomNumber.ts
66
66
  function getRandomNumber(lowerBound, upperBound) {
67
67
  if (lowerBound % 1 !== 0 || upperBound % 1 !== 0) {
68
68
  throw new Error("NON_INTEGER_INPUTS");
69
69
  }
70
70
  return Math.floor(Math.random() * (upperBound - lowerBound + 1) + lowerBound);
71
71
  }
72
- var get_random_number_default = getRandomNumber;
72
+ var getRandomNumber_default = getRandomNumber;
73
73
 
74
- // src/is-leap-year.ts
74
+ // src/isLeapYear.ts
75
75
  function isLeapYear(year) {
76
76
  if (year % 1 !== 0) {
77
77
  throw new Error("NON_INTEGER_INPUT");
78
78
  }
79
79
  return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
80
80
  }
81
- var is_leap_year_default = isLeapYear;
81
+ var isLeapYear_default = isLeapYear;
82
82
 
83
- // src/is-monthly-multiple.ts
83
+ // src/isMonthlyMultiple.ts
84
84
  function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
85
85
  if ([3, 5, 8, 10].includes(firstDate.getMonth())) {
86
86
  return firstDate.getDate() === 30 && secondDate.getDate() === 31;
@@ -89,7 +89,7 @@ function endOfMonthChecksButNotFebruary(firstDate, secondDate) {
89
89
  }
90
90
  function nonLeapYearFebruaryChecks(firstDate, secondDate) {
91
91
  if (firstDate.getMonth() === 1) {
92
- if (!is_leap_year_default(firstDate.getFullYear()) && firstDate.getDate() === 28) {
92
+ if (!isLeapYear_default(firstDate.getFullYear()) && firstDate.getDate() === 28) {
93
93
  return [28, 29, 30, 31].includes(secondDate.getDate());
94
94
  }
95
95
  }
@@ -97,7 +97,7 @@ function nonLeapYearFebruaryChecks(firstDate, secondDate) {
97
97
  }
98
98
  function leapYearFebruaryChecks(firstDate, secondDate) {
99
99
  if (firstDate.getMonth() === 1) {
100
- if (is_leap_year_default(firstDate.getFullYear()) && firstDate.getDate() === 29) {
100
+ if (isLeapYear_default(firstDate.getFullYear()) && firstDate.getDate() === 29) {
101
101
  return [29, 30, 31].includes(secondDate.getDate());
102
102
  }
103
103
  }
@@ -115,19 +115,27 @@ function isMonthlyMultiple(firstDate, secondDate) {
115
115
  }
116
116
  return firstDate.getDate() === secondDate.getDate();
117
117
  }
118
- var is_monthly_multiple_default = isMonthlyMultiple;
118
+ var isMonthlyMultiple_default = isMonthlyMultiple;
119
119
 
120
- // src/randomise-array.ts
120
+ // src/newEnv.ts
121
+ import { z } from "zod";
122
+ var envSchema = z.enum(["test", "development", "production"]);
123
+ function newEnv(data) {
124
+ return envSchema.parse(data);
125
+ }
126
+ var newEnv_default = newEnv;
127
+
128
+ // src/randomiseArray.ts
121
129
  function randomiseArray(array) {
122
130
  const mutableArray = [...array];
123
131
  const outputArray = [];
124
132
  do {
125
- const indexToRemove = get_random_number_default(0, mutableArray.length - 1);
133
+ const indexToRemove = getRandomNumber_default(0, mutableArray.length - 1);
126
134
  outputArray.push(mutableArray.splice(indexToRemove, 1)[0]);
127
135
  } while (mutableArray.length > 0);
128
136
  return outputArray;
129
137
  }
130
- var randomise_array_default = randomiseArray;
138
+ var randomiseArray_default = randomiseArray;
131
139
 
132
140
  // src/range.ts
133
141
  function range(start, stop, step = 1) {
@@ -169,15 +177,16 @@ function wait(seconds) {
169
177
  }
170
178
  var wait_default = wait;
171
179
  export {
172
- add_days_to_date_default as addDaysToDate,
173
- append_semicolon_default as appendSemicolon,
174
- convert_file_to_base_64_default as convertFileToBase64,
175
- format_date_and_time_default as formatDateAndTime,
176
- get_random_number_default as getRandomNumber,
177
- is_leap_year_default as isLeapYear,
178
- is_monthly_multiple_default as isMonthlyMultiple,
179
- is_same_date_default as isSameDate,
180
- randomise_array_default as randomiseArray,
180
+ addDaysToDate_default as addDaysToDate,
181
+ appendSemicolon_default as appendSemicolon,
182
+ convertFileToBase64_default as convertFileToBase64,
183
+ formatDateAndTime_default as formatDateAndTime,
184
+ getRandomNumber_default as getRandomNumber,
185
+ isLeapYear_default as isLeapYear,
186
+ isMonthlyMultiple_default as isMonthlyMultiple,
187
+ isSameDate_default as isSameDate,
188
+ newEnv_default as newEnv,
189
+ randomiseArray_default as randomiseArray,
181
190
  range_default as range,
182
191
  truncate_default as truncate,
183
192
  wait_default as wait
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alextheman/utility",
3
- "version": "1.11.5",
3
+ "version": "1.12.0",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,7 +25,7 @@
25
25
  "license": "ISC",
26
26
  "description": "",
27
27
  "devDependencies": {
28
- "@alextheman/eslint-plugin": "^1.6.1",
28
+ "@alextheman/eslint-plugin": "^1.6.5",
29
29
  "@eslint/js": "^9.33.0",
30
30
  "@types/node": "^24.3.0",
31
31
  "eslint": "^9.33.0",
@@ -37,8 +37,11 @@
37
37
  "prettier": "^3.6.2",
38
38
  "tsup": "^8.5.0",
39
39
  "typescript": "^5.9.2",
40
- "typescript-eslint": "^8.39.1",
40
+ "typescript-eslint": "^8.40.0",
41
41
  "vite-tsconfig-paths": "^5.1.4",
42
42
  "vitest": "^3.2.4"
43
+ },
44
+ "dependencies": {
45
+ "zod": "^4.0.17"
43
46
  }
44
47
  }