Socket
Socket
Sign inDemoInstall

type-fest

Package Overview
Dependencies
Maintainers
1
Versions
154
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

type-fest - npm Package Compare versions

Comparing version 4.3.2 to 4.3.3

2

package.json
{
"name": "type-fest",
"version": "4.3.2",
"version": "4.3.3",
"description": "A collection of essential TypeScript types",

@@ -5,0 +5,0 @@ "license": "(MIT OR CC0-1.0)",

@@ -264,1 +264,18 @@ import type {Primitive} from './primitive';

export type RequireNone<KeysType extends PropertyKey> = Partial<Record<KeysType, never>>;
/**
Returns a boolean for whether the given type is primitive value or primitive type.
@example
```
IsPrimitive<'string'>
//=> true
IsPrimitive<string>
//=> true
IsPrimitive<Object>
//=> false
```
*/
export type IsPrimitive<T> = [T] extends [Primitive] ? true : false;
import type {Primitive} from './primitive';
import type {Numeric} from './numeric';
import type {IsNotFalse} from './internal';
import type {IsNotFalse, IsPrimitive} from './internal';
import type {IsNever} from './is-never';

@@ -253,2 +253,5 @@

*/
export type IsLiteral<T extends Primitive> = IsNotFalse<IsLiteralUnion<T>>;
export type IsLiteral<T> =
IsPrimitive<T> extends true
? IsNotFalse<IsLiteralUnion<T>>
: false;

@@ -6,4 +6,6 @@ import type {JsonPrimitive, JsonValue} from './basic';

import type {IsNever} from './is-never';
import type {IsUnknown} from './is-unknown';
import type {NegativeInfinity, PositiveInfinity} from './numeric';
import type {TypedArray} from './typed-array';
import type {WritableDeep} from './writable-deep';

@@ -13,14 +15,12 @@ // Note: The return value has to be `any` and not `unknown` so it can match `void`.

type FilterNonNever<T extends unknown[]> = T extends [infer F, ...infer R]
? IsNever<F> extends true
? FilterNonNever<R>
: [F, ...FilterNonNever<R>]
: IsNever<T[number]> extends true
? []
: T;
type NeverToNull<T> = IsNever<T> extends true ? null : T;
// Handles tuples and arrays
type JsonifyList<T extends unknown[]> = T extends [infer F, ...infer R]
? FilterNonNever<[Jsonify<F>, ...JsonifyList<R>]>
: Array<Jsonify<T[number]>>;
type JsonifyList<T extends unknown[]> = T extends []
? []
: T extends [infer F, ...infer R]
? [NeverToNull<Jsonify<F>>, ...JsonifyList<R>]
: IsUnknown<T[number]> extends true
? []
: Array<T[number] extends NotJsonable ? null : Jsonify<T[number]>>;

@@ -121,8 +121,8 @@ type FilterJsonableKeys<T extends object> = {

? []
: T extends [unknown, ...unknown[]]
: T extends unknown[]
? JsonifyList<T>
: T extends ReadonlyArray<infer U>
? Array<U extends NotJsonable ? null : Jsonify<U>>
: T extends readonly unknown[]
? JsonifyList<WritableDeep<T>>
: T extends object
? JsonifyObject<UndefinedToOptional<T>> // JsonifyObject recursive call for its children
: never; // Otherwise any other non-object is removed
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc