New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@fp51/foldable-helpers

Package Overview
Dependencies
Maintainers
4
Versions
290
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fp51/foldable-helpers - npm Package Compare versions

Comparing version 1.0.0-canary-3ec6bcbc7b34b929a5bb849b935b6af7d064a728-1620266927055 to 1.0.0-canary-3ecd42cdd55d108197ac5b6feb6c699b711ed427-1624327984657

17

dist/guard.d.ts
import { Guard } from './types';
declare type NotGuard<A, B extends A> = (a: A) => a is Exclude<A, B>;
declare type GuardedType<Type> = Type extends (x: any) => x is infer T ? T : never;
/**
* Takes an array of guard parameters (so should have only one item)
* and return the first parameter converted to an intersection.
*
* @example
type Guards = ... // some guards
type GuardsParameters = Parameters\<Guards[number]\>;
type IntersectionOfInputTypes = InputParametersToIntersection<GuardsParameters>;
*
*/
declare type InputParametersToIntersection<Params> = (Params extends [any] ? (k: Params[0]) => void : never) extends (k: infer I) => void ? I : never;
export declare function not<A, B extends A>(guard: Guard<A, B>): NotGuard<A, B>;
export declare function and<Guards extends Guard<any, any>[]>(...guards: Guards): (t: ((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) => t is (((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) & (((Guards[number] extends (x: any) => x is infer T ? T : never) extends any ? (k: Guards[number] extends (x: any) => x is infer T ? T : never) => void : never) extends (k: infer I_1) => void ? I_1 : never);
export declare function or<Guards extends Guard<any, any>[]>(...guards: Guards): (t: ((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) => t is (((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) & (Guards[number] extends (x: any) => x is infer T ? T : never);
export declare function and<Guards extends Guard<any, any>[]>(...guards: Guards): (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & ((GuardedType<Guards[number]> extends any ? (k: GuardedType<Guards[number]>) => void : never) extends (k: infer I) => void ? I : never);
export declare function or<Guards extends Guard<any, any>[]>(...guards: Guards): (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & GuardedType<Guards[number]>;
export {};
import { Guard } from './types';
declare type NotGuard<A, B extends A> = (a: A) => a is Exclude<A, B>;
declare type GuardedType<Type> = Type extends (x: any) => x is infer T ? T : never;
/**
* Takes an array of guard parameters (so should have only one item)
* and return the first parameter converted to an intersection.
*
* @example
type Guards = ... // some guards
type GuardsParameters = Parameters\<Guards[number]\>;
type IntersectionOfInputTypes = InputParametersToIntersection<GuardsParameters>;
*
*/
declare type InputParametersToIntersection<Params> = (Params extends [any] ? (k: Params[0]) => void : never) extends (k: infer I) => void ? I : never;
export declare function not<A, B extends A>(guard: Guard<A, B>): NotGuard<A, B>;
export declare function and<Guards extends Guard<any, any>[]>(...guards: Guards): (t: ((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) => t is (((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) & (((Guards[number] extends (x: any) => x is infer T ? T : never) extends any ? (k: Guards[number] extends (x: any) => x is infer T ? T : never) => void : never) extends (k: infer I_1) => void ? I_1 : never);
export declare function or<Guards extends Guard<any, any>[]>(...guards: Guards): (t: ((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) => t is (((Guards[number] extends (...args: infer P) => any ? P : never) extends [any] ? (k: ([any] & (Guards[number] extends (...args: infer P) => any ? P : never))[0]) => void : never) extends (k: infer I) => void ? I : never) & (Guards[number] extends (x: any) => x is infer T ? T : never);
export declare function and<Guards extends Guard<any, any>[]>(...guards: Guards): (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & ((GuardedType<Guards[number]> extends any ? (k: GuardedType<Guards[number]>) => void : never) extends (k: infer I) => void ? I : never);
export declare function or<Guards extends Guard<any, any>[]>(...guards: Guards): (t: InputParametersToIntersection<Parameters<Guards[number]>>) => t is InputParametersToIntersection<Parameters<Guards[number]>> & GuardedType<Guards[number]>;
export {};

8

package.json
{
"name": "@fp51/foldable-helpers",
"version": "1.0.0-canary-3ec6bcbc7b34b929a5bb849b935b6af7d064a728-1620266927055",
"version": "1.0.0-canary-3ecd42cdd55d108197ac5b6feb6c699b711ed427-1624327984657",
"description": "Typescript helpers to fold on sum types",

@@ -35,3 +35,3 @@ "main": "dist/index.js",

"@fp51/eslint-config-jest": "^1.0.0",
"@rollup/plugin-commonjs": "^18.0.0",
"@rollup/plugin-commonjs": "^19.0.0",
"@rollup/plugin-node-resolve": "^13.0.0",

@@ -46,5 +46,5 @@ "@types/jest": "^26.0.20",

"ts-jest": "^26.4.4",
"tsd": "^0.14.0",
"tsd": "^0.17.0",
"tslib": "^2.1.0",
"typedoc": "^0.20.28",
"typedoc": "^0.21.0",
"typescript": "^4.0.5"

@@ -51,0 +51,0 @@ },

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