@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.
- package/dist/classes/path.d.ts.map +1 -1
- package/dist/classes/path.js +30 -30
- package/dist/classes/path.js.map +1 -1
- package/dist/enum.d.ts +4 -3
- package/dist/enum.d.ts.map +1 -1
- package/dist/enum.js +3 -2
- package/dist/enum.js.map +1 -1
- package/dist/event-awaiter.d.ts.map +1 -1
- package/dist/event-awaiter.js +6 -6
- package/dist/event-awaiter.js.map +1 -1
- package/dist/general.d.ts +3 -2
- package/dist/general.d.ts.map +1 -1
- package/dist/general.js.map +1 -1
- package/dist/logger/_internals/logger.d.ts.map +1 -1
- package/dist/logger/_internals/logger.js +3 -2
- package/dist/logger/_internals/logger.js.map +1 -1
- package/dist/logger/node/_internals/file-writer.js +7 -7
- package/dist/logger/node/_internals/file-writer.js.map +1 -1
- package/dist/logger/node/index.js +8 -8
- package/dist/logger/node/index.js.map +1 -1
- package/dist/storages/redis/keyed-store.d.ts.map +1 -1
- package/dist/storages/redis/keyed-store.js +10 -10
- package/dist/storages/redis/keyed-store.js.map +1 -1
- package/dist/storages/redis/msgpack.js +2 -2
- package/dist/storages/redis/msgpack.js.map +1 -1
- package/dist/time.d.ts.map +1 -1
- package/dist/time.js +4 -4
- package/dist/time.js.map +1 -1
- package/package.json +15 -11
- package/src/classes/path.ts +30 -30
- package/src/enum.ts +11 -5
- package/src/event-awaiter.ts +6 -6
- package/src/general.ts +5 -3
- package/src/logger/_internals/logger.ts +7 -2
- package/src/logger/node/_internals/file-writer.ts +7 -7
- package/src/logger/node/index.ts +9 -9
- package/src/storages/redis/keyed-store.ts +10 -10
- package/src/storages/redis/msgpack.ts +2 -2
- 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
|
|
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' &&
|
|
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;
|
package/src/logger/node/index.ts
CHANGED
|
@@ -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;
|