{"bugs":{"url":"https://github.com/ksxnodemodules/typescript-tuple/issues"},"dist":{"shasum":"91e0e31608f942dd1c85174ffa84f0f2ba16d527","tarball":"https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-4.0.0-rc.1.tgz","fileCount":11,"integrity":"sha512-1ip+YeBOC1mVobD0W6E786NDprz0MtXaMsDw0xWfXCzFDUmy/2QfwcA1D+Ymwoz0JlO/sDhh6cvZraPa+jJmiw==","signatures":[{"sig":"MEUCIFsd3GsN4B2LdQJubbl/9u5MSuf8WvMKsSijvVRsQ1kkAiEAlA0i4PSQJ743S8fnmmnQoXMRl0Bajr+d7+aF/3B5zW4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQOKRCRA9TVsSAnZWagAA67cP/2zeFoq1LLY/N8s5e1FV\n3dS0jVgP29JXH0SVaRYb/Tjh+qGH/lblmv9XI7H79xI8rqsmcKdXSSTYJ2K/\nnbfsmx12UkyM6Q+yaDgOrFTTQyBxOqKOqad6UiNBjjk4cpp5NaSFZlzsGfzm\nRxZoUbOmoLvXs6puF3SqT04+Ymwr/qjdUcZXLcJcP47KIgYizcNA7nyvaygo\nIUfiao4WNrsL19wKtDU7d75mPbAUEBde9Od7Ei8uWwslVNLko8cqXpiuyRhG\nXpyy6xuJ0FHLOEgZm9S4l7RCoX0ttErIT62Yx9syLubZkYuSjt9uzw3Ok5a+\ndStzWJLOmDOeds4qmzJTv4z6Ru3QmI75eXMwvbCBxfuLNEDF2jHJzFsby/NT\nwM/uw26QJLT4yGXYTL6V1fYyMmxgTbjznKh3JIF8CD3u/ix4lJYT8gAa6/MW\nFuXfD+nCpwU3UX2bwf8k3Q7+85N7zPZjXo2SrhFxYHZgqu6DkjJOlVf2u/lz\nHyOqFHvWjeW3HAZJP7GcxqgtVVuOS+jzyvtfVy6lpsz3z5fJoiWXu/5EHICw\nrddtsessKV5WEIKqcqLxaFsqOS46fYaaIVYLDpIUGfDM5PD0BtLa9x+uo0mf\n0NY/qVFdY+Afj2wEPruyr6tc6/6R0gtdEmFJ1iVH/J43Ptcf/Ce2YOHsZqZe\nz3F9\r\n=kmzz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","name":"typescript-tuple","author":{"name":"Hoàng Văn Khải","email":"hvksmr1996@gmail.com"},"readme":"# TypeScript Tuple\n\nGenerics to work with tuples in TypeScript\n\n## Requirements\n\n* TypeScript ≥ 4.0.0\n\n## Usage\n\n### `IsFinite`\n\n```typescript\nimport { IsFinite } from 'typescript-tuple'\n\ntype Foo = IsFinite<[0, 1, 2]> // Expect: true\nconst foo: Foo = true\n\ntype Bar = IsFinite<[0, 1, 2, ...number[]]> // Expect: false\nconst bar: Bar = false\n\ntype Baz = IsFinite<[0, 1, 2], 'finite', 'infinite'> // Expect: 'finite'\nconst baz: Baz = 'finite'\n```\n\n### `First`\n\n```typescript\nimport { First } from 'typescript-tuple'\ntype Foo = First<['a', 'b', 'c']> // Expect: 'a'\nconst foo: Foo = 'a'\n```\n\n### `Last`\n\n```typescript\nimport { Last } from 'typescript-tuple'\ntype Foo = Last<['a', 'b', 'c']> // Expect: 'c'\nconst foo: Foo = 'c'\n```\n\n### `Tail`\n\n```typescript\nimport { Tail } from 'typescript-tuple'\ntype Foo = Tail<['a', 'b', 'c']> // Expect: ['b', 'c']\nconst foo: Foo = ['b', 'c']\n```\n\n### `Append`\n\n```typescript\nimport { Append } from 'typescript-tuple'\ntype Foo = Append<['a', 'b', 'c'], 'x'> // Expect: ['a', 'b', 'c', 'x']\nconst foo: Foo = ['a', 'b', 'c', 'x']\n```\n\n### `Prepend`\n\n```typescript\nimport { Prepend } from 'typescript-tuple'\ntype Foo = Prepend<['a', 'b', 'c'], 'x'> // Expect: ['x', 'a', 'b', 'c']\nconst foo: Foo = ['x', 'a', 'b', 'c']\n```\n\n### `Reverse`\n\n```typescript\nimport { Reverse } from 'typescript-tuple'\ntype Foo = Reverse<['a', 'b', 'c']> // Expect: ['c', 'b', 'a']\nconst foo: Foo = ['c', 'b', 'a']\n```\n\n### `Concat`\n\n```typescript\nimport { Concat } from 'typescript-tuple'\ntype Foo = Concat<['a', 'b', 'c'], [0, 1, 2]> // Expect ['a', 'b', 'c', 0, 1, 2]\nconst foo: Foo = ['a', 'b', 'c', 0, 1, 2]\n```\n\n### `Repeat`\n\n```typescript\nimport { Repeat } from 'typescript-tuple'\n\n// Basic\ntype Foo = Repeat<'x', 5> // Expect ['x', 'x', 'x', 'x', 'x']\nconst foo: Foo = ['x', 'x', 'x', 'x', 'x']\n\n// Using union\ntype Bar = Repeat<'x', 1 | 3 | 4> // Expect ['x'] | ['x', 'x', 'x'] | ['x', 'x', 'x', 'x']\nconst bar1: Bar = ['x']\nconst bar3: Bar = ['x', 'x', 'x']\nconst bar4: Bar = ['x', 'x', 'x', 'x']\n\n// Using ambiguous 'number' type\ntype Baz = Repeat<'x', number> // Expect 'x'[]\nconst baz: Baz = Array<number>()\n```\n\n**NOTES:**\n\n* Due to TypeScript design limitations, using floating point numbers and negative numbers might lead to infinite loop within TSC compiler, avoid doing this.\n\n### `ConcatMultiple`\n\n```typescript\nimport { ConcatMultiple } from 'typescript-tuple'\ntype Foo = ConcatMultiple<[[], ['a'], ['b', 'c']]> // Expect ['a', 'b', 'c']\nconst foo: Foo = ['a', 'b', 'c']\n```\n\n### `Drop`\n\n```typescript\nimport { Drop } from 'typescript-tuple'\n\ntype Foo = Drop<[0, 1, 2, 3, 4], 2> // Expect [2, 3, 4]\nconst foo: Foo = [2, 3, 4]\n\ntype Bar = Drop<[0, 1, 2, 3, 4, ...number[]], 2> // Expect [2, 3, 4, ...number[]]\nconst bar: Bar = [2, 3, 4]\n\ntype Baz = Drop<[0, 1, 2, 3, 4], 10> // Expect []\nconst baz: Baz = [2, 3, 4]\n\ntype Qux = Drop<[0, 1, 2, 3, 4, ...number[]], 10> // Expect number[]\nconst qux: Qux = [2, 3, 4]\n```\n\n### `SliceStartQuantity`\n\n```typescript\nimport { SliceStartQuantity } from 'typescript-tuple'\ntype Foo = SliceStartQuantity<[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 2, 4> // Expect [2, 3, 4, 5]\nconst foo: Foo = [2, 3, 4, 5]\n```\n\n### `FillTuple`\n\n```typescript\nimport { FillTuple } from 'typescript-tuple'\ntype Foo = FillTuple<[0, 1, 2, 3], 'r'>\nconst foo: Foo = ['r', 'r', 'r', 'r']\n```\n\n### `CompareLength`\n\n```typescript\nimport { CompareLength } from 'typescript-tuple'\n\ntype Foo = CompareLength<[0, 1, 2], ['a', 'b', 'c']> // Expect: 'equal'\nconst foo: Foo = 'equal'\n\ntype Bar = CompareLength<[0, 1], ['a', 'b', 'c', 'd']> // Expect: 'shorterLeft'\nconst bar: Bar = 'shorterLeft'\n\ntype Baz = CompareLength<[0, 1, 2, 3], ['a', 'b']> // Expect: 'shorterRight'\nconst baz: Baz = 'shorterRight'\n```\n\n### `SortTwoTuple`\n\n```typescript\nimport { SortTwoTuple } from 'typescript-tuple'\n\ntype Foo = SortTwoTuple<[0, 1], ['a', 'b', 'c', 'd']> // Expect: [[0, 1], ['a', 'b', 'c', 'd']]\nconst foo: Foo = [[0, 1], ['a', 'b', 'c', 'd']]\n\ntype Bar = SortTwoTuple<[0, 1, 2, 3], ['a', 'b']> // Expect: [['a', 'b'], [0, 1, 2, 3]]\nconst bar: Bar = [['a', 'b'], [0, 1, 2, 3]]\n\ntype Baz = SortTwoTuple<[0, 1, 2], ['a', 'b', 'c', 'd']> // Expect: [[0, 1, 2], ['a', 'b', 'c']]\nconst baz: Baz = [[0, 1], 3, ['a', 'b', 'c']]\n\ntype Qux = SortTwoTuple<[0, 1, 2], ['a', 'b', 'c', 'd'], 'EQUAL'> // Expect: 'EQUAL'\nconst qux: Qux = 'EQUAL'\n```\n\n### `ShortestTuple`\n\n```typescript\nimport { ShortestTuple } from 'typescript-tuple'\n\ntype Foo = ShortestTuple<[[0, 1, 2], [false, true], ['a', 'b', 'c', 'd']]> // Expect: [false, true]\nconst foo: Foo = [false, true]\n\ntype Bar = ShortestTuple<[[0, 1, 2], ['a', 'b', 'c'], ...[false, true][]]> // Expect: [false, true]\nconst bar: Bar = [false, true]\n```\n\n### `LongestTuple`\n\n```typescript\nimport { LongestTuple } from 'typescript-tuple'\n\ntype Foo = LongestTuple<[[0, 1, 2, 3], [false, true], ['a']]> // Expect: [0, 1, 2, 3]\nconst foo: Foo = [0, 1, 2, 3]\n\ntype Bar = LongestTuple<[[], [false, true], ...[0, 1, 2][]]> // Expect: [0, 1, 2]\nconst bar: Bar = [0, 1, 2]\n```\n\n### `FilterTuple`\n\n```typescript\nimport { FilterTuple } from 'typescript-tuple'\n\ntype Foo = FilterTuple<[1, '1'], number> // Expect: [1]\nconst foo: Foo = [1]\n\ntype Bar = FilterTuple<[1, '1', null, true], 1 | '1' | true> // Expect: [1, '1', true]\nconst bar: Bar = [1, '1', true]\n```\n\n## License\n\n[MIT](https://git.io/fA2d9) @ [Hoàng Văn Khải](https://github.com/KSXGitHub)\n","gitHead":"f3cefc51f47d7aadec05b8ab68c6585d38555ac3","license":"MIT","scripts":{"lint":"tslint -p .","test":"pnpm run lint && pnpm run test:types","build":"pnpm run lint && tsc","clean":"clean-typescript-build .","lint:fix":"pnpm run lint -- --fix","test:types":"tsc --noEmit","postpublish":"pnpm run clean","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"khai96_","email":"hvksmr1996@gmail.com"},"homepage":"https://github.com/ksxnodemodules/typescript-tuple#readme","keywords":["generic","tuple","typescript"],"repository":{"url":"git+https://github.com/ksxnodemodules/typescript-tuple.git","type":"git"},"_npmVersion":"6.14.7","description":"Generics to work with tuples in TypeScript","directories":{},"maintainers":[{"name":"khai96_","email":"hvksmr1996@gmail.com"}],"_nodeVersion":"14.8.0","dependencies":{"typescript-compare":"^0.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tslint":"^6.1.3","toolcheck":"^0.1.4","typescript":"~4.0.2","static-type-assert":"^4.0.0","clean-typescript-build":"^0.1.5","tslint-config-standard":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/typescript-tuple_4.0.0-rc.1_1598087825523_0.29692606276041","host":"s3://npm-registry-packages"},"_id":"typescript-tuple@4.0.0-rc.1","version":"4.0.0-rc.1"}