🚨 Active Supply Chain Attack:node-ipc Package Compromised.Learn More
Socket
Book a DemoSign in
Socket

@deessejs/type-testing

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@deessejs/type-testing - npm Package Compare versions

Comparing version
0.1.4
to
0.1.5
+43
dist/api/assert.d.ts
/**
* Assert API - Alternative API that throws at compile time on failure.
*/
import type { Equal, NotEqual } from '../types/equality.js';
import type { IsAny, IsNever, IsUnknown, IsVoid, IsUndefined, IsNull, IsNullable, IsOptional } from '../types/special.js';
import type { IsUnion, IsTuple, IsArray } from '../types/union.js';
import type { IsInhabited, IsUninhabited } from '../types/inhabitation.js';
import type { HasProperty } from '../types/property.js';
import type { Check } from './check.js';
/**
* Assert type - alternative API that throws at compile time on failure.
*
* @example
* ```typescript
* assert<string>().equals<string>()
* ```
*/
export interface Assert<T> {
equals<U>(): Equal<T, U> extends true ? AssertPass : AssertFail<T, U>;
notEquals<U>(): NotEqual<T, U> extends true ? AssertPass : AssertFail<T, U>;
extends<U>(): T extends U ? AssertPass : AssertFail<T, U>;
hasProperty<K extends keyof T>(): HasProperty<T, K> extends true ? AssertPass : AssertFail<T, {
missingProperty: K;
}>;
property<K extends keyof T>(): Check<T[K]>;
isAny(): IsAny<T> extends true ? AssertPass : AssertFail<T, 'any'>;
isNever(): IsNever<T> extends true ? AssertPass : AssertFail<T, 'never'>;
isUnknown(): IsUnknown<T> extends true ? AssertPass : AssertFail<T, 'unknown'>;
isVoid(): IsVoid<T> extends true ? AssertPass : AssertFail<T, 'void'>;
isUndefined(): IsUndefined<T> extends true ? AssertPass : AssertFail<T, 'undefined'>;
isNull(): IsNull<T> extends true ? AssertPass : AssertFail<T, 'null'>;
isNullable(): IsNullable<T> extends true ? AssertPass : AssertFail<T, 'not nullable'>;
isOptional(): IsOptional<T> extends true ? AssertPass : AssertFail<T, 'not optional'>;
isUnion(): IsUnion<T> extends true ? AssertPass : AssertFail<T, 'not a union'>;
isTuple(): IsTuple<T> extends true ? AssertPass : AssertFail<T, 'not a tuple'>;
isArray(): IsArray<T> extends true ? AssertPass : AssertFail<T, 'not an array'>;
isInhabited(): IsInhabited<T> extends true ? AssertPass : AssertFail<T, 'uninhabited'>;
isUninhabited(): IsUninhabited<T> extends true ? AssertPass : AssertFail<T, 'inhabited'>;
}
export type AssertPass = true;
export type AssertFail<_T, _Expected> = never;
export declare function assert<T>(): Assert<T>;
//# sourceMappingURL=assert.d.ts.map
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/api/assert.ts"],"names":[],"mappings":"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"}
/**
* Assert API - Alternative API that throws at compile time on failure.
*/
export function assert() {
return undefined;
}
//# sourceMappingURL=assert.js.map
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/api/assert.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0CH,MAAM,UAAU,MAAM;IACpB,OAAO,SAAgB,CAAA;AACzB,CAAC"}
/**
* Check API - Chainable type checker.
*/
import type { Equal, NotEqual } from '../types/equality.js';
import type { IsAny, IsNever, IsUnknown, IsVoid, IsUndefined, IsNull, IsNullable, IsOptional } from '../types/special.js';
import type { IsUnion, IsTuple, IsArray } from '../types/union.js';
import type { IsInhabited, IsUninhabited } from '../types/inhabitation.js';
import type { HasProperty } from '../types/property.js';
import type { Parameters, ReturnType, Parameter } from '../types/function.js';
import type { Length } from '../types/length.js';
/**
* Type representing a passing check.
*/
export type CheckPass = true;
/**
* Type representing a failing check.
*/
export type CheckFail<_T, _Expected> = never;
/**
* Helper to create a Check type.
*/
export type CheckBuilder<T> = Check<T>;
/**
* Chainable type checker for testing TypeScript types.
*
* @example
* ```typescript
* check<string>().equals<string>()
* check<{ a: string }>().hasProperty('a')
* ```
*/
export interface Check<T> {
/**
* Tests if this type equals another type.
*/
equals<U>(): Equal<T, U> extends true ? CheckPass : CheckFail<T, U>;
/**
* Tests if this type does not equal another type.
*/
notEquals<U>(): NotEqual<T, U> extends true ? CheckPass : CheckFail<T, U>;
/**
* Tests if this type extends another type (is assignable to).
*/
extends<U>(): T extends U ? CheckPass : CheckFail<T, U>;
/**
* Tests if this type is assignable from another type.
*/
assignableTo<U>(): U extends T ? CheckPass : CheckFail<T, U>;
/**
* Tests if this type has a specific property.
*/
hasProperty<K extends keyof T>(): HasProperty<T, K> extends true ? CheckPass : CheckFail<T, {
missingProperty: K;
}>;
/**
* Gets the type of a specific property for further testing.
*/
property<K extends keyof T>(): Check<T[K]>;
/**
* Tests if this type is `any`.
*/
isAny(): IsAny<T> extends true ? CheckPass : CheckFail<T, 'any'>;
/**
* Tests if this type is `never`.
*/
isNever(): IsNever<T> extends true ? CheckPass : CheckFail<T, 'never'>;
/**
* Tests if this type is `unknown`.
*/
isUnknown(): IsUnknown<T> extends true ? CheckPass : CheckFail<T, 'unknown'>;
/**
* Tests if this type is `void`.
*/
isVoid(): IsVoid<T> extends true ? CheckPass : CheckFail<T, 'void'>;
/**
* Tests if this type is `undefined`.
*/
isUndefined(): IsUndefined<T> extends true ? CheckPass : CheckFail<T, 'undefined'>;
/**
* Tests if this type is `null`.
*/
isNull(): IsNull<T> extends true ? CheckPass : CheckFail<T, 'null'>;
/**
* Tests if this type is nullable (null or undefined).
*/
isNullable(): IsNullable<T> extends true ? CheckPass : CheckFail<T, 'not nullable'>;
/**
* Tests if this type is optional (may be undefined).
*/
isOptional(): IsOptional<T> extends true ? CheckPass : CheckFail<T, 'not optional'>;
/**
* Tests if this type is a union.
*/
isUnion(): IsUnion<T> extends true ? CheckPass : CheckFail<T, 'not a union'>;
/**
* Tests if this type is a tuple.
*/
isTuple(): IsTuple<T> extends true ? CheckPass : CheckFail<T, 'not a tuple'>;
/**
* Tests if this type is an array.
*/
isArray(): IsArray<T> extends true ? CheckPass : CheckFail<T, 'not an array'>;
/**
* Tests if this type is inhabited (has values).
*/
isInhabited(): IsInhabited<T> extends true ? CheckPass : CheckFail<T, 'uninhabited'>;
/**
* Tests if this type is uninhabited (has no values).
*/
isUninhabited(): IsUninhabited<T> extends true ? CheckPass : CheckFail<T, 'inhabited'>;
/**
* Gets the parameters of this function type.
*/
parameters(): T extends (...args: any[]) => any ? Check<Parameters<T>> : Check<never>;
/**
* Gets the return type of this function type.
*/
returnType(): T extends (...args: any[]) => any ? Check<ReturnType<T>> : Check<never>;
/**
* Gets the length of this array/tuple type.
*/
length(): T extends readonly any[] ? Check<Length<T>> : Check<never>;
/**
* Gets the parameter at a specific index.
*/
parameter<N extends number>(): T extends (...args: any[]) => any ? Check<Parameter<T, N>> : Check<never>;
}
/**
* Creates a check for a specific type.
*
* @example
* ```typescript
* check<string>().equals<string>()
* check<{ a: string }>().hasProperty('a')
* ```
*/
export declare function check<T>(): CheckBuilder<T>;
//# sourceMappingURL=check.d.ts.map
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/api/check.ts"],"names":[],"mappings":"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"}
/**
* Check API - Chainable type checker.
*/
/**
* Creates a check for a specific type.
*
* @example
* ```typescript
* check<string>().equals<string>()
* check<{ a: string }>().hasProperty('a')
* ```
*/
export function check() {
// This function exists only at runtime - the types are all compile-time
return undefined;
}
//# sourceMappingURL=check.js.map
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/api/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuJH;;;;;;;;GAQG;AACH,MAAM,UAAU,KAAK;IACnB,wEAAwE;IACxE,OAAO,SAAgB,CAAA;AACzB,CAAC"}
/**
* Expect API - Familiar API similar to testing libraries.
*/
import type { Equal, NotEqual } from '../types/equality.js';
/**
* Expect type - familiar API similar to testing libraries.
*
* @example
* ```typescript
* expect<string, string>().toBeEqual()
* expect<string>().toBeAny()
* ```
*/
export interface Expect<T, U = unknown> {
toBeEqual(): Equal<T, U> extends true ? ExpectPass : ExpectFail<T, U>;
toBeNotEqual(): NotEqual<T, U> extends true ? ExpectPass : ExpectFail<T, U>;
toExtend(): T extends U ? ExpectPass : ExpectFail<T, U>;
toBeAssignableTo(): U extends T ? ExpectPass : ExpectFail<T, U>;
}
export type ExpectPass = true;
export type ExpectFail<_T, _U> = never;
/**
* Creates an expectation for a type.
*/
export declare function expect<T, U = unknown>(): Expect<T, U>;
/**
* ExpectFalse - for checking types resolve to false.
*
* @example
* ```typescript
* expectFalse<IsNever<string>>()
* ```
*/
export declare function expectFalse<_T extends false>(): void;
//# sourceMappingURL=expect.d.ts.map
{"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/api/expect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE3D;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO;IACpC,SAAS,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrE,YAAY,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3E,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACvD,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAChE;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAAA;AAE7B,MAAM,MAAM,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,KAAK,CAAA;AAEtC;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAAE,SAAS,KAAK,KAAK,IAAI,CAEpD"}
/**
* Expect API - Familiar API similar to testing libraries.
*/
/**
* Creates an expectation for a type.
*/
export function expect() {
return undefined;
}
/**
* ExpectFalse - for checking types resolve to false.
*
* @example
* ```typescript
* expectFalse<IsNever<string>>()
* ```
*/
export function expectFalse() {
// Compile-time only
}
//# sourceMappingURL=expect.js.map
{"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/api/expect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW;IACzB,oBAAoB;AACtB,CAAC"}
/**
* API exports.
*/
export * from './check.js';
export * from './assert.js';
export * from './expect.js';
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
/**
* API exports.
*/
export * from './check.js';
export * from './assert.js';
export * from './expect.js';
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
/**
* Type-testing: A micro library for testing your TypeScript types.
*
* @packageDocumentation
*/
export * from './types/index.js';
export * from './api/index.js';
export * from './utils.js';
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,kBAAkB,CAAA;AAGhC,cAAc,gBAAgB,CAAA;AAG9B,cAAc,YAAY,CAAA"}
/**
* Type-testing: A micro library for testing your TypeScript types.
*
* @packageDocumentation
*/
// Re-export all type utilities
export * from './types/index.js';
// Re-export API
export * from './api/index.js';
// Re-export utilities
export * from './utils.js';
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+BAA+B;AAC/B,cAAc,kBAAkB,CAAA;AAEhC,gBAAgB;AAChB,cAAc,gBAAgB,CAAA;AAE9B,sBAAsB;AACtB,cAAc,YAAY,CAAA"}
/**
* Type equality utilities.
*/
/**
* Checks if two types are strictly equal.
* Uses a technique that compares the structure while handling
* special types like any, never, and unknown.
*
* @example
* ```typescript
* check<string>().equals<string>() // passes
* check<string>().equals<number>() // fails at compile time
* ```
*/
export type Equal<T, U> = (<G>() => G extends T ? 1 : 2) extends (<G>() => G extends U ? 1 : 2) ? true : false;
/**
* Checks if two types are not equal.
*
* @example
* ```typescript
* check<string>().notEquals<number>() // passes
* ```
*/
export type NotEqual<T, U> = Equal<T, U> extends true ? false : true;
/**
* Simple equality check that works in more contexts.
* Useful for simple type comparisons.
*/
export type SimpleEqual<T, U> = [T, U] extends [U, T] ? true : false;
//# sourceMappingURL=equality.d.ts.map
{"version":3,"file":"equality.d.ts","sourceRoot":"","sources":["../../src/types/equality.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IACpB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GACjE,IAAI,GACJ,KAAK,CAAA;AAEX;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA"}
/**
* Type equality utilities.
*/
export {};
//# sourceMappingURL=equality.js.map
{"version":3,"file":"equality.js","sourceRoot":"","sources":["../../src/types/equality.ts"],"names":[],"mappings":"AAAA;;GAEG"}
/**
* Function type utilities.
*/
/**
* Gets the parameters of a function type as a tuple.
*/
export type Parameters<T extends (...args: any[]) => any> = T extends (...args: infer P) => any ? P : never;
/**
* Gets the return type of a function type.
*/
export type ReturnType<T extends (...args: any[]) => any> = T extends (...args: any[]) => infer R ? R : never;
/**
* Gets the parameter type at a specific index.
*/
export type Parameter<T extends (...args: any[]) => any, N extends number> = Parameters<T>[N];
//# sourceMappingURL=function.d.ts.map
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../src/types/function.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAA;AAE3G;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE7G;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
/**
* Function type utilities.
*/
export {};
//# sourceMappingURL=function.js.map
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../src/types/function.ts"],"names":[],"mappings":"AAAA;;GAEG"}
/**
* Type testing utilities.
*/
export * from './equality.js';
export * from './special.js';
export * from './union.js';
export * from './inhabitation.js';
export * from './property.js';
export * from './function.js';
export * from './length.js';
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
/**
* Type testing utilities.
*/
// Re-export all types
export * from './equality.js';
export * from './special.js';
export * from './union.js';
export * from './inhabitation.js';
export * from './property.js';
export * from './function.js';
export * from './length.js';
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,sBAAsB;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
/**
* Type inhabitation utilities.
*/
/**
* Checks if a type is inhabited (has at least one value).
*
* @example
* ```typescript
* check<string>().isInhabited() // passes
* check<never>().isInhabited() // fails
* ```
*/
export type IsInhabited<T> = [T] extends [never] ? false : true;
/**
* Checks if a type is uninhabited (has no values).
*
* @example
* ```typescript
* check<never>().isUninhabited() // passes
* check<string>().isUninhabited() // fails
* ```
*/
export type IsUninhabited<T> = [T] extends [never] ? true : false;
//# sourceMappingURL=inhabitation.d.ts.map
{"version":3,"file":"inhabitation.d.ts","sourceRoot":"","sources":["../../src/types/inhabitation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAA;AAE/D;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA"}
/**
* Type inhabitation utilities.
*/
export {};
//# sourceMappingURL=inhabitation.js.map
{"version":3,"file":"inhabitation.js","sourceRoot":"","sources":["../../src/types/inhabitation.ts"],"names":[],"mappings":"AAAA;;GAEG"}
/**
* Length utility.
*/
/**
* Gets the length of an array or tuple type.
*/
export type Length<T extends readonly any[]> = T['length'];
//# sourceMappingURL=length.d.ts.map
{"version":3,"file":"length.d.ts","sourceRoot":"","sources":["../../src/types/length.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA"}
/**
* Length utility.
*/
export {};
//# sourceMappingURL=length.js.map
{"version":3,"file":"length.js","sourceRoot":"","sources":["../../src/types/length.ts"],"names":[],"mappings":"AAAA;;GAEG"}
/**
* Property testing utilities.
*/
/**
* Checks if a type has a specific property.
*/
export type HasProperty<T, K extends PropertyKey> = K extends keyof T ? true : false;
/**
* Gets the type of a specific property from a type.
*/
export type PropertyType<T, K extends keyof T> = T[K];
//# sourceMappingURL=property.d.ts.map
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../src/types/property.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAEpF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA"}
/**
* Property testing utilities.
*/
export {};
//# sourceMappingURL=property.js.map
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../src/types/property.ts"],"names":[],"mappings":"AAAA;;GAEG"}
/**
* Special type detection utilities.
*/
import type { Equal } from './equality';
/**
* Checks if a type is `any`.
* Uses the technique: 0 extends (1 & T) ? true : false
*
* @example
* ```typescript
* check<any>().isAny() // passes
* check<string>().isAny() // fails
* ```
*/
export type IsAny<T> = 0 extends (1 & T) ? true : false;
/**
* Checks if a type is `never`.
*
* @example
* ```typescript
* check<never>().isNever() // passes
* check<string>().isNever() // fails
* ```
*/
export type IsNever<T> = [T] extends [never] ? true : false;
/**
* Checks if a type is `unknown`.
*
* @example
* ```typescript
* check<unknown>().isUnknown() // passes
* ```
*/
export type IsUnknown<T> = [unknown] extends [T] ? ([T] extends [unknown] ? true : false) : false;
/**
* Checks if a type is `void`.
*/
export type IsVoid<T> = Equal<T, void>;
/**
* Checks if a type is `undefined`.
*/
export type IsUndefined<T> = Equal<T, undefined>;
/**
* Checks if a type is `null`.
*/
export type IsNull<T> = Equal<T, null>;
/**
* Checks if a type is `null` or `undefined`.
*/
export type IsNullable<T> = [null] extends [T] ? true : ([undefined] extends [T] ? true : false);
/**
* Checks if a type is optional (may be undefined).
*/
export type IsOptional<T> = [undefined] extends [T] ? true : false;
//# sourceMappingURL=special.d.ts.map
{"version":3,"file":"special.d.ts","sourceRoot":"","sources":["../../src/types/special.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC;;;;;;;;;GASG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAEvD;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAA;AAEjG;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAEtC;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AAEhD;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAEtC;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAA;AAEhG;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA"}
/**
* Special type detection utilities.
*/
export {};
//# sourceMappingURL=special.js.map
{"version":3,"file":"special.js","sourceRoot":"","sources":["../../src/types/special.ts"],"names":[],"mappings":"AAAA;;GAEG"}
/**
* Union and tuple detection utilities.
*/
/**
* Checks if a type is a union.
*
* @example
* ```typescript
* check<'a' | 'b'>().isUnion() // passes
* check<'a'>().isUnion() // fails
* ```
*/
export type IsUnion<T, U = T> = [U] extends [never] ? false : T extends U ? [Exclude<U, never>] extends [T] ? false : true : false;
/**
* Checks if a type is a tuple.
*
* @example
* ```typescript
* check<[string, number]>().isTuple() // passes
* check<string[]>().isTuple() // fails
* ```
*/
export type IsTuple<T> = T extends readonly any[] ? (number extends T['length'] ? false : true) : false;
/**
* Checks if a type is an array.
*
* @example
* ```typescript
* check<string[]>().isArray() // passes
* check<[string]>().isArray() // fails
* ```
*/
export type IsArray<T> = T extends readonly any[] ? (IsTuple<T> extends true ? false : true) : false;
//# sourceMappingURL=union.d.ts.map
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../src/types/union.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAA;AAElI;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,CAAA;AAEvG;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,CAAA"}
/**
* Union and tuple detection utilities.
*/
export {};
//# sourceMappingURL=union.js.map
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/types/union.ts"],"names":[],"mappings":"AAAA;;GAEG"}
/**
* Additional utilities.
*/
import type { Equal } from './types/equality.js';
/**
* Type that always resolves to true.
* Useful for making compile-time assertions.
*/
export type ExpectTrue<_T extends true> = true;
/**
* Type that validates equality and throws if not equal.
*/
export type ExpectEqual<T, U> = Equal<T, U> extends true ? T : never;
//# sourceMappingURL=utils.d.ts.map
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,EAAE,SAAS,IAAI,IAAI,IAAI,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA"}
/**
* Additional utilities.
*/
export {};
//# sourceMappingURL=utils.js.map
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG"}
+1
-1
{
"name": "@deessejs/type-testing",
"version": "0.1.4",
"version": "0.1.5",
"type": "module",

@@ -5,0 +5,0 @@ "main": "./dist/index.js",