@bunt/util
Advanced tools
Comparing version 0.21.7 to 0.21.9
@@ -0,16 +1,9 @@ | ||
import { Promisify } from "./interfaces"; | ||
export declare const noop: (..._args: any[]) => void; | ||
export declare function not<A extends any[]>(fn: (...args: A) => boolean): (...args: A) => boolean; | ||
export declare function curry<A extends any[], T, S>(fn: (arg1: T, ...args: A) => S, value: T): (...args: A) => S; | ||
export declare function safeSync<A extends any[], R>(fn: (...args: A) => R): (...args: A) => R | undefined; | ||
export declare function safe<A extends any[], R extends Promise<any>>(fn: (...args: A) => R): (...args: A) => Promise<R>; | ||
export declare function isolate<A extends any[]>(fn: (...args: A) => any): (...args: A) => void; | ||
export declare function makeSafe<A extends any[], R extends Promise<any>>(fn: (...args: A) => R): (...args: A) => Promise<R>; | ||
export declare type ValueToArray<T> = T extends any[] ? T : T[]; | ||
export declare function toArray<T>(value: T): ValueToArray<T>; | ||
export declare function voidify<T extends Promise<unknown>>(value: T): Promise<void>; | ||
export declare const fn: { | ||
noop: (..._args: any[]) => void; | ||
curry: typeof curry; | ||
safe: typeof safe; | ||
isolate: typeof isolate; | ||
voidify: typeof voidify; | ||
}; | ||
export declare function safeMap<T>(values: Iterable<T>, fn: (value: T) => Promisify<any>): Promise<unknown[]>; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.fn = exports.voidify = exports.toArray = exports.isolate = exports.safe = exports.safeSync = exports.curry = exports.not = exports.noop = void 0; | ||
exports.safeMap = exports.voidify = exports.toArray = exports.makeSafe = exports.curry = exports.not = exports.noop = void 0; | ||
const is_1 = require("./is"); | ||
const Async_1 = require("./Async"); | ||
const noop = (..._args) => void 0; | ||
@@ -19,14 +20,3 @@ exports.noop = noop; | ||
exports.curry = curry; | ||
function safeSync(fn) { | ||
return (...args) => { | ||
try { | ||
return fn(...args); | ||
} | ||
catch (error) { | ||
// do something | ||
} | ||
}; | ||
} | ||
exports.safeSync = safeSync; | ||
function safe(fn) { | ||
function makeSafe(fn) { | ||
return async (...args) => { | ||
@@ -41,9 +31,3 @@ try { | ||
} | ||
exports.safe = safe; | ||
function isolate(fn) { | ||
return (...args) => { | ||
process.nextTick(() => fn(...args)); | ||
}; | ||
} | ||
exports.isolate = isolate; | ||
exports.makeSafe = makeSafe; | ||
function toArray(value) { | ||
@@ -60,9 +44,15 @@ if ((0, is_1.isArray)(value)) { | ||
exports.voidify = voidify; | ||
exports.fn = { | ||
noop: exports.noop, | ||
curry, | ||
safe, | ||
isolate, | ||
voidify, | ||
}; | ||
async function safeMap(values, fn) { | ||
const result = []; | ||
for (const value of values) { | ||
try { | ||
result.push(await fn(value)); | ||
} | ||
catch (error) { | ||
result.push(Promise.resolve(undefined)); | ||
} | ||
} | ||
return (0, Async_1.all)(result); | ||
} | ||
exports.safeMap = safeMap; | ||
//# sourceMappingURL=function.js.map |
export * from "./is"; | ||
export * from "./stream"; | ||
export * from "./array"; | ||
export * from "./assert"; | ||
@@ -5,0 +4,0 @@ export * from "./object"; |
@@ -15,3 +15,2 @@ "use strict"; | ||
__exportStar(require("./stream"), exports); | ||
__exportStar(require("./array"), exports); | ||
__exportStar(require("./assert"), exports); | ||
@@ -18,0 +17,0 @@ __exportStar(require("./object"), exports); |
@@ -18,5 +18,4 @@ import { ILogger, ILoggerTransport, Logable, LogableType, LogFn, LoggerOwner, LogWrapFn, SeverityLevel } from "./interfaces"; | ||
static setSeverity(severity: SeverityLevel): void; | ||
static add(transport: ILoggerTransport, unref?: boolean): void; | ||
static add(transport: ILoggerTransport): void; | ||
static set(list: ILoggerTransport[]): void; | ||
static reset(): void; | ||
static factory(target: LoggerOwner): Logger; | ||
@@ -32,2 +31,3 @@ protected static createLogger(target: LoggerOwner): Logger; | ||
static dispose(): Promise<void>; | ||
private static reset; | ||
add(child: ILogger): void; | ||
@@ -34,0 +34,0 @@ perf(message: string, ...args: Logable[]): () => void; |
@@ -18,4 +18,4 @@ "use strict"; | ||
const util_1 = require("util"); | ||
const __1 = require(".."); | ||
const assert_1 = require("../assert"); | ||
const function_1 = require("../function"); | ||
const is_1 = require("../is"); | ||
@@ -68,5 +68,5 @@ const Perf_1 = require("../Perf"); | ||
} | ||
static add(transport, unref = true) { | ||
static add(transport) { | ||
transports.push(transport); | ||
const safeFn = function_1.fn.safe(async (log) => { | ||
const safeFn = (0, __1.makeSafe)(async (log) => { | ||
if (transport.writable) { | ||
@@ -76,3 +76,3 @@ await transport.write(log); | ||
}); | ||
writers.push(unref ? function_1.fn.isolate(safeFn) : safeFn); | ||
writers.push(safeFn); | ||
} | ||
@@ -85,6 +85,2 @@ static set(list) { | ||
} | ||
static reset() { | ||
writers.splice(0, transports.length); | ||
transports.splice(0, transports.length); | ||
} | ||
static factory(target) { | ||
@@ -171,4 +167,9 @@ return loggers.get(target) || this.createLogger(target); | ||
static async dispose() { | ||
await this.reset(); | ||
} | ||
static reset() { | ||
writers.splice(0, writers.length); | ||
await Promise.allSettled(transports.map((transport) => transport.close())); | ||
return Promise.allSettled(transports | ||
.splice(0, transports.length) | ||
.map((transport) => transport.close())); | ||
} | ||
@@ -175,0 +176,0 @@ add(child) { |
{ | ||
"name": "@bunt/util", | ||
"version": "0.21.7", | ||
"version": "0.21.9", | ||
"keywords": [ | ||
@@ -29,3 +29,3 @@ "typescript" | ||
"license": "MIT", | ||
"gitHead": "ac62ace73285765a97d306b1a4fd678d2a9ddfeb" | ||
"gitHead": "7f25006c8b89c398dce66f45610d65c207252b6b" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
141110
2146