@uxf/core 11.22.0 → 11.31.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.
@@ -0,0 +1,4 @@
1
+ export type DateString = `${number}-${number}-${number}`;
2
+ export type DatetimeString = `${number}-${number}-${number}T${number}:${number}:${number}+${number}:${number}`;
3
+ export type DateValue = Date | DateString | DatetimeString;
4
+ export type TimeString = `${number}:${number}:${number}`;
package/date/index.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ import { Nullish } from "../types";
2
+ import { TimeString } from "./index";
3
+ export declare function isTimeString(value: string | Nullish): value is TimeString;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTimeString = void 0;
4
+ const is_nil_1 = require("../utils/is-nil");
5
+ function isTimeString(value) {
6
+ if ((0, is_nil_1.isNil)(value)) {
7
+ return false;
8
+ }
9
+ return /(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)/.test(value);
10
+ }
11
+ exports.isTimeString = isTimeString;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const is_time_string_1 = require("./is-time-string");
4
+ test("toDateString", () => {
5
+ expect((0, is_time_string_1.isTimeString)("00:00:00")).toBe(true);
6
+ expect((0, is_time_string_1.isTimeString)("12:30:30")).toBe(true);
7
+ expect((0, is_time_string_1.isTimeString)("23:59:59")).toBe(true);
8
+ expect((0, is_time_string_1.isTimeString)("23:30")).toBe(false);
9
+ expect((0, is_time_string_1.isTimeString)("23:60:60")).toBe(false);
10
+ expect((0, is_time_string_1.isTimeString)("24:00:00")).toBe(false);
11
+ });
@@ -0,0 +1,2 @@
1
+ import { DateString } from "./index";
2
+ export declare function toDateString<T extends Date | null>(value: T): T extends null ? DateString | null : DateString;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toDateString = void 0;
4
+ const is_nil_1 = require("../utils/is-nil");
5
+ function toDateString(value) {
6
+ if ((0, is_nil_1.isNil)(value)) {
7
+ return null;
8
+ }
9
+ return value.toISOString().substring(0, 10);
10
+ }
11
+ exports.toDateString = toDateString;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const to_date_string_1 = require("./to-date-string");
4
+ test("toDateString", () => {
5
+ expect((0, to_date_string_1.toDateString)(new Date("2024-10-30 12:00:00"))).toBe("2024-10-30");
6
+ expect((0, to_date_string_1.toDateString)(new Date("2300-01-01 12:00:00"))).toBe("2300-01-01");
7
+ });
@@ -0,0 +1,2 @@
1
+ import { DatetimeString } from "./index";
2
+ export declare function toDatetimeString<T extends Date | null>(value: T): T extends null ? DatetimeString | null : DatetimeString;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toDatetimeString = void 0;
4
+ const is_nil_1 = require("../utils/is-nil");
5
+ function toDatetimeString(value) {
6
+ if ((0, is_nil_1.isNil)(value)) {
7
+ return null;
8
+ }
9
+ const month = String(value.getMonth() + 1).padStart(2, "0");
10
+ const day = String(value.getDate()).padStart(2, "0");
11
+ const hours = String(value.getHours()).padStart(2, "0");
12
+ const minutes = String(value.getMinutes()).padStart(2, "0");
13
+ const seconds = String(value.getSeconds()).padStart(2, "0");
14
+ const timezoneOffset = -value.getTimezoneOffset();
15
+ const offsetHours = String(Math.floor(Math.abs(timezoneOffset) / 60)).padStart(2, "0");
16
+ const offsetMinutes = String(Math.abs(timezoneOffset) % 60).padStart(2, "0");
17
+ const offsetSign = timezoneOffset >= 0 ? "+" : "-";
18
+ const timezone = `${offsetSign}${offsetHours}:${offsetMinutes}`;
19
+ return `${value.getFullYear()}-${month}-${day}T${hours}:${minutes}:${seconds}${timezone}`;
20
+ }
21
+ exports.toDatetimeString = toDatetimeString;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const to_datetime_string_1 = require("./to-datetime-string");
4
+ test("toDatetimeString", () => {
5
+ const oldTimezoneFunction = Date.prototype.getTimezoneOffset;
6
+ Date.prototype.getTimezoneOffset = () => -60;
7
+ expect((0, to_datetime_string_1.toDatetimeString)(new Date("2024-01-01 20:15:30"))).toBe("2024-01-01T20:15:30+01:00");
8
+ Date.prototype.getTimezoneOffset = () => -120;
9
+ expect((0, to_datetime_string_1.toDatetimeString)(new Date("2024-08-01 20:15:30"))).toBe("2024-08-01T20:15:30+02:00");
10
+ expect((0, to_datetime_string_1.toDatetimeString)(new Date("2024-08-01 23:59:59"))).toBe("2024-08-01T23:59:59+02:00");
11
+ Date.prototype.getTimezoneOffset = () => -150;
12
+ expect((0, to_datetime_string_1.toDatetimeString)(new Date("2024-01-01 12:00:00"))).toBe("2024-01-01T12:00:00+02:30");
13
+ Date.prototype.getTimezoneOffset = oldTimezoneFunction;
14
+ });
@@ -0,0 +1,2 @@
1
+ import { TimeString } from "./index";
2
+ export declare function toTimeString<T extends Date | null>(value: T): T extends null ? TimeString | null : TimeString;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toTimeString = void 0;
4
+ const is_nil_1 = require("../utils/is-nil");
5
+ function toTimeString(value) {
6
+ if ((0, is_nil_1.isNil)(value)) {
7
+ return null;
8
+ }
9
+ return `${value.getHours().toString().padStart(2, "0")}:${value.getMinutes().toString().padStart(2, "0")}:${value.getSeconds().toString().padStart(2, "0")}`;
10
+ }
11
+ exports.toTimeString = toTimeString;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const to_time_string_1 = require("./to-time-string");
4
+ test("toDatetimeString", () => {
5
+ expect((0, to_time_string_1.toTimeString)(new Date("2024-01-01 01:01:01"))).toBe("01:01:01");
6
+ expect((0, to_time_string_1.toTimeString)(new Date("2024-01-01 20:15:30"))).toBe("20:15:30");
7
+ expect((0, to_time_string_1.toTimeString)(new Date("2024-01-01 23:59:59"))).toBe("23:59:59");
8
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/core",
3
- "version": "11.22.0",
3
+ "version": "11.31.0",
4
4
  "description": "UXF Core",
5
5
  "author": "Petr Vejvoda <vejvoda@uxf.cz>",
6
6
  "homepage": "https://gitlab.com/uxf-npm/core#readme",