{"_id":"krustykrab","_rev":"2-45d66f387e795851dd99a46f9ba06b62","name":"krustykrab","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"krustykrab","version":"1.0.0","keywords":["rust","std","stdlib","utils","helpers"],"author":{"name":"Vadim Taits","email":"taizvadim@gmail.com"},"license":"MIT","_id":"krustykrab@1.0.0","maintainers":[{"name":"vtaits","email":"taizvadim@gmail.com"}],"homepage":"https://github.com/vtaits/krustykrab#readme","bugs":{"url":"https://github.com/vtaits/krustykrab/issues"},"dist":{"shasum":"24ef0e77eb3c1d596b0f7c93c9226e93b9840360","tarball":"https://registry.npmjs.org/krustykrab/-/krustykrab-1.0.0.tgz","fileCount":9,"integrity":"sha512-cn9vpa5YLWF8WtgCzrWu9nII9O2AB5gXMpbrAPuDjlytPVdopnPBBAGyoa6101EHIy2ZyII+w0BeG4mWc5RyEg==","signatures":[{"sig":"MEQCIG8CUvkXDQPpQXPWGmEg9EVeyeEIEUzvveYwBXHgILwIAiAi+JZ9fpgf+2wYkDG7bOLUkZEG+C2dREvGJHROdIDGCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75262},"main":"./dist/index.js","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/index.js"}},"gitHead":"763510b4b1f99e7efca8a40f951e0af5ddd5bc7f","scripts":{"lint":"biome check src","test":"yarn lint && yarn test:ts && yarn test:unit","build":"tsup src/index.ts --sourcemap --format esm,cjs --dts --legacy-output","format":"biome format src --write","prepare":"yarn build","test:ts":"tsc --noEmit","lint:fix":"biome check src --apply-unsafe","test:unit":"vitest run --coverage.enabled --coverage.all --coverage.include=src","build:docs":"typedoc src/index.ts","deploy:docs":"yarn build:docs && yarn upload:docs","upload:docs":"gh-pages -d docs","test:unit:watch":"vitest"},"typings":"dist/index.d.ts","_npmUser":{"name":"vtaits","email":"taizvadim@gmail.com"},"repository":{"url":"git+ssh://git@github.com/vtaits/krustykrab.git","type":"git"},"_npmVersion":"10.2.3","description":"Rust utils for JavaScript projects","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"packageManager":"yarn@4.0.2","devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typedoc":"^0.25.7","gh-pages":"^6.1.1","typescript":"^5.3.3","@biomejs/biome":"^1.5.1","@types/gh-pages":"^6","@vitest/coverage-v8":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/krustykrab_1.0.0_1705311871060_0.9352026763645953","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"krustykrab","version":"1.0.1","keywords":["rust","std","stdlib","utils","helpers"],"author":{"name":"Vadim Taits","email":"taizvadim@gmail.com"},"license":"MIT","_id":"krustykrab@1.0.1","maintainers":[{"name":"vtaits","email":"taizvadim@gmail.com"}],"homepage":"https://github.com/vtaits/krustykrab#readme","bugs":{"url":"https://github.com/vtaits/krustykrab/issues"},"dist":{"shasum":"904866c85eb612850709533afdf791c63a3f350a","tarball":"https://registry.npmjs.org/krustykrab/-/krustykrab-1.0.1.tgz","fileCount":9,"integrity":"sha512-pMoaMmD5zWvRCF9FiQRI+SabRV5mYYKoJJbqNaAd2cb7W88J9qucI8ax6fvYcjlYIyi5hNNSllyJyaDFUMYR8A==","signatures":[{"sig":"MEQCIDskhOxhA+leA6sveqR/5h4wiqPa+JheWIbVjV6jxbcCAiAWkvncC2LQZRWSWWAhmpmFh1hHeSXHIZ5QYS7RIWyswA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75269},"main":"./dist/index.js","types":"dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"3de6953f84a3548a1e165836f17fd49374972af7","scripts":{"lint":"biome check src","test":"yarn lint && yarn test:ts && yarn test:unit","build":"tsup src/index.ts --sourcemap --format esm,cjs --dts","format":"biome format src --write","prepare":"yarn build","test:ts":"tsc --noEmit","lint:fix":"biome check src --write --unsafe","test:unit":"vitest run --coverage.enabled --coverage.all --coverage.include=src","build:docs":"typedoc src/index.ts","deploy:docs":"yarn build:docs && yarn upload:docs","upload:docs":"gh-pages -d docs","test:unit:watch":"vitest"},"_npmUser":{"name":"vtaits","email":"taizvadim@gmail.com"},"repository":{"url":"git+ssh://git@github.com/vtaits/krustykrab.git","type":"git"},"_npmVersion":"10.8.2","description":"Rust utils for JavaScript projects","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"packageManager":"yarn@4.4.1","devDependencies":{"tsup":"^8.2.4","vitest":"^2.0.5","typedoc":"^0.26.6","gh-pages":"^6.1.1","typescript":"^5.5.4","@biomejs/biome":"^1.8.3","@types/gh-pages":"^6.1.0","@vitest/coverage-v8":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/krustykrab_1.0.1_1724767760220_0.9285403141984243","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"krustykrab","version":"1.1.0","description":"Rust utils for JavaScript projects","repository":{"type":"git","url":"git+ssh://git@github.com/vtaits/krustykrab.git"},"author":{"name":"Vadim Taits","email":"taizvadim@gmail.com"},"license":"MIT","keywords":["rust","std","stdlib","utils","helpers"],"packageManager":"yarn@4.5.0","devDependencies":{"@biomejs/biome":"^1.9.1","@types/gh-pages":"^6.1.0","@vitest/coverage-v8":"^2.1.1","gh-pages":"^6.1.1","tsup":"^8.3.0","typedoc":"^0.26.7","typescript":"^5.6.2","vitest":"^2.1.1"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"dist/index.d.mts","exports":{"./package.json":"./package.json",".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --sourcemap --format esm,cjs --dts","upload:docs":"gh-pages -d docs","build:docs":"typedoc src/index.ts","deploy:docs":"yarn build:docs && yarn upload:docs","lint":"biome check src","lint:fix":"biome check src --write --unsafe","format":"biome format src --write","test:ts":"tsc --noEmit","test:unit":"vitest run --coverage.enabled --coverage.all --coverage.include=src","test:unit:watch":"vitest","test":"yarn lint && yarn test:ts && yarn test:unit","prepare":"yarn build"},"_id":"krustykrab@1.1.0","gitHead":"27abf98ff4640bb9fd44fad46c24dc761e4a57e6","bugs":{"url":"https://github.com/vtaits/krustykrab/issues"},"homepage":"https://github.com/vtaits/krustykrab#readme","_nodeVersion":"20.16.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-xpX9MPbw+nJseewe6who9Oq46RQwrBfps+dO/N4fSjJhsf2+y4XWC2kz46oBGX8yzMHyYJj35ug0X5s5yxB6tA==","shasum":"2b77faf06da9a43fe740799ac73fc2e8b6b515b0","tarball":"https://registry.npmjs.org/krustykrab/-/krustykrab-1.1.0.tgz","fileCount":9,"unpackedSize":78390,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFTIRBSyIp9FTEKvoyR71r1BYnxgKjUhyjVEwJaERsXAIgdxMong0fWt69r2LyYUOu4im2SfHJZbvTNTMYUm4dlXg="}]},"_npmUser":{"name":"vtaits","email":"taizvadim@gmail.com"},"directories":{},"maintainers":[{"name":"vtaits","email":"taizvadim@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/krustykrab_1.1.0_1726580404702_0.16681865465490198"},"_hasShrinkwrap":false}},"time":{"created":"2024-01-15T09:44:31.059Z","modified":"2024-09-17T13:40:05.062Z","1.0.0":"2024-01-15T09:44:31.255Z","1.0.1":"2024-08-27T14:09:20.356Z","1.1.0":"2024-09-17T13:40:04.894Z"},"bugs":{"url":"https://github.com/vtaits/krustykrab/issues"},"author":{"name":"Vadim Taits","email":"taizvadim@gmail.com"},"license":"MIT","homepage":"https://github.com/vtaits/krustykrab#readme","keywords":["rust","std","stdlib","utils","helpers"],"repository":{"type":"git","url":"git+ssh://git@github.com/vtaits/krustykrab.git"},"description":"Rust utils for JavaScript projects","maintainers":[{"name":"vtaits","email":"taizvadim@gmail.com"}],"readme":"# krustykrab\n\n[![NPM](https://img.shields.io/npm/v/krustykrab.svg)](https://www.npmjs.com/package/krustykrab)\n![dependencies status](https://img.shields.io/librariesio/release/npm/krustykrab)\n\nImplementation of some helpers of `Rust` stdlib on `JavaScript/TypeScript`\n\n[Api reference](https://vtaits.github.io/krustykrab/)\n\n## Implemented helpers\n\n### Option\n\n```ts\nimport { Some, None } from \"krustykrab\";\n\nconst someOption = Some(\"foo\");\nconst noneOption = None();\n```\n\n[Rust reference](https://doc.rust-lang.org/std/option/enum.Option.html)\n\n[krustykrab reference](https://vtaits.github.io/krustykrab/types/Option.html)\n\n### Result\n\n```ts\nimport { Ok, Err } from \"krustykrab\";\n\nconst okResult = Ok(\"foo\");\nconst errResult = Err(\"bar\");\n```\n\n[Rust reference](https://doc.rust-lang.org/std/result/enum.Result.html)\n\n[krustykrab reference](https://vtaits.github.io/krustykrab/types/Result.html)\n\n## Additional helpers\n\n### unwrap\n\nPanics if the value is `null` or `undefined` or returns it otherwise\n\n```ts\nimport { unwrap } from \"krustykrab\";\n\nconst fooOrUndefined = document.getElementById('foo'); // html element or `undefined`\nconst foo = unwrap(fooOrUndefined); // exactly html element\n```\n\n### unwrapOr\n\nReturns the value if it's not `null` or `undefined`, or returns the default value\n\n```ts\nimport { unwrapOr } from \"krustykrab\";\n\nconst foo: Partial<Record<string, string>> = { bar: 'baz' };\n\nunwrapOr(foo.bar, 'qux'); // returns 'baz'\nunwrapOr(foo.bat, 'qux'); // returns 'qux'\n```\n\n### unwrapOrElse\n\nReturns the value if it's not `null` or `undefined`, or computes it\n\n```ts\nimport { unwrapOrElse } from \"krustykrab\";\n\nconst foo: Partial<Record<string, string>> = { bar: 'baz' };\n\nunwrapOrElse(foo.bar, () => 'qux'); // returns 'baz'\nunwrapOrElse(foo.bat, () => 'qux'); // returns 'qux'\n```\n\n### getResult\n\nConverts `Promise` to `Result`\n\n```ts\nimport { getResult } from \"krustykrab\";\n\nconst successResult = await getResult(Promise.resolve('foo'));\nsuccessResult.unwrap(); // returns 'foo'\n\nconst errorResult = await getResult(Promise.reject('bar'));\nerrorResult.unwrapErr(); // returns 'bar'\n```\n\n### toOption\n\nConvert a nullable variable to `Option`\n\n\n```ts\nimport { toOption } from \"krustykrab\";\n\nconst option = toOption('foo');\noption.isNone(); // returns `false`;\noption.unwrap(); // returns `'foo'`;\n\ntoOption(null).isNone(); // returns `true`\ntoOption(undefined).isNone(); // returns `true`\n```\n\n### tryCatch\n\nWrap the result of a function call with `Result`\n\n```ts\nimport { tryCatch } from \"krustykrab\";\n\nconst successResult = tryCatch(() => JSON.parse('{\"foo\": \"bar\"}'));\nsuccessResult.unwrap(); // returns `{ foo: \"bar\" }`\n\nconst errorResult = tryCatch(() => JSON.parse(\"{invalid json}\"));\nerrorResult.isErr(); // returns `true`\n```","readmeFilename":"README.md"}