diff --git a/types/bitwise/bits/and.d.ts b/types/bitwise/bits/and.d.ts new file mode 100644 index 0000000000..52696eee01 --- /dev/null +++ b/types/bitwise/bits/and.d.ts @@ -0,0 +1,4 @@ +export default function and( + bits1: ReadonlyArray, + bits2: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bits/index.d.ts b/types/bitwise/bits/index.d.ts new file mode 100644 index 0000000000..8bc86d20af --- /dev/null +++ b/types/bitwise/bits/index.d.ts @@ -0,0 +1,33 @@ +import bitsAnd from './and'; +import bitsNor from './nor'; +import bitsNot from './not'; +import bitsOr from './or'; +import bitsReduceAnd from './reduce-and'; +import bitsReduceNand from './reduce-nand'; +import bitsReduceNor from './reduce-nor'; +import bitsReduceOr from './reduce-or'; +import bitsReduceXnor from './reduce-xnor'; +import bitsReduceXor from './reduce-xor'; +import bitsToBoolean from './to-boolean'; +import bitsToString from './to-string'; +import bitsXnor from './xnor'; +import bitsXor from './xor'; + +declare namespace bits { + const and: typeof bitsAnd; + const nor: typeof bitsNor; + const not: typeof bitsNot; + const or: typeof bitsOr; + const reduceAnd: typeof bitsReduceAnd; + const reduceNand: typeof bitsReduceNand; + const reduceNor: typeof bitsReduceNor; + const reduceOr: typeof bitsReduceOr; + const reduceXnor: typeof bitsReduceXnor; + const reduceXor: typeof bitsReduceXor; + const toBoolean: typeof bitsToBoolean; + const toString: typeof bitsToString; + const xnor: typeof bitsXnor; + const xor: typeof bitsXor; +} + +export default bits; diff --git a/types/bitwise/bits/nand.d.ts b/types/bitwise/bits/nand.d.ts new file mode 100644 index 0000000000..53338816b8 --- /dev/null +++ b/types/bitwise/bits/nand.d.ts @@ -0,0 +1,4 @@ +export default function nand( + bits1: ReadonlyArray, + bits2: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bits/nor.d.ts b/types/bitwise/bits/nor.d.ts new file mode 100644 index 0000000000..cda86e1a7c --- /dev/null +++ b/types/bitwise/bits/nor.d.ts @@ -0,0 +1,4 @@ +export default function nor( + bits1: ReadonlyArray, + bits2: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bits/not.d.ts b/types/bitwise/bits/not.d.ts new file mode 100644 index 0000000000..7be251c891 --- /dev/null +++ b/types/bitwise/bits/not.d.ts @@ -0,0 +1,4 @@ +export default function not( + bits1: ReadonlyArray, + bits2: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bits/or.d.ts b/types/bitwise/bits/or.d.ts new file mode 100644 index 0000000000..953a50d4c2 --- /dev/null +++ b/types/bitwise/bits/or.d.ts @@ -0,0 +1,4 @@ +export default function or( + bits1: ReadonlyArray, + bits2: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bits/reduce-and.d.ts b/types/bitwise/bits/reduce-and.d.ts new file mode 100644 index 0000000000..b45c023eb0 --- /dev/null +++ b/types/bitwise/bits/reduce-and.d.ts @@ -0,0 +1 @@ +export default function reduceAnd(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-nand.d.ts b/types/bitwise/bits/reduce-nand.d.ts new file mode 100644 index 0000000000..7fd8b8f6b4 --- /dev/null +++ b/types/bitwise/bits/reduce-nand.d.ts @@ -0,0 +1 @@ +export default function reduceNand(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-nor.d.ts b/types/bitwise/bits/reduce-nor.d.ts new file mode 100644 index 0000000000..9d8a64f729 --- /dev/null +++ b/types/bitwise/bits/reduce-nor.d.ts @@ -0,0 +1 @@ +export default function reduceNor(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-or.d.ts b/types/bitwise/bits/reduce-or.d.ts new file mode 100644 index 0000000000..676e4ff347 --- /dev/null +++ b/types/bitwise/bits/reduce-or.d.ts @@ -0,0 +1 @@ +export default function reduceOr(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-xnor.d.ts b/types/bitwise/bits/reduce-xnor.d.ts new file mode 100644 index 0000000000..be64ebaaa3 --- /dev/null +++ b/types/bitwise/bits/reduce-xnor.d.ts @@ -0,0 +1 @@ +export default function reduceXnor(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/reduce-xor.d.ts b/types/bitwise/bits/reduce-xor.d.ts new file mode 100644 index 0000000000..9a2107237a --- /dev/null +++ b/types/bitwise/bits/reduce-xor.d.ts @@ -0,0 +1 @@ +export default function reduceXor(bits: ReadonlyArray): number; diff --git a/types/bitwise/bits/to-boolean.d.ts b/types/bitwise/bits/to-boolean.d.ts new file mode 100644 index 0000000000..50bd8f4bc8 --- /dev/null +++ b/types/bitwise/bits/to-boolean.d.ts @@ -0,0 +1,3 @@ +export default function toBoolean( + bits: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bits/to-string.d.ts b/types/bitwise/bits/to-string.d.ts new file mode 100644 index 0000000000..1fee89675d --- /dev/null +++ b/types/bitwise/bits/to-string.d.ts @@ -0,0 +1,5 @@ +export default function toString( + bit: ReadonlyArray, + spacing?: number, + spacer?: string +): string; diff --git a/types/bitwise/bits/xnor.d.ts b/types/bitwise/bits/xnor.d.ts new file mode 100644 index 0000000000..b6e11fcdf1 --- /dev/null +++ b/types/bitwise/bits/xnor.d.ts @@ -0,0 +1,4 @@ +export default function xnor( + bits1: ReadonlyArray, + bits2: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bits/xor.d.ts b/types/bitwise/bits/xor.d.ts new file mode 100644 index 0000000000..a8b7816408 --- /dev/null +++ b/types/bitwise/bits/xor.d.ts @@ -0,0 +1,4 @@ +export default function xor( + bits1: ReadonlyArray, + bits2: ReadonlyArray +): ReadonlyArray; diff --git a/types/bitwise/bitwise-tests.ts b/types/bitwise/bitwise-tests.ts new file mode 100644 index 0000000000..6975cb3591 --- /dev/null +++ b/types/bitwise/bitwise-tests.ts @@ -0,0 +1,56 @@ +// Demonstrating cherry-picking +import bitwise from 'bitwise'; + +import bits from 'bitwise/bits'; +import toBoolean from 'bitwise/bits/to-boolean'; + +import buffer from 'bitwise/buffer'; +import create from 'bitwise/buffer/create'; + +import byte from 'bitwise/byte'; +import read from 'bitwise/byte/read'; + +import integer from 'bitwise/integer'; +import setBit from 'bitwise/integer/set-bit'; + +import nibble from 'bitwise/nibble'; +import nibbleRead from 'bitwise/nibble/read'; + +import string from 'bitwise/string'; +import toBits from 'bitwise/string/to-bits'; + +// Testing basic functions +const testBits = [0, 1, 1, 0, 1]; + +// $ExpectType string +bitwise.bits.toString(testBits); + +// $ExpectType ReadonlyArray +bits.toBoolean(testBits); +// $ExpectType ReadonlyArray +toBoolean(testBits); + +// $ExpectType ReadonlyArray +byte.read(12); +// $ExpectType ReadonlyArray +read(12); + +// $ExpectType Buffer +buffer.create(testBits); +// $ExpectType Buffer +create(testBits); + +// $ExpectType ReadonlyArray +integer.setBit(12, 1, 0); +// $ExpectType ReadonlyArray +setBit(12, 1, 0); + +// $ExpectType ReadonlyArray +nibble.read(15); +// $ExpectType ReadonlyArray +nibbleRead(15); + +// $ExpectType ReadonlyArray +string.toBits('10 10 12$%_.0'); +// $ExpectType ReadonlyArray +toBits('10 10 12$%_.0'); diff --git a/types/bitwise/buffer/and.d.ts b/types/bitwise/buffer/and.d.ts new file mode 100644 index 0000000000..c4789600c3 --- /dev/null +++ b/types/bitwise/buffer/and.d.ts @@ -0,0 +1,7 @@ +/// + +export default function and( + buffer1: Buffer, + buffer2: Buffer, + isLooping?: boolean +): Buffer; diff --git a/types/bitwise/buffer/create.d.ts b/types/bitwise/buffer/create.d.ts new file mode 100644 index 0000000000..3c67301d97 --- /dev/null +++ b/types/bitwise/buffer/create.d.ts @@ -0,0 +1,3 @@ +/// + +export default function create(bits: ReadonlyArray): Buffer; diff --git a/types/bitwise/buffer/index.d.ts b/types/bitwise/buffer/index.d.ts new file mode 100644 index 0000000000..a109aecb73 --- /dev/null +++ b/types/bitwise/buffer/index.d.ts @@ -0,0 +1,31 @@ +import bufferAnd from './and'; +import bufferCreate from './create'; +import bufferModify from './modify'; +import bufferNand from './nand'; +import bufferNor from './nor'; +import bufferNot from './not'; +import bufferOr from './or'; +import bufferRead from './read'; +import bufferReadCInt from './read-c-int'; +import bufferReadInt from './read-int'; +import bufferReadUInt from './read-u-int'; +import bufferXnor from './xnor'; +import bufferXor from './xor'; + +declare namespace buffer { + const and: typeof bufferAnd; + const create: typeof bufferCreate; + const modify: typeof bufferModify; + const nand: typeof bufferNand; + const nor: typeof bufferNor; + const not: typeof bufferNot; + const or: typeof bufferOr; + const read: typeof bufferRead; + const readCInt: typeof bufferReadCInt; + const readInt: typeof bufferReadInt; + const readUInt: typeof bufferReadUInt; + const xnor: typeof bufferXnor; + const xor: typeof bufferXor; +} + +export default buffer; diff --git a/types/bitwise/buffer/modify.d.ts b/types/bitwise/buffer/modify.d.ts new file mode 100644 index 0000000000..1d242cfd79 --- /dev/null +++ b/types/bitwise/buffer/modify.d.ts @@ -0,0 +1,7 @@ +/// + +export default function modify( + buffer: Buffer, + newBits: ReadonlyArray, + bitOffset?: number +): void; diff --git a/types/bitwise/buffer/nand.d.ts b/types/bitwise/buffer/nand.d.ts new file mode 100644 index 0000000000..f887d7f82a --- /dev/null +++ b/types/bitwise/buffer/nand.d.ts @@ -0,0 +1,7 @@ +/// + +export default function nand( + buffer1: Buffer, + buffer2: Buffer, + isLooping?: boolean +): Buffer; diff --git a/types/bitwise/buffer/nor.d.ts b/types/bitwise/buffer/nor.d.ts new file mode 100644 index 0000000000..7d285abce0 --- /dev/null +++ b/types/bitwise/buffer/nor.d.ts @@ -0,0 +1,7 @@ +/// + +export default function nor( + buffer1: Buffer, + buffer2: Buffer, + isLooping: boolean +): Buffer; diff --git a/types/bitwise/buffer/not.d.ts b/types/bitwise/buffer/not.d.ts new file mode 100644 index 0000000000..8dd6e56434 --- /dev/null +++ b/types/bitwise/buffer/not.d.ts @@ -0,0 +1,3 @@ +/// + +export default function not(buffer: Buffer): Buffer; diff --git a/types/bitwise/buffer/or.d.ts b/types/bitwise/buffer/or.d.ts new file mode 100644 index 0000000000..1f06097215 --- /dev/null +++ b/types/bitwise/buffer/or.d.ts @@ -0,0 +1,7 @@ +/// + +export default function or( + buffer1: Buffer, + buffer2: Buffer, + isLooping?: boolean +): Buffer; diff --git a/types/bitwise/buffer/read-c-int.d.ts b/types/bitwise/buffer/read-c-int.d.ts new file mode 100644 index 0000000000..d3d1caca3c --- /dev/null +++ b/types/bitwise/buffer/read-c-int.d.ts @@ -0,0 +1,7 @@ +/// + +export default function readCInt( + buffer: Buffer, + bitOffset?: number, + bitLength?: number +): number; diff --git a/types/bitwise/buffer/read-int.d.ts b/types/bitwise/buffer/read-int.d.ts new file mode 100644 index 0000000000..3bb3f65a58 --- /dev/null +++ b/types/bitwise/buffer/read-int.d.ts @@ -0,0 +1,7 @@ +/// + +export default function readInt( + buffer: Buffer, + bitOffset?: number, + bitLength?: number +): number; diff --git a/types/bitwise/buffer/read-u-int.d.ts b/types/bitwise/buffer/read-u-int.d.ts new file mode 100644 index 0000000000..5e5eec4b07 --- /dev/null +++ b/types/bitwise/buffer/read-u-int.d.ts @@ -0,0 +1,7 @@ +/// + +export default function readUInt( + buffer: Buffer, + bitOffset?: number, + bitLength?: number +): number; diff --git a/types/bitwise/buffer/read.d.ts b/types/bitwise/buffer/read.d.ts new file mode 100644 index 0000000000..b5e5f18f58 --- /dev/null +++ b/types/bitwise/buffer/read.d.ts @@ -0,0 +1,7 @@ +/// + +export default function read( + buffer: Buffer, + bitOffset?: number, + bitLength?: number +): ReadonlyArray; diff --git a/types/bitwise/buffer/xnor.d.ts b/types/bitwise/buffer/xnor.d.ts new file mode 100644 index 0000000000..4cfd64dc88 --- /dev/null +++ b/types/bitwise/buffer/xnor.d.ts @@ -0,0 +1,7 @@ +/// + +export default function xnor( + buffer1: Buffer, + buffer2: Buffer, + isLooping?: boolean +): Buffer; diff --git a/types/bitwise/buffer/xor.d.ts b/types/bitwise/buffer/xor.d.ts new file mode 100644 index 0000000000..61ce88f10a --- /dev/null +++ b/types/bitwise/buffer/xor.d.ts @@ -0,0 +1,7 @@ +/// + +export default function xor( + buffer1: Buffer, + buffer2: Buffer, + isLooping?: boolean +): Buffer; diff --git a/types/bitwise/byte/index.d.ts b/types/bitwise/byte/index.d.ts new file mode 100644 index 0000000000..f2e3c21d42 --- /dev/null +++ b/types/bitwise/byte/index.d.ts @@ -0,0 +1,9 @@ +import byteRead from './read'; +import byteWrite from './write'; + +declare namespace byte { + const read: typeof byteRead; + const write: typeof byteWrite; +} + +export default byte; diff --git a/types/bitwise/byte/read.d.ts b/types/bitwise/byte/read.d.ts new file mode 100644 index 0000000000..10fc79106e --- /dev/null +++ b/types/bitwise/byte/read.d.ts @@ -0,0 +1 @@ +export default function read(byte: number): ReadonlyArray; diff --git a/types/bitwise/byte/write.d.ts b/types/bitwise/byte/write.d.ts new file mode 100644 index 0000000000..be485032da --- /dev/null +++ b/types/bitwise/byte/write.d.ts @@ -0,0 +1 @@ +export default function write(bits: ReadonlyArray): number; diff --git a/types/bitwise/index.d.ts b/types/bitwise/index.d.ts new file mode 100644 index 0000000000..4e1ae86896 --- /dev/null +++ b/types/bitwise/index.d.ts @@ -0,0 +1,22 @@ +// Type definitions for bitwise 1.5 +// Project: https://github.com/dodekeract/bitwise +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import bitwiseBits from './bits'; +import bitwiseBuffer from './buffer'; +import bitwiseByte from './byte'; +import bitwiseInteger from './integer'; +import bitwiseNibble from './nibble'; +import bitwiseString from './string'; + +declare namespace bitwise { + const bits: typeof bitwiseBits; + const buffer: typeof bitwiseBuffer; + const byte: typeof bitwiseByte; + const integer: typeof bitwiseInteger; + const nibble: typeof bitwiseNibble; + const string: typeof bitwiseString; +} + +export default bitwise; diff --git a/types/bitwise/integer/get-bit.d.ts b/types/bitwise/integer/get-bit.d.ts new file mode 100644 index 0000000000..ced50ff35c --- /dev/null +++ b/types/bitwise/integer/get-bit.d.ts @@ -0,0 +1 @@ +export default function getBit(number: number, position: number): number; diff --git a/types/bitwise/integer/index.d.ts b/types/bitwise/integer/index.d.ts new file mode 100644 index 0000000000..965726728b --- /dev/null +++ b/types/bitwise/integer/index.d.ts @@ -0,0 +1,11 @@ +import integerGetBit from './get-bit'; +import integerSetBit from './set-bit'; +import integerToggleBit from './toggle-bit'; + +declare namespace integer { + const getBit: typeof integerGetBit; + const setBit: typeof integerSetBit; + const toggleBit: typeof integerToggleBit; +} + +export default integer; diff --git a/types/bitwise/integer/set-bit.d.ts b/types/bitwise/integer/set-bit.d.ts new file mode 100644 index 0000000000..a6524c4079 --- /dev/null +++ b/types/bitwise/integer/set-bit.d.ts @@ -0,0 +1,5 @@ +export default function setBit( + number: number, + position: number, + value: number +): ReadonlyArray; diff --git a/types/bitwise/integer/toggle-bit.d.ts b/types/bitwise/integer/toggle-bit.d.ts new file mode 100644 index 0000000000..a3ea04da80 --- /dev/null +++ b/types/bitwise/integer/toggle-bit.d.ts @@ -0,0 +1,4 @@ +export default function toggleBit( + number: number, + position: number +): ReadonlyArray; diff --git a/types/bitwise/nibble/index.d.ts b/types/bitwise/nibble/index.d.ts new file mode 100644 index 0000000000..a18ed9ef6f --- /dev/null +++ b/types/bitwise/nibble/index.d.ts @@ -0,0 +1,9 @@ +import nibbleRead from './read'; +import nibbleWrite from './write'; + +declare namespace nibble { + const read: typeof nibbleRead; + const write: typeof nibbleWrite; +} + +export default nibble; diff --git a/types/bitwise/nibble/read.d.ts b/types/bitwise/nibble/read.d.ts new file mode 100644 index 0000000000..a1182a72dd --- /dev/null +++ b/types/bitwise/nibble/read.d.ts @@ -0,0 +1 @@ +export default function read(nibble: number): ReadonlyArray; diff --git a/types/bitwise/nibble/write.d.ts b/types/bitwise/nibble/write.d.ts new file mode 100644 index 0000000000..4e79f88571 --- /dev/null +++ b/types/bitwise/nibble/write.d.ts @@ -0,0 +1 @@ +export default function write(nibble: ReadonlyArray): number; diff --git a/types/bitwise/string/index.d.ts b/types/bitwise/string/index.d.ts new file mode 100644 index 0000000000..9100d0050b --- /dev/null +++ b/types/bitwise/string/index.d.ts @@ -0,0 +1,7 @@ +import stringToBits from './to-bits'; + +declare namespace string { + const toBits: typeof stringToBits; +} + +export default string; diff --git a/types/bitwise/string/to-bits.d.ts b/types/bitwise/string/to-bits.d.ts new file mode 100644 index 0000000000..4930f10f79 --- /dev/null +++ b/types/bitwise/string/to-bits.d.ts @@ -0,0 +1 @@ +export default function toBits(string: string): ReadonlyArray; diff --git a/types/bitwise/tsconfig.json b/types/bitwise/tsconfig.json new file mode 100644 index 0000000000..9956f50c76 --- /dev/null +++ b/types/bitwise/tsconfig.json @@ -0,0 +1,60 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bitwise-tests.ts", + "bits/and.d.ts", + "bits/index.d.ts", + "bits/nand.d.ts", + "bits/nor.d.ts", + "bits/not.d.ts", + "bits/or.d.ts", + "bits/reduce-and.d.ts", + "bits/reduce-nand.d.ts", + "bits/reduce-nor.d.ts", + "bits/reduce-or.d.ts", + "bits/reduce-xnor.d.ts", + "bits/reduce-xor.d.ts", + "bits/to-boolean.d.ts", + "bits/to-string.d.ts", + "bits/xnor.d.ts", + "bits/xor.d.ts", + "buffer/and.d.ts", + "buffer/create.d.ts", + "buffer/modify.d.ts", + "buffer/nand.d.ts", + "buffer/nor.d.ts", + "buffer/not.d.ts", + "buffer/or.d.ts", + "buffer/read-c-int.d.ts", + "buffer/read-int.d.ts", + "buffer/read-u-int.d.ts", + "buffer/read.d.ts", + "buffer/xnor.d.ts", + "buffer/xor.d.ts", + "byte/index.d.ts", + "byte/read.d.ts", + "byte/write.d.ts", + "integer/get-bit.d.ts", + "integer/index.d.ts", + "integer/set-bit.d.ts", + "integer/toggle-bit.d.ts", + "nibble/index.d.ts", + "nibble/read.d.ts", + "nibble/write.d.ts", + "string/index.d.ts", + "string/to-bits.d.ts" + ] +} diff --git a/types/bitwise/tslint.json b/types/bitwise/tslint.json new file mode 100644 index 0000000000..d88586e5bd --- /dev/null +++ b/types/bitwise/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}