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

@sweet-monads/maybe

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sweet-monads/maybe - npm Package Compare versions

Comparing version 0.0.3 to 0.0.4

43

index.ts

@@ -9,2 +9,19 @@ import { Monad } from "@sweet-monads/interfaces/monad";

export class Maybe<T> implements Monad<T> {
static merge<V1>(values: [Maybe<V1>]): Maybe<[V1]>;
static merge<V1, V2>(values: [Maybe<V1>, Maybe<V2>]): Maybe<[V1, V2]>;
static merge<V1, V2, V3>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>]): Maybe<[V1, V2, V3]>;
static merge<V1, V2, V3, V4>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>, Maybe<V4>]): Maybe<[V1, V2, V3, V4]>;
static merge<V1, V2, V3, V4, V5>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>, Maybe<V4>, Maybe<V5>]): Maybe<[V1, V2, V3, V4, V5]>;
static merge<V1, V2, V3, V4, V5, V6>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>, Maybe<V4>, Maybe<V5>, Maybe<V6>]): Maybe<[V1, V2, V3, V4, V5, V6]>;
static merge<V1, V2, V3, V4, V5, V6, V7>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>, Maybe<V4>, Maybe<V5>, Maybe<V6>, Maybe<V7>]): Maybe<[V1, V2, V3, V4, V5, V6, V7]>;
static merge<V1, V2, V3, V4, V5, V6, V7, V8>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>, Maybe<V4>, Maybe<V5>, Maybe<V6>, Maybe<V7>, Maybe<V8>]): Maybe<[V1, V2, V3, V4, V5, V6, V7, V8]>;
static merge<V1, V2, V3, V4, V5, V6, V7, V8, V9>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>, Maybe<V4>, Maybe<V5>, Maybe<V6>, Maybe<V7>, Maybe<V8>, Maybe<V9>]): Maybe<[V1, V2, V3, V4, V5, V6, V7, V8, V9]>;
static merge<V1, V2, V3, V4, V5, V6, V7, V8, V9, L10, V10>(values: [Maybe<V1>, Maybe<V2>, Maybe<V3>, Maybe<V4>, Maybe<V5>, Maybe<V6>, Maybe<V7>, Maybe<V8>, Maybe<V9>, Maybe<V10>]): Maybe<[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10]>;
static merge(maybies: Array<Maybe<unknown>>) {
return maybies.reduce(
(res: Maybe<Array<unknown>>, v) =>
v.chain(v => res.map(res => res.concat([v]))),
Maybe.just<Array<unknown>>([])
);
}
static none<T>() {

@@ -30,15 +47,29 @@ return new Maybe<T>(MaybeState.None);

chain<R>(f: (r: T) => Maybe<R>): Maybe<R> {
map<V>(f: (r: T) => V): Maybe<V> {
if (this.isJust()) {
return Maybe.just<V>(f(this.value as T));
}
return Maybe.none<V>();
}
asyncMap<V>(f: (r: T) => Promise<V>): Promise<Maybe<V>> {
if (this.isNone()) {
return Maybe.none<R>();
return Promise.resolve(Maybe.none<V>());
}
return f(this.value as T).then(v => Maybe.just<V>(v));
}
chain<V>(f: (r: T) => Maybe<V>): Maybe<V> {
if (this.isNone()) {
return Maybe.none<V>();
}
return f(this.value as T);
}
map<R>(f: (r: T) => R): Maybe<R> {
if (this.isJust()) {
return Maybe.just<R>(f(this.value as T));
asyncChain<V>(f: (r: T) => Promise<Maybe<V>>): Promise<Maybe<V>> {
if (this.isNone()) {
return Promise.resolve(Maybe.none<V>());
}
return Maybe.none<R>();
return f(this.value as T);
}
}

4

package.json
{
"name": "@sweet-monads/maybe",
"version": "0.0.3",
"version": "0.0.4",
"description": "",
"main": "index.js",
"dependencies": {
"@sweet-monads/interfaces": "^0.0.1"
"@sweet-monads/interfaces": "^0.0.2"
},

@@ -9,0 +9,0 @@ "author": "",

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