@driveflux/time 4.0.9 → 4.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAMD,eAAO,IAAI,MAAM,EAAE,MAA6C,CAAA;AAEhE,eAAO,MAAM,WAAW,cAIvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,OAAO,GAAG,SAAS,MAAM,CAAC,GAAG,CAAC,SAE/E,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAA;CAChB,CAAA;AAMD,eAAO,IAAI,MAAM,EAAE,MAA6C,CAAA;AAEhE,eAAO,MAAM,WAAW,cAIvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,OAC5C,GAAG,SACD,MAAM,CAAC,GAAG,CAAC,SAGlB,CAAA"}
package/dist/config.js ADDED
@@ -0,0 +1,14 @@
1
+ import { singleton } from '@driveflux/singleton';
2
+ var getConfig = function() {
3
+ return {
4
+ timezone: process.env.TIME_ZONE || 'Asia/Kuala_Lumpur'
5
+ };
6
+ };
7
+ export var config = singleton('timeConfig', getConfig());
8
+ export var resetConfig = function() {
9
+ config = singleton('timeConfig', getConfig(), true);
10
+ return config;
11
+ };
12
+ export var setConfig = function(key, value) {
13
+ config[key] = value;
14
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAC/C,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAC5C,eAAO,MAAM,oBAAoB,UAAU,CAAA;AAC3C,eAAO,MAAM,YAAY;;;;CAIf,CAAA;AAEV;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,SAAU,MAAM,GAAG,IAAI,uBAAuB,MAAM,aAAa,MAAM,WAQzF,CAAA;AAED,eAAO,MAAM,aAAa,UAAU,MAAM,GAAG,IAAI,aAA0B,MAAM,WAEhF,CAAA;AAED,eAAO,MAAM,KAAK,SAAU,MAAM,SAEjC,CAAA;AAED,eAAO,MAAM,oBAAoB,SAAU,IAAI,cAAc,OAAO,GAAG,KAAK,aAAa,MAAM,SAK9F,CAAA;AAED,eAAO,MAAM,WAAW,cAEvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,2BAAkC,QAAQ,SAE/D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,2BAAkC,QAAQ,SAE7D,CAAA;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,SAE3C,CAAA;AAED,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAC/C,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAC5C,eAAO,MAAM,oBAAoB,UAAU,CAAA;AAC3C,eAAO,MAAM,YAAY;;;;CAIf,CAAA;AAEV;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,SACZ,MAAM,GAAG,IAAI,uBACE,MAAM,aAChB,MAAM,WAWjB,CAAA;AAED,eAAO,MAAM,aAAa,UACnB,MAAM,GAAG,IAAI,aACR,MAAM,WAGjB,CAAA;AAED,eAAO,MAAM,KAAK,SAAU,MAAM,SAEjC,CAAA;AAED,eAAO,MAAM,oBAAoB,SAC1B,IAAI,cACE,OAAO,GAAG,KAAK,aAChB,MAAM,SAMjB,CAAA;AAED,eAAO,MAAM,WAAW,cAEvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,2BAAkC,QAAQ,SAE/D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,2BAAkC,QAAQ,SAE7D,CAAA;AAED,eAAO,MAAM,WAAW,aAAc,MAAM,SAE3C,CAAA;AAED,cAAc,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,80 +1,69 @@
1
- // src/index.ts
2
- import * as dateFnsTz from "date-fns-tz";
3
- import { endOfDay } from "date-fns/endOfDay";
4
- import { format as fnsFormat } from "date-fns/format";
5
- import { parse as fnsParse } from "date-fns/parse";
6
- import { startOfDay } from "date-fns/startOfDay";
7
-
8
- // src/config.ts
9
- import { singleton } from "@driveflux/singleton";
10
- var getConfig = () => ({
11
- timezone: process.env.TIME_ZONE || "Asia/Kuala_Lumpur"
12
- });
13
- var config = singleton("timeConfig", getConfig());
14
- var resetConfig = () => {
15
- config = singleton("timeConfig", getConfig(), true);
16
- return config;
1
+ import * as dateFnsTz from 'date-fns-tz';
2
+ import { endOfDay } from 'date-fns/endOfDay';
3
+ import { format as fnsFormat } from 'date-fns/format';
4
+ import { parse as fnsParse } from 'date-fns/parse';
5
+ import { startOfDay } from 'date-fns/startOfDay';
6
+ import { config } from './config.js';
7
+ var fromZonedTime = dateFnsTz.fromZonedTime, toZonedTime = dateFnsTz.toZonedTime;
8
+ /**
9
+ * @see https://date-fns.org/docs/format
10
+ */ export var DEFAULT_DATE_FORMAT = 'dd-MM-yyyy';
11
+ export var DEFAULT_TIME_FORMAT = 'hh:mm a';
12
+ export var NUMBERED_TIME_FORMAT = 'hh:mm';
13
+ export var EASY_FORMATS = {
14
+ date: DEFAULT_DATE_FORMAT,
15
+ time: DEFAULT_TIME_FORMAT,
16
+ full: "".concat(DEFAULT_DATE_FORMAT, " ").concat(DEFAULT_TIME_FORMAT)
17
17
  };
18
- var setConfig = (key, value) => {
19
- config[key] = value;
18
+ /**
19
+ * Formats a date according to date-fns format
20
+ * There are 3 helper formats:
21
+ * - date: dd-MM-yyyy
22
+ * - time: hh:mm a
23
+ * - full: dd-MM-yyyy hh:mm a
24
+ *
25
+ * @see https://date-fns.org/docs/format
26
+ */ export var format = function(date, providedDateFormat, timezone) {
27
+ var dateFormat = providedDateFormat || DEFAULT_DATE_FORMAT;
28
+ if (dateFormat in EASY_FORMATS) {
29
+ dateFormat = EASY_FORMATS[dateFormat];
30
+ }
31
+ var newDate = timezone ? toZonedTime(new Date(date), timezone) : new Date(date);
32
+ return fnsFormat(newDate, dateFormat);
20
33
  };
21
-
22
- // src/index.ts
23
- var { fromZonedTime, toZonedTime } = dateFnsTz;
24
- var DEFAULT_DATE_FORMAT = "dd-MM-yyyy";
25
- var DEFAULT_TIME_FORMAT = "hh:mm a";
26
- var NUMBERED_TIME_FORMAT = "hh:mm";
27
- var EASY_FORMATS = {
28
- date: DEFAULT_DATE_FORMAT,
29
- time: DEFAULT_TIME_FORMAT,
30
- full: `${DEFAULT_DATE_FORMAT} ${DEFAULT_TIME_FORMAT}`
34
+ export var formatToLocal = function() {
35
+ var date = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : new Date(), timezone = arguments.length > 1 ? arguments[1] : void 0;
36
+ return format(new Date(date), undefined, timezone || config.timezone);
31
37
  };
32
- var format = (date, providedDateFormat, timezone) => {
33
- let dateFormat = providedDateFormat || DEFAULT_DATE_FORMAT;
34
- if (dateFormat in EASY_FORMATS) {
35
- dateFormat = EASY_FORMATS[dateFormat];
36
- }
37
- const newDate = timezone ? toZonedTime(new Date(date), timezone) : new Date(date);
38
- return fnsFormat(newDate, dateFormat);
38
+ export var parse = function(date) {
39
+ return fnsParse(date, DEFAULT_DATE_FORMAT, new Date());
39
40
  };
40
- var formatToLocal = (date = /* @__PURE__ */ new Date(), timezone) => {
41
- return format(new Date(date), void 0, timezone || config.timezone);
41
+ export var ensureExtremityOfDay = function(date, startOrEnd, timezone) {
42
+ var extremity = startOrEnd === 'end' ? endOfDay : startOfDay;
43
+ var tz = timezone || getTimeZone();
44
+ // First convert date to UTC, apply start of day, then convert back to timezone
45
+ return fromZonedTime(extremity(toZonedTime(date, tz)), tz);
42
46
  };
43
- var parse = (date) => {
44
- return fnsParse(date, DEFAULT_DATE_FORMAT, /* @__PURE__ */ new Date());
47
+ export var getTimeZone = function() {
48
+ return config.timezone;
45
49
  };
46
- var ensureExtremityOfDay = (date, startOrEnd, timezone) => {
47
- const extremity = startOrEnd === "end" ? endOfDay : startOfDay;
48
- const tz = timezone || getTimeZone();
49
- return fromZonedTime(extremity(toZonedTime(date, tz)), tz);
50
+ /**
51
+ *
52
+ * @param date Date is in UTC and this will convert to a zoned time (00:00:00 => 16:00:00)
53
+ * @returns
54
+ */ export var zonedDate = function() {
55
+ var date = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : new Date(), timezone = arguments.length > 1 ? arguments[1] : void 0;
56
+ return fromZonedTime(date, timezone || getTimeZone());
50
57
  };
51
- var getTimeZone = () => {
52
- return config.timezone;
58
+ /**
59
+ *
60
+ * @param date Date is in UTC and this will convert to a zoned time (16:00:00 => 00:00:00)
61
+ * @returns
62
+ */ export var utcDate = function() {
63
+ var date = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : new Date(), timezone = arguments.length > 1 ? arguments[1] : void 0;
64
+ return toZonedTime(date, timezone || getTimeZone());
53
65
  };
54
- var zonedDate = (date = /* @__PURE__ */ new Date(), timezone) => {
55
- return fromZonedTime(date, timezone || getTimeZone());
66
+ export var setTimeZone = function(timezone) {
67
+ config.timezone = timezone;
56
68
  };
57
- var utcDate = (date = /* @__PURE__ */ new Date(), timezone) => {
58
- return toZonedTime(date, timezone || getTimeZone());
59
- };
60
- var setTimeZone = (timezone) => {
61
- config.timezone = timezone;
62
- };
63
- export {
64
- DEFAULT_DATE_FORMAT,
65
- DEFAULT_TIME_FORMAT,
66
- EASY_FORMATS,
67
- NUMBERED_TIME_FORMAT,
68
- config,
69
- ensureExtremityOfDay,
70
- format,
71
- formatToLocal,
72
- getTimeZone,
73
- parse,
74
- resetConfig,
75
- setConfig,
76
- setTimeZone,
77
- utcDate,
78
- zonedDate
79
- };
80
- //# sourceMappingURL=index.js.map
69
+ export * from './config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../src/translations.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;CAGvB,CAAA;AAEF,eAAO,MAAM,eAAe,OAAQ,OAAO,CAAC,OAAO,YAAY,CAAC,SAI/D,CAAA;AAED,eAAO,MAAM,cAAc,QAAS,MAAM,OAAO,YAAY,SAAS,MAAM,SAE3E,CAAA"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../src/translations.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;CAGvB,CAAA;AAEF,eAAO,MAAM,eAAe,OAAQ,OAAO,CAAC,OAAO,YAAY,CAAC,SAK/D,CAAA;AAED,eAAO,MAAM,cAAc,QACrB,MAAM,OAAO,YAAY,SACvB,MAAM,SAGb,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { singleton } from '@driveflux/singleton';
2
+ export var translations = singleton('timeTranslations', {
3
+ am: 'am',
4
+ pm: 'pm'
5
+ });
6
+ export var setTranslations = function(ts) {
7
+ for(var key in ts){
8
+ translations[key] = ts[key];
9
+ }
10
+ };
11
+ export var setTranslation = function(key, value) {
12
+ translations[key] = value;
13
+ };
package/package.json CHANGED
@@ -1,40 +1,42 @@
1
1
  {
2
2
  "name": "@driveflux/time",
3
- "version": "4.0.9",
3
+ "version": "4.1.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
7
7
  ".": {
8
8
  "import": "./dist/index.js",
9
- "require": "./dist/cjs/index.js",
10
9
  "types": "./dist/index.d.ts"
11
10
  },
12
11
  "./config": {
13
12
  "import": "./dist/config.js",
14
- "require": "./dist/cjs/config.js",
15
13
  "types": "./dist/config.d.ts"
16
14
  }
17
15
  },
18
- "main": "dist/cjs/index.js",
19
- "module": "dist/index.js",
20
- "types": "dist/index.d.ts",
21
16
  "dependencies": {
22
- "@driveflux/singleton": "1.0.6",
17
+ "@driveflux/singleton": "1.1.0",
23
18
  "date-fns": "^3.6.0",
24
19
  "date-fns-tz": "^3.1.3"
25
20
  },
26
21
  "devDependencies": {
27
- "@types/node": "^20.14.8",
22
+ "@driveflux/fab": "2.1.0",
23
+ "@driveflux/tsconfig": "1.1.0",
24
+ "@types/node": "^20.14.10",
28
25
  "del-cli": "^5.1.0",
29
- "esbuild": "^0.21.5",
30
- "esbuild-register": "^3.5.0",
31
- "typescript": "^5.5.2"
26
+ "typescript": "^5.5.3"
32
27
  },
28
+ "files": [
29
+ "dist"
30
+ ],
33
31
  "scripts": {
34
- "build": "npm run clean && npm run build:types && npm run build:js",
35
- "build:js": "node -r esbuild-register build.js",
36
- "build:types": "tsc --build",
37
- "clean": "del dist/**/*.js",
38
- "type-check": "tsc --noEmit"
32
+ "build": "fab",
33
+ "build:js": "fab -t esm",
34
+ "build:types": "fab -t types",
35
+ "clean": "fab clean",
36
+ "type-check": "tsc --noEmit",
37
+ "check": "biome check --write ./src",
38
+ "lint:errors": "pnpm lint --diagnostic-level error",
39
+ "format": "biome format --write ./src",
40
+ "lint": "biome lint --write --unsafe ./src"
39
41
  }
40
42
  }
@@ -1,18 +0,0 @@
1
-  WARN  Issue while reading "/Users/flux/Projects/flux-master/.npmrc". Failed to replace env in config: ${NPM_TOKEN}
2
-
3
- > @driveflux/time@4.0.8 build /Users/flux/Projects/flux-master/packages/time
4
- > npm run clean && npm run build:types && npm run build:js
5
-
6
-
7
- > @driveflux/time@4.0.8 clean
8
- > del dist/**/*.js
9
-
10
- \
11
- > @driveflux/time@4.0.8 build:types
12
- > tsc --build
13
-
14
- \
15
- > @driveflux/time@4.0.8 build:js
16
- > node -r esbuild-register build.js
17
-
18
- \
@@ -1,5 +0,0 @@
1
- @driveflux/time:build:js: cache hit, replaying output e1c20c6096fa3cef
2
- @driveflux/time:build:js: 
3
- @driveflux/time:build:js: > @driveflux/time@2.0.2 build:js /Users/flux/Projects/flux/packages/time
4
- @driveflux/time:build:js: > node -r esbuild-register build.js
5
- @driveflux/time:build:js: 
@@ -1,5 +0,0 @@
1
- @driveflux/time:build:types: cache hit, replaying output c7b18ac70021169a
2
- @driveflux/time:build:types: 
3
- @driveflux/time:build:types: > @driveflux/time@2.0.2 build:types /Users/flux/Projects/flux/packages/time
4
- @driveflux/time:build:types: > tsc --build
5
- @driveflux/time:build:types: 
@@ -1,5 +0,0 @@
1
- @driveflux/time:clean: cache hit, replaying output 930e69088212a470
2
- @driveflux/time:clean: 
3
- @driveflux/time:clean: > @driveflux/time@2.0.2 clean /Users/flux/Projects/flux/packages/time
4
- @driveflux/time:clean: > del dist/**/*.js
5
- @driveflux/time:clean: