@kikiutils/shared 20.1.0 → 20.1.1

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.
Files changed (39) hide show
  1. package/dist/classes/path.d.ts.map +1 -1
  2. package/dist/classes/path.js +30 -30
  3. package/dist/classes/path.js.map +1 -1
  4. package/dist/enum.d.ts +4 -3
  5. package/dist/enum.d.ts.map +1 -1
  6. package/dist/enum.js +3 -2
  7. package/dist/enum.js.map +1 -1
  8. package/dist/event-awaiter.d.ts.map +1 -1
  9. package/dist/event-awaiter.js +6 -6
  10. package/dist/event-awaiter.js.map +1 -1
  11. package/dist/general.d.ts +3 -2
  12. package/dist/general.d.ts.map +1 -1
  13. package/dist/general.js.map +1 -1
  14. package/dist/logger/_internals/logger.d.ts.map +1 -1
  15. package/dist/logger/_internals/logger.js +3 -2
  16. package/dist/logger/_internals/logger.js.map +1 -1
  17. package/dist/logger/node/_internals/file-writer.js +7 -7
  18. package/dist/logger/node/_internals/file-writer.js.map +1 -1
  19. package/dist/logger/node/index.js +8 -8
  20. package/dist/logger/node/index.js.map +1 -1
  21. package/dist/storages/redis/keyed-store.d.ts.map +1 -1
  22. package/dist/storages/redis/keyed-store.js +10 -10
  23. package/dist/storages/redis/keyed-store.js.map +1 -1
  24. package/dist/storages/redis/msgpack.js +2 -2
  25. package/dist/storages/redis/msgpack.js.map +1 -1
  26. package/dist/time.d.ts.map +1 -1
  27. package/dist/time.js +4 -4
  28. package/dist/time.js.map +1 -1
  29. package/package.json +15 -11
  30. package/src/classes/path.ts +30 -30
  31. package/src/enum.ts +11 -5
  32. package/src/event-awaiter.ts +6 -6
  33. package/src/general.ts +5 -3
  34. package/src/logger/_internals/logger.ts +7 -2
  35. package/src/logger/node/_internals/file-writer.ts +7 -7
  36. package/src/logger/node/index.ts +9 -9
  37. package/src/storages/redis/keyed-store.ts +10 -10
  38. package/src/storages/redis/msgpack.ts +2 -2
  39. package/src/time.ts +4 -4
@@ -1,3 +1,8 @@
1
+ import {
2
+ objectHasOwn,
3
+ objectKeys,
4
+ } from 'ts-extras';
5
+
1
6
  import type {
2
7
  Logger,
3
8
  LoggerDiagnostic,
@@ -172,7 +177,7 @@ export function createLoggerCore(options: LoggerOptions, hooks: LoggerHooks): Re
172
177
  },
173
178
  } as Logger;
174
179
 
175
- for (const type of Object.keys(loggerMethods) as LoggerMethod[]) {
180
+ for (const type of objectKeys(loggerMethods) as LoggerMethod[]) {
176
181
  logger[type] = async (...args: unknown[]) => {
177
182
  try {
178
183
  refreshLevel();
@@ -202,7 +207,7 @@ function getLevelSeverity(level: LoggerLevel | LoggerMethod): number {
202
207
 
203
208
  function isLevel(value: unknown): value is LoggerLevel {
204
209
  return typeof value === 'string'
205
- && (value === 'silent' || (value !== 'success' && Object.hasOwn(loggerMethods, value)));
210
+ && (value === 'silent' || (value !== 'success' && objectHasOwn(loggerMethods, value)));
206
211
  }
207
212
 
208
213
  function readEnvironmentLevel(): string | undefined {
@@ -141,8 +141,8 @@ export async function createFileWriter(
141
141
  }
142
142
 
143
143
  return Object.freeze({
144
- close() {
145
- if (closePromise) return closePromise;
144
+ async close() {
145
+ if (closePromise) return await closePromise;
146
146
  closing = true;
147
147
  closePromise = new Promise<void>((resolveClosed) => {
148
148
  if (closed) {
@@ -158,21 +158,21 @@ export async function createFileWriter(
158
158
  }
159
159
  });
160
160
 
161
- return closePromise;
161
+ return await closePromise;
162
162
  },
163
163
  getStats: () => Object.freeze({
164
164
  droppedCount,
165
165
  pendingBytes,
166
166
  writeErrorCount,
167
167
  }),
168
- write(text: string) {
168
+ async write(text: string) {
169
169
  if (closing || closed || failed) {
170
170
  report({
171
171
  message: 'File output is closed or unavailable.',
172
172
  type: 'closed',
173
173
  });
174
174
 
175
- return Promise.resolve();
175
+ return await Promise.resolve();
176
176
  }
177
177
 
178
178
  const bytes = Buffer.byteLength(text);
@@ -184,11 +184,11 @@ export async function createFileWriter(
184
184
  type: 'overflow',
185
185
  });
186
186
 
187
- return Promise.resolve();
187
+ return await Promise.resolve();
188
188
  }
189
189
 
190
190
  pendingBytes += bytes;
191
- return new Promise<void>((resolveWritten) => {
191
+ return await new Promise<void>((resolveWritten) => {
192
192
  let settled = false;
193
193
  const settle = () => {
194
194
  if (settled) return;
@@ -47,7 +47,7 @@ export async function createNodeLogger(options: NodeLoggerOptions = {}): Promise
47
47
  options,
48
48
  {
49
49
  report,
50
- write(record) {
50
+ async write(record) {
51
51
  if (closed) {
52
52
  report({
53
53
  message: 'Logger is closed.',
@@ -69,14 +69,14 @@ export async function createNodeLogger(options: NodeLoggerOptions = {}): Promise
69
69
  void completion.then(() => consoleWrites.delete(completion));
70
70
  const fileCompletion = writer?.write(`${stripVTControlCharacters(text)}\n`);
71
71
  return fileCompletion
72
- ? Promise.all([
72
+ ? await Promise.all([
73
73
  completion,
74
74
  fileCompletion,
75
75
  ]).then(() => {})
76
- : completion;
76
+ : await completion;
77
77
  }
78
78
 
79
- return writer?.write(`${stripVTControlCharacters(text)}\n`);
79
+ return await writer?.write(`${stripVTControlCharacters(text)}\n`);
80
80
  },
81
81
  },
82
82
  );
@@ -85,8 +85,8 @@ export async function createNodeLogger(options: NodeLoggerOptions = {}): Promise
85
85
 
86
86
  return Object.freeze({
87
87
  ...logger,
88
- close() {
89
- if (closePromise) return closePromise;
88
+ async close() {
89
+ if (closePromise) return await closePromise;
90
90
  closed = true;
91
91
  closePromise = (async () => {
92
92
  await Promise.all([
@@ -108,7 +108,7 @@ export async function createNodeLogger(options: NodeLoggerOptions = {}): Promise
108
108
  consoleTargets.clear();
109
109
  })();
110
110
 
111
- return closePromise;
111
+ return await closePromise;
112
112
  },
113
113
  getStats: () => writer?.getStats() ?? Object.freeze({
114
114
  droppedCount: 0,
@@ -121,7 +121,7 @@ export async function createNodeLogger(options: NodeLoggerOptions = {}): Promise
121
121
  /**
122
122
  * One error listener per shared output stream; retained until its last owning logger calls close().
123
123
  */
124
- function writeConsole(
124
+ async function writeConsole(
125
125
  target: NodeJS.WriteStream,
126
126
  text: string,
127
127
  report: (event: LoggerDiagnostic) => void,
@@ -149,7 +149,7 @@ function writeConsole(
149
149
 
150
150
  state.owners.add(owner);
151
151
  const current = state;
152
- return new Promise<void>((resolveWritten) => {
152
+ return await new Promise<void>((resolveWritten) => {
153
153
  let settled = false;
154
154
  const settle = (error?: Error | null) => {
155
155
  if (settled) return;
@@ -20,18 +20,18 @@ import type { RedisLikeStorage } from './types';
20
20
  */
21
21
  export function createRedisKeyedStore<D = unknown>(storage: MaybeReadonly<RedisLikeStorage>) {
22
22
  return <P extends any[]>(keyFn: (...args: P) => string) => Object.freeze({
23
- getAndRemoveItem: (...args: P) => storage.getAndRemoveItem<D>(keyFn(...args)),
24
- getItem: (...args: P) => storage.getItem<D>(keyFn(...args)),
25
- getItemTtl: (...args: P) => storage.getItemTtl(keyFn(...args)),
26
- hasItem: (...args: P) => storage.hasItem(keyFn(...args)),
27
- removeItem: (...args: P) => storage.removeItem(keyFn(...args)),
23
+ getAndRemoveItem: async (...args: P) => await storage.getAndRemoveItem<D>(keyFn(...args)),
24
+ getItem: async (...args: P) => await storage.getItem<D>(keyFn(...args)),
25
+ getItemTtl: async (...args: P) => await storage.getItemTtl(keyFn(...args)),
26
+ hasItem: async (...args: P) => await storage.hasItem(keyFn(...args)),
27
+ removeItem: async (...args: P) => await storage.removeItem(keyFn(...args)),
28
28
  resolveKey: (...args: P) => keyFn(...args),
29
- setItem: (value: D, ...args: P) => storage.setItem(keyFn(...args), value),
30
- setItemWithTtl(ttlSeconds: number, value: D, ...args: P) {
31
- return storage.setItemWithTtl(keyFn(...args), ttlSeconds, value);
29
+ setItem: async (value: D, ...args: P) => await storage.setItem(keyFn(...args), value),
30
+ async setItemWithTtl(ttlSeconds: number, value: D, ...args: P) {
31
+ return await storage.setItemWithTtl(keyFn(...args), ttlSeconds, value);
32
32
  },
33
- setItemWithTtlIfAbsent(ttlSeconds: number, value: D, ...args: P) {
34
- return storage.setItemWithTtlIfAbsent(keyFn(...args), ttlSeconds, value);
33
+ async setItemWithTtlIfAbsent(ttlSeconds: number, value: D, ...args: P) {
34
+ return await storage.setItemWithTtlIfAbsent(keyFn(...args), ttlSeconds, value);
35
35
  },
36
36
  });
37
37
  }
@@ -73,8 +73,8 @@ export function createRedisMsgpackStorage(adapter: RedisLikeAdapter): Readonly<R
73
73
  const rawValue = await adapter.getBuffer(key);
74
74
  return rawValue ? decode(rawValue) as T : null;
75
75
  },
76
- getItemTtl: (key: string) => adapter.ttl(key),
77
- hasItem: (key: string) => adapter.has(key),
76
+ getItemTtl: async (key: string) => await adapter.ttl(key),
77
+ hasItem: async (key: string) => await adapter.has(key),
78
78
  removeItem: async (key: string) => await adapter.delete(key) === 1,
79
79
  setItem: async (key: string, value: any) => await adapter.setBuffer(key, encode(value)) === 'OK',
80
80
  async setItemWithTtl(key: string, ttlSeconds: number, value: any) {
package/src/time.ts CHANGED
@@ -18,8 +18,8 @@
18
18
  * await delay(5000, controller.signal);
19
19
  * ```
20
20
  */
21
- export function delay(ms: number, signal?: AbortSignal): Promise<void> {
22
- return new Promise((resolve) => {
21
+ export async function delay(ms: number, signal?: AbortSignal): Promise<void> {
22
+ return await new Promise((resolve) => {
23
23
  if (signal?.aborted) {
24
24
  resolve();
25
25
  return;
@@ -61,8 +61,8 @@ export function delay(ms: number, signal?: AbortSignal): Promise<void> {
61
61
  * }
62
62
  * ```
63
63
  */
64
- export function delayOrThrow(ms: number, signal?: AbortSignal): Promise<void> {
65
- return new Promise((resolve, reject) => {
64
+ export async function delayOrThrow(ms: number, signal?: AbortSignal): Promise<void> {
65
+ return await new Promise((resolve, reject) => {
66
66
  if (signal?.aborted) {
67
67
  reject(signal.reason);
68
68
  return;