alsatian-test/alsatian

View on GitHub
packages/alsatian/core/decorators/timeout-decorator.ts

Summary

Maintainability
A
0 mins
Test Coverage
import "reflect-metadata";
import { TIMEOUT } from "./_metadata-keys";
import { Unused } from "../unused";

export function Timeout(timeoutInMs: number) {
    if (timeoutInMs <= 0) {
        throw new RangeError("Timeout period must be greater than 0.");
    }

    return (
        target: object,
        propertyKey: string,
        descriptor?: TypedPropertyDescriptor<any>
    ) => {
        Unused(descriptor);

        Reflect.defineMetadata(TIMEOUT, timeoutInMs, target, propertyKey);
    };
}