@kwiz/common 1.0.103 → 1.0.104

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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toIsoDateFormat = void 0;
3
+ exports.dateFormat = exports.toIsoDateFormat = void 0;
4
4
  const typecheckers_1 = require("../helpers/typecheckers");
5
5
  const knownscript_1 = require("./knownscript");
6
6
  /** return date format as yyyy-MM-ddTHH:mm:ssZ
@@ -27,4 +27,142 @@ function toIsoDateFormat(date, options) {
27
27
  return o;
28
28
  }
29
29
  exports.toIsoDateFormat = toIsoDateFormat;
30
+ function dateFormat(date, format) {
31
+ let strResult = "";
32
+ //collect strings in the format, up to 4 in a row.
33
+ let currentChar = "";
34
+ let currentToken = "";
35
+ var appendToken = (token) => {
36
+ let ensureNumberOfLetters = 0;
37
+ let result = token;
38
+ let numTmp;
39
+ switch (token) {
40
+ case "d":
41
+ result = date.getDate().toString(10);
42
+ break;
43
+ case "dd":
44
+ result = date.getDate().toString(10);
45
+ ensureNumberOfLetters = 2;
46
+ break;
47
+ case "ddd":
48
+ result = Intl.DateTimeFormat(undefined, { weekday: "short" }).format(date);
49
+ break;
50
+ case "dddd":
51
+ result = Intl.DateTimeFormat(undefined, { weekday: "long" }).format(date);
52
+ break;
53
+ case "h":
54
+ numTmp = date.getHours();
55
+ if (numTmp > 12)
56
+ numTmp -= 12;
57
+ if (numTmp === 0)
58
+ numTmp = 12;
59
+ result = numTmp.toString(10);
60
+ break;
61
+ case "hh":
62
+ numTmp = date.getHours();
63
+ if (numTmp > 12)
64
+ numTmp -= 12;
65
+ if (numTmp === 0)
66
+ numTmp = 12;
67
+ result = numTmp.toString(10);
68
+ ensureNumberOfLetters = 2;
69
+ break;
70
+ case "H":
71
+ result = date.getHours().toString(10);
72
+ break;
73
+ case "HH":
74
+ result = date.getHours().toString(10);
75
+ ensureNumberOfLetters = 2;
76
+ break;
77
+ case "m":
78
+ result = date.getMinutes().toString(10);
79
+ break;
80
+ case "mm":
81
+ result = date.getMinutes().toString(10);
82
+ ensureNumberOfLetters = 2;
83
+ break;
84
+ case "M":
85
+ result = (date.getMonth() + 1).toString(10);
86
+ break;
87
+ case "MM":
88
+ result = (date.getMonth() + 1).toString(10);
89
+ ensureNumberOfLetters = 2;
90
+ break;
91
+ case "MMM":
92
+ result = Intl.DateTimeFormat(undefined, { month: "short" }).format(date);
93
+ break;
94
+ case "MMMM":
95
+ result = Intl.DateTimeFormat(undefined, { month: "long" }).format(date);
96
+ break;
97
+ case "s":
98
+ result = date.getSeconds().toString(10);
99
+ break;
100
+ case "ss":
101
+ result = date.getSeconds().toString(10);
102
+ ensureNumberOfLetters = 2;
103
+ break;
104
+ case "t":
105
+ case "tt":
106
+ numTmp = date.getHours();
107
+ result = Intl.DateTimeFormat(undefined, { hour12: true, hour: "2-digit" }).format(date).split(" ")[1];
108
+ break;
109
+ case "y":
110
+ result = date.getFullYear().toString(10).slice(2);
111
+ break;
112
+ case "yy":
113
+ result = date.getFullYear().toString(10).slice(1);
114
+ result = result.padStart(token.length, "0");
115
+ break;
116
+ case "yyy":
117
+ case "yyyy":
118
+ result = date.getFullYear().toString(10);
119
+ result = result.padStart(token.length, "0");
120
+ break;
121
+ case "K":
122
+ case "z":
123
+ case "zz":
124
+ case "zzz":
125
+ result = "";
126
+ break;
127
+ case "f":
128
+ result = date.getMilliseconds().toString(10).slice(0, 1);
129
+ break;
130
+ case "ff":
131
+ result = date.getMilliseconds().toString(10).slice(0, 2);
132
+ break;
133
+ case "fff":
134
+ result = date.getMilliseconds().toString(10).slice(0, 3);
135
+ break;
136
+ case "ffff":
137
+ result = date.getMilliseconds().toString(10).slice(0, 4);
138
+ break;
139
+ case "fffff":
140
+ result = date.getMilliseconds().toString(10).slice(0, 5);
141
+ break;
142
+ case "ffffff":
143
+ result = date.getMilliseconds().toString(10).slice(0, 6);
144
+ break;
145
+ case "fffffff":
146
+ result = date.getMilliseconds().toString(10).slice(0, 7);
147
+ break;
148
+ }
149
+ while (ensureNumberOfLetters > result.length)
150
+ result = "0" + result;
151
+ return result;
152
+ };
153
+ for (var i = 0; i < format.length; i++) {
154
+ let char = format[i];
155
+ if (char === currentChar) {
156
+ currentToken += char;
157
+ }
158
+ else {
159
+ strResult += appendToken(currentToken);
160
+ currentToken = char;
161
+ currentChar = char;
162
+ }
163
+ }
164
+ strResult += appendToken(currentToken);
165
+ return strResult;
166
+ }
167
+ exports.dateFormat = dateFormat;
30
168
  //# sourceMappingURL=date.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/utils/date.ts"],"names":[],"mappings":";;;AAAA,0DAAgE;AAChE,+CAAkD;AAElD;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAU,EAAE,OAM3C;IACG,IAAI,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC;IACvD,IAAI,WAAW,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC;IACnE,IAAI,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC;IAE7D,IAAI,sBAAsB,GAAG,OAAO,IAAI,IAAA,wBAAS,EAAC,OAAO,CAAC,sBAAsB,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC,sBAAsB;QAChC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;IAErB,IAAI,MAAM,GAAG,cAAc,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3H,IAAI,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,+BAAiB,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,IAAI,sBAAsB,EAAE,CAAC;QACzB,qEAAqE;QACrE,yEAAyE;QACzE,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC;AACb,CAAC;AA7BD,0CA6BC"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/utils/date.ts"],"names":[],"mappings":"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"}
@@ -23,4 +23,141 @@ export function toIsoDateFormat(date, options) {
23
23
  let o = oDate.format(format);
24
24
  return o;
25
25
  }
26
+ export function dateFormat(date, format) {
27
+ let strResult = "";
28
+ //collect strings in the format, up to 4 in a row.
29
+ let currentChar = "";
30
+ let currentToken = "";
31
+ var appendToken = (token) => {
32
+ let ensureNumberOfLetters = 0;
33
+ let result = token;
34
+ let numTmp;
35
+ switch (token) {
36
+ case "d":
37
+ result = date.getDate().toString(10);
38
+ break;
39
+ case "dd":
40
+ result = date.getDate().toString(10);
41
+ ensureNumberOfLetters = 2;
42
+ break;
43
+ case "ddd":
44
+ result = Intl.DateTimeFormat(undefined, { weekday: "short" }).format(date);
45
+ break;
46
+ case "dddd":
47
+ result = Intl.DateTimeFormat(undefined, { weekday: "long" }).format(date);
48
+ break;
49
+ case "h":
50
+ numTmp = date.getHours();
51
+ if (numTmp > 12)
52
+ numTmp -= 12;
53
+ if (numTmp === 0)
54
+ numTmp = 12;
55
+ result = numTmp.toString(10);
56
+ break;
57
+ case "hh":
58
+ numTmp = date.getHours();
59
+ if (numTmp > 12)
60
+ numTmp -= 12;
61
+ if (numTmp === 0)
62
+ numTmp = 12;
63
+ result = numTmp.toString(10);
64
+ ensureNumberOfLetters = 2;
65
+ break;
66
+ case "H":
67
+ result = date.getHours().toString(10);
68
+ break;
69
+ case "HH":
70
+ result = date.getHours().toString(10);
71
+ ensureNumberOfLetters = 2;
72
+ break;
73
+ case "m":
74
+ result = date.getMinutes().toString(10);
75
+ break;
76
+ case "mm":
77
+ result = date.getMinutes().toString(10);
78
+ ensureNumberOfLetters = 2;
79
+ break;
80
+ case "M":
81
+ result = (date.getMonth() + 1).toString(10);
82
+ break;
83
+ case "MM":
84
+ result = (date.getMonth() + 1).toString(10);
85
+ ensureNumberOfLetters = 2;
86
+ break;
87
+ case "MMM":
88
+ result = Intl.DateTimeFormat(undefined, { month: "short" }).format(date);
89
+ break;
90
+ case "MMMM":
91
+ result = Intl.DateTimeFormat(undefined, { month: "long" }).format(date);
92
+ break;
93
+ case "s":
94
+ result = date.getSeconds().toString(10);
95
+ break;
96
+ case "ss":
97
+ result = date.getSeconds().toString(10);
98
+ ensureNumberOfLetters = 2;
99
+ break;
100
+ case "t":
101
+ case "tt":
102
+ numTmp = date.getHours();
103
+ result = Intl.DateTimeFormat(undefined, { hour12: true, hour: "2-digit" }).format(date).split(" ")[1];
104
+ break;
105
+ case "y":
106
+ result = date.getFullYear().toString(10).slice(2);
107
+ break;
108
+ case "yy":
109
+ result = date.getFullYear().toString(10).slice(1);
110
+ result = result.padStart(token.length, "0");
111
+ break;
112
+ case "yyy":
113
+ case "yyyy":
114
+ result = date.getFullYear().toString(10);
115
+ result = result.padStart(token.length, "0");
116
+ break;
117
+ case "K":
118
+ case "z":
119
+ case "zz":
120
+ case "zzz":
121
+ result = "";
122
+ break;
123
+ case "f":
124
+ result = date.getMilliseconds().toString(10).slice(0, 1);
125
+ break;
126
+ case "ff":
127
+ result = date.getMilliseconds().toString(10).slice(0, 2);
128
+ break;
129
+ case "fff":
130
+ result = date.getMilliseconds().toString(10).slice(0, 3);
131
+ break;
132
+ case "ffff":
133
+ result = date.getMilliseconds().toString(10).slice(0, 4);
134
+ break;
135
+ case "fffff":
136
+ result = date.getMilliseconds().toString(10).slice(0, 5);
137
+ break;
138
+ case "ffffff":
139
+ result = date.getMilliseconds().toString(10).slice(0, 6);
140
+ break;
141
+ case "fffffff":
142
+ result = date.getMilliseconds().toString(10).slice(0, 7);
143
+ break;
144
+ }
145
+ while (ensureNumberOfLetters > result.length)
146
+ result = "0" + result;
147
+ return result;
148
+ };
149
+ for (var i = 0; i < format.length; i++) {
150
+ let char = format[i];
151
+ if (char === currentChar) {
152
+ currentToken += char;
153
+ }
154
+ else {
155
+ strResult += appendToken(currentToken);
156
+ currentToken = char;
157
+ currentChar = char;
158
+ }
159
+ }
160
+ strResult += appendToken(currentToken);
161
+ return strResult;
162
+ }
26
163
  //# sourceMappingURL=date.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/utils/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU,EAAE,OAM3C;IACG,IAAI,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC;IACvD,IAAI,WAAW,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC;IACnE,IAAI,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC;IAE7D,IAAI,sBAAsB,GAAG,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC,sBAAsB;QAChC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;IAErB,IAAI,MAAM,GAAG,cAAc,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3H,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,IAAI,sBAAsB,EAAE,CAAC;QACzB,qEAAqE;QACrE,yEAAyE;QACzE,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/utils/date.ts"],"names":[],"mappings":"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"}
@@ -8,3 +8,4 @@ export declare function toIsoDateFormat(date: Date, options?: {
8
8
  omitSeconds?: boolean;
9
9
  addLocalTimezoneOffset?: boolean;
10
10
  }): string;
11
+ export declare function dateFormat(date: Date, format: string): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kwiz/common",
3
- "version": "1.0.103",
3
+ "version": "1.0.104",
4
4
  "description": "KWIZ common utilities and helpers for M365 platform",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/esm/index.js",
package/src/utils/date.ts CHANGED
@@ -33,4 +33,141 @@ export function toIsoDateFormat(date: Date, options?: {
33
33
  }
34
34
  let o = oDate.format(format);
35
35
  return o;
36
+ }
37
+
38
+ export function dateFormat(date: Date, format: string) {
39
+ let strResult = "";
40
+ //collect strings in the format, up to 4 in a row.
41
+ let currentChar = "";
42
+ let currentToken = "";
43
+
44
+ var appendToken = (token: string) => {
45
+ let ensureNumberOfLetters = 0;
46
+ let result: string = token;
47
+ let numTmp: number;
48
+ switch (token) {
49
+ case "d":
50
+ result = date.getDate().toString(10);
51
+ break;
52
+ case "dd":
53
+ result = date.getDate().toString(10);
54
+ ensureNumberOfLetters = 2;
55
+ break;
56
+ case "ddd":
57
+ result = Intl.DateTimeFormat(undefined, { weekday: "short" }).format(date);
58
+ break;
59
+ case "dddd":
60
+ result = Intl.DateTimeFormat(undefined, { weekday: "long" }).format(date);
61
+ break;
62
+ case "h":
63
+ numTmp = date.getHours();
64
+ if (numTmp > 12) numTmp -= 12;
65
+ if (numTmp === 0) numTmp = 12;
66
+ result = numTmp.toString(10);
67
+ break;
68
+ case "hh":
69
+ numTmp = date.getHours();
70
+ if (numTmp > 12) numTmp -= 12;
71
+ if (numTmp === 0) numTmp = 12;
72
+ result = numTmp.toString(10);
73
+ ensureNumberOfLetters = 2;
74
+ break;
75
+ case "H":
76
+ result = date.getHours().toString(10);
77
+ break;
78
+ case "HH":
79
+ result = date.getHours().toString(10);
80
+ ensureNumberOfLetters = 2;
81
+ break;
82
+ case "m":
83
+ result = date.getMinutes().toString(10);
84
+ break;
85
+ case "mm":
86
+ result = date.getMinutes().toString(10);
87
+ ensureNumberOfLetters = 2;
88
+ break;
89
+ case "M":
90
+ result = (date.getMonth() + 1).toString(10);
91
+ break;
92
+ case "MM":
93
+ result = (date.getMonth() + 1).toString(10);
94
+ ensureNumberOfLetters = 2;
95
+ break;
96
+ case "MMM":
97
+ result = Intl.DateTimeFormat(undefined, { month: "short" }).format(date);
98
+ break;
99
+ case "MMMM":
100
+ result = Intl.DateTimeFormat(undefined, { month: "long" }).format(date);
101
+ break;
102
+ case "s":
103
+ result = date.getSeconds().toString(10);
104
+ break;
105
+ case "ss":
106
+ result = date.getSeconds().toString(10);
107
+ ensureNumberOfLetters = 2;
108
+ break;
109
+ case "t":
110
+ case "tt":
111
+ numTmp = date.getHours();
112
+ result = Intl.DateTimeFormat(undefined, { hour12: true, hour: "2-digit" }).format(date).split(" ")[1];
113
+ break;
114
+ case "y":
115
+ result = date.getFullYear().toString(10).slice(2);
116
+ break;
117
+ case "yy":
118
+ result = date.getFullYear().toString(10).slice(1);
119
+ result = result.padStart(token.length, "0");
120
+ break;
121
+ case "yyy":
122
+ case "yyyy":
123
+ result = date.getFullYear().toString(10);
124
+ result = result.padStart(token.length, "0");
125
+ break;
126
+ case "K":
127
+ case "z":
128
+ case "zz":
129
+ case "zzz":
130
+ result = "";
131
+ break;
132
+ case "f":
133
+ result = date.getMilliseconds().toString(10).slice(0, 1);
134
+ break;
135
+ case "ff":
136
+ result = date.getMilliseconds().toString(10).slice(0, 2);
137
+ break;
138
+ case "fff":
139
+ result = date.getMilliseconds().toString(10).slice(0, 3);
140
+ break;
141
+ case "ffff":
142
+ result = date.getMilliseconds().toString(10).slice(0, 4);
143
+ break;
144
+ case "fffff":
145
+ result = date.getMilliseconds().toString(10).slice(0, 5);
146
+ break;
147
+ case "ffffff":
148
+ result = date.getMilliseconds().toString(10).slice(0, 6);
149
+ break;
150
+ case "fffffff":
151
+ result = date.getMilliseconds().toString(10).slice(0, 7);
152
+ break;
153
+ }
154
+
155
+ while (ensureNumberOfLetters > result.length)
156
+ result = "0" + result;
157
+ return result;
158
+ };
159
+
160
+ for (var i = 0; i < format.length; i++) {
161
+ let char = format[i];
162
+ if (char === currentChar) {
163
+ currentToken += char;
164
+ } else {
165
+ strResult += appendToken(currentToken);
166
+ currentToken = char;
167
+ currentChar = char;
168
+ }
169
+ }
170
+ strResult += appendToken(currentToken);
171
+
172
+ return strResult;
36
173
  }