{"_id":"@byndyusoft-ui/types","_rev":"5-9d047b1609eb46dc536f826d68e649a9","name":"@byndyusoft-ui/types","dist-tags":{"latest":"0.3.0"},"versions":{"0.0.1":{"name":"@byndyusoft-ui/types","version":"0.0.1","keywords":["byndyusoft","byndyusoft-ui","typescript","types"],"author":{"name":"Eugene Abrosimov","email":"sadcitizen@yandex.ru"},"license":"Apache-2.0","_id":"@byndyusoft-ui/types@0.0.1","maintainers":[{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"}],"homepage":"https://github.com/Byndyusoft/ui/tree/master/packages/types#readme","bugs":{"url":"https://github.com/Byndyusoft/ui/issues"},"dist":{"shasum":"a340d3e4efff42d8faf7621a80f37a140d8ef246","tarball":"https://registry.npmjs.org/@byndyusoft-ui/types/-/types-0.0.1.tgz","fileCount":19,"integrity":"sha512-SFSmViMBmov1iM7prRe1ac6+SE5Hiagcs+ZrQwbtFQ/6Dz33eYkDJ1L7/Xd8kf8+lWuZ2mnU5kNxiWQHIfnL/A==","signatures":[{"sig":"MEQCIFqMOKLEWRcqPC73llROtthMrZ24onWkO02SzuD3VeQEAiBpHP4Vl8yygtY7WGqALFBCY/U/SbhzmL0horN6zZz15A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3826},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4ed047838970065da52174adeaa5d285706c25b3","scripts":{"build":"tsc","clean":"rimraf dist"},"_npmUser":{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},"repository":{"url":"git+https://github.com/Byndyusoft/ui.git","type":"git"},"_npmVersion":"8.19.4","description":"Byndyusoft UI Utility Types","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/types_0.0.1_1715754803405_0.06580765251289988","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@byndyusoft-ui/types","version":"0.0.2","keywords":["byndyusoft","byndyusoft-ui","typescript","types"],"author":{"name":"Eugene Abrosimov","email":"sadcitizen@yandex.ru"},"license":"Apache-2.0","_id":"@byndyusoft-ui/types@0.0.2","maintainers":[{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"}],"homepage":"https://github.com/Byndyusoft/ui/tree/master/packages/types#readme","bugs":{"url":"https://github.com/Byndyusoft/ui/issues"},"dist":{"shasum":"51f329e4a6b7eb943bb825f80654e9b40ef91045","tarball":"https://registry.npmjs.org/@byndyusoft-ui/types/-/types-0.0.2.tgz","fileCount":23,"integrity":"sha512-t8YjittyRHsVKLbzvLVkIlqxJcaVJaGWBfW1IwK/HtYB9KQH6LUHy+4n2PLujIj2KvJYlL3ah0Pupz5IOBqGaQ==","signatures":[{"sig":"MEUCIBizBb+bDgmpT/VZlmaiTfKVW4DRrLDCX2Asz/PnsCAvAiEAyNV39B+/JgZ7Tp7gKMq4mkpfN3IEdLpMsE0Ed4hk6N8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6430},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1873d46dbb309ac2f650beff515f9b0be067f521","scripts":{"build":"tsc","clean":"rimraf dist"},"_npmUser":{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},"repository":{"url":"git+https://github.com/Byndyusoft/ui.git","type":"git"},"_npmVersion":"10.7.0","description":"Byndyusoft UI Utility Types","directories":{},"_nodeVersion":"20.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/types_0.0.2_1729069362427_0.3043100035962023","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@byndyusoft-ui/types","version":"0.1.0","keywords":["byndyusoft","byndyusoft-ui","typescript","types"],"author":{"name":"Eugene Abrosimov","email":"sadcitizen@yandex.ru"},"license":"Apache-2.0","_id":"@byndyusoft-ui/types@0.1.0","maintainers":[{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"}],"homepage":"https://github.com/Byndyusoft/ui/tree/master/packages/types#readme","bugs":{"url":"https://github.com/Byndyusoft/ui/issues"},"dist":{"shasum":"3572b4e273b5fde323e79599178d4f740fe0a1d1","tarball":"https://registry.npmjs.org/@byndyusoft-ui/types/-/types-0.1.0.tgz","fileCount":23,"integrity":"sha512-CuD48QIuKa3sdsZ9uLFOWr28Q5/wqY0orPCftedqufWgXGOle3RVh5gCMyFuYW6oX7OfK3Ewjp4IyKjzBYEqtw==","signatures":[{"sig":"MEUCIQC5lidvfhSDu+V+mCXjGsP4hOV9NMsWZxwET90uA6pdpQIgEW42U4F3udPswjqCctktwPs2g7eDYz+E4bxeWxMf6Qk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7203},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f35116dbe2d933155625c1abf9a8268d4457c83c","scripts":{"build":"tsc","clean":"rimraf dist"},"_npmUser":{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},"repository":{"url":"git+https://github.com/Byndyusoft/ui.git","type":"git"},"_npmVersion":"10.7.0","description":"Byndyusoft UI Utility Types","directories":{},"_nodeVersion":"20.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/types_0.1.0_1729157159912_0.19179415814250267","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@byndyusoft-ui/types","version":"0.1.1","keywords":["byndyusoft","byndyusoft-ui","typescript","types"],"author":{"name":"Eugene Abrosimov","email":"sadcitizen@yandex.ru"},"license":"Apache-2.0","_id":"@byndyusoft-ui/types@0.1.1","maintainers":[{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"}],"homepage":"https://github.com/Byndyusoft/ui/tree/master/packages/types#readme","bugs":{"url":"https://github.com/Byndyusoft/ui/issues"},"dist":{"shasum":"6e9108602fe201c5d40795a9fb65c16a96efbf2e","tarball":"https://registry.npmjs.org/@byndyusoft-ui/types/-/types-0.1.1.tgz","fileCount":25,"integrity":"sha512-hRQbyzPbz1pdcLbYtgUnnk5pOlUY2yNpJ/o28NX4vQwmg2hNyPgifaK8STT77rhMEL5btcETYkD7YrMSz11EDA==","signatures":[{"sig":"MEUCIQCBSh5Z4J4C7IZ2wSWXBg77LG96SGIiYmhuK1vOMjKnTQIgBvxJW9FYfGlfnggpP7VMgcDcB7CliPcWaoyPG5gALBA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7768},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fb5d0a6a5c7c78835bef995c237ba37c35af3b11","scripts":{"build":"tsc","clean":"rimraf dist"},"_npmUser":{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},"repository":{"url":"git+https://github.com/Byndyusoft/ui.git","type":"git"},"_npmVersion":"10.7.0","description":"Byndyusoft UI Utility Types","directories":{},"_nodeVersion":"20.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/types_0.1.1_1730440473493_0.11108358445096389","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@byndyusoft-ui/types","version":"0.2.0","keywords":["byndyusoft","byndyusoft-ui","typescript","types"],"author":{"name":"Eugene Abrosimov","email":"sadcitizen@yandex.ru"},"license":"Apache-2.0","_id":"@byndyusoft-ui/types@0.2.0","maintainers":[{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"}],"homepage":"https://github.com/Byndyusoft/ui/tree/master/packages/types#readme","bugs":{"url":"https://github.com/Byndyusoft/ui/issues"},"dist":{"shasum":"2ffbcf1a5b5f1760aed63ff0ce68b0e439ed538c","tarball":"https://registry.npmjs.org/@byndyusoft-ui/types/-/types-0.2.0.tgz","fileCount":33,"integrity":"sha512-j7ilNfLBr7tHwoXKPRlgTcaL3YllqZTnGGZQT3CWMZ40HzT7fX/U6o5lA/M47nDnyETUGgXf7ZhcLfmfl7Ki2Q==","signatures":[{"sig":"MEUCIBv0MTYgwsuKxeKhReaSbYjkAvSbzC/DfGASx9RqO+TwAiEA1CvQKu1hEXyoLooui6dQKda0Slvp3KoHMUfKRxSOTHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9817},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"83e95088ab772cda9d202c9b8ad013253020560d","scripts":{"build":"tsc","clean":"rimraf dist"},"_npmUser":{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},"repository":{"url":"git+https://github.com/Byndyusoft/ui.git","type":"git"},"_npmVersion":"10.7.0","description":"Byndyusoft UI Utility Types","directories":{},"_nodeVersion":"20.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/types_0.2.0_1738756299944_0.7726085219535641","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@byndyusoft-ui/types","version":"0.3.0","description":"Byndyusoft UI Utility Types","keywords":["byndyusoft","byndyusoft-ui","typescript","types"],"author":{"name":"Eugene Abrosimov","email":"sadcitizen@yandex.ru"},"homepage":"https://github.com/Byndyusoft/ui/tree/master/packages/types#readme","license":"Apache-2.0","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/Byndyusoft/ui.git"},"scripts":{"build":"tsc","clean":"rimraf dist"},"bugs":{"url":"https://github.com/Byndyusoft/ui/issues"},"publishConfig":{"access":"public"},"_id":"@byndyusoft-ui/types@0.3.0","gitHead":"6570d9c04cb93d192c4adcbe518e2ac72794df17","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-2M/sehle65cZefsCb3fZnCMOVYZFYAVHMSVs0pVPDa3wa9ZImjTjqbnHZ5Uc6F4FoaHtyJxT7VZ5p9sl807fVA==","shasum":"f3b8600c8f704ae3c4f22a04c2210520ea2172af","tarball":"https://registry.npmjs.org/@byndyusoft-ui/types/-/types-0.3.0.tgz","fileCount":33,"unpackedSize":9849,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDROH/q1uLrugNSGVwyNt63L5cGZCQWyP4IqiiH+AOq/wIhALpR8QcEhNgLdsb7G/Rk6RQuwGNCF0g0ddz+4nlidrzv"}]},"_npmUser":{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},"directories":{},"maintainers":[{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/types_0.3.0_1741066186566_0.8033776179859429"},"_hasShrinkwrap":false}},"time":{"created":"2024-05-15T06:33:23.294Z","modified":"2025-03-04T05:29:46.914Z","0.0.1":"2024-05-15T06:33:23.564Z","0.0.2":"2024-10-16T09:02:42.613Z","0.1.0":"2024-10-17T09:26:00.078Z","0.1.1":"2024-11-01T05:54:33.651Z","0.2.0":"2025-02-05T11:51:40.137Z","0.3.0":"2025-03-04T05:29:46.725Z"},"bugs":{"url":"https://github.com/Byndyusoft/ui/issues"},"author":{"name":"Eugene Abrosimov","email":"sadcitizen@yandex.ru"},"license":"Apache-2.0","homepage":"https://github.com/Byndyusoft/ui/tree/master/packages/types#readme","keywords":["byndyusoft","byndyusoft-ui","typescript","types"],"repository":{"type":"git","url":"git+https://github.com/Byndyusoft/ui.git"},"description":"Byndyusoft UI Utility Types","maintainers":[{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"}],"readme":"# `@byndyusoft-ui/types`\r\n\r\n## Installation\r\n\r\n```sh\r\nnpm i @byndyusoft-ui/types\r\n# or\r\nyarn add @byndyusoft-ui/types\r\n```\r\n\r\n### Import library\r\n\r\n```\r\nimport types from '@byndyusoft-ui/types';\r\n```\r\n\r\n### Callback\r\n\r\nImport:\r\n\r\n```typescript\r\nimport { Callback } from '@byndyusoft-ui/types';\r\n```\r\n\r\nUsage examples:\r\n\r\n```typescript\r\nconst callback: Callback = () => {};\r\n\r\ncallback(); // return void\r\n```\r\n\r\n```typescript\r\nconst callback: Callback<never, number> = () => {\r\n    return 123;\r\n};\r\n\r\ncallback(); // return number\r\n```\r\n\r\n```typescript\r\ntype TArg = string;\r\n\r\nconst callback: Callback<TArg> = str => {};\r\n\r\ncallback('some text'); // return void\r\n```\r\n\r\n```typescript\r\ntype TArg = number;\r\ntype TReturn = string;\r\n\r\nconst callback: Callback<TArg, TReturn> = num => num.toString();\r\n\r\ncallback(100); // return string\r\n```\r\n\r\n```typescript\r\ntype TArgs = [number];\r\ntype TReturn = string;\r\n\r\nconst callback: Callback<TArgs, TReturn> = num => num.toString();\r\n\r\ncallback(100); // return string\r\n```\r\n\r\n```typescript\r\ntype TArgs = [number, number, number];\r\ntype TReturn = boolean;\r\n\r\nconst callback: Callback<TArgs, TReturn> = (num1, num2, num3) => {\r\n    return 0 < num1 + num2 + num3;\r\n};\r\n\r\ncallback(1, 2, 3); // return boolean\r\n```\r\n\r\n```typescript\r\ntype TArgs = [Array<number>, { value: number }];\r\ntype TReturn = Array<string>;\r\n\r\nconst callback: Callback<TArgs, TReturn> = (numbers, obj) => {\r\n    return numbers.map(num => String(num * obj.value));\r\n};\r\n\r\ncallback([1, 2, 3, 4], { value: 100 }); // return Array<string>\r\n```\r\n\r\n```typescript\r\ntype TArgs = [Array<number>, Array<string>];\r\ntype TReturn = string;\r\n\r\nconst callback: Callback<TArgs, TReturn> = (numbers, strings) => {\r\n    const result = 'Any string';\r\n\r\n    // ...some operations\r\n\r\n    return result;\r\n};\r\n\r\ncallback([1, 2, 3, 4], ['a', 'b']); // return string\r\n```\r\n\r\n#### Required arguments count\r\n\r\nRequires between 0 and 2 type arguments:\r\n\r\n##### Bad:\r\n\r\n```typescript\r\nconst callback: Callback<number, number, number> = (a, b, c) => {};\r\n```\r\n\r\n##### Right:\r\n\r\n0 arguments:\r\n\r\n```typescript\r\nconst callback: Callback = () => {};\r\n```\r\n\r\n1 argument:\r\n\r\n```typescript\r\nconst callback: Callback<number> = (a) => {};\r\n```\r\n\r\n```typescript\r\nconst callback: Callback<[number, number, number]> = (a, b, c) => {};\r\n```\r\n\r\n2 arguments:\r\n\r\n```typescript\r\nconst callback: Callback<never, string> = () => {\r\n    return 'Text';\r\n};\r\n```\r\n\r\n```typescript\r\nconst callback: Callback<number, string> = (a) => {\r\n    return 'Text';\r\n};\r\n```\r\n\r\n```typescript\r\nconst callback: Callback<[number, number, number], string> = (a, b, c) => {\r\n    return 'Text';\r\n};\r\n```\r\n\r\n### EmptyObject\r\n\r\n```typescript\r\nconst str: {} = 'str'; // ok\r\nconst num: {} = 123; // ok\r\nconst bool: {} = true; // ok\r\n```\r\n\r\n```typescript\r\nimport { EmptyObject } from '@byndyusoft-ui/types';\r\n\r\nconst str: EmptyObject = 'str'; // Type 'string' is not assignable to type 'EmptyObject'.\r\nconst num: EmptyObject = 123; // Type 'number' is not assignable to type 'EmptyObject'.\r\nconst bool: EmptyObject = true; // Type 'boolean' is not assignable to type 'EmptyObject'.\r\n```\r\n\r\n### IsTuple\r\n\r\n```typescript\r\nimport { IsTuple } from '@byndyusoft-ui/types';\r\n\r\ntype Test1 = IsTuple<string>; // false\r\ntype Test2 = IsTuple<Array<string>>; // false\r\ntype Test3 = IsTuple<[string]>; // true\r\ntype Test4 = IsTuple<[string, number]>; // true\r\n```\r\n\r\n### PlainObject\r\n\r\n```typescript\r\nconst date: object = new Date(); // ok\r\nconst rgx: object = new RegExp('[a-z]'); // ok \r\n```\r\n\r\n```typescript\r\nimport { PlainObject } from '@byndyusoft-ui/types';\r\n\r\nconst date: PlainObject = new Date(); // Type 'Date' is not assignable to type 'PlainObject<unknown>'.\r\nconst rgx: PlainObject = new RegExp('[a-z]'); // Type 'RegExp' is not assignable to type 'PlainObject<unknown>'. \r\n\r\nconst a: PlainObject = { a: 'b', c: 'd' }; // ok\r\n```\r\n\r\n### ValueOf\r\n\r\n```typescript\r\nimport { ValueOf } from '@byndyusoft-ui/types';\r\n\r\nenum Fruits {\r\n    APPLE = 'apple',\r\n    ORANGE = 'orange'\r\n}\r\n\r\nconst fruitsDictionary = {\r\n    [Fruits.APPLE]: 'Яблоко' as string,\r\n    [Fruits.ORANGE]: 'Апельсин' as string\r\n};\r\n\r\nconst TFruitsDictionaryValues = ValueOf<typeof fruitsDictionary>;\r\n// TFruitsDictionaryValues = 'Яблоко' | 'Апельсин'\r\n```\r\n\r\n### TimeoutId\r\n\r\n```typescript\r\nimport { TimeoutId } from '@byndyusoft-ui/types';\r\n\r\nconst timeoutIdRef = useRef<TimeoutId | null>(null);\r\n\r\ntimeoutIdRef.current = setTimeout(() => {}, 1000);\r\n\r\nclearTimeout(timeoutIdRef.current);\r\ntimeoutIdRef.current = null;\r\n```\r\n\r\n### IntervalId\r\n\r\n```typescript\r\nimport { IntervalId } from '@byndyusoft-ui/types';\r\n\r\nconst intervalIdRef = useRef<IntervalId | null>(null);\r\n\r\nintervalIdRef.current = setInterval(() => {}, 1000);\r\n\r\nclearInterval(intervalIdRef.current);\r\nintervalIdRef.current = null;\r\n```\r\n","readmeFilename":"README.md"}