@finema/core 1.3.19 → 1.3.20

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/module.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finema/core",
3
- "version": "1.3.19",
3
+ "version": "1.3.20",
4
4
  "configKey": "core",
5
5
  "compatibility": {
6
6
  "nuxt": "^3.7.4"
package/dist/module.mjs CHANGED
@@ -2,7 +2,7 @@ import { defineNuxtModule, createResolver, installModule, addPlugin, addComponen
2
2
  import { merge } from 'lodash-es';
3
3
 
4
4
  const name = "@finema/core";
5
- const version = "1.3.19";
5
+ const version = "1.3.20";
6
6
 
7
7
  const colors = {
8
8
  black: "#20243E",
@@ -1,11 +1,11 @@
1
1
  export declare class TimeHelper {
2
- static toUTC: (time: string) => string;
3
- static toLocal: (time: string) => string;
2
+ static toUTC: (time: string | Date) => string;
3
+ static toLocal: (time: string | Date) => string;
4
4
  static getCurrentDate: () => string;
5
- static getDateFormTime: (time: string) => string;
6
- static getDateFormTimeWithLocal: (time: string) => string;
7
- static getISODateTimeFormTime: (time: string) => string;
8
- static getDateTimeFormTime: (time: string) => string;
9
- static getTimeFormTime: (time: string) => string;
5
+ static getDateFormTime: (time: string | Date) => string;
6
+ static getDateFormTimeWithLocal: (time: string | Date) => string;
7
+ static getISODateTimeFormTime: (time: string | Date) => string;
8
+ static getDateTimeFormTime: (time: string | Date) => string;
9
+ static getTimeFormTime: (time: string | Date) => string;
10
10
  static getCurrentDateTime: () => string;
11
11
  }
@@ -1,14 +1,6 @@
1
- import dayjs from "dayjs";
2
- import relativeTime from "dayjs/plugin/relativeTime";
3
- import utc from "dayjs/plugin/utc";
4
- import duration from "dayjs/plugin/duration";
5
- dayjs.extend(relativeTime);
6
- dayjs.extend(utc);
7
- dayjs.extend(duration);
8
- const isTimeError = (time) => time === "Invalid Date";
9
- const timeWrapper = (time, defaultTime) => isTimeError(time) ? defaultTime : time;
10
- const dateFormat = "YYYY-MM-DD";
11
- const dateTimeFormat = "YYYY-MM-DD HH:mm:ss";
1
+ import { addHours, format, formatISO, isDate, isValid, parse, subHours } from "date-fns";
2
+ const dateFormat = "yyyy-MM-dd";
3
+ const dateTimeFormat = "yyyy-MM-dd HH:mm";
12
4
  const timeFormat = "HH:mm";
13
5
  export class TimeHelper {
14
6
  static toUTC = (time) => {
@@ -16,8 +8,9 @@ export class TimeHelper {
16
8
  return time;
17
9
  }
18
10
  try {
19
- const newTime = dayjs(time).subtract(7, "hour").format(dateTimeFormat);
20
- return timeWrapper(newTime, time);
11
+ const parsedTime = isDate(time) ? time : parse(time, dateTimeFormat, /* @__PURE__ */ new Date());
12
+ const newTime = format(subHours(parsedTime, 7), dateTimeFormat);
13
+ return isValid(parsedTime) ? newTime : time;
21
14
  } catch (e) {
22
15
  return time.toString();
23
16
  }
@@ -27,57 +20,65 @@ export class TimeHelper {
27
20
  return time;
28
21
  }
29
22
  try {
30
- const newTime = dayjs(time).add(7, "hour").format(dateTimeFormat);
31
- return timeWrapper(newTime, time);
23
+ const parsedTime = isDate(time) ? time : parse(time, dateTimeFormat, /* @__PURE__ */ new Date());
24
+ const newTime = format(addHours(parsedTime, 7), dateTimeFormat);
25
+ return isValid(parsedTime) ? newTime : time;
32
26
  } catch (e) {
33
- return time;
27
+ return time.toString();
34
28
  }
35
29
  };
36
30
  static getCurrentDate = () => {
37
- const newTime = dayjs().format(dateFormat);
38
- return timeWrapper(newTime, "");
31
+ return format(/* @__PURE__ */ new Date(), dateFormat);
39
32
  };
40
33
  static getDateFormTime = (time) => {
41
34
  if (!time) {
42
35
  return time;
43
36
  }
44
- const newTime = dayjs(time).format(dateFormat);
45
- return timeWrapper(newTime, time);
37
+ const parsedTime = isDate(time) ? time : parse(time, dateTimeFormat, /* @__PURE__ */ new Date());
38
+ const newTime = format(parsedTime, dateFormat);
39
+ return isValid(parsedTime) ? newTime : time;
46
40
  };
47
41
  static getDateFormTimeWithLocal = (time) => {
48
42
  if (!time) {
49
43
  return time;
50
44
  }
51
- const newTime = dayjs(TimeHelper.toLocal(time)).format(dateFormat);
52
- return timeWrapper(newTime, time);
45
+ const localTime = TimeHelper.toLocal(time);
46
+ const parsedTime = isDate(localTime) ? localTime : parse(localTime, dateTimeFormat, /* @__PURE__ */ new Date());
47
+ const newTime = format(parsedTime, dateFormat);
48
+ return isValid(parsedTime) ? newTime : time;
53
49
  };
54
50
  static getISODateTimeFormTime = (time) => {
55
51
  if (!time) {
56
52
  return time;
57
53
  }
58
- const testTime = dayjs(time).format(dateTimeFormat);
59
- if (isTimeError(testTime)) {
60
- return time;
54
+ try {
55
+ const parsedTime = isDate(time) ? time : parse(time, dateTimeFormat, /* @__PURE__ */ new Date());
56
+ const testTime = format(parsedTime, dateTimeFormat);
57
+ if (!isValid(parsedTime) || testTime === "Invalid Date") {
58
+ return time;
59
+ }
60
+ return formatISO(parsedTime);
61
+ } catch (e) {
62
+ return time.toString();
61
63
  }
62
- const newTime = dayjs(time).toISOString();
63
- return isTimeError(newTime) || !newTime ? time : newTime;
64
64
  };
65
65
  static getDateTimeFormTime = (time) => {
66
66
  if (!time) {
67
67
  return time;
68
68
  }
69
- const newTime = dayjs(time).format(dateTimeFormat);
70
- return timeWrapper(newTime, time);
69
+ const parsedTime = isDate(time) ? time : parse(time, dateTimeFormat, /* @__PURE__ */ new Date());
70
+ const newTime = format(parsedTime, dateTimeFormat);
71
+ return isValid(parsedTime) ? newTime : time;
71
72
  };
72
73
  static getTimeFormTime = (time) => {
73
74
  if (!time) {
74
75
  return time;
75
76
  }
76
- const newTime = dayjs(time).format(timeFormat);
77
- return timeWrapper(newTime, time);
77
+ const parsedTime = isDate(time) ? time : parse(time, dateTimeFormat, /* @__PURE__ */ new Date());
78
+ const newTime = format(parsedTime, timeFormat);
79
+ return isValid(parsedTime) ? newTime : time;
78
80
  };
79
81
  static getCurrentDateTime = () => {
80
- const newTime = dayjs().format(dateTimeFormat);
81
- return timeWrapper(newTime, "");
82
+ return format(/* @__PURE__ */ new Date(), dateTimeFormat);
82
83
  };
83
84
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ import { test, assert } from "vitest";
2
+ import { TimeHelper } from "./TimeHelper.mjs";
3
+ test("toUTC should convert time to UTC format", () => {
4
+ const inputTime = "2023-12-19 12:00";
5
+ const expectedOutput = "2023-12-19 05:00";
6
+ const result = TimeHelper.toUTC(inputTime);
7
+ assert.equal(result, expectedOutput);
8
+ });
9
+ test("toLocal should convert time to local format", () => {
10
+ const inputTime = "2023-12-19 12:00";
11
+ const expectedOutput = "2023-12-19 19:00";
12
+ const result = TimeHelper.toLocal(inputTime);
13
+ assert.equal(result, expectedOutput);
14
+ });
15
+ test("getCurrentDate should return the current date in yyyy-MM-dd format", () => {
16
+ const expectedOutputRegex = /^\d{4}-\d{2}-\d{2}$/;
17
+ const result = TimeHelper.getCurrentDate();
18
+ assert.match(result, expectedOutputRegex);
19
+ });
20
+ test("getDateFormTime should convert time to date format", () => {
21
+ const inputTime = "2023-12-19 12:00";
22
+ const expectedOutput = "2023-12-19";
23
+ const result = TimeHelper.getDateFormTime(inputTime);
24
+ assert.equal(result, expectedOutput);
25
+ });
26
+ test("getDateFormTimeWithLocal should convert time to date format with local time", () => {
27
+ const inputTime = "2023-12-19 12:00";
28
+ const expectedOutputRegex = /^\d{4}-\d{2}-\d{2}$/;
29
+ const result = TimeHelper.getDateFormTimeWithLocal(inputTime);
30
+ assert.match(result, expectedOutputRegex);
31
+ });
32
+ test("getISODateTimeFormTime should convert time to ISO date-time format", () => {
33
+ const inputTime = "2023-12-19 14:30";
34
+ const expectedOutput = "2023-12-19T14:30:00+07:00";
35
+ const result = TimeHelper.getISODateTimeFormTime(inputTime);
36
+ assert.equal(result, expectedOutput);
37
+ });
38
+ test("getDateTimeFormTime should convert time to date-time format", () => {
39
+ const inputTime = "2023-12-19 12:00";
40
+ const expectedOutputRegex = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/;
41
+ const result = TimeHelper.getDateTimeFormTime(inputTime);
42
+ assert.match(result, expectedOutputRegex);
43
+ });
44
+ test("getTimeFormTime should convert time to time format", () => {
45
+ const inputTime = "2023-12-19 12:00";
46
+ const expectedOutputRegex = /^\d{2}:\d{2}$/;
47
+ const result = TimeHelper.getTimeFormTime(inputTime);
48
+ assert.match(result, expectedOutputRegex);
49
+ });
50
+ test("getCurrentDateTime should return the current date and time in yyyy-MM-dd HH:mm format", () => {
51
+ const expectedOutputRegex = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/;
52
+ const result = TimeHelper.getCurrentDateTime();
53
+ assert.match(result, expectedOutputRegex);
54
+ });
package/package.json CHANGED
@@ -1,79 +1,79 @@
1
- {
2
- "name": "@finema/core",
3
- "version": "1.3.19",
4
- "repository": "https://gitlab.finema.co/finema/ui-kit",
5
- "license": "MIT",
6
- "author": "Finema Development Team",
7
- "type": "module",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/types.d.ts",
11
- "import": "./dist/module.mjs",
12
- "require": "./dist/module.cjs"
13
- }
14
- },
15
- "main": "./dist/module.cjs",
16
- "types": "./dist/types.d.ts",
17
- "files": [
18
- "dist"
19
- ],
20
- "engines": {
21
- "node": ">=18.0.0"
22
- },
23
- "scripts": {
24
- "prepack": "nuxt-module-build build",
25
- "dev": "nuxi dev playground",
26
- "dev:build": "nuxi build playground",
27
- "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
28
- "lint": "eslint .",
29
- "lint:fix": "eslint . --fix",
30
- "test": "vitest run",
31
- "test:watch": "vitest watch",
32
- "release": "release-it --ci",
33
- "prepare": "husky install"
34
- },
35
- "dependencies": {
36
- "@headlessui/vue": "^1.7.16",
37
- "@iconify-json/mdi": "^1.1.54",
38
- "@iconify-json/simple-icons": "^1.1.76",
39
- "@nuxt/kit": "^3.7.4",
40
- "@nuxt/ui": "^2.11.1",
41
- "@pinia/nuxt": "^0.4.11",
42
- "@vee-validate/nuxt": "^4.11.8",
43
- "@vee-validate/zod": "^4.11.8",
44
- "@vuepic/vue-datepicker": "^7.4.0",
45
- "axios": "^1.5.1",
46
- "dayjs": "^1.11.10",
47
- "lodash-es": "^4.17.21",
48
- "nuxt-security": "^0.14.4",
49
- "pinia": "^2.1.6",
50
- "url-join": "^5.0.0",
51
- "zod": "^3.22.4"
52
- },
53
- "devDependencies": {
54
- "@finema/eslint-config": "^1.2.0",
55
- "@nuxt/devtools": "latest",
56
- "@nuxt/eslint-config": "^0.2.0",
57
- "@nuxt/module-builder": "^0.5.2",
58
- "@nuxt/schema": "^3.7.4",
59
- "@nuxt/test-utils": "^3.7.4",
60
- "@release-it/conventional-changelog": "^7.0.2",
61
- "@types/lodash-es": "^4.17.12",
62
- "@types/node": "^18.18.1",
63
- "changelogen": "^0.5.5",
64
- "eslint": "^8.50.0",
65
- "husky": "^8.0.3",
66
- "lint-staged": "^14.0.1",
67
- "nuxt": "^3.7.4",
68
- "prettier": "^3.0.3",
69
- "release-it": "^16.2.1",
70
- "stylelint": "^15.10.3",
71
- "stylelint-config-prettier-scss": "^1.0.0",
72
- "stylelint-config-standard-scss": "^11.0.0",
73
- "vitest": "^0.33.0"
74
- },
75
- "lint-staged": {
76
- "*.{ts,vue,tsx,js}": "eslint --fix",
77
- "*.{html,json}": "prettier --write"
78
- }
79
- }
1
+ {
2
+ "name": "@finema/core",
3
+ "version": "1.3.20",
4
+ "repository": "https://gitlab.finema.co/finema/ui-kit",
5
+ "license": "MIT",
6
+ "author": "Finema Development Team",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types.d.ts",
11
+ "import": "./dist/module.mjs",
12
+ "require": "./dist/module.cjs"
13
+ }
14
+ },
15
+ "main": "./dist/module.cjs",
16
+ "types": "./dist/types.d.ts",
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "engines": {
21
+ "node": ">=18.0.0"
22
+ },
23
+ "scripts": {
24
+ "prepack": "nuxt-module-build build",
25
+ "dev": "nuxi dev playground",
26
+ "dev:build": "nuxi build playground",
27
+ "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
28
+ "lint": "eslint .",
29
+ "lint:fix": "eslint . --fix",
30
+ "test": "vitest run",
31
+ "test:watch": "vitest watch",
32
+ "release": "release-it --ci",
33
+ "prepare": "husky install"
34
+ },
35
+ "dependencies": {
36
+ "@headlessui/vue": "^1.7.16",
37
+ "@iconify-json/mdi": "^1.1.54",
38
+ "@iconify-json/simple-icons": "^1.1.76",
39
+ "@nuxt/kit": "^3.7.4",
40
+ "@nuxt/ui": "^2.11.1",
41
+ "@pinia/nuxt": "^0.4.11",
42
+ "@vee-validate/nuxt": "^4.11.8",
43
+ "@vee-validate/zod": "^4.11.8",
44
+ "@vuepic/vue-datepicker": "^7.4.0",
45
+ "axios": "^1.5.1",
46
+ "date-fns": "^3.0.0",
47
+ "lodash-es": "^4.17.21",
48
+ "nuxt-security": "^0.14.4",
49
+ "pinia": "^2.1.6",
50
+ "url-join": "^5.0.0",
51
+ "zod": "^3.22.4"
52
+ },
53
+ "devDependencies": {
54
+ "@finema/eslint-config": "^1.2.0",
55
+ "@nuxt/devtools": "latest",
56
+ "@nuxt/eslint-config": "^0.2.0",
57
+ "@nuxt/module-builder": "^0.5.2",
58
+ "@nuxt/schema": "^3.7.4",
59
+ "@nuxt/test-utils": "^3.7.4",
60
+ "@release-it/conventional-changelog": "^7.0.2",
61
+ "@types/lodash-es": "^4.17.12",
62
+ "@types/node": "^18.18.1",
63
+ "changelogen": "^0.5.5",
64
+ "eslint": "^8.50.0",
65
+ "husky": "^8.0.3",
66
+ "lint-staged": "^14.0.1",
67
+ "nuxt": "^3.7.4",
68
+ "prettier": "^3.0.3",
69
+ "release-it": "^16.2.1",
70
+ "stylelint": "^15.10.3",
71
+ "stylelint-config-prettier-scss": "^1.0.0",
72
+ "stylelint-config-standard-scss": "^11.0.0",
73
+ "vitest": "^0.33.0"
74
+ },
75
+ "lint-staged": {
76
+ "*.{ts,vue,tsx,js}": "eslint --fix",
77
+ "*.{html,json}": "prettier --write"
78
+ }
79
+ }