{"_id":"@board_tester/ts_utilities","_rev":"3-0f033327ef2a77cef9f19b74ad7496fe","name":"@board_tester/ts_utilities","dist-tags":{"latest":"2.0.7"},"versions":{"2.0.5":{"name":"@board_tester/ts_utilities","version":"2.0.5","description":"Utility collection","main":"./dist/index.js","typings":"./dist/index","scripts":{"build":"tsc --build","clean":"tsc --build --clean","prepublish":"npm run clean","test":"exit 0"},"bugs":{"url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities/issues"},"repository":{"type":"git","url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities.git"},"author":{"name":"Andre Häusler"},"license":"ISC","dependencies":{"moment":"^2.29.1"},"gitHead":"f128f44d53f2803c03783726d8f5d1111f0d64cd","_id":"@board_tester/ts_utilities@2.0.5","_nodeVersion":"15.10.0","_npmVersion":"7.5.6","dist":{"integrity":"sha512-9SpQbICjimu2u1qIUmSMofzuioZuYwZyhLKzDmJcOhJrM2IuCKzftRRTfLvf6xUle8q3xBPvZP224oEVfsJplA==","shasum":"f66b53fd7671944be2915e1e338e2b503d74d410","tarball":"https://registry.npmjs.org/@board_tester/ts_utilities/-/ts_utilities-2.0.5.tgz","fileCount":23,"unpackedSize":23438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiQV1CRA9TVsSAnZWagAA8qMP/3aWoPR5E3L9MiTJt4zQ\nqjkwxuUE3TXUrLLQRt/EKelucOl8505qwCCItwBornbmrkaQr4UU4UeX01ex\nvHMEFt9/nAIy9TL5EGmQ1sFGcPy7nYEwltnZr+/InTyyqmr9+eJSa/hSH4c1\njE69kWhBfiC4DAMo+21BLN5db3+NgZmlNTwih/Qt1J1PI/p6iAKsZCzAZ9j7\nYqQey59iQQ5eoYs/15so/LCOhl0oiIk8pV9hR7IV+KetyAt4dVHqQ2cYgXVI\nyC97CMocyAYXz01z7JNGcx0wZrQHJsMCngAbAhmfT3hCFHvDzbZY3fL3Bz+0\ntrCiTG/qgWryHgC8+cIgWSBKnYzW6GVaB/pS/UOulzBU2yxqvlZO3bWI+EAb\nsiMoXEZY/Hn3nahicvLtlsbufigRY3cOPLwVK76lFyBCjruNLfMP6jExyzRK\n3wZJr4nZ4uQw/XMKhpxdAgJYc6bHBGp6swsVeNh03Nk/EDKzuDw7TOCMfrMS\nrubpmnGw0y6tm1vxZfmqmOwBkHzLtaqeFpjP4xWY/fB56U0uhoyvcSDAOrZZ\ncOjWppBj/XXhUlTc2212O7MK+rp5k7qUypXzdIhgoyBCK22jdDXM2ZNCHDYb\nK372V+xrpqQsCkHfIhln9g1JBbWbf3FtXVDoS7D5kA1VF4ZDjw5kpLRkLumM\ncd6s\r\n=iH/4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfk5e3cDKyaPETzi2WAdSRoNrW87a0XwuZFQcIXJSRyQIhAK+PM1bWfqL4FhXtXgHgYnQuu73feaiA6KebbbzFtfXo"}]},"_npmUser":{"name":"board_tester","email":"my.live@gmx.de"},"directories":{},"maintainers":[{"name":"board_tester","email":"my.live@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts_utilities_2.0.5_1619592565198_0.3899709582132165"},"_hasShrinkwrap":false},"2.0.6":{"name":"@board_tester/ts_utilities","version":"2.0.6","description":"Utility collection","main":"./dist/index.js","typings":"./dist/index","scripts":{"build":"tsc --build","clean":"tsc --build --clean","prepublish":"npm run clean","test":"exit 0"},"bugs":{"url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities/issues"},"repository":{"type":"git","url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities.git"},"author":{"name":"Andre Häusler"},"license":"ISC","dependencies":{"moment":"^2.29.1"},"gitHead":"3ddaee18d93abdb3e404aca0c6b3f3a43d831f5d","_id":"@board_tester/ts_utilities@2.0.6","_nodeVersion":"15.10.0","_npmVersion":"7.5.6","dist":{"integrity":"sha512-k+G+W0gPsfYKnNX0KkTx1pKl3waRLzxni1T7FQdLbadGb058Fgh5W4QNgJcaRfQrk7SGOKKRb+b1Vk1aIYSwwQ==","shasum":"404a805f8abb1ff72db894ecdccc0c59890c130f","tarball":"https://registry.npmjs.org/@board_tester/ts_utilities/-/ts_utilities-2.0.6.tgz","fileCount":23,"unpackedSize":23380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiQXqCRA9TVsSAnZWagAAMRAP/jhHrdAA89Rai16RVEA5\nYkoggKvT5kQ3t2hmOsc9pMEgZPjSsBHBr2Qin5dKgIhqqnBNfswhDId+IxiS\nLB76JGY22njlq1uJ06Pl2uFM+Ap38J7Elt/MMepGlSQaelcuKPeOILrCpIrG\nK2ol5TOcfQ1/aqu8ZOsOC3SAehVXfaLea89buJRtgZsDW/BJXmnrCrQkZoxj\nnEFQ+m/ABtqK5dDDx80TyNN0dYBUh1pMyeasJuxd8iANcXv8EN2JvpZPbm0l\n6uWZ9Mrn023jF+GbLXC0SmlWqyiRxU0TAkFKXUu7xoaBzU680GfXdNzwhUfm\n0xk9I4175EKjlZlnMBKnXQmrZCkhaaOtnZHUbqRXhIfy2tCztfAOQRgJfvqO\nvGKXZsh4RoPX+IncjR7H1+/WA6BuELjhf/NaYGJPb9oVWXHWnB6P5lko8dtv\neJisPBd5747OIRtRDg0LLza8Tc0Vn7MIPePDOq4qYx9YCT5ILaZTXo0V1hb7\n0xPdSQAzISpGjLjrs+Vy0npEFjMvMp3+FAS/SJk0eg72v8vg8uIFIXx4UUr0\nyvAqw15pXVdUu6B843hfI4n+GhiF0Ksz0CAWGPq1HpaGOgcZBbSEbeSs445P\nQkz8jVtEsVhceKWkV4DAOx6zvjKZnXdZ2+WuFj/FKnO7b7AjHnK2mBg5Yh7G\nbdu7\r\n=6jUk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGiABZC8vscgHfBDhE4SSiHoZ4wywUZPBmJmthNfpFFbAiB5e4n/8BWWZjBkL6xo5H/a6lqVUG4c1zavfNVVcYpPBw=="}]},"_npmUser":{"name":"board_tester","email":"my.live@gmx.de"},"directories":{},"maintainers":[{"name":"board_tester","email":"my.live@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts_utilities_2.0.6_1619592681640_0.3256450956233532"},"_hasShrinkwrap":false},"2.0.7":{"name":"@board_tester/ts_utilities","version":"2.0.7","description":"Utility collection","main":"./dist/index.js","typings":"./dist/index","scripts":{"build":"tsc --build","clean":"tsc --build --clean","prepublish":"npm run clean","test":"exit 0"},"bugs":{"url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities/issues"},"repository":{"type":"git","url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities.git"},"author":{"name":"Andre Häusler"},"license":"ISC","dependencies":{"moment":"^2.29.1"},"gitHead":"79880eb26a6614aac5335d7578fcded6972b7e7a","_id":"@board_tester/ts_utilities@2.0.7","_nodeVersion":"15.10.0","_npmVersion":"7.5.6","dist":{"integrity":"sha512-K1acUomtWBn5sg7yCOjXtuHpwiOg9xwda9E/wJazrUcoRFcNZSHK3XCDXrhBfnKmsfRaPMXc6wNCuqsRX89C/w==","shasum":"0935344721c40d64dbc50656a2e236e3beacd55b","tarball":"https://registry.npmjs.org/@board_tester/ts_utilities/-/ts_utilities-2.0.7.tgz","fileCount":23,"unpackedSize":23380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpKTeCRA9TVsSAnZWagAAG08P/jz6O7+INehbLFZ3cRP6\nCy3NbCPlk79qvJKiMK6QzjUzqdbckbwuAQ3+jlhytjKsmTAaDYyqiIOwtm1r\nh8KFCWG39byvXUyhS9PRoZ+t4m2oILoTUtBj2ETwZAj+ZNVNR+4T+8egm371\n3LDNvWpggZec7ibZbuBCFDELqqOFNUe+bkqEHNloOAIwp4iAt5uhHLEBLeMj\nYb2E2RqRO/5zs190WZA03EWW1EdA9f+zdn2gxQsGiAqVkqug83woFm7fa1d2\nxgE0sMQ8Y9GdIn5MIh9raMu5lmdFyGgCpwhLz6B7uZGEdTXqE3k4Jbw7aboo\nRZI4qEeioH222Ye/OFdU+Z2GK/0GXsZb0yKa++2aWTy1g5nf4Tuff7IDXJl8\nPvk+Km5wBk7H/aFQ8gIJxe485BBBfUwVzxyZuiRldyJIefTF0Z+n3zyr0kZl\nlgpqd+jgdvS6WycO0mb0+Tr0V2TFjWFeGZhLaqesVX5e2Fm326mYdZ2zY4SZ\nL4UDa3w9o+tgIWVTFIJw79Jaww77YdSfJAw7z+FnHULWeHJM+XsordsqHeLi\n0UCkuTyeRQQ0bQJLY38pLO+WbkaaYycDl00AdK3GxM6USbrzR4lxE76HFpv9\nBbZ3q7ue3O0Zng1U9XQm7OavbVJ2RJ+435xNeB8qOEihRC1fLvDN4EW41ckg\nt1sT\r\n=g7It\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCC5RSKnlib/kQT3pEMfz6EFUw2hsdhUiTL1cPD0wH4MAIhAPyNQ0ty7oWQlkIuvBvYYUoinMUGMVP5HR265jc0xTna"}]},"_npmUser":{"name":"board_tester","email":"my.live@gmx.de"},"directories":{},"maintainers":[{"name":"board_tester","email":"my.live@gmx.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts_utilities_2.0.7_1621402846333_0.4930657877223097"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-28T06:49:25.135Z","2.0.5":"2021-04-28T06:49:25.335Z","modified":"2022-04-04T19:54:19.326Z","2.0.6":"2021-04-28T06:51:21.805Z","2.0.7":"2021-05-19T05:40:46.509Z"},"maintainers":[{"name":"board_tester","email":"my.live@gmx.de"}],"description":"Utility collection","repository":{"type":"git","url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities.git"},"author":{"name":"Andre Häusler"},"bugs":{"url":"https://gitea.schadstoffbremse.no-ip.biz/schadstoffbremse/ts_utilities/issues"},"license":"ISC","readme":"# Utilities\n\nSome useful utilities for ts:\n- Maybe: Nullability Helper for TypeScript\n- Arrays: Removing duplicates with Predicate\n- Browser: Find out used browser (\"edge\" | \"opera\" | \"chrome\" | \"ie\" | \"firefox\" | \"safari\" | \"other\")\n- Id: Generator uuid v4\n- Objects: Merge or combine objects\n- Parameter: Definition of parameter \n- Reviver: Interface helper to parse JSON \n- TimeDate: Creator of moment (includes Moment)\n- URL: URL Builder including parameters\n\n## Glossary\n\n-   [Usage](#usage)\n\n## Usage\n\n### Installation:\n\n```\nnpm install @board_tester/ts_utilities\n```\n\n### Import\n\n```js\nimport { Maybe, Nothing, Array, Browser, Id, Objects, ..... } from '@board_tester/ts_utilities';\n```\n\n### Maybe\n\n```js\nconst variable: number = 1;\nMaybe.of(variable); //=> Just<number>(1)\n\nconst variable: number | undefined = undefined;\nMaybe.of(variable); //=> Nothing\n\nconst variable: number | undefined = undefined;\nconst defaultValue: number = 0;\nMaybe.of(variable, defaultValue); //=> Just<number>(0)\n\nconst variable: number | undefined = undefined;\nconst defaultValue: Maybe<number> = Maybe.of(5);\nMaybe.of(variable, defaultValue); //=> Just<number>(5)\n\nconst variables: number[] = [ undefined, null, 2, 1];\nMaybe.ofs(variables); //=> Just<number>(2) \n\n#deprecated, save use Maybe.of\nconst variable: string = 'hello';\nJust(variable); //=> Just<string>('hello')\n\n#deprecated, save use Maybe.of\nconst variable: string | undefined = undefined;\nJust(variable); //=> throws Error\nNothing(); //=> Nothing\n\n```\n\n### Id\n\n```js\nconst id : Id = Id.generate();\n\n```\n\n### Browser\n\n```js\nconst browser : Browser = Browser.BROWSER;\n\n```\n\n### Arrays\n\n```js\nArrays.removeDuplicates<T>(values: T[], predicate: (a: T, b: T) => boolean = (a, b) => a == b): T[]\n\n```\n\n### Objects\n\n```js\nObjects.merge(source1: any, source2: any): any\nObjects.combine(source1: any, source2: any, target: any = {}): any\n\n```\n\n### TimeDate\n\n```js\nTimeDate.fromDate = (date: Date | Moment) => Moment;\n\nTimeDate.fromMillis = (millis: number) => Moment;\n\nTimeDate.fromString = (time: string, format: Maybe<string>) => Moment;\n\nTimeDate.fromYearAndWeek = (year: number, week: number) => Moment\n\n```\n\n### URL\n\n```js\nURL.build(url: string, parameter: Maybe<Parameter>, withFalseValues = false): string\n\n```\n\n### Reviver\n\n```js\n\n// example for Moment @see Reviver.ts\nclass MomentReviver implements Reviver {\n\n    responsible(_: any, value: any): boolean {\n\n        return typeof value === 'string' && moment(value, true).isValid();\n\n    }\n\n    revive(_: any, value: any): moment.Moment {\n\n    return moment(value);\n\n    }\n\n}\n\nconst map: Reviver[] = [new MomentReviver(), ......... ];\n\nexport const JSONReviver = (key: any, value: any): any => {\n\n    return Maybe.of(map.find(reviver => reviver.responsible(key, value))).map(reviver => reviver.revive(key, value)).safe(() => value);\n\n}\n\nJSON.parse(json, JSONReviver);\n\n```\n## Documentation\n\n### Functions on Maybe instances\n\n#### `MaybeInstance.map(f: (value: T) => R) => Maybe<R>`\n\n-   `f`: Function for map T -> R\n\nReturns Maybe[R]\n\n#### `MaybeInstance.fmap(f: (value: T) => Maybe<R>) => Maybe<R>`\n\n-   `f`: Function for fmap T -> Maybe[R]\n\nReturns Maybe[R]\n\n#### `MaybeInstance.isJust() => type is Just`\n\nReturns Type is Just\n\n#### `MaybeInstance.isNothing() => type is Nothing`\n\nReturns Type is Nothing\n\n#### `MaybeInstance.if(f: (value: T) => void) => Maybe<T>`\n\n-   `f`: Function to compute with value if present\n\nReturns Maybe[T]\n\n#### `MaybeInstance.else(f: () => void) => Maybe<T>`\n\n-   `f`: Function to compute if no value is present \n\nReturns Maybe[T]\n\n#### `MaybeInstance.reset(f: (value: T) => void) => Nothing<T>`\n\n-   `f`: Function to compute with value if present, then reset to Nothing\n\nReturns Nothing[T]\n\n#### `MaybeInstance.safe(f: () => T) => T`\n\n-   `f`: Function to compute to create returnValue if no value is present\n\nReturns [T]\n\n#### `MaybeInstance.unsafe() => T`\n\nReturns [T] (throws Error if no value is present)\n\n#### `MaybeInstance.unwrap() => T | undefined`\n\nReturns [T] if value is present or undefined\n\n\n#### `MaybeInstance.or(ifNothing: Maybe<T> | T) => Maybe<T>`\n\n-   `ifNothing`: Value or Maybe<T> if instance is Nothing\n\nReturns Maybe[T]\n\n#### `Maybe.compare(left: Maybe<T>,right: Maybe<T>, comp: ((left: T, right: T) => boolean), onBothNothing?: boolean)`\n\n-   `left` : first Maybe<T>\n-   `right`: right Maybe<T>\n-   `compo`: Function to be calculated for comparison\n-   `onBothNothing`: boolean to return if both Maybe's are Nothing\n\nReturns boolean\n","readmeFilename":"README.md"}