{"_id":"@bemedev/monadisk","_rev":"13-358e3ae72115c930aed183ad95052384","name":"@bemedev/monadisk","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@bemedev/monadisk","version":"0.1.0","author":{"url":"https://bemedev.vercel.app","name":"chlbri","email":"bri_lvi@icloud.com"},"license":"MIT","_id":"@bemedev/monadisk@0.1.0","maintainers":[{"name":"bemedev","email":"bri_lvi@icloud.com"}],"homepage":"https://github.com/chlbri/monadisk#readme","bugs":{"url":"https://github.com/chlbri/monadisk/issues"},"dist":{"shasum":"4e545b7c2a59349d1463c007e643debbf70ecf0f","tarball":"https://registry.npmjs.org/@bemedev/monadisk/-/monadisk-0.1.0.tgz","fileCount":89,"integrity":"sha512-p5xuys9igufNC5W3fyOH2GmidN6VNcRPG8utiTo2GKBq3omSuQASinyPkxFcvsKKwZB6hop12L+WgwyeF8dTgw==","signatures":[{"sig":"MEUCIQD8ZDzE+ZXBzu+EAQObBHcFvB5R5k/ZSP6BYgGbHgaP2wIgXN37wCbC0CbX1N85jBMiqHaLUw3m7tcYzZ+qDddBnwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68414},"main":"lib/index.cjs","type":"module","module":"lib/index.js","engines":{"node":">=20"},"exports":{".":{"node":"./lib/index.cjs","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.cjs"},"./*":{"node":"./lib/*.cjs","types":"./lib/*.ts","import":"./lib/*.js","default":"./lib/*.js","require":"./lib/*.cjs"}},"gitHead":"e915ca0b76ac20fc24c86846ee2bea9627b5623a","scripts":{"ci":"pnpm run config:off && pnpm run lint && pnpm run test && pnpm run prettier && pnpm run p-q","p-q":"pretty-quick --pattern \"**/*.*(ts|tsx)\"","lint":"pnpm run prettier && pnpm run eslint --fix","size":"size-limit","test":"vitest run","build":"rm -rf lib && pnpm run rollup","rinit":"pnpm run remove && pnpm run config:off","config":"pnpm install","eslint":"eslint \"{src/**/*,App}.{ts,tsx}\"","remove":"rm -rf node_modules pnpm-lock.yaml","rollup":"rollup -c","prepare":"husky","pretest":"pnpm run build && pnpm run size","upgrade":"pnpm update --latest","ci:admin":"pnpm run remove && pnpm run ci","prettier":"prettier --write \"src/**/*.{ts,tsx}\"","test:only":"vitest run ./src/monad.test.ts","config:off":"pnpm install --offline","lint-watch":"onchange --await-write-finish 5500 \"**/*\" -- pnpm run lint","prepublishOnly":"pnpm run lint && pnpm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"bemedev","email":"bri_lvi@icloud.com"},"repository":{"url":"git+https://github.com/chlbri/monadisk.git","type":"git"},"size-limit":[{"path":"lib/*.js","limit":"10 KB"},{"path":"lib/*.cjs","limit":"10 KB"}],"_npmVersion":"10.8.2","description":"Une bibliothèque TypeScript pour la gestion de monades avec des transformations et des vérifications de types.","directories":{},"_nodeVersion":"20.18.2","_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.19.0","rollup":"^4.34.0","vitest":"^3.0.4","globals":"^15.14.0","shelljs":"^0.8.5","valibot":"1.0.0-beta.14","onchange":"^7.1.0","prettier":"^3.4.2","@eslint/js":"^9.19.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/node":"^22.13.0","pretty-quick":"^4.0.0","@bemedev/types":"^0.1.3","@types/shelljs":"^0.8.15","@eslint/eslintrc":"^3.2.0","@size-limit/file":"^11.1.6","@vitest/coverage-v8":"^3.0.4","@bemedev/build-tests":"^0.1.0","@bemedev/vitest-alias":"^0.0.3","@bemedev/rollup-config":"^0.1.1","@bemedev/vitest-exclude":"^0.0.2","@bemedev/vitest-extended":"^1.1.6","@typescript-eslint/parser":"^8.22.0","@typescript-eslint/eslint-plugin":"^8.22.0"},"_npmOperationalInternal":{"tmp":"tmp/monadisk_0.1.0_1740223313152_0.6884329855097211","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bemedev/monadisk","version":"0.1.1","author":{"url":"https://bemedev.vercel.app","name":"chlbri","email":"bri_lvi@icloud.com"},"license":"MIT","_id":"@bemedev/monadisk@0.1.1","maintainers":[{"name":"bemedev","email":"bri_lvi@icloud.com"}],"homepage":"https://github.com/chlbri/monadisk#readme","bugs":{"url":"https://github.com/chlbri/monadisk/issues"},"dist":{"shasum":"daae5cd4247f7953e035e7223dc3ef04689be723","tarball":"https://registry.npmjs.org/@bemedev/monadisk/-/monadisk-0.1.1.tgz","fileCount":89,"integrity":"sha512-I9wpGgI6v6FA7rHQrsbYWzsLpNnMJHZq2mSLTqzKgsjRtOoeHZLTGxUP12qal1NwcngaaLSm54dMz1oZ+logiQ==","signatures":[{"sig":"MEUCIQCJAkzM4LSVjsgWvanR9pewGg3yFJ9PyW3t14zeamrg9AIgaPAHEfGtEmI0ffCdZmJbIpqgkLyAAl8Qpls1Qxai0Wg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68702},"main":"lib/index.cjs","type":"module","module":"lib/index.js","engines":{"node":">=20"},"exports":{".":{"node":"./lib/index.cjs","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.cjs"},"./*":{"node":"./lib/*.cjs","types":"./lib/*.ts","import":"./lib/*.js","default":"./lib/*.js","require":"./lib/*.cjs"}},"gitHead":"03b57097b061c2c95ccba164838c791f706c225e","scripts":{"ci":"pnpm run config:off && pnpm run lint && pnpm run test && pnpm run prettier && pnpm run p-q","p-q":"pretty-quick --pattern \"**/*.*(ts|tsx)\"","lint":"pnpm run prettier && pnpm run eslint --fix","size":"size-limit","test":"vitest run","build":"rm -rf lib && pnpm run rollup","rinit":"pnpm run remove && pnpm run config:off","config":"pnpm install","eslint":"eslint \"{src/**/*,App}.{ts,tsx}\"","remove":"rm -rf node_modules pnpm-lock.yaml","rollup":"rollup -c","prepare":"husky","pretest":"pnpm run build && pnpm run size","upgrade":"pnpm update --latest","ci:admin":"pnpm run remove && pnpm run upgrade && pnpm run ci","prettier":"prettier --write \"src/**/*.{ts,tsx}\"","test:only":"vitest run ./src/monad.test.ts","config:off":"pnpm install --offline","lint-watch":"onchange --await-write-finish 5500 \"**/*\" -- pnpm run lint","prepublishOnly":"pnpm run lint && pnpm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"bemedev","email":"bri_lvi@icloud.com"},"repository":{"url":"git+https://github.com/chlbri/monadisk.git","type":"git"},"size-limit":[{"path":"lib/*.js","limit":"10 KB"},{"path":"lib/*.cjs","limit":"10 KB"}],"_npmVersion":"10.8.2","description":"Une bibliothèque TypeScript pour la gestion de monades avec des transformations et des vérifications de types.","directories":{},"_nodeVersion":"20.18.3","_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.1","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.22.0","rollup":"^4.35.0","vitest":"^3.0.8","globals":"^16.0.0","shelljs":"^0.9.1","valibot":"1.0.0-rc.3","onchange":"^7.1.0","prettier":"^3.5.3","@eslint/js":"^9.22.0","size-limit":"^11.2.0","typescript":"^5.8.2","@types/node":"^22.13.10","pretty-quick":"^4.1.1","@bemedev/types":"^0.1.5","@types/shelljs":"^0.8.15","@eslint/eslintrc":"^3.3.0","@size-limit/file":"^11.2.0","@vitest/coverage-v8":"^3.0.8","@bemedev/build-tests":"^0.1.0","@bemedev/vitest-alias":"^0.0.3","@bemedev/rollup-config":"^0.1.1","@bemedev/vitest-exclude":"^0.0.2","@bemedev/vitest-extended":"^1.3.1","@typescript-eslint/parser":"^8.26.0","@typescript-eslint/eslint-plugin":"^8.26.0"},"_npmOperationalInternal":{"tmp":"tmp/monadisk_0.1.1_1741609418863_0.6558785626435057","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bemedev/monadisk","version":"0.1.2","author":{"url":"https://bemedev.vercel.app","name":"chlbri","email":"bri_lvi@icloud.com"},"license":"MIT","_id":"@bemedev/monadisk@0.1.2","maintainers":[{"name":"bemedev","email":"bri_lvi@icloud.com"}],"homepage":"https://github.com/chlbri/monadisk#readme","bugs":{"url":"https://github.com/chlbri/monadisk/issues"},"dist":{"shasum":"8481967f8f4d9fcf270550db150174f873be035e","tarball":"https://registry.npmjs.org/@bemedev/monadisk/-/monadisk-0.1.2.tgz","fileCount":95,"integrity":"sha512-gNyuG8GPmBmdCVbcev2pKF07CHEqDJznHA4XUOxRODhlF92uzjW5uFt+vDtg5QBW+RrXKVdcalegtocnThecmQ==","signatures":[{"sig":"MEUCICyflNxo0fn44r838PpOyA3PC9OOpojeVkuT3zsE5WiDAiEAqHzIn4AEIOqwAY+9gOAr01uSPctHyVgQfnmYD56IRVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69837},"main":"lib/index.cjs","type":"module","module":"lib/index.js","engines":{"node":">=22"},"exports":{".":{"node":"./lib/index.cjs","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.cjs"},"./*":{"node":"./lib/*.cjs","types":"./lib/*.ts","import":"./lib/*.js","default":"./lib/*.js","require":"./lib/*.cjs"}},"gitHead":"a6a41b0eff9f08bbe63baeb86d9fe5629a2bcd9e","scripts":{"ci":"pnpm run config:off && pnpm run lint && pnpm run test && pnpm run prettier && pnpm run p-q","p-q":"pretty-quick --pattern \"**/*.*(ts|tsx)\"","lint":"pnpm run prettier && pnpm run eslint --fix","size":"size-limit","test":"pnpm run test:coverage --no-coverage","build":"pnpm run rimraf lib && pnpm run rollup","rinit":"pnpm run remove && pnpm run config:off","config":"pnpm install","eslint":"eslint \"{src/**/*,App}.{ts,tsx}\"","remove":"pnpm run rimraf -rf node_modules pnpm-lock.yaml","rimraf":"pnpm dlx rimraf","rollup":"rollup -c","prepare":"husky","pretest":"pnpm run build && pnpm run size","upgrade":"pnpm dlx @bemedev/upgrade-npm-package","ci:admin":"pnpm run remove && pnpm run upgrade && pnpm run ci","prettier":"prettier --write \"src/**/*.{ts,tsx}\"","test:only":"vitest run ./src/monad.test.ts","config:off":"pnpm install --offline","lint-watch":"onchange --await-write-finish 5500 \"**/*\" -- pnpm run lint","test:coverage":"vitest run","prepublishOnly":"pnpm run lint && pnpm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"bemedev","email":"bri_lvi@icloud.com"},"repository":{"url":"git+https://github.com/chlbri/monadisk.git","type":"git"},"size-limit":[{"path":"lib/*.js","limit":"10 KB"},{"path":"lib/*.cjs","limit":"10 KB"}],"_npmVersion":"10.9.3","description":"Une bibliothèque TypeScript pour la gestion de monades avec des transformations et des vérifications de types.","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"glob":"^11.0.3","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.37.0","rollup":"^4.52.4","vitest":"^3.2.4","globals":"^16.4.0","shelljs":"^0.10.0","valibot":"1.1.0","onchange":"^7.1.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","size-limit":"^11.2.0","typescript":"^5.9.3","@types/node":"^24.7.0","pretty-quick":"^4.2.2","@bemedev/core":"^0.1.2","@types/shelljs":"^0.8.17","@eslint/eslintrc":"^3.3.1","@size-limit/file":"^11.2.0","@vitest/coverage-v8":"^3.2.4","@bemedev/build-tests":"^0.1.2","@bemedev/vitest-alias":"^0.0.3","@bemedev/rollup-config":"^0.2.2","@bemedev/vitest-exclude":"^0.1.1","@bemedev/vitest-extended":"^1.5.3","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"typescript":"^5.9.3","@bemedev/core":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/monadisk_0.1.2_1759777540058_0.7036178114260006","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bemedev/monadisk","version":"0.1.3","license":"MIT","main":"lib/index.cjs","typings":"lib/index.d.ts","module":"lib/index.js","repository":{"type":"git","url":"git+https://github.com/chlbri/monadisk.git"},"engines":{"node":">=22"},"type":"module","author":{"name":"chlbri","email":"bri_lvi@icloud.com","url":"https://bemedev.vercel.app"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","node":"./lib/index.cjs","require":"./lib/index.cjs","default":"./lib/index.js"},"./*":{"types":"./lib/*.ts","import":"./lib/*.js","node":"./lib/*.cjs","require":"./lib/*.cjs","default":"./lib/*.js"}},"scripts":{"rimraf":"pnpm dlx rimraf","build":"pnpm run rimraf lib && pnpm run rollup","ci":"pnpm run config:off && pnpm run lint && pnpm run test && pnpm run prettier && pnpm run p-q","ci:admin":"pnpm run remove && pnpm run upgrade && pnpm run ci","config":"pnpm install","config:off":"pnpm install --offline","eslint":"eslint \"{src/**/*,App}.{ts,tsx}\"","lint":"pnpm run prettier && pnpm run eslint --fix","lint-watch":"onchange --await-write-finish 5500 \"**/*\" -- pnpm run lint","p-q":"pretty-quick --pattern \"**/*.*(ts|tsx)\"","prepare":"husky","prepublishOnly":"pnpm run lint && pnpm run build","pretest":"pnpm run build && pnpm run size","prettier":"prettier --write \"src/**/*.{ts,tsx}\"","remove":"pnpm run rimraf -rf node_modules pnpm-lock.yaml","rinit":"pnpm run remove && pnpm run config:off","rollup":"rollup -c","size":"size-limit","test:coverage":"vitest run","test":"pnpm run test:coverage --no-coverage","test:only":"vitest run ./src/monad.test.ts","upgrade":"pnpm dlx @bemedev/upgrade-npm-package"},"size-limit":[{"path":"lib/*.js","limit":"10 KB"},{"path":"lib/*.cjs","limit":"10 KB"}],"devDependencies":{"@bemedev/build-tests":"^0.1.2","@bemedev/core":"^0.1.2","@bemedev/rollup-config":"^0.2.2","@bemedev/vitest-alias":"^0.0.3","@bemedev/vitest-exclude":"^0.1.1","@bemedev/vitest-extended":"^1.5.3","@eslint/eslintrc":"^3.3.1","@eslint/js":"^9.37.0","@size-limit/file":"^11.2.0","@types/node":"^24.7.0","@types/shelljs":"^0.8.17","@typescript-eslint/eslint-plugin":"^8.46.0","@typescript-eslint/parser":"^8.46.0","@vitest/coverage-v8":"^3.2.4","eslint":"^9.37.0","glob":"^11.0.3","globals":"^16.4.0","husky":"^9.1.7","onchange":"^7.1.0","prettier":"^3.6.2","pretty-quick":"^4.2.2","rollup":"^4.52.4","shelljs":"^0.10.0","size-limit":"^11.2.0","tslib":"^2.8.1","typescript":"^5.9.3","valibot":"1.1.0","vitest":"^3.2.4"},"peerDependencies":{"@bemedev/core":"^0.1.2","typescript":"^5.9.3"},"_id":"@bemedev/monadisk@0.1.3","gitHead":"51a749f1c33d9d5448c175166eadcc5b194f38f6","description":"Une bibliothèque TypeScript pour la gestion de monades avec des transformations et des vérifications de types.","bugs":{"url":"https://github.com/chlbri/monadisk/issues"},"homepage":"https://github.com/chlbri/monadisk#readme","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-NpnIF3NNHqH+GsZUF1zWGqFh8Sw0aqISQaEu+CO7IJvvib23tC58NzO/qkuZz53CRJJSTIPemyt6OsMK9i1fwQ==","shasum":"8f00dec05bb91477aa4dcb281fb3db63f4bd9dfc","tarball":"https://registry.npmjs.org/@bemedev/monadisk/-/monadisk-0.1.3.tgz","fileCount":95,"unpackedSize":71607,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEvEhsLSo4W2e87n7jNlPp5ZsViHbLaUulS62DSZjPmnAiEArq8WYFRAe6Ay8++63k9x1zLwxsR93iOn9qV90rvbHZE="}]},"_npmUser":{"name":"bemedev","email":"bri_lvi@icloud.com"},"directories":{},"maintainers":[{"name":"bemedev","email":"bri_lvi@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/monadisk_0.1.3_1759838110527_0.7225372439311211"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-10T12:23:38.789Z","modified":"2025-10-07T11:55:10.920Z","0.0.1":"2023-04-08T20:27:59.514Z","0.0.2":"2025-01-28T02:11:34.328Z","0.0.3":"2025-01-28T11:19:00.874Z","0.0.5":"2025-01-28T13:11:27.669Z","0.0.6":"2025-01-30T16:05:16.565Z","0.0.7":"2025-02-01T20:54:56.281Z","0.1.0":"2025-02-22T11:21:53.342Z","0.1.1":"2025-03-10T12:23:39.056Z","0.1.2":"2025-10-06T19:05:40.238Z","0.1.3":"2025-10-07T11:55:10.728Z"},"bugs":{"url":"https://github.com/chlbri/monadisk/issues"},"author":{"name":"chlbri","email":"bri_lvi@icloud.com","url":"https://bemedev.vercel.app"},"license":"MIT","homepage":"https://github.com/chlbri/monadisk#readme","repository":{"type":"git","url":"git+https://github.com/chlbri/monadisk.git"},"description":"Une bibliothèque TypeScript pour la gestion de monades avec des transformations et des vérifications de types.","maintainers":[{"name":"bemedev","email":"bri_lvi@icloud.com"}],"readme":"# Monadisk\n\nUne bibliothèque TypeScript pour la gestion de monades avec des\ntransformations et des vérifications de types.\n\n<br/>\n\n## Installation\n\n```bash\npnpm add monadisk\n```\n\n<br/>\n\n## Caractéristiques\n\n- Création de monades avec vérifications de types\n- Transformations de données typées\n- Combinaison de monades (AND/OR)\n- Fonctions de vérification personnalisables\n- Support TypeScript complet\n\n<br/>\n\n## API\n\n### `createMonad`\n\nCrée une nouvelle monade avec des vérificateurs.\n\n```typescript\nconst monad = createMonad(\n  ['string', createCheck(data => typeof data === 'string')],\n  ['number', createCheck(data => typeof data === 'number')],\n);\n```\n\n### `createCheck`\n\nCrée une fonction de vérification pour la monade.\n\n```typescript\nconst stringCheck = createCheck</* string, it's inferred */>(\n  data => typeof data === 'string',\n);\n```\n\n### `transform`\n\nTransforme les données selon les règles définies.\n\n```typescript\nconst transform1 = transform(monad, {\n  string: data => `String: ${data}`,\n  number: data => `Number: ${data}`,\n  else: () => 'Unknown type',\n});\n```\n\n<br/>\n\n### Méthodes d'un Monad\n\n#### `add`\n\nAjoute un nouveau vérificateur à la monade.\n\n```typescript\nconst newMonad = monad.add(\n  45,\n  createCheck(data => data === 45),\n);\n```\n\n#### `and`\n\nCombine deux monades avec une opération AND.\n\n```typescript\nconst combinedMonad = monad1.and(monad2);\n```\n\n#### `or`\n\nCombine deux monades avec une opération OR.\n\n```typescript\nconst combinedMonad = monad1.or(monad2);\n```\n\n#### `mergeAnd`\n\nFusionne deux monades avec des clés combinées (AND).\n\n```typescript\nconst mergedMonad = monad1.mergeAnd(monad2);\n```\n\n#### `mergeOr`\n\nFusionne deux monades avec des clés combinées (OR).\n\n```typescript\nconst mergedMonad = monad1.mergeOr(monad2);\n```\n\n#### `parse`\n\nAnalyse une valeur et retourne la clé correspondante.\n\n```typescript\nconst result = monad.parse(value);\n```\n\n<br/>\n\n## Exemple d'utilisation\n\n```typescript\nimport { createMonad, createCheck, transform } from 'monadisk';\n\n// Création d'une monade\nconst monad = createMonad(\n  ['string', createCheck(data => typeof data === 'string')],\n  ['number', createCheck(data => typeof data === 'number')],\n  [45, createCheck(data => data === 45)],\n);\n\n// Création d'un transformateur\nconst transformer = transform(monad, {\n  string: data => `Texte: ${data}`,\n  number: data => `Nombre: ${data}`,\n  45: data => `Nombre spécial: ${data}`,\n  else: () => 'Type inconnu',\n});\n\n// Utilisation\nconsole.log(transform('hello')); // \"Texte: hello\"\nconsole.log(transform(42)); // \"Nombre: 42\"\nconsole.log(transform(45)); // \"Nombre spécial: 45\"\nconsole.log(transform(true)); // \"Type inconnu\"\n```\n\n<br/>\n\n### Concat (very powerfull)\n\nConcatène deux monades en combinant leurs vérificateurs avec le séparateur\n`::`. Cette méthode crée une nouvelle monade où l'on combine les\nvérificateurs des deux monades.\n\n```typescript\n// Exemple d'utilisation de concat\nconst monad1 = createMonad(\n  ['string', createCheck(data => typeof data === 'string')],\n  ['number', createCheck(data => typeof data === 'number')],\n);\n\nconst monad2 = createMonad(\n  [45, createCheck(data => data === 45)],\n  ['bool', createCheck(data => typeof data === 'boolean')],\n);\n\n// Crée une nouvelle monade avec les clés combinées:\n// 'string::45', 'string::bool', 'number::45', 'number::bool'\nconst concatenated = monad1.concat(monad2);\n\n// Utilisation avec transform\nconst transformer = transform(concatenated, {\n  // Ici, on a deux arguments\n  'string::45': (str, num) => `String ${str} avec nombre ${num}`,\n  'number::bool': (num, bool) => `Nombre ${num} avec booléen ${bool}`,\n  else: () => 'Combinaison non gérée',\n});\n\n// Cette méthode est utile quand vous voulez créer une monade qui vérifie plusieurs conditions indépendantes sur différents arguments.\n```\n\n<br/>\n\n### NB: transform retourne une erreur si le cas n'est pas pris en charge\n\n```typescript\nimport { createMonad, createCheck, transform } from 'monadisk';\n\n// Création d'une monade\nconst monad = createMonad(\n  ['string', createCheck(data => typeof data === 'string')],\n  ['number', createCheck(data => typeof data === 'number')],\n  [45, createCheck(data => data === 45)],\n);\n\n// Création d'un transformateur\nconst transformer = transform(monad, {\n  string: data => `Texte: ${data}`,\n  number: data => `Nombre: ${data}`,\n  45: data => `Nombre spécial: ${data}`,\n  // no else case\n});\n\n// Utilisation\nconsole.log(transform('hello')); // \"Texte: hello\"\nconsole.log(transform(42)); // \"Nombre: 42\"\nconsole.log(transform(45)); // \"Nombre spécial: 45\"\nconsole.log(transform(true)); // Will throws error `Case for \"true\" is not handled`\n```\n\n<br/>\n\n## Licence\n\nMIT\n\n<br/>\n\n## CHANGE_LOG\n\n<details>\n\n<summary>\n...\n</summary>\n\n### Version [0.1.1] --> _2025/03/10 12:30_\n\n- Upgrade deps\n\n<br/>\n\n### Version [0.1.0] --> _2025/02/15 21:00_\n\n- Release for better performance\n\n<br/>\n\n### Version [0.0.7] --> _2025/02/01 21:00_\n\n- Add helpers to simplify usage\n\n<br/>\n\n### Version [0.0.6] --> _2025/01/30 16/00_\n\n- Add option to concat monad\n\n<br/>\n\n### Version [0.0.5] --> _2025/01/28 13:10_\n\n- Upgrade deps\n- Better testing (100% coverage)\n\n<br/>\n\n### Version [0.0.4] --> _2025/01/28 11:10_\n\n- La fonction `transform` génère une erreur si le cas n'est pas pris en\n  charge\n\n<br/>\n\n### Version [0.0.3] --> _2025/01/28 11:10_\n\n- 🐛 Correction des fautes de frappe dans les exemples\n  - Correction de `tarnsform` en `transform` dans les exemples de code\n  - Amélioration de la lisibilité des exemples\n- 📝 Restructuration du CHANGELOG\n  - Ajout des dates de version\n  - Utilisation de balises `<details>` pour le contenu\n- Better testing : 100% coverage\n\n<br/>\n\n### Version [0.0.1] --> _2025/01/28 02:02_\n\n- ✨ Première version de la bibliothèque\n- 🎉 Implémentation des fonctionnalités de base :\n  - Création de monades avec `createMonad`\n  - Création de vérificateurs avec `createCheck`\n  - Transformations avec `transform`\n  - Méthodes de combinaison (`and`, `or`, `mergeAnd`, `mergeOr`)\n  - Support complet de TypeScript\n- 📝 Documentation initiale\n- ⚡️ Tests unitaires de base\n- 🔄 Ajout des méthodes de fusion avancées pour une meilleure gestion des\n  monades complexes\n  - Amélioration de la documentation des méthodes `mergeAnd` et `mergeOr`\n  - Optimisation des performances pour les opérations de fusion\n\n</details>\n\n<br/>\n<br/>\n\n## Auteur\n\nchlbri (bri_lvi@icloud.com)\n\n[My github](https://github.com/chlbri?tab=repositories)\n\n[<svg width=\"98\" height=\"96\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z\" fill=\"#24292f\"/></svg>](https://github.com/chlbri?tab=repositories)\n\n<br/>\n\n## Liens\n\n- [Documentation](https://github.com/chlbri/monadisk)\n","readmeFilename":"README.md"}