29 lines
958 B
TypeScript
29 lines
958 B
TypeScript
import 'reflect-metadata'
|
|
|
|
const detachMetadataKey = Symbol('detach')
|
|
const chunkableMetadataKey = Symbol('chunkable')
|
|
|
|
export function Detach() {
|
|
return Reflect.metadata(detachMetadataKey, true)
|
|
}
|
|
|
|
export function Chunkable(size: number) {
|
|
return Reflect.metadata(chunkableMetadataKey, size)
|
|
}
|
|
|
|
export function isDetached(target: object, propertyKey: string) {
|
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
const metadata = Reflect.getMetadata(detachMetadataKey, target, propertyKey)
|
|
return metadata ? true : false
|
|
}
|
|
|
|
export function isChunkable(target: object, propertyKey: string) {
|
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
const metadata = Reflect.getMetadata(chunkableMetadataKey, target, propertyKey)
|
|
return metadata ? true : false
|
|
}
|
|
|
|
export function getChunkSize(target: object, propertyKey: string) {
|
|
return Reflect.getMetadata(chunkableMetadataKey, target, propertyKey) as number
|
|
}
|