{"bugs":{"url":"https://github.com/ksxnodemodules/typescript-tuple/issues"},"dist":{"shasum":"95b4ef427f5b072bbf49fe1b9bf2751db5ab2e3a","tarball":"https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-5.0.0-rc.0.tgz","fileCount":11,"integrity":"sha512-LlR+yizy0s/o1vzUlBxWnfDjOcp7gpuh9M/eOPNnzpoXijMDtJUvslGyNSvekrfc5lX9mTv6SeFgbbJfe3BIxQ==","signatures":[{"sig":"MEQCIBRwWR38mTGxLYEWA4ctwIq92h9l3ut8/cMtmP3SfPfhAiA5aWNrHNtp06xcWtxtjfn/vZRhovQfxX64IgNbZG8zeA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42440,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfueCnCRA9TVsSAnZWagAA93EP/AwjSZINubJ5yt8AA/YI\nO6FBoMGKTeiFiN7099N5xZrFTj6qldC1sSPCdNhd26mACoBodFhXiypjTwQW\nH35hjYn3f9a9mM7/SihBLo22GLvGrPim0OffahMamhZF5ZkKc0Cx6E/4Li2Q\nIYUQpJknNo1A4k0FqODwbKvcq6qtugMkUxLHRwdBT+ZBf3pMGzrBNk4Cx7Ns\nFvVH+Z2ROtVsJg+rJACWB2z+g05i0jaRNtw9VLKP+w2vtDzZEPsticmuKEkQ\njpV9p/SZpj1Su3Uye+b1sf8W3OxwduGDhPxfx/o3qpD2o+aBwrTTopOl2iAJ\neBQcC+vltu7ui3JjGX/NnNfOv46gY3BqTt4ozMnpyo6TmU48tp2xNX0fi62+\n3NwaFyI4urJ5EajHBVSMBW1ILgGswBBTOUrPCGhA8Tb2mzh/xve5VJSEd7BS\n8n4ysHjg4u6zcRJYxKLr7xXVfhXmdt7QaEuLxO5KGIaCARrqNmujJdqjgqK7\nZPMA75de5V+RVczRZ2MPVsb3tgmSw2wD/XMijrsFtAoMmS+jPN97cWejjtLG\nybg68vL4XYoBEoU8cLprp8mOfNxOzknfCY5Fpwo3F2IrIBbRoLxi04W1tYtM\n5KOsiqKMlVIYc2/n+cwjUakWw6oMIGQPC21VouWODLWSOWauycc1D0Nv7gHI\nZ0n6\r\n=5ejt\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.1.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":"abb7092259b75e5a79a94f0bc518b92607284720","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.8","description":"Generics to work with tuples in TypeScript","directories":{},"maintainers":[{"name":"khai96_","email":"hvksmr1996@gmail.com"}],"_nodeVersion":"15.2.1","dependencies":{"typescript-compare":"^0.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tslint":"^6.1.3","toolcheck":"^0.1.4","typescript":"~4.1.2","static-type-assert":"^4.0.1","clean-typescript-build":"^0.1.5","tslint-config-standard":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/typescript-tuple_5.0.0-rc.0_1606017190384_0.8412349021859491","host":"s3://npm-registry-packages"},"_id":"typescript-tuple@5.0.0-rc.0","version":"5.0.0-rc.0"}