Socket
Socket
Sign inDemoInstall

immer

Package Overview
Dependencies
Maintainers
2
Versions
173
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

immer - npm Package Compare versions

Comparing version 1.10.2 to 1.10.3

53

dist/immer.d.ts

@@ -59,8 +59,23 @@ /** Object types that should never be mapped */

/** The inferred return type of `produce` */
type Produced<Base, Return> = 1 extends HasVoidLike<Return>
type Produced<T, Return> = 1 extends HasVoidLike<Return>
? 1 extends IsVoidLike<Return>
? Base
: Base | FromNothing<Exclude<Return, void>>
? Immutable<T>
: Immutable<T> | FromNothing<Exclude<Return, void>>
: FromNothing<Return>
type ImmutableTuple<T extends ReadonlyArray<any>> = {
readonly [P in keyof T]: Immutable<T[P]>
}
/** Convert a mutable type into a readonly type */
export type Immutable<T> = T extends object
? T extends AtomicObject
? T
: T extends ReadonlyArray<any>
? Array<T[number]> extends T
? {[P in keyof T]: ReadonlyArray<Immutable<T[number]>>}[keyof T]
: ImmutableTuple<T>
: {readonly [P in keyof T]: Immutable<T[P]>}
: T
export interface IProduce {

@@ -86,28 +101,18 @@ /**

*/
<Base, Proxy = Draft<Base>, Return = void>(
base: Base,
recipe: (this: Proxy, draft: Proxy) => Return,
<T = any, D = Draft<T>, Return = void>(
base: T,
recipe: (this: D, draft: D) => Return,
listener?: PatchListener
): Produced<Base, Return>
): Produced<D, Return>
/** Curried producer with a default value */
<Default = any, Base = Default, Rest extends any[] = [], Return = void>(
recipe: (
this: Draft<Base>,
draft: Draft<Base>,
...rest: Rest
) => Return,
defaultBase: Default
): <T>(
base: (Draft<T> extends Draft<Base> ? T : Base) | undefined,
...rest: Rest
) => Produced<Base, Return>
<T = any, D = Draft<T>, Rest extends any[] = [], Return = void>(
recipe: (this: D, draft: D, ...rest: Rest) => Return,
defaultBase: T
): (base: Immutable<D> | undefined, ...rest: Rest) => Produced<D, Return>
/** Curried producer with no default value */
<Base = any, Rest extends any[] = [], Return = void>(
recipe: (this: Draft<Base>, draft: Draft<Base>, ...rest: Rest) => Return
): <T>(
base: Draft<T> extends Draft<Base> ? T : Base,
...rest: Rest
) => Produced<Base, Return>
<T = any, Rest extends any[] = [], Return = void>(
recipe: (this: Draft<T>, draft: Draft<T>, ...rest: Rest) => Return
): (base: Immutable<T>, ...rest: Rest) => Produced<T, Return>
}

@@ -114,0 +119,0 @@

{
"name": "immer",
"version": "1.10.2",
"version": "1.10.3",
"description": "Create your next immutable state by mutating the current one",

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

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