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

@paulpopat/safe-type

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@paulpopat/safe-type - npm Package Compare versions

Comparing version 2.1.1 to 2.1.2

5

dist/index.d.ts

@@ -35,5 +35,8 @@ export declare type IsType<T> = T extends (arg: any) => arg is infer T ? T : never;

export declare function Assert<T>(checker: Checker<T>, subject: any, message?: string): asserts subject is T;
declare type TupleResult<T extends any[]> = {
[K in keyof T]: (item: T[K]) => any;
};
export declare function PatternMatch<T extends any[]>(...checkers: {
[K in keyof T]: Checker<T[K]>;
}): <TResult>(...handlers: { [K in keyof T]: (item: T[K]) => TResult; }) => (item: T[number]) => TResult;
}): <TResult extends TupleResult<T>>(...handlers: TResult) => (item: T[number]) => ReturnType<TResult[number]>;
export {};

2

package.json
{
"name": "@paulpopat/safe-type",
"version": "2.1.1",
"version": "2.1.2",
"description": "Typesafety with strong inference",

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

@@ -145,9 +145,9 @@ import {

it("Matches on pattern", () => {
expect(
PatternMatch(IsString, IsNumber, IsBoolean)(
(s) => s + "string",
(n) => n + "number",
(b) => b + "boolean"
)("test")
).toBe("teststring");
const pattern = PatternMatch(IsString, IsNumber, IsBoolean);
const matcher = pattern(
(s) => s + "string",
(n) => n + "number",
(b) => b + "boolean"
);
expect(matcher("test")).toBe("teststring");
});

@@ -154,0 +154,0 @@

@@ -175,9 +175,9 @@ export type IsType<T> = T extends (arg: any) => arg is infer T ? T : never;

type TupleResult<T extends any[]> = { [K in keyof T]: (item: T[K]) => any };
export function PatternMatch<T extends any[]>(
...checkers: { [K in keyof T]: Checker<T[K]> }
) {
return <TResult>(
...handlers: { [K in keyof T]: (item: T[K]) => TResult }
) => {
return (item: T[number]) => {
return <TResult extends TupleResult<T>>(...handlers: TResult) => {
return (item: T[number]): ReturnType<TResult[number]> => {
for (let i = 0; i < handlers.length; i++) {

@@ -184,0 +184,0 @@ if (checkers[i](item)) {

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