export const makeTag = <Identifier, Service = Identifier>(identifier?: unknown): C.Tag<Identifier, Service> => {
if (identifier && tagRegistry.has(identifier)) {
return tagRegistry.get(identifier)!
}
const limit = Error.stackTraceLimit
Error.stackTraceLimit = 2
const creationError = new Error()
Error.stackTraceLimit = limit
const tag = Object.create(TagProto)
Object.defineProperty(tag, "stack", {
get() {
return creationError.stack
}
})
if (identifier) {
tag.identifier = identifier
tagRegistry.set(identifier, tag)
}
return tag
}
export const makeTag = <Identifier, Service = Identifier>(identifier?: unknown): C.Tag<Identifier, Service> => {
if (identifier && tagRegistry.has(identifier)) {
return tagRegistry.get(identifier)!
}
const limit = Error.stackTraceLimit
Error.stackTraceLimit = 2
const creationError = new Error()
Error.stackTraceLimit = limit
const tag = Object.create(TagProto)
Object.defineProperty(tag, "stack", {
get() {
return creationError.stack
}
})
if (identifier) {
tag.identifier = identifier
tagRegistry.set(identifier, tag)
}
return tag
}