@anilkumarthakur/match
Advanced tools
| import { match } from './match'; | ||
| import { Match as matchType } from './types/main'; | ||
| export { match }; | ||
| export type { matchType }; |
| const i = (c) => { | ||
| const n = []; | ||
| let e = null; | ||
| const o = { | ||
| on: (t, r) => { | ||
| const u = (s) => s === t; | ||
| return n.push({ predicate: u, action: r }), o; | ||
| }, | ||
| otherwise: (t) => (e = t, a()) | ||
| }, a = () => { | ||
| for (const { predicate: t, action: r } of n) | ||
| if (t(c)) | ||
| return r(); | ||
| if (e) | ||
| return e(); | ||
| throw new Error("No match found and no default action provided."); | ||
| }; | ||
| return o; | ||
| }; | ||
| export { | ||
| i as match | ||
| }; | ||
| //# sourceMappingURL=index.es.js.map |
| {"version":3,"file":"index.es.js","sources":["../src/match.ts"],"sourcesContent":["import { Match } from './types/main'\n\nconst match = <T, U>(value: T) => {\n const cases: Match<T, U>[] = []\n let defaultAction: (() => U) | null = null\n\n const matcher = {\n on: (expected: T, action: () => U) => {\n const predicate = (val: T) => val === expected\n cases.push({ predicate, action })\n return matcher\n },\n otherwise: (action: () => U): U => {\n defaultAction = action\n return execute()\n }\n }\n\n const execute = (): U => {\n for (const { predicate, action } of cases) {\n if (predicate(value)) {\n return action()\n }\n }\n if (defaultAction) {\n return defaultAction()\n }\n throw new Error('No match found and no default action provided.')\n }\n\n return matcher\n}\n\nexport { match }\n"],"names":["match","value","cases","defaultAction","matcher","expected","action","predicate","val","execute"],"mappings":"AAEM,MAAAA,IAAQ,CAAOC,MAAa;AAChC,QAAMC,IAAuB,CAAA;AAC7B,MAAIC,IAAkC;AAEtC,QAAMC,IAAU;AAAA,IACd,IAAI,CAACC,GAAaC,MAAoB;AAC9B,YAAAC,IAAY,CAACC,MAAWA,MAAQH;AACtC,aAAAH,EAAM,KAAK,EAAE,WAAAK,GAAW,QAAAD,EAAQ,CAAA,GACzBF;AAAA,IACT;AAAA,IACA,WAAW,CAACE,OACMH,IAAAG,GACTG,EAAQ;AAAA,EACjB,GAGIA,IAAU,MAAS;AACvB,eAAW,EAAE,WAAAF,GAAW,QAAAD,EAAO,KAAKJ;AAC9B,UAAAK,EAAUN,CAAK;AACjB,eAAOK,EAAO;AAGlB,QAAIH;AACF,aAAOA,EAAc;AAEjB,UAAA,IAAI,MAAM,gDAAgD;AAAA,EAAA;AAG3D,SAAAC;AACT;"} |
| (function(e,t){typeof exports=="object"&&typeof module<"u"?t(exports):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.match={}))})(this,function(e){"use strict";const t=u=>{const i=[];let o=null;const c={on:(n,r)=>{const f=s=>s===n;return i.push({predicate:f,action:r}),c},otherwise:n=>(o=n,d())},d=()=>{for(const{predicate:n,action:r}of i)if(n(u))return r();if(o)return o();throw new Error("No match found and no default action provided.")};return c};e.match=t,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}); | ||
| //# sourceMappingURL=index.umd.js.map |
| {"version":3,"file":"index.umd.js","sources":["../src/match.ts"],"sourcesContent":["import { Match } from './types/main'\n\nconst match = <T, U>(value: T) => {\n const cases: Match<T, U>[] = []\n let defaultAction: (() => U) | null = null\n\n const matcher = {\n on: (expected: T, action: () => U) => {\n const predicate = (val: T) => val === expected\n cases.push({ predicate, action })\n return matcher\n },\n otherwise: (action: () => U): U => {\n defaultAction = action\n return execute()\n }\n }\n\n const execute = (): U => {\n for (const { predicate, action } of cases) {\n if (predicate(value)) {\n return action()\n }\n }\n if (defaultAction) {\n return defaultAction()\n }\n throw new Error('No match found and no default action provided.')\n }\n\n return matcher\n}\n\nexport { match }\n"],"names":["match","value","cases","defaultAction","matcher","expected","action","predicate","val","execute"],"mappings":"6NAEM,MAAAA,EAAeC,GAAa,CAChC,MAAMC,EAAuB,CAAA,EAC7B,IAAIC,EAAkC,KAEtC,MAAMC,EAAU,CACd,GAAI,CAACC,EAAaC,IAAoB,CAC9B,MAAAC,EAAaC,GAAWA,IAAQH,EACtC,OAAAH,EAAM,KAAK,CAAE,UAAAK,EAAW,OAAAD,CAAQ,CAAA,EACzBF,CACT,EACA,UAAYE,IACMH,EAAAG,EACTG,EAAQ,EACjB,EAGIA,EAAU,IAAS,CACvB,SAAW,CAAE,UAAAF,EAAW,OAAAD,CAAO,IAAKJ,EAC9B,GAAAK,EAAUN,CAAK,EACjB,OAAOK,EAAO,EAGlB,GAAIH,EACF,OAAOA,EAAc,EAEjB,MAAA,IAAI,MAAM,gDAAgD,CAAA,EAG3D,OAAAC,CACT"} |
| declare const match: <T, U>(value: T) => { | ||
| on: (expected: T, action: () => U) => any; | ||
| otherwise: (action: () => U) => U; | ||
| }; | ||
| export { match }; |
| export type Match<T, U> = { | ||
| predicate: (val: T) => boolean; | ||
| action: () => U; | ||
| }; |
+1
-1
| { | ||
| "name": "@anilkumarthakur/match", | ||
| "private": false, | ||
| "version": "0.0.5", | ||
| "version": "0.0.6", | ||
| "type": "module", | ||
@@ -6,0 +6,0 @@ "main": "dist/index.umd.js", |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
7920
123.67%9
350%40
Infinity%0
-100%3
50%