From b5fb5ecf07dbe61d81bda07d4ecaaca537f813b1 Mon Sep 17 00:00:00 2001 From: David Driscoll Date: Tue, 1 Apr 2014 21:40:57 -0400 Subject: [PATCH 001/132] Fixed up lodash with support for Array, List, Dictionary. Some test cases are still failing, this seems to due to inference of result types, like for use in the accumulator methods (foldl for example). Most of these could be resolved by using the correct generic type. I was trying to avoid this type of fix for the tests. --- lodash/lodash-tests.disabled.ts | 633 +++--- lodash/lodash.d.ts | 3305 ++++++++++++++++++++++++------- 2 files changed, 2899 insertions(+), 1039 deletions(-) diff --git a/lodash/lodash-tests.disabled.ts b/lodash/lodash-tests.disabled.ts index aca0bbdf0b..97c2709405 100644 --- a/lodash/lodash-tests.disabled.ts +++ b/lodash/lodash-tests.disabled.ts @@ -41,16 +41,16 @@ interface IKey { var foodsOrganic: IFoodOrganic[] = [ { name: 'banana', organic: true }, - { name: 'beet', organic: false }, + { name: 'beet', organic: false }, ]; var foodsType: IFoodType[] = [ - { name: 'apple', type: 'fruit' }, + { name: 'apple', type: 'fruit' }, { name: 'banana', type: 'fruit' }, - { name: 'beet', type: 'vegetable' } + { name: 'beet', type: 'vegetable' } ]; var foodsCombined: IFoodCombined[] = [ - { 'name': 'apple', 'organic': false, 'type': 'fruit' }, - { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } + { 'name': 'apple', 'organic': false, 'type': 'fruit' }, + { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } ]; var stoogesQuotes: IStoogesQuote[] = [ @@ -63,24 +63,24 @@ var stoogesAges: IStoogesAge[] = [ ]; var stoogesCombined: IStoogesCombined[] = [ - { 'name': 'curly', 'age': 30, 'quotes': ['Oh, a wise guy, eh?', 'Poifect!'] }, - { 'name': 'moe', 'age': 40, 'quotes': ['Spread out!', 'You knucklehead!'] } + { 'name': 'curly', 'age': 30, 'quotes': ['Oh, a wise guy, eh?', 'Poifect!'] }, + { 'name': 'moe', 'age': 40, 'quotes': ['Spread out!', 'You knucklehead!'] } ]; var keys: IKey[] = [ - { 'dir': 'left', 'code': 97 }, - { 'dir': 'right', 'code': 100 } + { 'dir': 'left', 'code': 97 }, + { 'dir': 'right', 'code': 100 } ]; class Dog { - constructor(public name: string) {} + constructor(public name: string) { } public bark() { - console.log('Woof, woof!'); + console.log('Woof, woof!'); } } -var result : any; +var result: any; /************* * Chaining * @@ -89,7 +89,10 @@ result = <_.LoDashWrapper>_('test'); result = <_.LoDashWrapper>_(1); result = <_.LoDashWrapper>_(true); result = <_.LoDashArrayWrapper>_(['test1', 'test2']); -result = <_.LoDashObjectWrapper<_.Dictionary>>_({'key1': 'test1', 'key2': 'test2'}); +// Appears to be a change in the compiler, if the type explicity implements the object indexer. +// Looking at: https://typescript.codeplex.com/wikipage?title=Known%20breaking%20changes%20between%200.8%20and%200.9&referringTitle=Documentation +// "The ‘noimplicitany’ option now warns on the use of the hidden default indexer" +result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }); result = <_.LoDashWrapper>_.chain('test'); result = <_.LoDashWrapper>_('test').chain(); @@ -99,8 +102,8 @@ result = <_.LoDashWrapper>_.chain(true); result = <_.LoDashWrapper>_(true).chain(); result = <_.LoDashArrayWrapper>_.chain(['test1', 'test2']); result = <_.LoDashArrayWrapper>_(['test1', 'test2']).chain(); -result = <_.LoDashObjectWrapper<_.Dictionary>>_.chain({'key1': 'test1', 'key2': 'test2'}); -result = <_.LoDashObjectWrapper<_.Dictionary>>_({'key1': 'test1', 'key2': 'test2'}).chain(); +result = <_.LoDashObjectWrapper<_.Dictionary>>_.chain(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).chain(); //Wrapped array shortcut methods result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).concat(5, 6); @@ -116,31 +119,31 @@ result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).splice(1); result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).splice(1, 2, 5, 6); result = <_.LoDashWrapper>_([1, 2, 3, 4]).unshift(5, 6); -result = _.tap([1, 2, 3, 4], function(array) { console.log(array); }); -result = <_.LoDashWrapper>_('test').tap(function(value) { console.log(value); }); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).tap(function(array) { console.log(array); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_({'key1': 'test1', 'key2': 'test2'}).tap(function(array) { console.log(array); }); +result = _.tap([1, 2, 3, 4], function (array) { console.log(array); }); +result = <_.LoDashWrapper>_('test').tap(function (value) { console.log(value); }); +result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).tap(function (array) { console.log(array); }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).tap(function (array) { console.log(array); }); result = _('test').toString(); result = _([1, 2, 3]).toString(); -result = _({'key1': 'test1', 'key2': 'test2'}).toString(); +result = _({ 'key1': 'test1', 'key2': 'test2' }).toString(); result = _('test').valueOf(); result = _([1, 2, 3]).valueOf(); -result = <_.Dictionary>_({'key1': 'test1', 'key2': 'test2'}).valueOf(); +result = <_.Dictionary>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).valueOf(); result = _('test').value(); result = _([1, 2, 3]).value(); -result = <_.Dictionary>_({'key1': 'test1', 'key2': 'test2'}).value(); +result = <_.Dictionary>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).value(); // /************* // * Arrays * // *************/ result = _.compact([0, 1, false, 2, '', 3]); - result = <_.LoDashArrayWrapper>_([0, 1, false, 2, '', 3]).compact(); +result = <_.LoDashArrayWrapper>_([0, 1, false, 2, '', 3]).compact(); result = _.difference([1, 2, 3, 4, 5], [5, 2, 10]); - result = <_.LoDashArrayWrapper>_([1, 2, 3, 4, 5]).difference([5, 2, 10]); +result = <_.LoDashArrayWrapper>_([1, 2, 3, 4, 5]).difference([5, 2, 10]); result = _.rest([1, 2, 3]); result = _.rest([1, 2, 3], 2); @@ -160,48 +163,48 @@ result = _.tail([1, 2, 3], (num) => num < 3) result = _.tail(foodsOrganic, 'test') result = _.tail(foodsType, { 'type': 'value' }) -result = _.findIndex(['apple', 'banana', 'beet'], function(f) { - return /^b/.test(f); +result = _.findIndex(['apple', 'banana', 'beet'], function (f) { + return /^b/.test(f); }); result = _.findIndex(['apple', 'banana', 'beet'], 'apple'); -result = _.findIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple'}); +result = _.findIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple' }); -result = _.findLastIndex(['apple', 'banana', 'beet'], function(f: string) { - return /^b/.test(f); +result = _.findLastIndex(['apple', 'banana', 'beet'], function (f: string) { + return /^b/.test(f); }); result = _.findLastIndex(['apple', 'banana', 'beet'], 'apple'); -result = _.findLastIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple'}); +result = _.findLastIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple' }); result = _.first([1, 2, 3]); result = _.first([1, 2, 3], 2); -result = _.first([1, 2, 3], function(num) { - return num < 3; +result = _.first([1, 2, 3], function (num) { + return num < 3; }); result = _.first(foodsOrganic, 'organic'); result = _.first(foodsType, { 'type': 'fruit' }); - result = _.head([1, 2, 3]); - result = _.head([1, 2, 3], 2); - result = _.head([1, 2, 3], function(num) { - return num < 3; - }); - result = _.head(foodsOrganic, 'organic'); - result = _.head(foodsType, { 'type': 'fruit' }); +result = _.head([1, 2, 3]); +result = _.head([1, 2, 3], 2); +result = _.head([1, 2, 3], function (num) { + return num < 3; +}); +result = _.head(foodsOrganic, 'organic'); +result = _.head(foodsType, { 'type': 'fruit' }); - result = _.take([1, 2, 3]); - result = _.take([1, 2, 3], 2); - result = _.take([1, 2, 3], (num) => num < 3); - result = _.take(foodsOrganic, 'organic'); - result = _.take(foodsType, { 'type': 'fruit' }); +result = _.take([1, 2, 3]); +result = _.take([1, 2, 3], 2); +result = _.take([1, 2, 3], (num) => num < 3); +result = _.take(foodsOrganic, 'organic'); +result = _.take(foodsType, { 'type': 'fruit' }); result = _.flatten([1, [2], [3, [[4]]]]); result = _.flatten([1, [2], [3, [[4]]]], true); var result: any result = _.flatten(stoogesQuotes, 'quotes'); - result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(); - result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(true); - result = <_.LoDashArrayWrapper>_(stoogesQuotes).flatten('quotes'); +result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(); +result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(true); +result = <_.LoDashArrayWrapper>_(stoogesQuotes).flatten('quotes'); result = _.indexOf([1, 2, 3, 1, 2, 3], 2); result = _.indexOf([1, 2, 3, 1, 2, 3], 2, 3); @@ -209,8 +212,8 @@ result = _.indexOf([1, 1, 2, 2, 3, 3], 2, true); result = _.initial([1, 2, 3]); result = _.initial([1, 2, 3], 2); -result = _.initial([1, 2, 3], function(num) { - return num > 1; +result = _.initial([1, 2, 3], function (num) { + return num > 1; }); result = _.initial(foodsOrganic, 'organic'); result = _.initial(foodsType, { 'type': 'vegetable' }); @@ -219,8 +222,8 @@ result = _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); result = _.last([1, 2, 3]); result = _.last([1, 2, 3], 2); -result = _.last([1, 2, 3], function(num) { - return num > 1; +result = _.last([1, 2, 3], function (num) { + return num > 1; }); result = _.last(foodsOrganic, 'organic'); result = _.last(foodsType, { 'type': 'vegetable' }); @@ -228,8 +231,8 @@ result = _.last(foodsType, { 'type': 'vegetable' }); result = _.lastIndexOf([1, 2, 3, 1, 2, 3], 2); result = _.lastIndexOf([1, 2, 3, 1, 2, 3], 2, 3); -result = <{[key: string]: any}>_.zipObject(['moe', 'larry'], [30, 40]); -result = <{[key: string]: any}>_.object(['moe', 'larry'], [30, 40]); +result = <{ [key: string]: any }>_.zipObject(['moe', 'larry'], [30, 40]); +result = <{ [key: string]: any }>_.object(['moe', 'larry'], [30, 40]); result = _.pull([1, 2, 3, 1, 2, 3], 2, 3); @@ -240,39 +243,39 @@ result = _.range(0, -10, -1); result = _.range(1, 4, 0); result = _.range(0); -result = _.remove([1, 2, 3, 4, 5, 6], function(num: number) { return num % 2 == 0; }); +result = _.remove([1, 2, 3, 4, 5, 6], function (num: number) { return num % 2 == 0; }); result = _.remove(foodsOrganic, 'organic'); -result = _.remove(foodsType, { 'type': 'vegetable'}); +result = _.remove(foodsType, { 'type': 'vegetable' }); result = _.sortedIndex([20, 30, 50], 40); result = _.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x'); var sortedIndexDict = { - 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 } + 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 } }; -result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { - return sortedIndexDict.wordToNumber[word]; +result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function (word) { + return sortedIndexDict.wordToNumber[word]; }); -result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { - return this.wordToNumber[word]; +result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function (word) { + return this.wordToNumber[word]; }, sortedIndexDict); result = _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); result = _.uniq([1, 2, 1, 3, 1]); result = _.uniq([1, 1, 2, 2, 3], true); -result = _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { - return letter.toLowerCase(); +result = _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function (letter) { + return letter.toLowerCase(); }); -result = _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); -result = <{x: number;}[]>_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); +result = _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function (num) { return this.floor(num); }, Math); +result = <{ x: number; }[]>_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - result = _.unique([1, 2, 1, 3, 1]); - result = _.unique([1, 1, 2, 2, 3], true); - result = _.unique(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { - return letter.toLowerCase(); - }); - result = _.unique([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); - result = <{x: number;}[]>_.unique([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); +result = _.unique([1, 2, 1, 3, 1]); +result = _.unique([1, 1, 2, 2, 3], true); +result = _.unique(['A', 'b', 'C', 'a', 'B', 'c'], function (letter) { + return letter.toLowerCase(); +}); +result = _.unique([1, 2.5, 3, 1.5, 2, 3.5], function (num) { return this.floor(num); }, Math); +result = <{ x: number; }[]>_.unique([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); result = _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); @@ -291,165 +294,165 @@ result = _.contains([1, 2, 3], 1, 2); result = _.contains({ 'name': 'moe', 'age': 40 }, 'moe'); result = _.contains('curly', 'ur'); - result = _.include([1, 2, 3], 1); - result = _.include([1, 2, 3], 1, 2); - result = _.include({ 'name': 'moe', 'age': 40 }, 'moe'); - result = _.include('curly', 'ur'); +result = _.include([1, 2, 3], 1); +result = _.include([1, 2, 3], 1, 2); +result = _.include({ 'name': 'moe', 'age': 40 }, 'moe'); +result = _.include('curly', 'ur'); -result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function(num) { return Math.floor(num); }); -result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function(num) { return this.floor(num); }, Math); +result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function (num) { return Math.floor(num); }); +result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function (num) { return this.floor(num); }, Math); result = <_.Dictionary>_.countBy(['one', 'two', 'three'], 'length'); - result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.3, 6.1, 6.4]).countBy(function(num) { return Math.floor(num); }); - result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.3, 6.1, 6.4]).countBy(function(num) { return this.floor(num); }, Math); - result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).countBy('length'); +result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.3, 6.1, 6.4]).countBy(function (num) { return Math.floor(num); }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.3, 6.1, 6.4]).countBy(function (num) { return this.floor(num); }, Math); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).countBy('length'); result = _.every([true, 1, null, 'yes'], Boolean); result = _.every(stoogesAges, 'age'); result = _.every(stoogesAges, { 'age': 50 }); - result = _.all([true, 1, null, 'yes'], Boolean); - result = _.all(stoogesAges, 'age'); - result = _.all(stoogesAges, { 'age': 50 }); +result = _.all([true, 1, null, 'yes'], Boolean); +result = _.all(stoogesAges, 'age'); +result = _.all(stoogesAges, { 'age': 50 }); -result = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); +result = _.filter([1, 2, 3, 4, 5, 6], function (num) { return num % 2 == 0; }); result = _.filter(foodsCombined, 'organic'); result = _.filter(foodsCombined, { 'type': 'fruit' }); - result = _([1, 2, 3, 4, 5, 6]).filter(function(num) { return num % 2 == 0; }).value(); - result = _(foodsCombined).filter('organic').value(); - result = _(foodsCombined).filter({ 'type': 'fruit' }).value(); +result = _([1, 2, 3, 4, 5, 6]).filter(function (num) { return num % 2 == 0; }).value(); +result = _(foodsCombined).filter('organic').value(); +result = _(foodsCombined).filter({ 'type': 'fruit' }).value(); - result = _.select([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); - result = _.select(foodsCombined, 'organic'); - result = _.select(foodsCombined, { 'type': 'fruit' }); +result = _.select([1, 2, 3, 4, 5, 6], function (num) { return num % 2 == 0; }); +result = _.select(foodsCombined, 'organic'); +result = _.select(foodsCombined, { 'type': 'fruit' }); - result = _([1, 2, 3, 4, 5, 6]).select(function(num) { return num % 2 == 0; }).value(); - result = _(foodsCombined).select('organic').value(); - result = _(foodsCombined).select({ 'type': 'fruit' }).value(); +result = _([1, 2, 3, 4, 5, 6]).select(function (num) { return num % 2 == 0; }).value(); +result = _(foodsCombined).select('organic').value(); +result = _(foodsCombined).select({ 'type': 'fruit' }).value(); -result = _.find([1, 2, 3, 4], function(num) { - return num % 2 == 0; +result = _.find([1, 2, 3, 4], function (num) { + return num % 2 == 0; }); result = _.find(foodsCombined, { 'type': 'vegetable' }); result = _.find(foodsCombined, 'organic'); - result = _.detect([1, 2, 3, 4], function(num) { - return num % 2 == 0; - }); - result = _.detect(foodsCombined, { 'type': 'vegetable' }); - result = _.detect(foodsCombined, 'organic'); +result = _.detect([1, 2, 3, 4], function (num) { + return num % 2 == 0; +}); +result = _.detect(foodsCombined, { 'type': 'vegetable' }); +result = _.detect(foodsCombined, 'organic'); - result = _.findWhere([1, 2, 3, 4], function(num) { - return num % 2 == 0; - }); - result = _.findWhere(foodsCombined, { 'type': 'vegetable' }); - result = _.findWhere(foodsCombined, 'organic'); +result = _.findWhere([1, 2, 3, 4], function (num) { + return num % 2 == 0; +}); +result = _.findWhere(foodsCombined, { 'type': 'vegetable' }); +result = _.findWhere(foodsCombined, 'organic'); -result = _.findLast([1, 2, 3, 4], function(num) { - return num % 2 == 0; +result = _.findLast([1, 2, 3, 4], function (num) { + return num % 2 == 0; }); result = _.findLast(foodsCombined, { 'type': 'vegetable' }); result = _.findLast(foodsCombined, 'organic'); -result = _.forEach([1, 2, 3], function(num) { console.log(num); }); -result = <_.Dictionary>_.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); +result = _.forEach([1, 2, 3], function (num) { console.log(num); }); +result = <_.Dictionary>_.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); - result = _.each([1, 2, 3], function(num) { console.log(num); }); - result = <_.Dictionary>_.each({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); +result = _.each([1, 2, 3], function (num) { console.log(num); }); +result = <_.Dictionary>_.each({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); - result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEach(function(num) { console.log(num); }); - result = <_.LoDashObjectWrapper<_.Dictionary>>_({ 'one': 1, 'two': 2, 'three': 3 }).forEach(function(num) { console.log(num); }); +result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEach(function (num) { console.log(num); }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).forEach(function (num) { console.log(num); }); - result = <_.LoDashArrayWrapper>_([1, 2, 3]).each(function(num) { console.log(num); }); - result = <_.LoDashObjectWrapper<_.Dictionary>>_({ 'one': 1, 'two': 2, 'three': 3 }).each(function(num) { console.log(num); }); +result = <_.LoDashArrayWrapper>_([1, 2, 3]).each(function (num) { console.log(num); }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).each(function (num) { console.log(num); }); -result = _.forEachRight([1, 2, 3], function(num) { console.log(num); }); -result = <_.Dictionary>_.forEachRight({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); +result = _.forEachRight([1, 2, 3], function (num) { console.log(num); }); +result = <_.Dictionary>_.forEachRight({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); - result = _.eachRight([1, 2, 3], function(num) { console.log(num); }); - result = <_.Dictionary>_.eachRight({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); +result = _.eachRight([1, 2, 3], function (num) { console.log(num); }); +result = <_.Dictionary>_.eachRight({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); - result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEachRight(function(num) { console.log(num); }); - result = <_.LoDashObjectWrapper<_.Dictionary>>_({ 'one': 1, 'two': 2, 'three': 3 }).forEachRight(function(num) { console.log(num); }); +result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEachRight(function (num) { console.log(num); }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).forEachRight(function (num) { console.log(num); }); - result = <_.LoDashArrayWrapper>_([1, 2, 3]).eachRight(function(num) { console.log(num); }); - result = <_.LoDashObjectWrapper<_.Dictionary>>_({ 'one': 1, 'two': 2, 'three': 3 }).eachRight(function(num) { console.log(num); }); +result = <_.LoDashArrayWrapper>_([1, 2, 3]).eachRight(function (num) { console.log(num); }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).eachRight(function (num) { console.log(num); }); -result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); }); -result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math); +result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function (num) { return Math.floor(num); }); +result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function (num) { return this.floor(num); }, Math); result = <_.Dictionary>_.groupBy(['one', 'two', 'three'], 'length'); - result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function(num) { return Math.floor(num); }); - result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function(num) { return this.floor(num); }, Math); - result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).groupBy('length'); +result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function (num) { return Math.floor(num); }); +result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function (num) { return this.floor(num); }, Math); +result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).groupBy('length'); result = <_.Dictionary>_.indexBy(keys, 'dir'); -result = <_.Dictionary>_.indexBy(keys, function(key) { return String.fromCharCode(key.code); }); -result = <_.Dictionary>_.indexBy(keys, function(key) { this.fromCharCode(key.code); }, String); +result = <_.Dictionary>_.indexBy(keys, function (key) { return String.fromCharCode(key.code); }); +result = <_.Dictionary>_.indexBy(keys, function (key) { this.fromCharCode(key.code); }, String); result = _.invoke([[5, 1, 7], [3, 2, 1]], 'sort'); result = _.invoke([123, 456], String.prototype.split, ''); -result = _.map([1, 2, 3], function(num) { return num * 3; }); -result = _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); +result = _.map([1, 2, 3], function (num) { return num * 3; }); +result = _.map({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { return num * 3; }); result = _.map(stoogesAges, 'name'); - result = _([1, 2, 3]).map(function(num) { return num * 3; }).value(); - result = _({ 'one': 1, 'two': 2, 'three': 3 }).map(function(num) { return num * 3; }).value(); - result = _(stoogesAges).map('name').value(); +result = _([1, 2, 3]).map(function (num) { return num * 3; }).value(); +result = _({ 'one': 1, 'two': 2, 'three': 3 }).map(function (num) { return num * 3; }).value(); +result = _(stoogesAges).map('name').value(); -result = _.collect([1, 2, 3], function(num) { return num * 3; }); -result = _.collect({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); +result = _.collect([1, 2, 3], function (num) { return num * 3; }); +result = _.collect({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { return num * 3; }); result = _.collect(stoogesAges, 'name'); - result = _([1, 2, 3]).collect(function(num) { return num * 3; }).value(); - result = _({ 'one': 1, 'two': 2, 'three': 3 }).collect(function(num) { return num * 3; }).value(); - result = _(stoogesAges).collect('name').value(); +result = _([1, 2, 3]).collect(function (num) { return num * 3; }).value(); +result = _({ 'one': 1, 'two': 2, 'three': 3 }).collect(function (num) { return num * 3; }).value(); +result = _(stoogesAges).collect('name').value(); result = _.max([4, 2, 8, 6]); -result = _.max(stoogesAges, function(stooge) { return stooge.age; }); +result = _.max(stoogesAges, function (stooge) { return stooge.age; }); result = _.max(stoogesAges, 'age'); result = _.min([4, 2, 8, 6]); -result = _.min(stoogesAges, function(stooge) { return stooge.age; }); +result = _.min(stoogesAges, function (stooge) { return stooge.age; }); result = _.min(stoogesAges, 'age'); result = _.pluck(stoogesAges, 'name'); -result = _.reduce([1, 2, 3], function(sum: number, num: number) { - return sum + num; +result = _.reduce([1, 2, 3], function (sum: number, num: number) { + return sum + num; }); interface ABC { - a: number; - b: number; - c: number; + a: number; + b: number; + c: number; } -result = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { - r[key] = num * 3; - return r; +result = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function (r: ABC, num, key) { + r[key] = num * 3; + return r; }, {}); -result = _.foldl([1, 2, 3], function(sum, num) { - return sum + num; +result = _.foldl([1, 2, 3], function (sum, num) { + return sum + num; }); -result = _.foldl({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { - r[key] = num * 3; - return r; +result = _.foldl({ 'a': 1, 'b': 2, 'c': 3 }, function (r: ABC, num, key) { + r[key] = num * 3; + return r; }, {}); -result = _.inject([1, 2, 3], function(sum, num) { - return sum + num; +result = _.inject([1, 2, 3], function (sum, num) { + return sum + num; }); -result = _.inject({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { - r[key] = num * 3; - return r; +result = _.inject({ 'a': 1, 'b': 2, 'c': 3 }, function (r: ABC, num, key) { + r[key] = num * 3; + return r; }, {}); -result = _.reduceRight([[0, 1], [2, 3], [4, 5]], function(a: number[], b: number[]) { return a.concat(b); }, []); -result = _.foldr([[0, 1], [2, 3], [4, 5]], function(a: number[], b: number[]) { return a.concat(b); }, []); +result = _.reduceRight([[0, 1], [2, 3], [4, 5]], function (a: number[], b: number[]) { return a.concat(b); }, []); +result = _.foldr([[0, 1], [2, 3], [4, 5]], function (a: number[], b: number[]) { return a.concat(b); }, []); -result = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); +result = _.reject([1, 2, 3, 4, 5, 6], function (num) { return num % 2 == 0; }); result = _.reject(foodsCombined, 'organic'); result = _.reject(foodsCombined, { 'type': 'fruit' }); @@ -465,20 +468,20 @@ result = _.size('curly'); result = _.some([null, 0, 'yes', false], Boolean); result = _.some(foodsCombined, 'organic'); result = _.some(foodsCombined, { 'type': 'meat' }); - + result = _.any([null, 0, 'yes', false], Boolean); result = _.any(foodsCombined, 'organic'); result = _.any(foodsCombined, { 'type': 'meat' }); - -result = _.sortBy([1, 2, 3], function(num) { return Math.sin(num); }); -result = _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math); + +result = _.sortBy([1, 2, 3], function (num) { return Math.sin(num); }); +result = _.sortBy([1, 2, 3], function (num) { return this.sin(num); }, Math); result = _.sortBy(['banana', 'strawberry', 'apple'], 'length'); -(function(a: number, b: number, c: number, d: number){ return _.toArray(arguments).slice(1); })(1, 2, 3, 4); +(function (a: number, b: number, c: number, d: number) { return _.toArray(arguments).slice(1); })(1, 2, 3, 4); result = _.where(stoogesCombined, { 'age': 40 }); result = _.where(stoogesCombined, { 'quotes': ['Poifect!'] }); - + /************* * Functions * *************/ @@ -486,20 +489,20 @@ var saves = ['profile', 'settings']; var asyncSave = (obj: any) => obj.done(); var done: Function; -done = _.after(saves.length, function() { - console.log('Done saving!'); +done = _.after(saves.length, function () { + console.log('Done saving!'); }); -_.forEach(saves, function(type) { - asyncSave({ 'type': type, 'complete': done }); +_.forEach(saves, function (type) { + asyncSave({ 'type': type, 'complete': done }); }); -done = _(saves.length).after(function() { - console.log('Done saving!'); +done = _(saves.length).after(function () { + console.log('Done saving!'); }).value(); -_.forEach(saves, function(type) { - asyncSave({ 'type': type, 'complete': done }); +_.forEach(saves, function (type) { + asyncSave({ 'type': type, 'complete': done }); }); var funcBind = function (greeting: string) { return greeting + ' ' + this.name }; @@ -510,8 +513,8 @@ var funcBind3: () => any = _(funcBind).bind({ 'name': 'moe' }, 'hi').value(); funcBind3(); var view = { - 'label': 'docs', - 'onClick': function() { console.log('clicked ' + this.label); } + 'label': 'docs', + 'onClick': function () { console.log('clicked ' + this.label); } }; view = _.bindAll(view); @@ -521,17 +524,17 @@ view = _(view).bindAll().value(); jQuery('#docs').on('click', view.onClick); var objectBindKey = { - 'name': 'moe', - 'greet': function(greeting: string) { - return greeting + ' ' + this.name; - } + 'name': 'moe', + 'greet': function (greeting: string) { + return greeting + ' ' + this.name; + } }; var funcBindKey: Function = _.bindKey(objectBindKey, 'greet', 'hi'); funcBindKey(); -objectBindKey.greet = function(greeting) { - return greeting + ', ' + this.name + '!'; +objectBindKey.greet = function (greeting) { + return greeting + ', ' + this.name + '!'; }; funcBindKey(); @@ -540,78 +543,78 @@ funcBindKey = _(objectBindKey).bindKey('greet', 'hi').value(); funcBindKey(); var realNameMap = { - 'curly': 'jerome' + 'curly': 'jerome' }; -var format = function(name: string) { - name = realNameMap[name.toLowerCase()] || name; - return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase(); +var format = function (name: string) { + name = realNameMap[name.toLowerCase()] || name; + return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase(); }; -var greet = function(formatted: string) { - return 'Hiya ' + formatted + '!'; +var greet = function (formatted: string) { + return 'Hiya ' + formatted + '!'; }; result = _.compose(greet, format); result = <_.LoDashObjectWrapper>_(greet).compose(format); -var createCallbackObj = { name: 'Joe' }; +var createCallbackObj: { [index: string]: string; } = { name: 'Joe' }; result = <() => any>_.createCallback('name'); result = <() => boolean>_.createCallback(createCallbackObj); result = <_.LoDashObjectWrapper<() => any>>_('name').createCallback(); result = <_.LoDashObjectWrapper<() => boolean>>_(createCallbackObj).createCallback(); -result = _.curry(function(a, b, c) { - console.log(a + b + c); +result = _.curry(function (a, b, c) { + console.log(a + b + c); }); -result = <_.LoDashObjectWrapper>_(function(a, b, c) { - console.log(a + b + c); +result = <_.LoDashObjectWrapper>_(function (a, b, c) { + console.log(a + b + c); }).curry(); declare var source: any; -result = _.debounce(function() {}, 150); +result = _.debounce(function () { }, 150); -jQuery('#postbox').on('click', _.debounce(function() {}, 300, { - 'leading': true, - 'trailing': false +jQuery('#postbox').on('click', _.debounce(function () { }, 300, { + 'leading': true, + 'trailing': false })); -source.addEventListener('message', _.debounce(function() {}, 250, { - 'maxWait': 1000 +source.addEventListener('message', _.debounce(function () { }, 250, { + 'maxWait': 1000 }), false); -result = <_.LoDashObjectWrapper>_(function() {}).debounce(150); +result = <_.LoDashObjectWrapper>_(function () { }).debounce(150); -jQuery('#postbox').on('click', <_.LoDashObjectWrapper>_(function() {}).debounce(300, { - 'leading': true, - 'trailing': false +jQuery('#postbox').on('click', <_.LoDashObjectWrapper>_(function () { }).debounce(300, { + 'leading': true, + 'trailing': false })); -source.addEventListener('message', <_.LoDashObjectWrapper>_(function() {}).debounce(250, { - 'maxWait': 1000 +source.addEventListener('message', <_.LoDashObjectWrapper>_(function () { }).debounce(250, { + 'maxWait': 1000 }), false); var returnedDebounce = _.throttle(function (a) { return a * 5; }, 5); returnedThrottled(4); -result = _.defer(function() { console.log('deferred'); }); -result = <_.LoDashWrapper>_(function() { console.log('deferred'); }).defer(); +result = _.defer(function () { console.log('deferred'); }); +result = <_.LoDashWrapper>_(function () { console.log('deferred'); }).defer(); var log = _.bind(console.log, console); result = _.delay(log, 1000, 'logged later'); result = <_.LoDashWrapper>_(log).delay(1000, 'logged later'); -var fibonacci = _.memoize(function(n) { - return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); +var fibonacci = _.memoize(function (n) { + return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); }); var data = { - 'moe': { 'name': 'moe', 'age': 40 }, - 'curly': { 'name': 'curly', 'age': 60 } + 'moe': { 'name': 'moe', 'age': 40 }, + 'curly': { 'name': 'curly', 'age': 60 } }; -var stooge = _.memoize(function(name: string) { return data[name]; }, _.identity); +var stooge = _.memoize(function (name: string) { return data[name]; }, _.identity); stooge('curly'); stooge['cache']['curly'].name = 'jerome'; @@ -620,21 +623,21 @@ stooge('curly'); var returnedMemoize = _.throttle(function (a) { return a * 5; }, 5); returnedMemoize(4); -var initialize = _.once(function(){ }); +var initialize = _.once(function () { }); initialize(); initialize();'' var returnedOnce = _.throttle(function (a) { return a * 5; }, 5); returnedOnce(4); -var greetPartial = function(greeting: string, name: string) { return greeting + ' ' + name; }; +var greetPartial = function (greeting: string, name: string) { return greeting + ' ' + name; }; var hi = _.partial(greetPartial, 'hi'); hi('moe'); var defaultsDeep = _.partialRight(_.merge, _.defaults); var optionsPartialRight = { - 'variable': 'data', - 'imports': { 'jq': $ } + 'variable': 'data', + 'imports': { 'jq': $ } }; defaultsDeep(optionsPartialRight, _.templateSettings); @@ -642,16 +645,16 @@ defaultsDeep(optionsPartialRight, _.templateSettings); var throttled = _.throttle(function () { }, 100); jQuery(window).on('scroll', throttled); -jQuery('.interactive').on('click', _.throttle(function() { }, 300000, { - 'trailing': false +jQuery('.interactive').on('click', _.throttle(function () { }, 300000, { + 'trailing': false })); -var returnedThrottled = _.throttle(function (a) { return a*5; }, 5); +var returnedThrottled = _.throttle(function (a) { return a * 5; }, 5); returnedThrottled(4); -var helloWrap = function(name: string) { return 'hello ' + name; }; -var helloWrap2 = _.wrap(helloWrap, function(func) { - return 'before, ' + func('moe') + ', after'; +var helloWrap = function (name: string) { return 'hello ' + name; }; +var helloWrap2 = _.wrap(helloWrap, function (func) { + return 'before, ' + func('moe') + ', after'; }); helloWrap2(); @@ -659,93 +662,93 @@ helloWrap2(); * Objects * ***********/ interface NameAge { - name: string; - age: number; + name: string; + age: number; } result = _.assign({ 'name': 'moe' }, { 'age': 40 }); -result = _.assign({ 'name': 'moe' }, { 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; +result = _.assign({ 'name': 'moe' }, { 'age': 40 }, function (a, b) { + return typeof a == 'undefined' ? b : a; }); result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }); -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; +result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }, function (a, b) { + return typeof a == 'undefined' ? b : a; }); result = _.extend({ 'name': 'moe' }, { 'age': 40 }); -result = _.extend({ 'name': 'moe' }, { 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; +result = _.extend({ 'name': 'moe' }, { 'age': 40 }, function (a, b) { + return typeof a == 'undefined' ? b : a; }); result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }); -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; +result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }, function (a, b) { + return typeof a == 'undefined' ? b : a; }); result = _.clone(stoogesAges); result = _.clone(stoogesAges, true); -result = _.clone(stoogesAges, true, function(value) { - return _.isElement(value) ? value.cloneNode(false) : undefined; +result = _.clone(stoogesAges, true, function (value) { + return _.isElement(value) ? value.cloneNode(false) : undefined; }); result = _.cloneDeep(stoogesAges); -result = _.cloneDeep(stoogesAges, function(value) { - return _.isElement(value) ? value.cloneNode(false) : undefined; +result = _.cloneDeep(stoogesAges, function (value) { + return _.isElement(value) ? value.cloneNode(false) : undefined; }); interface Food { - name: string; - type: string; + name: string; + type: string; } var foodDefaults = { 'name': 'apple' }; result = _.defaults(foodDefaults, { 'name': 'banana', 'type': 'fruit' }); - result = <_.LoDashObjectWrapper>_(foodDefaults).defaults({ 'name': 'banana', 'type': 'fruit' }); +result = <_.LoDashObjectWrapper>_(foodDefaults).defaults({ 'name': 'banana', 'type': 'fruit' }); -result = _.findKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function(num) { - return num % 2 == 0; +result = _.findKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function (num) { + return num % 2 == 0; }); -result = _.findLastKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function(num) { - return num % 2 == 1; +result = _.findLastKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function (num) { + return num % 2 == 1; }); -result = _.forIn(new Dog('Dagny'), function(value, key) { - console.log(key); +result = _.forIn(new Dog('Dagny'), function (value, key) { + console.log(key); }); -result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forIn(function(value, key) { - console.log(key); +result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forIn(function (value, key) { + console.log(key); }); -result = _.forInRight(new Dog('Dagny'), function(value, key) { - console.log(key); +result = _.forInRight(new Dog('Dagny'), function (value, key) { + console.log(key); }); -result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forInRight(function(value, key) { - console.log(key); +result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forInRight(function (value, key) { + console.log(key); }); interface ZeroOne { - 0: string; - 1: string; - one: string; + 0: string; + 1: string; + one: string; } -result = _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { - console.log(key); +result = _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function (num, key) { + console.log(key); }); - result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwn(function(num, key) { - console.log(key); - }); - -result = _.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { - console.log(key); +result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwn(function (num, key) { + console.log(key); }); - result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwnRight(function(num, key) { - console.log(key); - }); +result = _.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function (num, key) { + console.log(key); +}); + +result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwnRight(function (num, key) { + console.log(key); +}); result = _.functions(_); result = _.methods(_); @@ -756,12 +759,12 @@ result = <_.LoDashArrayWrapper>_(_).methods(); result = _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b'); interface FirstSecond { - first: string; - second: string; + first: string; + second: string; } result = _.invert({ 'first': 'moe', 'second': 'larry' }); -(function(...args: any[]) { return _.isArguments(arguments); })(1, 2, 3); +(function (...args: any[]) { return _.isArguments(arguments); })(1, 2, 3); (function () { return _.isArray(arguments); })(); result = _.isArray([1, 2, 3]); @@ -784,12 +787,12 @@ result = _.isEqual(moe, copy); var words = ['hello', 'goodbye']; var otherWords = ['hi', 'goodbye']; -result = _.isEqual(words, otherWords, function(a, b) { - var reGreet = /^(?:hello|hi)$/i, - aGreet = _.isString(a) && reGreet.test(a), - bGreet = _.isString(b) && reGreet.test(b); +result = _.isEqual(words, otherWords, function (a, b) { + var reGreet = /^(?:hello|hi)$/i, + aGreet = _.isString(a) && reGreet.test(a), + bGreet = _.isString(b) && reGreet.test(b); - return (aGreet || bGreet) ? (aGreet == bGreet) : undefined; + return (aGreet || bGreet) ? (aGreet == bGreet) : undefined; }); result = _.isFinite(-101); @@ -817,7 +820,7 @@ class Stooge { constructor( public name: string, public age: number - ) {} + ) { } } result = _.isPlainObject(new Stooge('moe', 40)); @@ -833,67 +836,67 @@ result = _.isUndefined(void 0); result = _.keys({ 'one': 1, 'two': 2, 'three': 3 }); var mergeNames = { - 'stooges': [ - { 'name': 'moe' }, - { 'name': 'larry' } - ] + 'stooges': [ + { 'name': 'moe' }, + { 'name': 'larry' } + ] }; var mergeAges = { - 'stooges': [ - { 'age': 40 }, - { 'age': 50 } - ] + 'stooges': [ + { 'age': 40 }, + { 'age': 50 } + ] }; result = _.merge(mergeNames, mergeAges); var mergeFood = { - 'fruits': ['apple'], - 'vegetables': ['beet'] + 'fruits': ['apple'], + 'vegetables': ['beet'] }; var mergeOtherFood = { - 'fruits': ['banana'], - 'vegetables': ['carrot'] + 'fruits': ['banana'], + 'vegetables': ['carrot'] }; interface FruitVeg { - fruits: string[]; - vegetables: string[] + fruits: string[]; + vegetables: string[] }; -result = _.merge(mergeFood, mergeOtherFood, function(a, b) { - return _.isArray(a) ? a.concat(b) : undefined; +result = _.merge(mergeFood, mergeOtherFood, function (a, b) { + return _.isArray(a) ? a.concat(b) : undefined; }); interface HasName { - name: string; + name: string; } result = _.omit({ 'name': 'moe', 'age': 40 }, 'age'); result = _.omit({ 'name': 'moe', 'age': 40 }, ['age']); -result = _.omit({ 'name': 'moe', 'age': 40 }, function(value) { - return typeof value == 'number'; +result = _.omit({ 'name': 'moe', 'age': 40 }, function (value) { + return typeof value == 'number'; }); result = _.pairs({ 'moe': 30, 'larry': 40 }); result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, 'name'); result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, ['name']); -result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, function(value, key) { - return key.charAt(0) != '_'; +result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, function (value, key) { + return key.charAt(0) != '_'; }); -result = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(r, num) { - num *= num; - if (num % 2) { - return r.push(num) < 3; - } +result = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function (r, num) { + num *= num; + if (num % 2) { + return r.push(num) < 3; + } }); // → [1, 9, 25] -result = <{a:number;b:number;c:number;}>_.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(r, num, key) { - r[key] = num * 3; +result = <{ a: number; b: number; c: number; }>_.transform({ 'a': 1, 'b': 2, 'c': 3 }, function (r, num, key) { + r[key] = num * 3; }); result = _.values({ 'one': 1, 'two': 2, 'three': 3 }); @@ -907,9 +910,9 @@ result = _.escape('Moe, Larry & Curly'); result = <{ name: string }>_.identity({ 'name': 'moe' }); _.mixin({ - 'capitalize': function(string) { - return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); - } + 'capitalize': function (string) { + return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); + } }); var lodash = _.noConflict(); @@ -923,10 +926,10 @@ result = _.random(1.2, 5.2); result = _.random(0, 5, true); var object = { - 'cheese': 'crumpets', - 'stuff': function() { - return 'nonsense'; - } + 'cheese': 'crumpets', + 'stuff': function () { + return 'nonsense'; + } }; result = _.result(object, 'cheese'); @@ -960,10 +963,10 @@ class Mage { } } -var mage = new Mage(); +var mage = new Mage(); result = _.times(3, <() => number>_.partial(_.random, 1, 6)); -result = _.times(3, function(n: number) { mage.castSpell(n); }); -result = _.times(3, function(n: number) { this.cast(n); }, mage); +result = _.times(3, function (n: number) { mage.castSpell(n); }); +result = _.times(3, function (n: number) { this.cast(n); }, mage); result = _.unescape('Moe, Larry & Curly'); diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index b48f7e6034..3c4b572c15 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -181,15 +181,15 @@ declare module _ { **/ valueOf(): T; - /** - * @see valueOf - **/ - value(): T; - } + /** + * @see valueOf + **/ + value(): T; + } - interface LoDashWrapper extends LoDashWrapperBase> {} + interface LoDashWrapper extends LoDashWrapperBase> { } - interface LoDashObjectWrapper extends LoDashWrapperBase> {} + interface LoDashObjectWrapper extends LoDashWrapperBase> { } interface LoDashArrayWrapper extends LoDashWrapperBase> { concat(...items: T[]): LoDashArrayWrapper; @@ -263,6 +263,11 @@ declare module _ { * @param array Array to compact. * @return (Array) Returns a new array of filtered values. **/ + compact(array: Array): T[]; + + /** + * @see _.compact + **/ compact(array: List): T[]; } @@ -270,8 +275,8 @@ declare module _ { /** * @see _.compact **/ - compact(): LoDashArrayWrapper; - } + compact(): LoDashArrayWrapper; + } //_.difference interface LoDashStatic { @@ -282,6 +287,12 @@ declare module _ { * @param others The arrays of values to exclude. * @return Returns a new array of filtered values. **/ + difference( + array: Array, + ...others: Array[]): T[]; + /** + * @see _.difference + **/ difference( array: List, ...others: List[]): T[]; @@ -291,6 +302,11 @@ declare module _ { /** * @see _.difference **/ + difference( + ...others: Array[]): LoDashArrayWrapper; + /** + * @see _.difference + **/ difference( ...others: List[]): LoDashArrayWrapper; } @@ -307,7 +323,7 @@ declare module _ { * @return Returns the index of the found element, else -1. **/ findIndex( - array: List, + array: Array, callback: ListIterator, thisArg?: any): number; @@ -316,8 +332,30 @@ declare module _ { **/ findIndex( array: List, + callback: ListIterator, + thisArg?: any): number; + + /** + * @see _.findIndex + **/ + findIndex( + array: Array, pluckValue: string): number; - + + /** + * @see _.findIndex + **/ + findIndex( + array: List, + pluckValue: string): number; + + /** + * @see _.findIndex + **/ + findIndex( + array: Array, + whereDictionary: W): number; + /** * @see _.findIndex **/ @@ -336,18 +374,40 @@ declare module _ { * @param thisArg The this binding of callback. * @return Returns the index of the found element, else -1. **/ + findLastIndex( + array: Array, + callback: ListIterator, + thisArg?: any): number; + + /** + * @see _.findLastIndex + **/ findLastIndex( array: List, callback: ListIterator, thisArg?: any): number; - + + /** + * @see _.findLastIndex + **/ + findLastIndex( + array: Array, + pluckValue: string): number; + /** * @see _.findLastIndex **/ findLastIndex( array: List, pluckValue: string): number; - + + /** + * @see _.findLastIndex + **/ + findLastIndex( + array: Array, + whereDictionary: Dictionary): number; + /** * @see _.findLastIndex **/ @@ -372,8 +432,21 @@ declare module _ { * @param array Retrieves the first element of this array. * @return Returns the first element of `array`. **/ + first(array: Array): T; + + /** + * @see _.first + **/ first(array: List): T; + /** + * @see _.first + * @param n The number of elements to return. + **/ + first( + array: Array, + n: number): T[]; + /** * @see _.first * @param n The number of elements to return. @@ -382,6 +455,16 @@ declare module _ { array: List, n: number): T[]; + /** + * @see _.first + * @param callback The function called per element. + * @param [thisArg] The this binding of callback. + **/ + first( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; + /** * @see _.first * @param callback The function called per element. @@ -392,6 +475,14 @@ declare module _ { callback: ListIterator, thisArg?: any): T[]; + /** + * @see _.first + * @param pluckValue "_.pluck" style callback value + **/ + first( + array: Array, + pluckValue: string): T[]; + /** * @see _.first * @param pluckValue "_.pluck" style callback value @@ -400,6 +491,14 @@ declare module _ { array: List, pluckValue: string): T[]; + /** + * @see _.first + * @param whereValue "_.where" style callback value + **/ + first( + array: Array, + whereValue: W): T[]; + /** * @see _.first * @param whereValue "_.where" style callback value @@ -408,73 +507,141 @@ declare module _ { array: List, whereValue: W): T[]; - /** - * @see _.first - **/ - head(array: List): T; + /** + * @see _.first + **/ + head(array: Array): T; - /** - * @see _.first - **/ - head( - array: List, - n: number): T[]; + /** + * @see _.first + **/ + head(array: List): T; - /** - * @see _.first - **/ - head( - array: List, - callback: ListIterator, - thisArg?: any): T[]; + /** + * @see _.first + **/ + head( + array: Array, + n: number): T[]; - /** - * @see _.first - **/ - head( - array: List, - pluckValue: string): T[]; + /** + * @see _.first + **/ + head( + array: List, + n: number): T[]; - /** - * @see _.first - **/ - head( - array: List, - whereValue: W): T[]; + /** + * @see _.first + **/ + head( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; - /** - * @see _.first - **/ - take(array: List): T; + /** + * @see _.first + **/ + head( + array: List, + callback: ListIterator, + thisArg?: any): T[]; - /** - * @see _.first - **/ - take( - array: List, - n: number): T[]; + /** + * @see _.first + **/ + head( + array: Array, + pluckValue: string): T[]; - /** - * @see _.first - **/ - take( - array: List, - callback: ListIterator, - thisArg?: any): T[]; + /** + * @see _.first + **/ + head( + array: List, + pluckValue: string): T[]; - /** - * @see _.first - **/ - take( - array: List, - pluckValue: string): T[]; + /** + * @see _.first + **/ + head( + array: Array, + whereValue: W): T[]; - /** - * @see _.first - **/ - take( - array: List, - whereValue: W): T[]; + /** + * @see _.first + **/ + head( + array: List, + whereValue: W): T[]; + + /** + * @see _.first + **/ + take(array: Array): T; + + /** + * @see _.first + **/ + take(array: List): T; + + /** + * @see _.first + **/ + take( + array: Array, + n: number): T[]; + + /** + * @see _.first + **/ + take( + array: List, + n: number): T[]; + + /** + * @see _.first + **/ + take( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.first + **/ + take( + array: List, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.first + **/ + take( + array: Array, + pluckValue: string): T[]; + + /** + * @see _.first + **/ + take( + array: List, + pluckValue: string): T[]; + + /** + * @see _.first + **/ + take( + array: Array, + whereValue: W): T[]; + + /** + * @see _.first + **/ + take( + array: List, + whereValue: W): T[]; } //_.flatten @@ -494,65 +661,153 @@ declare module _ { * @param shallow If true then only flatten one level, optional, default = false. * @return `array` flattened. **/ + flatten(array: Array, isShallow?: boolean): T[]; + + /** + * @see _.flatten + **/ flatten(array: List, isShallow?: boolean): T[]; + /** + * @see _.flatten + **/ + flatten( + array: Array, + isShallow: boolean, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.flatten + **/ flatten( array: List, isShallow: boolean, callback: ListIterator, - thisArg?: any): T[]; + thisArg?: any): T[]; + /** + * @see _.flatten + **/ + flatten( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.flatten + **/ flatten( array: List, callback: ListIterator, - thisArg?: any): T[]; + thisArg?: any): T[]; + /** + * @see _.flatten + **/ + flatten( + array: Array, + isShallow: boolean, + whereValue: W): T[]; + + /** + * @see _.flatten + **/ flatten( array: List, isShallow: boolean, - whereValue: W): T[]; + whereValue: W): T[]; + /** + * @see _.flatten + **/ + flatten( + array: Array, + whereValue: W): T[]; + + /** + * @see _.flatten + **/ flatten( array: List, - whereValue: W): T[]; + whereValue: W): T[]; + /** + * @see _.flatten + **/ + flatten( + array: Array, + isShallow: boolean, + pluckValue: string): T[]; + + /** + * @see _.flatten + **/ flatten( array: List, isShallow: boolean, - pluckValue: string): T[]; + pluckValue: string): T[]; + /** + * @see _.flatten + **/ + flatten( + array: Array, + pluckValue: string): T[]; + + /** + * @see _.flatten + **/ flatten( array: List, - pluckValue: string): T[]; + pluckValue: string): T[]; } interface LoDashArrayWrapper { /** * @see _.flatten **/ - flatten(isShallow?: boolean): LoDashArrayWrapper; + flatten(isShallow?: boolean): LoDashArrayWrapper; - flatten( + /** + * @see _.flatten + **/ + flatten( isShallow: boolean, callback: ListIterator, thisArg?: any): LoDashArrayWrapper; - flatten( + /** + * @see _.flatten + **/ + flatten( callback: ListIterator, thisArg?: any): LoDashArrayWrapper; - flatten( + /** + * @see _.flatten + **/ + flatten( isShallow: boolean, pluckValue: string): LoDashArrayWrapper; - flatten( + /** + * @see _.flatten + **/ + flatten( pluckValue: string): LoDashArrayWrapper; - flatten( + /** + * @see _.flatten + **/ + flatten( isShallow: boolean, whereValue: W): LoDashArrayWrapper; - flatten( + /** + * @see _.flatten + **/ + flatten( whereValue: W): LoDashArrayWrapper; } @@ -567,10 +822,26 @@ declare module _ { * @param fromIndex The index to search from. * @return The index of `value` within `array`. **/ + indexOf( + array: Array, + value: T): number; + + /** + * @see _.indexOf + **/ indexOf( array: List, value: T): number; + /** + * @see _.indexOf + * @param fromIndex The index to search from + **/ + indexOf( + array: Array, + value: T, + fromIndex: number): number; + /** * @see _.indexOf * @param fromIndex The index to search from @@ -580,6 +851,15 @@ declare module _ { value: T, fromIndex: number): number; + /** + * @see _.indexOf + * @param isSorted True to perform a binary search on a sorted array. + **/ + indexOf( + array: Array, + value: T, + isSorted: boolean): number; + /** * @see _.indexOf * @param isSorted True to perform a binary search on a sorted array. @@ -607,9 +887,23 @@ declare module _ { * @param n Leaves this many elements behind, optional. * @return Returns everything but the last `n` elements of `array`. **/ + initial( + array: Array): T[]; + + /** + * @see _.initial + **/ initial( array: List): T[]; + /** + * @see _.initial + * @param n The number of elements to exclude. + **/ + initial( + array: Array, + n: number): T[]; + /** * @see _.initial * @param n The number of elements to exclude. @@ -618,6 +912,14 @@ declare module _ { array: List, n: number): T[]; + /** + * @see _.initial + * @param callback The function called per element + **/ + initial( + array: Array, + callback: ListIterator): T[]; + /** * @see _.initial * @param callback The function called per element @@ -626,6 +928,14 @@ declare module _ { array: List, callback: ListIterator): T[]; + /** + * @see _.initial + * @param pluckValue _.pluck style callback + **/ + initial( + array: Array, + pluckValue: string): T[]; + /** * @see _.initial * @param pluckValue _.pluck style callback @@ -634,6 +944,14 @@ declare module _ { array: List, pluckValue: string): T[]; + /** + * @see _.initial + * @param whereValue _.where style callback + **/ + initial( + array: Array, + whereValue: W): T[]; + /** * @see _.initial * @param whereValue _.where style callback @@ -651,6 +969,11 @@ declare module _ { * @param arrays The arrays to inspect. * @return Returns an array of composite values. **/ + intersection(...arrays: Array[]): T[]; + + /** + * @see _.intersection + **/ intersection(...arrays: List[]): T[]; } @@ -669,8 +992,21 @@ declare module _ { * @param array The array to query. * @return Returns the last element(s) of array. **/ + last(array: Array): T; + + /** + * @see _.last + **/ last(array: List): T; + /** + * @see _.last + * @param n The number of elements to return + **/ + last( + array: Array, + n: number): T[]; + /** * @see _.last * @param n The number of elements to return @@ -679,6 +1015,15 @@ declare module _ { array: List, n: number): T[]; + /** + * @see _.last + * @param callback The function called per element + **/ + last( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; + /** * @see _.last * @param callback The function called per element @@ -688,6 +1033,14 @@ declare module _ { callback: ListIterator, thisArg?: any): T[]; + /** + * @see _.last + * @param pluckValue _.pluck style callback + **/ + last( + array: Array, + pluckValue: string): T[]; + /** * @see _.last * @param pluckValue _.pluck style callback @@ -696,6 +1049,14 @@ declare module _ { array: List, pluckValue: string): T[]; + /** + * @see _.last + * @param whereValue _.where style callback + **/ + last( + array: Array, + whereValue: W): T[]; + /** * @see _.last * @param whereValue _.where style callback @@ -716,12 +1077,20 @@ declare module _ { * @param fromIndex The index to search from. * @return The index of the matched value or -1. **/ + lastIndexOf( + array: Array, + value: T, + fromIndex?: number): number; + + /** + * @see _.lastIndexOf + **/ lastIndexOf( array: List, value: T, fromIndex?: number): number; } - + //_.pull interface LoDashStatic { /** @@ -731,6 +1100,13 @@ declare module _ { * @param values The values to remove. * @return array. **/ + pull( + array: Array, + ...values: any[]): any[]; + + /** + * @see _.pull + **/ pull( array: List, ...values: any[]): any[]; @@ -747,12 +1123,11 @@ declare module _ { * @param step The value to increment or decrement by. * @return Returns a new range array. **/ - range( start: number, stop: number, step?: number): number[]; - + /** * @see _.range * @param end The end of the range. @@ -779,11 +1154,27 @@ declare module _ { * @param thisArg The this binding of callback. * @return A new array of removed elements. **/ + remove( + array: Array, + callback?: ListIterator, + thisArg?: any): any[]; + + /** + * @see _.remove + **/ remove( array: List, callback?: ListIterator, thisArg?: any): any[]; + /** + * @see _.remove + * @param pluckValue _.pluck style callback + **/ + remove( + array: Array, + pluckValue?: string): any[]; + /** * @see _.remove * @param pluckValue _.pluck style callback @@ -792,6 +1183,14 @@ declare module _ { array: List, pluckValue?: string): any[]; + /** + * @see _.remove + * @param whereValue _.where style callback + **/ + remove( + array: Array, + wherealue?: Dictionary): any[]; + /** * @see _.remove * @param whereValue _.where style callback @@ -821,14 +1220,19 @@ declare module _ { * @param {*} [thisArg] The this binding of callback. * @return Returns a slice of array. **/ + rest(array: Array): T[]; + + /** + * @see _.rest + **/ rest(array: List): T[]; /** * @see _.rest **/ rest( - array: List, - callback: ListIterator, + array: Array, + callback: ListIterator, thisArg?: any): T[]; /** @@ -836,89 +1240,186 @@ declare module _ { **/ rest( array: List, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.rest + **/ + rest( + array: Array, n: number): T[]; - + + /** + * @see _.rest + **/ + rest( + array: List, + n: number): T[]; + + /** + * @see _.rest + **/ + rest( + array: Array, + pluckValue: string): T[]; + /** * @see _.rest **/ rest( array: List, pluckValue: string): T[]; - + /** * @see _.rest **/ - rest( + rest( + array: Array, + whereValue: W): T[]; + + /** + * @see _.rest + **/ + rest( array: List, whereValue: W): T[]; - /** - * @see _.rest - **/ - drop(array: List): T[]; + /** + * @see _.rest + **/ + drop(array: Array): T[]; - /** - * @see _.rest - **/ - drop( - array: List, - callback: ListIterator, - thisArg?: any): T[]; + /** + * @see _.rest + **/ + drop(array: List): T[]; - /** - * @see _.rest - **/ - drop( - array: List, - n: number): T[]; - - /** - * @see _.rest - **/ - drop( - array: List, - pluckValue: string): T[]; - - /** - * @see _.rest - **/ - drop( - array: List, - whereValue: W): T[]; + /** + * @see _.rest + **/ + drop( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; - /** - * @see _.rest - **/ - tail(array: List): T[]; + /** + * @see _.rest + **/ + drop( + array: List, + callback: ListIterator, + thisArg?: any): T[]; - /** - * @see _.rest - **/ - tail( - array: List, - callback: ListIterator, - thisArg?: any): T[]; + /** + * @see _.rest + **/ + drop( + array: Array, + n: number): T[]; - /** - * @see _.rest - **/ - tail( - array: List, - n: number): T[]; - - /** - * @see _.rest - **/ - tail( - array: List, - pluckValue: string): T[]; - - /** - * @see _.rest - **/ - tail( - array: List, - whereValue: W): T[]; + /** + * @see _.rest + **/ + drop( + array: List, + n: number): T[]; + + /** + * @see _.rest + **/ + drop( + array: Array, + pluckValue: string): T[]; + + /** + * @see _.rest + **/ + drop( + array: List, + pluckValue: string): T[]; + + /** + * @see _.rest + **/ + drop( + array: Array, + whereValue: W): T[]; + + /** + * @see _.rest + **/ + drop( + array: List, + whereValue: W): T[]; + + /** + * @see _.rest + **/ + tail(array: Array): T[]; + + /** + * @see _.rest + **/ + tail(array: List): T[]; + + /** + * @see _.rest + **/ + tail( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.rest + **/ + tail( + array: List, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.rest + **/ + tail( + array: Array, + n: number): T[]; + + /** + * @see _.rest + **/ + tail( + array: List, + n: number): T[]; + + /** + * @see _.rest + **/ + tail( + array: Array, + pluckValue: string): T[]; + + /** + * @see _.rest + **/ + tail( + array: List, + pluckValue: string): T[]; + + /** + * @see _.rest + **/ + tail( + array: Array, + whereValue: W): T[]; + + /** + * @see _.rest + **/ + tail( + array: List, + whereValue: W): T[]; } //_.sortedIndex @@ -939,12 +1440,30 @@ declare module _ { * @param callback Iterator to compute the sort ranking of each value, optional. * @return The index at which value should be inserted into array. **/ + sortedIndex( + array: Array, + value: T, + callback?: (x: T) => TSort, + thisArg?: any): number; + + /** + * @see _.sortedIndex + **/ sortedIndex( array: List, value: T, - callback?: (x: T) => TSort, + callback?: (x: T) => TSort, thisArg?: any): number; + /** + * @see _.sortedIndex + * @param pluckValue the _.pluck style callback + **/ + sortedIndex( + array: Array, + value: T, + pluckValue: string): number; + /** * @see _.sortedIndex * @param pluckValue the _.pluck style callback @@ -954,6 +1473,15 @@ declare module _ { value: T, pluckValue: string): number; + /** + * @see _.sortedIndex + * @param pluckValue the _.where style callback + **/ + sortedIndex( + array: Array, + value: T, + whereValue: W): number; + /** * @see _.sortedIndex * @param pluckValue the _.where style callback @@ -972,6 +1500,11 @@ declare module _ { * @param arrays The arrays to inspect. * @return Returns an array of composite values. **/ + union(...arrays: Array[]): T[]; + + /** + * @see _.union + **/ union(...arrays: List[]): T[]; } @@ -995,14 +1528,39 @@ declare module _ { * @param context 'this' object in `iterator`, optional. * @return Copy of `array` where all elements are unique. **/ + uniq(array: Array, isSorted?: boolean): T[]; + + /** + * @see _.uniq + **/ uniq(array: List, isSorted?: boolean): T[]; + /** + * @see _.uniq + **/ + uniq( + array: Array, + isSorted: boolean, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.uniq + **/ uniq( array: List, isSorted: boolean, callback: ListIterator, thisArg?: any): T[]; + /** + * @see _.uniq + **/ + uniq( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; + /** * @see _.uniq **/ @@ -1011,6 +1569,15 @@ declare module _ { callback: ListIterator, thisArg?: any): T[]; + /** + * @see _.uniq + * @param pluckValue _.pluck style callback + **/ + uniq( + array: Array, + isSorted: boolean, + pluckValue: string): T[]; + /** * @see _.uniq * @param pluckValue _.pluck style callback @@ -1020,10 +1587,31 @@ declare module _ { isSorted: boolean, pluckValue: string): T[]; + /** + * @see _.uniq + * @param pluckValue _.pluck style callback + **/ + uniq( + array: Array, + pluckValue: string): T[]; + + /** + * @see _.uniq + * @param pluckValue _.pluck style callback + **/ uniq( array: List, pluckValue: string): T[]; + /** + * @see _.uniq + * @param whereValue _.where style callback + **/ + uniq( + array: Array, + isSorted: boolean, + whereValue: W): T[]; + /** * @see _.uniq * @param whereValue _.where style callback @@ -1033,54 +1621,133 @@ declare module _ { isSorted: boolean, whereValue: W): T[]; + /** + * @see _.uniq + * @param whereValue _.where style callback + **/ + uniq( + array: Array, + whereValue: W): T[]; + + /** + * @see _.uniq + * @param whereValue _.where style callback + **/ uniq( array: List, whereValue: W): T[]; - /** - * @see _.uniq - **/ - unique(array: List, isSorted?: boolean): T[]; + /** + * @see _.uniq + **/ + unique(array: Array, isSorted?: boolean): T[]; - unique( - array: List, - callback: ListIterator, - thisArg?: any): T[]; + /** + * @see _.uniq + **/ + unique(array: List, isSorted?: boolean): T[]; - /** - * @see _.uniq - **/ - unique( - array: List, - isSorted: boolean, - callback: ListIterator, - thisArg?: any): T[]; + /** + * @see _.uniq + **/ + unique( + array: Array, + callback: ListIterator, + thisArg?: any): T[]; - /** - * @see _.uniq - * @param pluckValue _.pluck style callback - **/ - unique( - array: List, - isSorted: boolean, - pluckValue: string): T[]; + /** + * @see _.uniq + **/ + unique( + array: List, + callback: ListIterator, + thisArg?: any): T[]; - unique( - array: List, - pluckValue: string): T[]; + /** + * @see _.uniq + **/ + unique( + array: Array, + isSorted: boolean, + callback: ListIterator, + thisArg?: any): T[]; - /** - * @see _.uniq - * @param whereValue _.where style callback - **/ - unique( - array: List, - whereValue?: W): T[]; + /** + * @see _.uniq + **/ + unique( + array: List, + isSorted: boolean, + callback: ListIterator, + thisArg?: any): T[]; - unique( - array: List, - isSorted: boolean, - whereValue?: W): T[]; + /** + * @see _.uniq + * @param pluckValue _.pluck style callback + **/ + unique( + array: Array, + isSorted: boolean, + pluckValue: string): T[]; + + /** + * @see _.uniq + * @param pluckValue _.pluck style callback + **/ + unique( + array: List, + isSorted: boolean, + pluckValue: string): T[]; + + /** + * @see _.uniq + * @param pluckValue _.pluck style callback + **/ + unique( + array: Array, + pluckValue: string): T[]; + + /** + * @see _.uniq + * @param pluckValue _.pluck style callback + **/ + unique( + array: List, + pluckValue: string): T[]; + + /** + * @see _.uniq + * @param whereValue _.where style callback + **/ + unique( + array: Array, + whereValue?: W): T[]; + + /** + * @see _.uniq + * @param whereValue _.where style callback + **/ + unique( + array: List, + whereValue?: W): T[]; + + /** + * @see _.uniq + * @param whereValue _.where style callback + **/ + unique( + array: Array, + isSorted: boolean, + whereValue?: W): T[]; + + /** + * @see _.uniq + * @param whereValue _.where style callback + **/ + unique( + array: List, + isSorted: boolean, + whereValue?: W): T[]; } //_.without @@ -1091,6 +1758,13 @@ declare module _ { * @param values The value(s) to exclude. * @return A new array of filtered values. **/ + without( + array: Array, + ...values: T[]): T[]; + + /** + * @see _.without + **/ without( array: List, ...values: T[]): T[]; @@ -1112,15 +1786,15 @@ declare module _ { **/ zip(...arrays: any[]): any[]; - /** - * @see _.zip - **/ - unzip(...arrays: any[][]): any[][]; + /** + * @see _.zip + **/ + unzip(...arrays: any[][]): any[][]; - /** - * @see _.zip - **/ - unzip(...arrays: any[]): any[]; + /** + * @see _.zip + **/ + unzip(...arrays: any[]): any[]; } //_.zipObject @@ -1137,12 +1811,12 @@ declare module _ { keys: List, values: List): TResult; - /** - * @see _.object - **/ - object( - keys: List, - values: List): TResult; + /** + * @see _.object + **/ + object( + keys: List, + values: List): TResult; } /* ************* @@ -1160,14 +1834,42 @@ declare module _ { * @return A new array of elements corresponding to the provided indexes. **/ at( - collection: Collection, + collection: Array, indexes: number[]): T[]; /** * @see _.at **/ at( - collection: Collection, + collection: List, + indexes: number[]): T[]; + + /** + * @see _.at + **/ + at( + collection: Dictionary, + indexes: number[]): T[]; + + /** + * @see _.at + **/ + at( + collection: Array, + ...indexes: number[]): T[]; + + /** + * @see _.at + **/ + at( + collection: List, + ...indexes: number[]): T[]; + + /** + * @see _.at + **/ + at( + collection: Dictionary, ...indexes: number[]): T[]; } @@ -1182,7 +1884,15 @@ declare module _ { * @return True if the target element is found, else false. **/ contains( - collection: Collection, + collection: Array, + target: T, + fromIndex?: number): boolean; + + /** + * @see _.contains + **/ + contains( + collection: List, target: T, fromIndex?: number): boolean; @@ -1206,29 +1916,37 @@ declare module _ { targetString: string, fromIndex?: number): boolean; - /** - * @see _.contains - **/ - include( - collection: Collection, - target: T, - fromIndex?: number): boolean; + /** + * @see _.contains + **/ + include( + collection: Array, + target: T, + fromIndex?: number): boolean; - /** - * @see _.contains - **/ - include( - dictionary: Dictionary, - key: string, - fromIndex?: number): boolean; + /** + * @see _.contains + **/ + include( + collection: List, + target: T, + fromIndex?: number): boolean; - /** - * @see _.contains - **/ - include( - searchString: string, - targetString: string, - fromIndex?: number): boolean; + /** + * @see _.contains + **/ + include( + dictionary: Dictionary, + key: string, + fromIndex?: number): boolean; + + /** + * @see _.contains + **/ + include( + searchString: string, + targetString: string, + fromIndex?: number): boolean; } //_.countBy @@ -1250,7 +1968,7 @@ declare module _ { * @return Returns the composed aggregate object. **/ countBy( - collection: Collection, + collection: Array, callback?: ListIterator, thisArg?: any): Dictionary; @@ -1259,16 +1977,52 @@ declare module _ { * @param callback Function name **/ countBy( - collection: Collection, + collection: List, + callback?: ListIterator, + thisArg?: any): Dictionary; + + /** + * @see _.countBy + * @param callback Function name + **/ + countBy( + collection: Dictionary, + callback?: ListIterator, + thisArg?: any): Dictionary; + + /** + * @see _.countBy + * @param callback Function name + **/ + countBy( + collection: Array, callback: string, - thisArg?: any): Dictionary; + thisArg?: any): Dictionary; + + /** + * @see _.countBy + * @param callback Function name + **/ + countBy( + collection: List, + callback: string, + thisArg?: any): Dictionary; + + /** + * @see _.countBy + * @param callback Function name + **/ + countBy( + collection: Dictionary, + callback: string, + thisArg?: any): Dictionary; } interface LoDashArrayWrapper { /** * @see _.countBy **/ - countBy( + countBy( callback?: ListIterator, thisArg?: any): LoDashObjectWrapper>; @@ -1276,7 +2030,7 @@ declare module _ { * @see _.countBy * @param callback Function name **/ - countBy( + countBy( callback: string, thisArg?: any): LoDashObjectWrapper>; } @@ -1299,7 +2053,7 @@ declare module _ { * @return True if all elements passed the callback check, else false. **/ every( - collection: Collection, + collection: Array, callback?: ListIterator, thisArg?: any): boolean; @@ -1308,7 +2062,41 @@ declare module _ { * @param pluckValue _.pluck style callback **/ every( - collection: Collection, + collection: List, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.every + * @param pluckValue _.pluck style callback + **/ + every( + collection: Dictionary, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.every + * @param pluckValue _.pluck style callback + **/ + every( + collection: Array, + pluckValue: string): boolean; + + /** + * @see _.every + * @param pluckValue _.pluck style callback + **/ + every( + collection: List, + pluckValue: string): boolean; + + /** + * @see _.every + * @param pluckValue _.pluck style callback + **/ + every( + collection: Dictionary, pluckValue: string): boolean; /** @@ -1316,32 +2104,96 @@ declare module _ { * @param whereValue _.where style callback **/ every( - collection: Collection, + collection: Array, whereValue: W): boolean; - /** - * @see _.every - **/ - all( - collection: Collection, - callback?: ListIterator, - thisArg?: any): boolean; + /** + * @see _.every + * @param whereValue _.where style callback + **/ + every( + collection: List, + whereValue: W): boolean; - /** - * @see _.every - * @param pluckValue _.pluck style callback - **/ - all( - collection: Collection, - pluckValue: string): boolean; + /** + * @see _.every + * @param whereValue _.where style callback + **/ + every( + collection: Dictionary, + whereValue: W): boolean; - /** - * @see _.every - * @param whereValue _.where style callback - **/ - all( - collection: Collection, - whereValue: W): boolean; + /** + * @see _.every + **/ + all( + collection: Array, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.every + **/ + all( + collection: List, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.every + **/ + all( + collection: Dictionary, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.every + * @param pluckValue _.pluck style callback + **/ + all( + collection: Array, + pluckValue: string): boolean; + + /** + * @see _.every + * @param pluckValue _.pluck style callback + **/ + all( + collection: List, + pluckValue: string): boolean; + + /** + * @see _.every + * @param pluckValue _.pluck style callback + **/ + all( + collection: Dictionary, + pluckValue: string): boolean; + + /** + * @see _.every + * @param whereValue _.where style callback + **/ + all( + collection: Array, + whereValue: W): boolean; + + /** + * @see _.every + * @param whereValue _.where style callback + **/ + all( + collection: List, + whereValue: W): boolean; + + /** + * @see _.every + * @param whereValue _.where style callback + **/ + all( + collection: Dictionary, + whereValue: W): boolean; } //_.filter @@ -1362,7 +2214,23 @@ declare module _ { * @return Returns a new array of elements that passed the callback check. **/ filter( - collection: Collection, + collection: Array, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.filter + **/ + filter( + collection: List, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.filter + **/ + filter( + collection: Dictionary, callback: ListIterator, thisArg?: any): T[]; @@ -1371,47 +2239,127 @@ declare module _ { * @param pluckValue _.pluck style callback **/ filter( - collection: Collection, + collection: Array, pluckValue: string): T[]; /** * @see _.filter * @param pluckValue _.pluck style callback **/ - filter( - collection: Collection, - whereValue: W): T[]; + filter( + collection: List, + pluckValue: string): T[]; - /** - * @see _.filter - **/ - select( - collection: Collection, - callback: ListIterator, - thisArg?: any): T[]; + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + filter( + collection: Dictionary, + pluckValue: string): T[]; - /** - * @see _.filter - * @param pluckValue _.pluck style callback - **/ - select( - collection: Collection, - pluckValue: string): T[]; + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + filter( + collection: Array, + whereValue: W): T[]; - /** - * @see _.filter - * @param pluckValue _.pluck style callback - **/ - select( - collection: Collection, - whereValue: W): T[]; + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + filter( + collection: List, + whereValue: W): T[]; + + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + filter( + collection: Dictionary, + whereValue: W): T[]; + + /** + * @see _.filter + **/ + select( + collection: Array, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.filter + **/ + select( + collection: List, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.filter + **/ + select( + collection: Dictionary, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + collection: Array, + pluckValue: string): T[]; + + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + collection: List, + pluckValue: string): T[]; + + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + collection: Dictionary, + pluckValue: string): T[]; + + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + collection: Array, + whereValue: W): T[]; + + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + collection: List, + whereValue: W): T[]; + + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + collection: Dictionary, + whereValue: W): T[]; } interface LoDashArrayWrapper { /** * @see _.filter **/ - filter( + filter( callback: ListIterator, thisArg?: any): LoDashArrayWrapper; @@ -1419,36 +2367,36 @@ declare module _ { * @see _.filter * @param pluckValue _.pluck style callback **/ - filter( + filter( pluckValue: string): LoDashArrayWrapper; /** * @see _.filter * @param pluckValue _.pluck style callback **/ - filter( + filter( whereValue: W): LoDashArrayWrapper; - /** - * @see _.filter - **/ - select( - callback: ListIterator, - thisArg?: any): LoDashArrayWrapper; + /** + * @see _.filter + **/ + select( + callback: ListIterator, + thisArg?: any): LoDashArrayWrapper; - /** - * @see _.filter - * @param pluckValue _.pluck style callback - **/ - select( - pluckValue: string): LoDashArrayWrapper; + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + pluckValue: string): LoDashArrayWrapper; - /** - * @see _.filter - * @param pluckValue _.pluck style callback - **/ - select( - whereValue: W): LoDashArrayWrapper; + /** + * @see _.filter + * @param pluckValue _.pluck style callback + **/ + select( + whereValue: W): LoDashArrayWrapper; } //_.find @@ -1469,7 +2417,23 @@ declare module _ { * @return The found element, else undefined. **/ find( - collection: Collection, + collection: Array, + callback: ListIterator, + thisArg?: any): T; + + /** + * @see _.find + **/ + find( + collection: List, + callback: ListIterator, + thisArg?: any): T; + + /** + * @see _.find + **/ + find( + collection: Dictionary, callback: ListIterator, thisArg?: any): T; @@ -1478,7 +2442,23 @@ declare module _ { * @param _.pluck style callback **/ find( - collection: Collection, + collection: Array, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + find( + collection: List, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + find( + collection: Dictionary, whereValue: W): T; /** @@ -1486,56 +2466,168 @@ declare module _ { * @param _.where style callback **/ find( - collection: Collection, + collection: Array, pluckValue: string): T; - /** - * @see _.find - **/ - detect( - collection: Collection, - callback: ListIterator, - thisArg?: any): T; + /** + * @see _.find + * @param _.where style callback + **/ + find( + collection: List, + pluckValue: string): T; - /** - * @see _.find - * @param _.pluck style callback - **/ - detect( - collection: Collection, - whereValue: W): T; + /** + * @see _.find + * @param _.where style callback + **/ + find( + collection: Dictionary, + pluckValue: string): T; - /** - * @see _.find - * @param _.where style callback - **/ - detect( - collection: Collection, - pluckValue: string): T; + /** + * @see _.find + **/ + detect( + collection: Array, + callback: ListIterator, + thisArg?: any): T; - /** - * @see _.find - **/ - findWhere( - collection: Collection, - callback: ListIterator, - thisArg?: any): T; + /** + * @see _.find + **/ + detect( + collection: List, + callback: ListIterator, + thisArg?: any): T; - /** - * @see _.find - * @param _.pluck style callback - **/ - findWhere( - collection: Collection, - whereValue: W): T; + /** + * @see _.find + **/ + detect( + collection: Dictionary, + callback: ListIterator, + thisArg?: any): T; - /** - * @see _.find - * @param _.where style callback - **/ - findWhere( - collection: Collection, - pluckValue: string): T; + /** + * @see _.find + * @param _.pluck style callback + **/ + detect( + collection: Array, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + detect( + collection: List, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + detect( + collection: Dictionary, + whereValue: W): T; + + /** + * @see _.find + * @param _.where style callback + **/ + detect( + collection: Array, + pluckValue: string): T; + + /** + * @see _.find + * @param _.where style callback + **/ + detect( + collection: List, + pluckValue: string): T; + + /** + * @see _.find + * @param _.where style callback + **/ + detect( + collection: Dictionary, + pluckValue: string): T; + + /** + * @see _.find + **/ + findWhere( + collection: Array, + callback: ListIterator, + thisArg?: any): T; + + /** + * @see _.find + **/ + findWhere( + collection: List, + callback: ListIterator, + thisArg?: any): T; + + /** + * @see _.find + **/ + findWhere( + collection: Dictionary, + callback: ListIterator, + thisArg?: any): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + findWhere( + collection: Array, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + findWhere( + collection: List, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + findWhere( + collection: Dictionary, + whereValue: W): T; + + /** + * @see _.find + * @param _.where style callback + **/ + findWhere( + collection: Array, + pluckValue: string): T; + + /** + * @see _.find + * @param _.where style callback + **/ + findWhere( + collection: List, + pluckValue: string): T; + + /** + * @see _.find + * @param _.where style callback + **/ + findWhere( + collection: Dictionary, + pluckValue: string): T; } //_.findLast @@ -1549,7 +2641,23 @@ declare module _ { * @return The found element, else undefined. **/ findLast( - collection: Collection, + collection: Array, + callback: ListIterator, + thisArg?: any): T; + + /** + * @see _.find + **/ + findLast( + collection: List, + callback: ListIterator, + thisArg?: any): T; + + /** + * @see _.find + **/ + findLast( + collection: Dictionary, callback: ListIterator, thisArg?: any): T; @@ -1558,7 +2666,23 @@ declare module _ { * @param _.pluck style callback **/ findLast( - collection: Collection, + collection: Array, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + findLast( + collection: List, + whereValue: W): T; + + /** + * @see _.find + * @param _.pluck style callback + **/ + findLast( + collection: Dictionary, whereValue: W): T; /** @@ -1566,7 +2690,23 @@ declare module _ { * @param _.where style callback **/ findLast( - collection: Collection, + collection: Array, + pluckValue: string): T; + + /** + * @see _.find + * @param _.where style callback + **/ + findLast( + collection: List, + pluckValue: string): T; + + /** + * @see _.find + * @param _.where style callback + **/ + findLast( + collection: Dictionary, pluckValue: string): T; } @@ -1580,9 +2720,17 @@ declare module _ { * @param callback The function called per iteration. * @param thisArg The this binding of callback. **/ + forEach( + collection: Array, + callback: ListIterator, + thisArg?: any): Array; + + /** + * @see _.forEach + **/ forEach( collection: List, - callback: ListIterator, + callback: ListIterator, thisArg?: any): List; /** @@ -1590,43 +2738,51 @@ declare module _ { **/ forEach( object: Dictionary, - callback: ObjectIterator, + callback: ObjectIterator, thisArg?: any): Dictionary; - /** - * @see _.forEach - **/ - each( - collection: List, - callback: ListIterator, - thisArg?: any): List; + /** + * @see _.forEach + **/ + each( + collection: Array, + callback: ListIterator, + thisArg?: any): Array; - /** - * @see _.forEach - * @param object The object to iterate over - * @param callback The function called per iteration. - * @param thisArg The this binding of callback. - **/ - each( - object: Dictionary, - callback: ObjectIterator, - thisArg?: any): Dictionary; + /** + * @see _.forEach + **/ + each( + collection: List, + callback: ListIterator, + thisArg?: any): List; + + /** + * @see _.forEach + * @param object The object to iterate over + * @param callback The function called per iteration. + * @param thisArg The this binding of callback. + **/ + each( + object: Dictionary, + callback: ObjectIterator, + thisArg?: any): Dictionary; } interface LoDashArrayWrapper { /** * @see _.forEach **/ - forEach( - callback: ListIterator, + forEach( + callback: ListIterator, thisArg?: any): LoDashArrayWrapper; - /** - * @see _.forEach - **/ - each( - callback: ListIterator, - thisArg?: any): LoDashArrayWrapper; + /** + * @see _.forEach + **/ + each( + callback: ListIterator, + thisArg?: any): LoDashArrayWrapper; } interface LoDashObjectWrapper { @@ -1634,15 +2790,15 @@ declare module _ { * @see _.forEach **/ forEach( - callback: ObjectIterator, + callback: ObjectIterator, thisArg?: any): LoDashObjectWrapper; - /** - * @see _.forEach - **/ - each( - callback: ObjectIterator, - thisArg?: any): LoDashObjectWrapper; + /** + * @see _.forEach + **/ + each( + callback: ObjectIterator, + thisArg?: any): LoDashObjectWrapper; } //_.forEachRight @@ -1654,9 +2810,17 @@ declare module _ { * @param callback The function called per iteration. * @param thisArg The this binding of callback. **/ + forEachRight( + collection: Array, + callback: ListIterator, + thisArg?: any): Array; + + /** + * @see _.forEachRight + **/ forEachRight( collection: List, - callback: ListIterator, + callback: ListIterator, thisArg?: any): List; /** @@ -1664,43 +2828,51 @@ declare module _ { **/ forEachRight( object: Dictionary, - callback: ObjectIterator, + callback: ObjectIterator, thisArg?: any): Dictionary; - /** - * @see _.forEachRight - **/ - eachRight( - collection: List, - callback: ListIterator, - thisArg?: any): List; + /** + * @see _.forEachRight + **/ + eachRight( + collection: Array, + callback: ListIterator, + thisArg?: any): Array; - /** - * @see _.forEachRight - * @param object The object to iterate over - * @param callback The function called per iteration. - * @param thisArg The this binding of callback. - **/ - eachRight( - object: Dictionary, - callback: ObjectIterator, - thisArg?: any): Dictionary; + /** + * @see _.forEachRight + **/ + eachRight( + collection: List, + callback: ListIterator, + thisArg?: any): List; + + /** + * @see _.forEachRight + * @param object The object to iterate over + * @param callback The function called per iteration. + * @param thisArg The this binding of callback. + **/ + eachRight( + object: Dictionary, + callback: ObjectIterator, + thisArg?: any): Dictionary; } interface LoDashArrayWrapper { /** * @see _.forEachRight **/ - forEachRight( - callback: ListIterator, + forEachRight( + callback: ListIterator, thisArg?: any): LoDashArrayWrapper; - /** - * @see _.forEachRight - **/ - eachRight( - callback: ListIterator, - thisArg?: any): LoDashArrayWrapper; + /** + * @see _.forEachRight + **/ + eachRight( + callback: ListIterator, + thisArg?: any): LoDashArrayWrapper; } interface LoDashObjectWrapper { @@ -1708,18 +2880,18 @@ declare module _ { * @see _.forEachRight **/ forEachRight( - callback: ObjectIterator, + callback: ObjectIterator, thisArg?: any): LoDashObjectWrapper>; - /** - * @see _.forEachRight - * @param object The object to iterate over - * @param callback The function called per iteration. - * @param thisArg The this binding of callback. - **/ - eachRight( - callback: ObjectIterator, - thisArg?: any): LoDashObjectWrapper>; + /** + * @see _.forEachRight + * @param object The object to iterate over + * @param callback The function called per iteration. + * @param thisArg The this binding of callback. + **/ + eachRight( + callback: ObjectIterator, + thisArg?: any): LoDashObjectWrapper>; } //_.groupBy @@ -1739,11 +2911,27 @@ declare module _ { * @param thisArg The this binding of callback. * @return Returns the composed aggregate object. **/ + groupBy( + collection: Array, + callback?: ListIterator, + thisArg?: any): Dictionary; + + /** + * @see _.groupBy + **/ groupBy( collection: List, callback?: ListIterator, thisArg?: any): Dictionary; + /** + * @see _.groupBy + * @param pluckValue _.pluck style callback + **/ + groupBy( + collection: Array, + pluckValue: string): Dictionary; + /** * @see _.groupBy * @param pluckValue _.pluck style callback @@ -1752,6 +2940,14 @@ declare module _ { collection: List, pluckValue: string): Dictionary; + /** + * @see _.groupBy + * @param whereValue _.where style callback + **/ + groupBy( + collection: Array, + whereValue: W): Dictionary; + /** * @see _.groupBy * @param whereValue _.where style callback @@ -1761,24 +2957,24 @@ declare module _ { whereValue: W): Dictionary; } - interface LoDashArrayWrapper { + interface LoDashArrayWrapper { /** * @see _.groupBy **/ - groupBy( + groupBy( callback: ListIterator, thisArg?: any): _.LoDashObjectWrapper>; /** * @see _.groupBy **/ - groupBy( + groupBy( pluckValue: string): _.LoDashObjectWrapper>; /** * @see _.groupBy **/ - groupBy( + groupBy( whereValue: W): _.LoDashObjectWrapper>; } @@ -1800,11 +2996,27 @@ declare module _ { * @param thisArg The this binding of callback. * @return Returns the composed aggregate object. **/ + indexBy( + list: Array, + iterator: ListIterator, + context?: any): Dictionary; + + /** + * @see _.indexBy + **/ indexBy( list: List, iterator: ListIterator, context?: any): Dictionary; + /** + * @see _.indexBy + * @param pluckValue _.pluck style callback + **/ + indexBy( + collection: Array, + pluckValue: string): Dictionary; + /** * @see _.indexBy * @param pluckValue _.pluck style callback @@ -1813,6 +3025,14 @@ declare module _ { collection: List, pluckValue: string): Dictionary; + /** + * @see _.indexBy + * @param whereValue _.where style callback + **/ + indexBy( + collection: Array, + whereValue: W): Dictionary; + /** * @see _.indexBy * @param whereValue _.where style callback @@ -1834,7 +3054,7 @@ declare module _ { * @param args Arguments to invoke the method with. **/ invoke( - collection: Collection, + collection: Array, methodName: string, ...args: any[]): any; @@ -1842,7 +3062,39 @@ declare module _ { * @see _.invoke **/ invoke( - collection: Collection, + collection: List, + methodName: string, + ...args: any[]): any; + + /** + * @see _.invoke + **/ + invoke( + collection: Dictionary, + methodName: string, + ...args: any[]): any; + + /** + * @see _.invoke + **/ + invoke( + collection: Array, + method: Function, + ...args: any[]): any; + + /** + * @see _.invoke + **/ + invoke( + collection: List, + method: Function, + ...args: any[]): any; + + /** + * @see _.invoke + **/ + invoke( + collection: Dictionary, method: Function, ...args: any[]): any; } @@ -1864,6 +3116,14 @@ declare module _ { * @param theArg The this binding of callback. * @return The mapped array result. **/ + map( + collection: Array, + callback: ListIterator, + thisArg?: any): TResult[]; + + /** + * @see _.map + **/ map( collection: List, callback: ListIterator, @@ -1881,6 +3141,14 @@ declare module _ { callback: ObjectIterator, thisArg?: any): TResult[]; + /** + * @see _.map + * @param pluckValue _.pluck style callback + **/ + map( + collection: Array, + pluckValue: string): TResult[]; + /** * @see _.map * @param pluckValue _.pluck style callback @@ -1889,35 +3157,50 @@ declare module _ { collection: List, pluckValue: string): TResult[]; - /** - * @see _.map - **/ - collect( - collection: List, - callback: ListIterator, - thisArg?: any): TResult[]; + /** + * @see _.map + **/ + collect( + collection: Array, + callback: ListIterator, + thisArg?: any): TResult[]; - /** - * @see _.map - **/ - collect( - object: Dictionary, - callback: ObjectIterator, - thisArg?: any): TResult[]; + /** + * @see _.map + **/ + collect( + collection: List, + callback: ListIterator, + thisArg?: any): TResult[]; - /** - * @see _.map - **/ - collect( - collection: List, - pluckValue: string): TResult[]; + /** + * @see _.map + **/ + collect( + object: Dictionary, + callback: ObjectIterator, + thisArg?: any): TResult[]; + + /** + * @see _.map + **/ + collect( + collection: Array, + pluckValue: string): TResult[]; + + /** + * @see _.map + **/ + collect( + collection: List, + pluckValue: string): TResult[]; } interface LoDashArrayWrapper { /** * @see _.map **/ - map( + map( callback: ListIterator, thisArg?: any): LoDashArrayWrapper; @@ -1925,21 +3208,21 @@ declare module _ { * @see _.map * @param pluckValue _.pluck style callback **/ - map( + map( pluckValue: string): LoDashArrayWrapper; - /** - * @see _.map - **/ - collect( - callback: ListIterator, - thisArg?: any): LoDashArrayWrapper; + /** + * @see _.map + **/ + collect( + callback: ListIterator, + thisArg?: any): LoDashArrayWrapper; - /** - * @see _.map - **/ - collect( - pluckValue: string): LoDashArrayWrapper; + /** + * @see _.map + **/ + collect( + pluckValue: string): LoDashArrayWrapper; } interface LoDashObjectWrapper { @@ -1948,14 +3231,14 @@ declare module _ { **/ map( callback: ObjectIterator, - thisArg?: any): LoDashObjectWrapper; + thisArg?: any): LoDashArrayWrapper; - /** - * @see _.map - **/ - collect( - callback: ObjectIterator, - thisArg?: any): LoDashObjectWrapper; + /** + * @see _.map + **/ + collect( + callback: ObjectIterator, + thisArg?: any): LoDashArrayWrapper; } //_.max @@ -1977,7 +3260,23 @@ declare module _ { * @return Returns the maximum value. **/ max( - collection: Collection, + collection: Array, + callback?: ListIterator, + thisArg?: any): T; + + /** + * @see _.max + **/ + max( + collection: List, + callback?: ListIterator, + thisArg?: any): T; + + /** + * @see _.max + **/ + max( + collection: Dictionary, callback?: ListIterator, thisArg?: any): T; @@ -1986,7 +3285,23 @@ declare module _ { * @param pluckValue _.pluck style callback **/ max( - collection: Collection, + collection: Array, + pluckValue: string): T; + + /** + * @see _.max + * @param pluckValue _.pluck style callback + **/ + max( + collection: List, + pluckValue: string): T; + + /** + * @see _.max + * @param pluckValue _.pluck style callback + **/ + max( + collection: Dictionary, pluckValue: string): T; /** @@ -1994,7 +3309,23 @@ declare module _ { * @param whereValue _.where style callback **/ max( - collection: Collection, + collection: Array, + whereValue: W): T; + + /** + * @see _.max + * @param whereValue _.where style callback + **/ + max( + collection: List, + whereValue: W): T; + + /** + * @see _.max + * @param whereValue _.where style callback + **/ + max( + collection: Dictionary, whereValue: W): T; } @@ -2017,7 +3348,23 @@ declare module _ { * @return Returns the maximum value. **/ min( - collection: Collection, + collection: Array, + callback?: ListIterator, + thisArg?: any): T; + + /** + * @see _.min + **/ + min( + collection: List, + callback?: ListIterator, + thisArg?: any): T; + + /** + * @see _.min + **/ + min( + collection: Dictionary, callback?: ListIterator, thisArg?: any): T; @@ -2026,7 +3373,23 @@ declare module _ { * @param pluckValue _.pluck style callback **/ min( - collection: Collection, + collection: Array, + pluckValue: string): T; + + /** + * @see _.min + * @param pluckValue _.pluck style callback + **/ + min( + collection: List, + pluckValue: string): T; + + /** + * @see _.min + * @param pluckValue _.pluck style callback + **/ + min( + collection: Dictionary, pluckValue: string): T; /** @@ -2034,7 +3397,23 @@ declare module _ { * @param whereValue _.where style callback **/ min( - collection: Collection, + collection: Array, + whereValue: W): T; + + /** + * @see _.min + * @param whereValue _.where style callback + **/ + min( + collection: List, + whereValue: W): T; + + /** + * @see _.min + * @param whereValue _.where style callback + **/ + min( + collection: Dictionary, whereValue: W): T; } @@ -2047,7 +3426,21 @@ declare module _ { * @return A new array of property values. **/ pluck( - collection: Collection, + collection: Array, + property: string): any[]; + + /** + * @see _.pluck + **/ + pluck( + collection: List, + property: string): any[]; + + /** + * @see _.pluck + **/ + pluck( + collection: Dictionary, property: string): any[]; } @@ -2066,52 +3459,154 @@ declare module _ { * @return Returns the accumulated value. **/ reduce( - collection: Collection, + collection: Array, callback: MemoIterator, accumulator: TResult, thisArg?: any): TResult; - /** - * @see _.reduce - **/ + /** + * @see _.reduce + **/ reduce( - collection: Collection, + collection: List, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + reduce( + collection: Dictionary, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + reduce( + collection: Array, callback: MemoIterator, thisArg?: any): TResult; - /** - * @see _.reduce - **/ - inject( - collection: Collection, - callback: MemoIterator, - accumulator: TResult, - thisArg?: any): TResult; + /** + * @see _.reduce + **/ + reduce( + collection: List, + callback: MemoIterator, + thisArg?: any): TResult; - /** - * @see _.reduce - **/ - inject( - collection: Collection, - callback: MemoIterator, - thisArg?: any): TResult; + /** + * @see _.reduce + **/ + reduce( + collection: Dictionary, + callback: MemoIterator, + thisArg?: any): TResult; - /** - * @see _.reduce - **/ - foldl( - collection: Collection, - callback: MemoIterator, - accumulator: TResult, - thisArg?: any): TResult; + /** + * @see _.reduce + **/ + inject( + collection: Array, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; - /** - * @see _.reduce - **/ - foldl( - collection: Collection, - callback: MemoIterator, - thisArg?: any): TResult; + /** + * @see _.reduce + **/ + inject( + collection: List, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + inject( + collection: Dictionary, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + inject( + collection: Array, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + inject( + collection: List, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + inject( + collection: Dictionary, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + foldl( + collection: Array, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + foldl( + collection: List, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + foldl( + collection: Dictionary, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + foldl( + collection: Array, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + foldl( + collection: List, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduce + **/ + foldl( + collection: Dictionary, + callback: MemoIterator, + thisArg?: any): TResult; } //_.reduceRight @@ -2126,35 +3621,103 @@ declare module _ { * @return The accumulated value. **/ reduceRight( - collection: Collection, + collection: Array, callback: MemoIterator, accumulator: TResult, thisArg?: any): TResult; - /** - * @see _.reduceRight - **/ + /** + * @see _.reduceRight + **/ reduceRight( - collection: Collection, + collection: List, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + reduceRight( + collection: Dictionary, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + reduceRight( + collection: Array, callback: MemoIterator, thisArg?: any): TResult; - /** - * @see _.reduceRight - **/ - foldr( - collection: Collection, - callback: MemoIterator, - accumulator: TResult, - thisArg?: any): TResult; + /** + * @see _.reduceRight + **/ + reduceRight( + collection: List, + callback: MemoIterator, + thisArg?: any): TResult; - /** - * @see _.reduceRight - **/ - foldr( - collection: Collection, - callback: MemoIterator, - thisArg?: any): TResult; + /** + * @see _.reduceRight + **/ + reduceRight( + collection: Dictionary, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + foldr( + collection: Array, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + foldr( + collection: List, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + foldr( + collection: Dictionary, + callback: MemoIterator, + accumulator: TResult, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + foldr( + collection: Array, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + foldr( + collection: List, + callback: MemoIterator, + thisArg?: any): TResult; + + /** + * @see _.reduceRight + **/ + foldr( + collection: Dictionary, + callback: MemoIterator, + thisArg?: any): TResult; } //_.reject @@ -2174,7 +3737,23 @@ declare module _ { * @return A new array of elements that failed the callback check. **/ reject( - collection: Collection, + collection: Array, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.reject + **/ + reject( + collection: List, + callback: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.reject + **/ + reject( + collection: Dictionary, callback: ListIterator, thisArg?: any): T[]; @@ -2183,7 +3762,23 @@ declare module _ { * @param pluckValue _.pluck style callback **/ reject( - collection: Collection, + collection: Array, + pluckValue: string): T[]; + + /** + * @see _.reject + * @param pluckValue _.pluck style callback + **/ + reject( + collection: List, + pluckValue: string): T[]; + + /** + * @see _.reject + * @param pluckValue _.pluck style callback + **/ + reject( + collection: Dictionary, pluckValue: string): T[]; /** @@ -2191,7 +3786,23 @@ declare module _ { * @param whereValue _.where style callback **/ reject( - collection: Collection, + collection: Array, + whereValue: W): T[]; + + /** + * @see _.reject + * @param whereValue _.where style callback + **/ + reject( + collection: List, + whereValue: W): T[]; + + /** + * @see _.reject + * @param whereValue _.where style callback + **/ + reject( + collection: Dictionary, whereValue: W): T[]; } @@ -2202,13 +3813,35 @@ declare module _ { * @param collection The collection to sample. * @return Returns the random sample(s) of collection. **/ - sample(collection: Collection): T; + sample(collection: Array): T; + + /** + * @see _.sample + **/ + sample(collection: List): T; + + /** + * @see _.sample + **/ + sample(collection: Dictionary): T; /** * @see _.sample * @param n The number of elements to sample. **/ - sample(collection: Collection, n: number): T[]; + sample(collection: Array, n: number): T[]; + + /** + * @see _.sample + * @param n The number of elements to sample. + **/ + sample(collection: List, n: number): T[]; + + /** + * @see _.sample + * @param n The number of elements to sample. + **/ + sample(collection: Dictionary, n: number): T[]; } //_.shuffle @@ -2219,7 +3852,17 @@ declare module _ { * @param collection The collection to shuffle. * @return Returns a new shuffled collection. **/ - shuffle(collection: Collection): T[]; + shuffle(collection: Array): T[]; + + /** + * @see _.shuffle + **/ + shuffle(collection: List): T[]; + + /** + * @see _.shuffle + **/ + shuffle(collection: Dictionary): T[]; } //_.size @@ -2230,6 +3873,11 @@ declare module _ { * @param collection The collection to inspect. * @return collection.length **/ + size(collection: Array): number; + + /** + * @see _.size + **/ size(collection: List): number; /** @@ -2265,7 +3913,23 @@ declare module _ { * @return True if any element passed the callback check, else false. **/ some( - collection: Collection, + collection: Array, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.some + **/ + some( + collection: List, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.some + **/ + some( + collection: Dictionary, callback?: ListIterator, thisArg?: any): boolean; @@ -2274,7 +3938,23 @@ declare module _ { * @param pluckValue _.pluck style callback **/ some( - collection: Collection, + collection: Array, + pluckValue: string): boolean; + + /** + * @see _.some + * @param pluckValue _.pluck style callback + **/ + some( + collection: List, + pluckValue: string): boolean; + + /** + * @see _.some + * @param pluckValue _.pluck style callback + **/ + some( + collection: Dictionary, pluckValue: string): boolean; /** @@ -2282,32 +3962,96 @@ declare module _ { * @param whereValue _.where style callback **/ some( - collection: Collection, + collection: Array, whereValue: W): boolean; - /** - * @see _.some - **/ - any( - collection: Collection, - callback?: ListIterator, - thisArg?: any): boolean; + /** + * @see _.some + * @param whereValue _.where style callback + **/ + some( + collection: List, + whereValue: W): boolean; - /** - * @see _.some - * @param pluckValue _.pluck style callback - **/ - any( - collection: Collection, - pluckValue: string): boolean; + /** + * @see _.some + * @param whereValue _.where style callback + **/ + some( + collection: Dictionary, + whereValue: W): boolean; - /** - * @see _.some - * @param whereValue _.where style callback - **/ - any( - collection: Collection, - whereValue: W): boolean; + /** + * @see _.some + **/ + any( + collection: Array, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.some + **/ + any( + collection: List, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.some + **/ + any( + collection: Dictionary, + callback?: ListIterator, + thisArg?: any): boolean; + + /** + * @see _.some + * @param pluckValue _.pluck style callback + **/ + any( + collection: Array, + pluckValue: string): boolean; + + /** + * @see _.some + * @param pluckValue _.pluck style callback + **/ + any( + collection: List, + pluckValue: string): boolean; + + /** + * @see _.some + * @param pluckValue _.pluck style callback + **/ + any( + collection: Dictionary, + pluckValue: string): boolean; + + /** + * @see _.some + * @param whereValue _.where style callback + **/ + any( + collection: Array, + whereValue: W): boolean; + + /** + * @see _.some + * @param whereValue _.where style callback + **/ + any( + collection: List, + whereValue: W): boolean; + + /** + * @see _.some + * @param whereValue _.where style callback + **/ + any( + collection: Dictionary, + whereValue: W): boolean; } //_.sortBy @@ -2328,11 +4072,27 @@ declare module _ { * @param thisArg The this binding of callback. * @return A new array of sorted elements. **/ + sortBy( + collection: Array, + callback?: ListIterator, + thisArg?: any): T[]; + + /** + * @see _.sortBy + **/ sortBy( collection: List, callback?: ListIterator, thisArg?: any): T[]; + /** + * @see _.sortBy + * @param pluckValue _.pluck style callback + **/ + sortBy( + collection: Array, + pluckValue: string): T[]; + /** * @see _.sortBy * @param pluckValue _.pluck style callback @@ -2341,6 +4101,14 @@ declare module _ { collection: List, pluckValue: string): T[]; + /** + * @see _.sortBy + * @param whereValue _.where style callback + **/ + sortBy( + collection: Array, + whereValue: W): T[]; + /** * @see _.sortBy * @param whereValue _.where style callback @@ -2357,7 +4125,17 @@ declare module _ { * @param collection The collection to convert. * @return The new converted array. **/ - toArray(collection: Collection): T[]; + toArray(collection: Array): T[]; + + /** + * @see _.toArray + **/ + toArray(collection: List): T[]; + + /** + * @see _.toArray + **/ + toArray(collection: Dictionary): T[]; } //_.where @@ -2370,7 +4148,21 @@ declare module _ { * @return A new array of elements that have the given properties. **/ where( - list: Collection, + list: Array, + properties: U): T[]; + + /** + * @see _.where + **/ + where( + list: List, + properties: U): T[]; + + /** + * @see _.where + **/ + where( + list: Dictionary, properties: U): T[]; } @@ -2389,7 +4181,7 @@ declare module _ { **/ after( n: number, - func: Function): Function; + func: Function): Function; } interface LoDashWrapper { @@ -2412,7 +4204,7 @@ declare module _ { bind( func: Function, thisArg: any, - ...args: any[]): () => any; + ...args: any[]): () => any; } interface LoDashObjectWrapper { @@ -2437,14 +4229,14 @@ declare module _ { **/ bindAll( object: T, - ...methodNames: string[]): T; + ...methodNames: string[]): T; } interface LoDashObjectWrapper { /** * @see _.bindAll **/ - bindAll(...methodNames: string[]): LoDashWrapper; + bindAll(...methodNames: string[]): LoDashWrapper; } //_.bindKey @@ -2462,7 +4254,7 @@ declare module _ { bindKey( object: T, key: string, - ...args: any[]): Function; + ...args: any[]): Function; } interface LoDashObjectWrapper { @@ -2484,7 +4276,7 @@ declare module _ { * @param funcs Functions to compose. * @return The new composed function. **/ - compose(...funcs: Function[]): Function; + compose(...funcs: Function[]): Function; } interface LoDashObjectWrapper { @@ -2517,7 +4309,7 @@ declare module _ { createCallback( func: Dictionary, thisArg?: any, - argCount?: number): () => boolean; + argCount?: number): () => boolean; } interface LoDashWrapper { @@ -2551,7 +4343,7 @@ declare module _ { **/ curry( func: Function, - arity?: number): Function; + arity?: number): Function; } interface LoDashObjectWrapper { @@ -2583,7 +4375,7 @@ declare module _ { debounce( func: T, wait: number, - options?: DebounceSettings): T; + options?: DebounceSettings): T; } interface LoDashObjectWrapper { @@ -2600,7 +4392,7 @@ declare module _ { * Specify execution on the leading edge of the timeout. **/ leading?: boolean; - + /** * The maximum time func is allowed to be delayed before it’s called. **/ @@ -2623,7 +4415,7 @@ declare module _ { **/ defer( func: Function, - ...args: any[]): number; + ...args: any[]): number; } interface LoDashObjectWrapper { @@ -2646,7 +4438,7 @@ declare module _ { delay( func: Function, wait: number, - ...args: any[]): number; + ...args: any[]): number; } interface LoDashObjectWrapper { @@ -2670,7 +4462,7 @@ declare module _ { * @param resolver Hash function for storing the result of `fn`. * @return Returns the new memoizing function. **/ - memoize( + memoize( func: T, resolver?: Function): T; } @@ -2684,7 +4476,7 @@ declare module _ { * @param func Function to only execute once. * @return The new restricted function. **/ - once(func: T): T; + once(func: T): T; } //_.partial @@ -2733,7 +4525,7 @@ declare module _ { * @param options.trailing Specify execution on the trailing edge of the timeout. * @return The new throttled function. **/ - throttle( + throttle( func: T, wait: number, options?: ThrottleSettings): T; @@ -2784,86 +4576,86 @@ declare module _ { * @param thisArg The this binding of callback. * @return The destination object. **/ - assign( - object: T, - s1: S1, + assign( + object: T, + s1: S1, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.assign **/ - assign( - object: T, - s1: S1, - s2: S2, + assign( + object: T, + s1: S1, + s2: S2, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.assign **/ - assign( - object: T, - s1: S1, - s2: S2, - s3: S3, + assign( + object: T, + s1: S1, + s2: S2, + s3: S3, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.assign **/ - assign( - object: T, - s1: S1, - s2: S2, - s3: S3, - s4: S4, + assign( + object: T, + s1: S1, + s2: S2, + s3: S3, + s4: S4, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.assign **/ - extend( - object: T, - s1: S1, + extend( + object: T, + s1: S1, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.assign **/ - extend( - object: T, - s1: S1, - s2: S2, + extend( + object: T, + s1: S1, + s2: S2, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.assign **/ - extend( - object: T, - s1: S1, - s2: S2, - s3: S3, + extend( + object: T, + s1: S1, + s2: S2, + s3: S3, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.assign **/ - extend( - object: T, - s1: S1, - s2: S2, - s3: S3, - s4: S4, + extend( + object: T, + s1: S1, + s2: S2, + s3: S3, + s4: S4, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; } interface LoDashObjectWrapper { @@ -2914,52 +4706,52 @@ declare module _ { callback?: (objectValue: Value, sourceValue: Value) => Value, thisArg?: any): TResult; - /** - * @see _.assign - **/ - extend( - s1: S1, - callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): TResult; + /** + * @see _.assign + **/ + extend( + s1: S1, + callback?: (objectValue: Value, sourceValue: Value) => Value, + thisArg?: any): TResult; - /** - * @see _.assign - **/ - extend( - s1: S1, - s2: S2, - callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): TResult; - /** - * @see _.assign - **/ - extend( - s1: S1, - s2: S2, - s3: S3, - callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): TResult; - /** - * @see _.assign - **/ - extend( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): TResult; - /** - * @see _.assign - **/ - extend( - s1: S1, - s2: S2, - s3: S3, - s4: S4, - s5: S5, - callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): TResult; + /** + * @see _.assign + **/ + extend( + s1: S1, + s2: S2, + callback?: (objectValue: Value, sourceValue: Value) => Value, + thisArg?: any): TResult; + /** + * @see _.assign + **/ + extend( + s1: S1, + s2: S2, + s3: S3, + callback?: (objectValue: Value, sourceValue: Value) => Value, + thisArg?: any): TResult; + /** + * @see _.assign + **/ + extend( + s1: S1, + s2: S2, + s3: S3, + s4: S4, + callback?: (objectValue: Value, sourceValue: Value) => Value, + thisArg?: any): TResult; + /** + * @see _.assign + **/ + extend( + s1: S1, + s2: S2, + s3: S3, + s4: S4, + s5: S5, + callback?: (objectValue: Value, sourceValue: Value) => Value, + thisArg?: any): TResult; } @@ -3017,7 +4809,7 @@ declare module _ { **/ defaults( object: T, - ...sources: any[]): TResult; + ...sources: any[]): TResult; } interface LoDashObjectWrapper { @@ -3054,7 +4846,7 @@ declare module _ { * @see _.findKey * @param whereValue _.where style callback **/ - findKey, T>( + findKey, T>( object: T, whereValue: W): string; } @@ -3085,7 +4877,7 @@ declare module _ { * @see _.findLastKey * @param whereValue _.where style callback **/ - findLastKey, T>( + findLastKey, T>( object: T, whereValue: W): string; } @@ -3105,9 +4897,17 @@ declare module _ { object: Dictionary, callback?: ObjectIterator, thisArg?: any): Dictionary; + + /** + * @see _.forIn + **/ + forIn( + object: T, + callback?: ObjectIterator, + thisArg?: any): T; } - interface LoDashObjectWrapper { + interface LoDashObjectWrapper { /** * @see _.forIn **/ @@ -3130,9 +4930,17 @@ declare module _ { object: Dictionary, callback?: ObjectIterator, thisArg?: any): Dictionary; + + /** + * @see _.forInRight + **/ + forInRight( + object: T, + callback?: ObjectIterator, + thisArg?: any): T; } - interface LoDashObjectWrapper { + interface LoDashObjectWrapper { /** * @see _.forInRight **/ @@ -3156,9 +4964,17 @@ declare module _ { object: Dictionary, callback?: ObjectIterator, thisArg?: any): Dictionary; + + /** + * @see _.forOwn + **/ + forOwn( + object: T, + callback?: ObjectIterator, + thisArg?: any): T; } - interface LoDashObjectWrapper { + interface LoDashObjectWrapper { /** * @see _.forOwn **/ @@ -3181,9 +4997,16 @@ declare module _ { object: Dictionary, callback?: ObjectIterator, thisArg?: any): Dictionary; + /** + * @see _.forOwnRight + **/ + forOwnRight( + object: T, + callback?: ObjectIterator, + thisArg?: any): T; } - interface LoDashObjectWrapper { + interface LoDashObjectWrapper { /** * @see _.forOwnRight **/ @@ -3202,22 +5025,22 @@ declare module _ { **/ functions(object: any): string[]; - /** - * @see _functions - **/ - methods(object: any): string[]; + /** + * @see _functions + **/ + methods(object: any): string[]; } - interface LoDashObjectWrapper { + interface LoDashObjectWrapper { /** * @see _.functions **/ functions(): _.LoDashArrayWrapper; - /** - * @see _.functions - **/ - methods(): _.LoDashArrayWrapper; + /** + * @see _.functions + **/ + methods(): _.LoDashArrayWrapper; } //_.has @@ -3311,7 +5134,7 @@ declare module _ { * @see _.isEmpty **/ isEmpty(value: string): boolean; - + /** * @see _.isEmpty **/ @@ -3472,44 +5295,44 @@ declare module _ { * @param thisArg The this binding of callback. * @return The destination object. **/ - merge( - object: T, - s1: S1, + merge( + object: T, + s1: S1, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.merge **/ - merge( - object: T, - s1: S1, - s2: S2, + merge( + object: T, + s1: S1, + s2: S2, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.merge **/ - merge( - object: T, - s1: S1, - s2: S2, - s3: S3, + merge( + object: T, + s1: S1, + s2: S2, + s3: S3, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; /** * @see _.merge **/ - merge( - object: T, - s1: S1, - s2: S2, - s3: S3, - s4: S4, + merge( + object: T, + s1: S1, + s2: S2, + s3: S3, + s4: S4, callback?: (objectValue: Value, sourceValue: Value) => Value, - thisArg?: any): Result; + thisArg?: any): Result; } //_.omit @@ -3524,7 +5347,7 @@ declare module _ { * @param keys The properties to omit. * @return An object without the omitted properties. **/ - omit( + omit( object: T, ...keys: string[]): Omitted; @@ -3567,7 +5390,7 @@ declare module _ { * @param keys Property names to pick * @return An object composed of the picked properties. **/ - pick( + pick( object: T, ...keys: string[]): Picked; @@ -3602,7 +5425,7 @@ declare module _ { * @return The accumulated value. **/ transform( - collection: Collection, + collection: Array, callback: MemoVoidIterator, accumulator: Acc, thisArg?: any): Acc; @@ -3611,7 +5434,41 @@ declare module _ { * @see _.transform **/ transform( - collection: Collection, + collection: List, + callback: MemoVoidIterator, + accumulator: Acc, + thisArg?: any): Acc; + + /** + * @see _.transform + **/ + transform( + collection: Dictionary, + callback: MemoVoidIterator, + accumulator: Acc, + thisArg?: any): Acc; + + /** + * @see _.transform + **/ + transform( + collection: Array, + callback?: MemoVoidIterator, + thisArg?: any): Acc; + + /** + * @see _.transform + **/ + transform( + collection: List, + callback?: MemoVoidIterator, + thisArg?: any): Acc; + + /** + * @see _.transform + **/ + transform( + collection: Dictionary, callback?: MemoVoidIterator, thisArg?: any): Acc; } @@ -3693,7 +5550,7 @@ declare module _ { * @return A random number. **/ random(max: number, floating?: boolean): number; - + /** * @see _.random * @param min The minimum possible value. @@ -3752,13 +5609,13 @@ declare module _ { **/ template( text: string): TemplateExecutor; - + /** * @see _.template **/ template( text: string, - data: any, + data: any, options?: TemplateSettings, sourceURL?: string, variable?: string): any /* string or TemplateExecutor*/; @@ -3768,7 +5625,7 @@ declare module _ { (...data: any[]): string; source: string; } - + //_.times interface LoDashStatic { /** @@ -3779,8 +5636,8 @@ declare module _ { * @param thisArg The this binding of callback. **/ times( - n: number, - callback: (num: number) => TResult, + n: number, + callback: (num: number) => TResult, context?: any): TResult[]; } @@ -3820,24 +5677,24 @@ declare module _ { interface MemoIterator { (prev: TResult, curr: T, indexOrKey: any, list?: T[]): TResult; } - /* + /* interface MemoListIterator { (prev: TResult, curr: T, index: number, list?: T[]): TResult; } interface MemoObjectIterator { (prev: TResult, curr: T, index: string, object?: Dictionary): TResult; } - */ + */ - interface Collection { } + //interface Collection {} // Common interface between Arrays and jQuery objects - interface List extends Collection { + interface List { [index: number]: T; length: number; } - interface Dictionary extends Collection { + interface Dictionary { [index: string]: T; } } From d98910416f97ee6f5635ef7bd8e68b70565616ad Mon Sep 17 00:00:00 2001 From: miffels Date: Tue, 8 Apr 2014 12:05:23 +0200 Subject: [PATCH 002/132] Adjusting type angular.resource type definitions and tests to better reflect actual interface (particularly promises) --- angularjs/angular-resource-tests.ts | 49 +++++++++++- angularjs/angular-resource.d.ts | 112 +++++++++++++++++----------- 2 files changed, 117 insertions(+), 44 deletions(-) diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts index 2870b21ad8..5a276e949d 100644 --- a/angularjs/angular-resource-tests.ts +++ b/angularjs/angular-resource-tests.ts @@ -19,7 +19,9 @@ actionDescriptor.params = { key: 'value' }; /////////////////////////////////////// var resourceClass: IMyResourceClass; var resource: IMyResource; -var resourceArray: IMyResource[]; +var resourceArray: ng.resource.IResourceArray; +var promise : ng.IPromise; +var arrayPromise : ng.IPromise; resource = resourceClass.delete(); resource = resourceClass.delete({ key: 'value' }); @@ -30,6 +32,15 @@ resource = resourceClass.delete({ key: 'value' }, { key: 'value' }); resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$delete(); +promise = resource.$delete({ key: 'value' }); +promise = resource.$delete({ key: 'value' }, function () { }); +promise = resource.$delete(function () { }); +promise = resource.$delete(function () { }, function () { }); +promise = resource.$delete({ key: 'value' }, { key: 'value' }); +promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }); +promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + resource = resourceClass.get(); resource = resourceClass.get({ key: 'value' }); resource = resourceClass.get({ key: 'value' }, function () { }); @@ -39,6 +50,15 @@ resource = resourceClass.get({ key: 'value' }, { key: 'value' }); resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$get(); +promise = resource.$get({ key: 'value' }); +promise = resource.$get({ key: 'value' }, function () { }); +promise = resource.$get(function () { }); +promise = resource.$get(function () { }, function () { }); +promise = resource.$get({ key: 'value' }, { key: 'value' }); +promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }); +promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + resourceArray = resourceClass.query(); resourceArray = resourceClass.query({ key: 'value' }); resourceArray = resourceClass.query({ key: 'value' }, function () { }); @@ -48,6 +68,15 @@ resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }); resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }); resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +arrayPromise = resourceArray[0].query(); +arrayPromise = resourceArray[0].query({ key: 'value' }); +arrayPromise = resourceArray[0].query({ key: 'value' }, function () { }); +arrayPromise = resourceArray[0].query(function () { }); +arrayPromise = resourceArray[0].query(function () { }, function () { }); +arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }); +arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }, function () { }); +arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + resource = resourceClass.remove(); resource = resourceClass.remove({ key: 'value' }); resource = resourceClass.remove({ key: 'value' }, function () { }); @@ -57,6 +86,15 @@ resource = resourceClass.remove({ key: 'value' }, { key: 'value' }); resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$remove(); +promise = resource.$remove({ key: 'value' }); +promise = resource.$remove({ key: 'value' }, function () { }); +promise = resource.$remove(function () { }); +promise = resource.$remove(function () { }, function () { }); +promise = resource.$remove({ key: 'value' }, { key: 'value' }); +promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }); +promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + resource = resourceClass.save(); resource = resourceClass.save({ key: 'value' }); resource = resourceClass.save({ key: 'value' }, function () { }); @@ -66,6 +104,15 @@ resource = resourceClass.save({ key: 'value' }, { key: 'value' }); resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$save(); +promise = resource.$save({ key: 'value' }); +promise = resource.$save({ key: 'value' }, function () { }); +promise = resource.$save(function () { }); +promise = resource.$save(function () { }, function () { }); +promise = resource.$save({ key: 'value' }, { key: 'value' }); +promise = resource.$save({ key: 'value' }, { key: 'value' }, function () { }); +promise = resource.$save({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + /////////////////////////////////////// // IResourceService /////////////////////////////////////// diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts index a0cd4ab85a..942e5e120d 100644 --- a/angularjs/angular-resource.d.ts +++ b/angularjs/angular-resource.d.ts @@ -53,64 +53,90 @@ declare module ng.resource { interface IResourceClass { new(dataOrParams? : any) : T; get(): T; - get(dataOrParams: any): T; - get(dataOrParams: any, success: Function): T; + get(params: Object): T; get(success: Function, error?: Function): T; - get(params: any, data: any, success?: Function, error?: Function): T; + get(params: Object, success: Function, error?: Function): T; + get(params: Object, data: Object, success?: Function): T; + get(params: Object, data: Object, success: Function, error?: Function): T; + + query(): IResourceArray; + query(params: Object): IResourceArray; + query(success: Function, error?: Function): IResourceArray; + query(params: Object, success: Function, error?: Function): IResourceArray; + query(params: Object, data: Object, success?: Function): IResourceArray; + query(params: Object, data: Object, success: Function, error?: Function): IResourceArray; + save(): T; - save(dataOrParams: any): T; - save(dataOrParams: any, success: Function): T; + save(data: Object): T; save(success: Function, error?: Function): T; - save(params: any, data: any, success?: Function, error?: Function): T; - query(): T[]; - query(dataOrParams: any): T[]; - query(dataOrParams: any, success: Function): T[]; - query(success: Function, error?: Function): T[]; - query(params: any, data: any, success?: Function, error?: Function): T[]; + save(data: Object, success: Function, error?: Function): T; + save(params: Object, data: Object, success?: Function): T; + save(params: Object, data: Object, success: Function, error?: Function): T; + remove(): T; - remove(dataOrParams: any): T; - remove(dataOrParams: any, success: Function): T; + remove(params: Object): T; remove(success: Function, error?: Function): T; - remove(params: any, data: any, success?: Function, error?: Function): T; + remove(params: Object, success: Function, error?: Function): T; + remove(params: Object, data: Object, success?: Function): T; + remove(params: Object, data: Object, success: Function, error?: Function): T; + delete(): T; - delete(dataOrParams: any): T; - delete(dataOrParams: any, success: Function): T; + delete(params: Object): T; delete(success: Function, error?: Function): T; - delete(params: any, data: any, success?: Function, error?: Function): T; + delete(params: Object, success: Function, error?: Function): T; + delete(params: Object, data: Object, success?: Function): T; + delete(params: Object, data: Object, success: Function, error?: Function): T; } interface IResource { - $get(): T; - $get(dataOrParams: any): T; - $get(dataOrParams: any, success: Function): T; - $get(success: Function, error?: Function): T; - $get(params: any, data: any, success?: Function, error?: Function): T; - $save(): T; - $save(dataOrParams: any): T; - $save(dataOrParams: any, success: Function): T; - $save(success: Function, error?: Function): T; - $save(params: any, data: any, success?: Function, error?: Function): T; - $query(): T[]; - $query(dataOrParams: any): T[]; - $query(dataOrParams: any, success: Function): T[]; - $query(success: Function, error?: Function): T[]; - $query(params: any, data: any, success?: Function, error?: Function): T[]; - $remove(): T; - $remove(dataOrParams: any): T; - $remove(dataOrParams: any, success: Function): T; - $remove(success: Function, error?: Function): T; - $remove(params: any, data: any, success?: Function, error?: Function): T; - $delete(): T; - $delete(dataOrParams: any): T; - $delete(dataOrParams: any, success: Function): T; - $delete(success: Function, error?: Function): T; - $delete(params: any, data: any, success?: Function, error?: Function): T; - + $get(): ng.IPromise; + $get(params: Object): ng.IPromise; + $get(success: Function, error?: Function): ng.IPromise; + $get(params: Object, success: Function, error?: Function): ng.IPromise; + $get(params: Object, data: Object, success?: Function): ng.IPromise; + $get(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; + + $query(): ng.IPromise; + $query(params: Object): ng.IPromise; + $query(success: Function, error?: Function): ng.IPromise; + $query(params: Object, success: Function, error?: Function): ng.IPromise; + $query(params: Object, data: Object, success?: Function): ng.IPromise; + $query(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; + + $save(): ng.IPromise; + $save(data: Object): ng.IPromise; + $save(success: Function, error?: Function): ng.IPromise; + $save(data: Object, success: Function, error?: Function): ng.IPromise; + $save(params: Object, data: Object, success?: Function): ng.IPromise; + $save(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; + + $remove(): ng.IPromise; + $remove(params: Object): ng.IPromise; + $remove(success: Function, error?: Function): ng.IPromise; + $remove(params: Object, success: Function, error?: Function): ng.IPromise; + $remove(params: Object, data: Object, success?: Function): ng.IPromise; + $remove(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; + + $delete(): ng.IPromise; + $delete(params: Object): ng.IPromise; + $delete(success: Function, error?: Function): ng.IPromise; + $delete(params: Object, success: Function, error?: Function): ng.IPromise; + $delete(params: Object, data: Object, success?: Function): ng.IPromise; + $delete(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; + /** the promise of the original server interaction that created this instance. **/ $promise : ng.IPromise; $resolved : boolean; } + interface Array {} + + interface IResourceArray extends Array { + /** the promise of the original server interaction that created this collection. **/ + $promise : ng.IPromise; + $resolved : boolean; + } + /** when creating a resource factory via IModule.factory */ interface IResourceServiceFactoryFunction { ($resource: ng.resource.IResourceService): IResourceClass; From f037b846658263f8eb8d7a01de7d072b5c7289e2 Mon Sep 17 00:00:00 2001 From: miffels Date: Tue, 8 Apr 2014 13:46:34 +0200 Subject: [PATCH 003/132] Fixing array interface and tests and adding humble co-author note --- angularjs/angular-resource-tests.ts | 86 ++++++++++++++++------------- angularjs/angular-resource.d.ts | 11 ++-- 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts index 5a276e949d..327fcaba6e 100644 --- a/angularjs/angular-resource-tests.ts +++ b/angularjs/angular-resource-tests.ts @@ -20,8 +20,6 @@ actionDescriptor.params = { key: 'value' }; var resourceClass: IMyResourceClass; var resource: IMyResource; var resourceArray: ng.resource.IResourceArray; -var promise : ng.IPromise; -var arrayPromise : ng.IPromise; resource = resourceClass.delete(); resource = resourceClass.delete({ key: 'value' }); @@ -32,15 +30,6 @@ resource = resourceClass.delete({ key: 'value' }, { key: 'value' }); resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); -promise = resource.$delete(); -promise = resource.$delete({ key: 'value' }); -promise = resource.$delete({ key: 'value' }, function () { }); -promise = resource.$delete(function () { }); -promise = resource.$delete(function () { }, function () { }); -promise = resource.$delete({ key: 'value' }, { key: 'value' }); -promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }); -promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); - resource = resourceClass.get(); resource = resourceClass.get({ key: 'value' }); resource = resourceClass.get({ key: 'value' }, function () { }); @@ -50,15 +39,6 @@ resource = resourceClass.get({ key: 'value' }, { key: 'value' }); resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.get({ key: 'value' }, { key: 'value' }, function () { }, function () { }); -promise = resource.$get(); -promise = resource.$get({ key: 'value' }); -promise = resource.$get({ key: 'value' }, function () { }); -promise = resource.$get(function () { }); -promise = resource.$get(function () { }, function () { }); -promise = resource.$get({ key: 'value' }, { key: 'value' }); -promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }); -promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }, function () { }); - resourceArray = resourceClass.query(); resourceArray = resourceClass.query({ key: 'value' }); resourceArray = resourceClass.query({ key: 'value' }, function () { }); @@ -67,15 +47,7 @@ resourceArray = resourceClass.query(function () { }, function () { }); resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }); resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }); resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }, function () { }); - -arrayPromise = resourceArray[0].query(); -arrayPromise = resourceArray[0].query({ key: 'value' }); -arrayPromise = resourceArray[0].query({ key: 'value' }, function () { }); -arrayPromise = resourceArray[0].query(function () { }); -arrayPromise = resourceArray[0].query(function () { }, function () { }); -arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }); -arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }, function () { }); -arrayPromise = resourceArray[0].query({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +resourceArray.push(resource); resource = resourceClass.remove(); resource = resourceClass.remove({ key: 'value' }); @@ -86,15 +58,6 @@ resource = resourceClass.remove({ key: 'value' }, { key: 'value' }); resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.remove({ key: 'value' }, { key: 'value' }, function () { }, function () { }); -promise = resource.$remove(); -promise = resource.$remove({ key: 'value' }); -promise = resource.$remove({ key: 'value' }, function () { }); -promise = resource.$remove(function () { }); -promise = resource.$remove(function () { }, function () { }); -promise = resource.$remove({ key: 'value' }, { key: 'value' }); -promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }); -promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }, function () { }); - resource = resourceClass.save(); resource = resourceClass.save({ key: 'value' }); resource = resourceClass.save({ key: 'value' }, function () { }); @@ -104,6 +67,49 @@ resource = resourceClass.save({ key: 'value' }, { key: 'value' }); resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +/////////////////////////////////////// +// IResource +/////////////////////////////////////// + +var promise : ng.IPromise; +var arrayPromise : ng.IPromise; + +promise = resource.$delete(); +promise = resource.$delete({ key: 'value' }); +promise = resource.$delete({ key: 'value' }, function () { }); +promise = resource.$delete(function () { }); +promise = resource.$delete(function () { }, function () { }); +promise = resource.$delete({ key: 'value' }, { key: 'value' }); +promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }); +promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + +promise = resource.$get(); +promise = resource.$get({ key: 'value' }); +promise = resource.$get({ key: 'value' }, function () { }); +promise = resource.$get(function () { }); +promise = resource.$get(function () { }, function () { }); +promise = resource.$get({ key: 'value' }, { key: 'value' }); +promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }); +promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + +arrayPromise = resourceArray[0].$query(); +arrayPromise = resourceArray[0].$query({ key: 'value' }); +arrayPromise = resourceArray[0].$query({ key: 'value' }, function () { }); +arrayPromise = resourceArray[0].$query(function () { }); +arrayPromise = resourceArray[0].$query(function () { }, function () { }); +arrayPromise = resourceArray[0].$query({ key: 'value' }, { key: 'value' }); +arrayPromise = resourceArray[0].$query({ key: 'value' }, { key: 'value' }, function () { }); +arrayPromise = resourceArray[0].$query({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + +promise = resource.$remove(); +promise = resource.$remove({ key: 'value' }); +promise = resource.$remove({ key: 'value' }, function () { }); +promise = resource.$remove(function () { }); +promise = resource.$remove(function () { }, function () { }); +promise = resource.$remove({ key: 'value' }, { key: 'value' }); +promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }); +promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }, function () { }); + promise = resource.$save(); promise = resource.$save({ key: 'value' }); promise = resource.$save({ key: 'value' }, function () { }); @@ -132,3 +138,7 @@ resourceClass = resourceServiceFactoryFunction(resourceService resourceServiceFactoryFunction = function (resourceService: ng.resource.IResourceService) { return resourceClass; }; mod = mod.factory('factory name', resourceServiceFactoryFunction); + +/////////////////////////////////////// +// IResource +/////////////////////////////////////// \ No newline at end of file diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts index 942e5e120d..52706d68d2 100644 --- a/angularjs/angular-resource.d.ts +++ b/angularjs/angular-resource.d.ts @@ -1,6 +1,6 @@ // Type definitions for Angular JS 1.2 (ngResource module) // Project: http://angularjs.org -// Definitions by: Diego Vilar +// Definitions by: Diego Vilar , Michael Jess (minor enhancements) // Definitions: https://github.com/daptiv/DefinitelyTyped /// @@ -129,11 +129,12 @@ declare module ng.resource { $resolved : boolean; } - interface Array {} - - interface IResourceArray extends Array { + /** + * Really just a regular Array object with $promise and $resolve attached to it + */ + interface IResourceArray extends Array { /** the promise of the original server interaction that created this collection. **/ - $promise : ng.IPromise; + $promise : ng.IPromise; $resolved : boolean; } From fffce8af7d5cae04f62f0f6082f6e3d8adfbefb5 Mon Sep 17 00:00:00 2001 From: miffels Date: Tue, 8 Apr 2014 14:15:34 +0200 Subject: [PATCH 004/132] Simplifying instance API and adding some explanatory comments --- angularjs/angular-resource-tests.ts | 20 +++--------- angularjs/angular-resource.d.ts | 50 ++++++++++++----------------- 2 files changed, 25 insertions(+), 45 deletions(-) diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts index 327fcaba6e..107d6b29e0 100644 --- a/angularjs/angular-resource-tests.ts +++ b/angularjs/angular-resource-tests.ts @@ -79,45 +79,35 @@ promise = resource.$delete({ key: 'value' }); promise = resource.$delete({ key: 'value' }, function () { }); promise = resource.$delete(function () { }); promise = resource.$delete(function () { }, function () { }); -promise = resource.$delete({ key: 'value' }, { key: 'value' }); -promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }); -promise = resource.$delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$delete({ key: 'value' }, function () { }, function () { }); promise = resource.$get(); promise = resource.$get({ key: 'value' }); promise = resource.$get({ key: 'value' }, function () { }); promise = resource.$get(function () { }); promise = resource.$get(function () { }, function () { }); -promise = resource.$get({ key: 'value' }, { key: 'value' }); -promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }); -promise = resource.$get({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$get({ key: 'value' }, function () { }, function () { }); arrayPromise = resourceArray[0].$query(); arrayPromise = resourceArray[0].$query({ key: 'value' }); arrayPromise = resourceArray[0].$query({ key: 'value' }, function () { }); arrayPromise = resourceArray[0].$query(function () { }); arrayPromise = resourceArray[0].$query(function () { }, function () { }); -arrayPromise = resourceArray[0].$query({ key: 'value' }, { key: 'value' }); -arrayPromise = resourceArray[0].$query({ key: 'value' }, { key: 'value' }, function () { }); -arrayPromise = resourceArray[0].$query({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +arrayPromise = resourceArray[0].$query({ key: 'value' }, function () { }, function () { }); promise = resource.$remove(); promise = resource.$remove({ key: 'value' }); promise = resource.$remove({ key: 'value' }, function () { }); promise = resource.$remove(function () { }); promise = resource.$remove(function () { }, function () { }); -promise = resource.$remove({ key: 'value' }, { key: 'value' }); -promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }); -promise = resource.$remove({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$remove({ key: 'value' }, function () { }, function () { }); promise = resource.$save(); promise = resource.$save({ key: 'value' }); promise = resource.$save({ key: 'value' }, function () { }); promise = resource.$save(function () { }); promise = resource.$save(function () { }, function () { }); -promise = resource.$save({ key: 'value' }, { key: 'value' }); -promise = resource.$save({ key: 'value' }, { key: 'value' }, function () { }); -promise = resource.$save({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +promise = resource.$save({ key: 'value' }, function () { }, function () { }); /////////////////////////////////////// // IResourceService diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts index 52706d68d2..393362a95e 100644 --- a/angularjs/angular-resource.d.ts +++ b/angularjs/angular-resource.d.ts @@ -50,79 +50,69 @@ declare module ng.resource { // PATCH (in other words, methods with body). Otherwise, it's going // to be considered as parameters to the request. // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L461-L465 + // + // Only those methods with an HTTP body do have 'data' as first parameter: + // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L463 + // More specifically, those methods are POST, PUT and PATCH: + // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L432 + // + // Also, static calls always return the IResource (or IResourceArray) retrieved + // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L538-L549 interface IResourceClass { new(dataOrParams? : any) : T; get(): T; get(params: Object): T; get(success: Function, error?: Function): T; get(params: Object, success: Function, error?: Function): T; - get(params: Object, data: Object, success?: Function): T; - get(params: Object, data: Object, success: Function, error?: Function): T; + get(params: Object, data: Object, success?: Function, error?: Function): T; query(): IResourceArray; query(params: Object): IResourceArray; query(success: Function, error?: Function): IResourceArray; query(params: Object, success: Function, error?: Function): IResourceArray; - query(params: Object, data: Object, success?: Function): IResourceArray; - query(params: Object, data: Object, success: Function, error?: Function): IResourceArray; + query(params: Object, data: Object, success?: Function, error?: Function): IResourceArray; save(): T; save(data: Object): T; save(success: Function, error?: Function): T; save(data: Object, success: Function, error?: Function): T; - save(params: Object, data: Object, success?: Function): T; - save(params: Object, data: Object, success: Function, error?: Function): T; + save(params: Object, data: Object, success?: Function, error?: Function): T; remove(): T; remove(params: Object): T; remove(success: Function, error?: Function): T; remove(params: Object, success: Function, error?: Function): T; - remove(params: Object, data: Object, success?: Function): T; - remove(params: Object, data: Object, success: Function, error?: Function): T; + remove(params: Object, data: Object, success?: Function, error?: Function): T; delete(): T; delete(params: Object): T; delete(success: Function, error?: Function): T; delete(params: Object, success: Function, error?: Function): T; - delete(params: Object, data: Object, success?: Function): T; - delete(params: Object, data: Object, success: Function, error?: Function): T; + delete(params: Object, data: Object, success?: Function, error?: Function): T; } + // Instance calls always return the the promise of the request which retrieved the object + // https://github.com/angular/angular.js/blob/v1.2.0/src/ngResource/resource.js#L538-L546 interface IResource { $get(): ng.IPromise; - $get(params: Object): ng.IPromise; + $get(params?: Object, success?: Function, error?: Function): ng.IPromise; $get(success: Function, error?: Function): ng.IPromise; - $get(params: Object, success: Function, error?: Function): ng.IPromise; - $get(params: Object, data: Object, success?: Function): ng.IPromise; - $get(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; $query(): ng.IPromise; - $query(params: Object): ng.IPromise; + $query(params?: Object, success?: Function, error?: Function): ng.IPromise; $query(success: Function, error?: Function): ng.IPromise; - $query(params: Object, success: Function, error?: Function): ng.IPromise; - $query(params: Object, data: Object, success?: Function): ng.IPromise; - $query(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; $save(): ng.IPromise; - $save(data: Object): ng.IPromise; + $save(params?: Object, success?: Function, error?: Function): ng.IPromise; $save(success: Function, error?: Function): ng.IPromise; - $save(data: Object, success: Function, error?: Function): ng.IPromise; - $save(params: Object, data: Object, success?: Function): ng.IPromise; - $save(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; $remove(): ng.IPromise; - $remove(params: Object): ng.IPromise; + $remove(params?: Object, success?: Function, error?: Function): ng.IPromise; $remove(success: Function, error?: Function): ng.IPromise; - $remove(params: Object, success: Function, error?: Function): ng.IPromise; - $remove(params: Object, data: Object, success?: Function): ng.IPromise; - $remove(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; $delete(): ng.IPromise; - $delete(params: Object): ng.IPromise; + $delete(params?: Object, success?: Function, error?: Function): ng.IPromise; $delete(success: Function, error?: Function): ng.IPromise; - $delete(params: Object, success: Function, error?: Function): ng.IPromise; - $delete(params: Object, data: Object, success?: Function): ng.IPromise; - $delete(params: Object, data: Object, success: Function, error?: Function): ng.IPromise; /** the promise of the original server interaction that created this instance. **/ $promise : ng.IPromise; From 1efaca22797fc58df97aad212de755730ae07203 Mon Sep 17 00:00:00 2001 From: miffels Date: Tue, 8 Apr 2014 19:47:20 +0200 Subject: [PATCH 005/132] Fixing array call promise inconsistency (thanks @jackdolabany) and adding tests --- angularjs/angular-resource-tests.ts | 4 ++++ angularjs/angular-resource.d.ts | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts index 107d6b29e0..c80cc662de 100644 --- a/angularjs/angular-resource-tests.ts +++ b/angularjs/angular-resource-tests.ts @@ -29,6 +29,7 @@ resource = resourceClass.delete(function () { }, function () { }); resource = resourceClass.delete({ key: 'value' }, { key: 'value' }); resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }); resource = resourceClass.delete({ key: 'value' }, { key: 'value' }, function () { }, function () { }); +resource.$promise.then(function(data: IMyResource) {}); resource = resourceClass.get(); resource = resourceClass.get({ key: 'value' }); @@ -48,6 +49,7 @@ resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }); resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }); resourceArray = resourceClass.query({ key: 'value' }, { key: 'value' }, function () { }, function () { }); resourceArray.push(resource); +resourceArray.$promise.then(function(data: ng.resource.IResourceArray) {}); resource = resourceClass.remove(); resource = resourceClass.remove({ key: 'value' }); @@ -80,6 +82,7 @@ promise = resource.$delete({ key: 'value' }, function () { }); promise = resource.$delete(function () { }); promise = resource.$delete(function () { }, function () { }); promise = resource.$delete({ key: 'value' }, function () { }, function () { }); +promise.then(function(data: IMyResource) {}); promise = resource.$get(); promise = resource.$get({ key: 'value' }); @@ -94,6 +97,7 @@ arrayPromise = resourceArray[0].$query({ key: 'value' }, function () { }); arrayPromise = resourceArray[0].$query(function () { }); arrayPromise = resourceArray[0].$query(function () { }, function () { }); arrayPromise = resourceArray[0].$query({ key: 'value' }, function () { }, function () { }); +arrayPromise.then(function(data: ng.resource.IResourceArray) {}); promise = resource.$remove(); promise = resource.$remove({ key: 'value' }); diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts index 393362a95e..51b93091fa 100644 --- a/angularjs/angular-resource.d.ts +++ b/angularjs/angular-resource.d.ts @@ -98,9 +98,9 @@ declare module ng.resource { $get(params?: Object, success?: Function, error?: Function): ng.IPromise; $get(success: Function, error?: Function): ng.IPromise; - $query(): ng.IPromise; - $query(params?: Object, success?: Function, error?: Function): ng.IPromise; - $query(success: Function, error?: Function): ng.IPromise; + $query(): ng.IPromise>; + $query(params?: Object, success?: Function, error?: Function): ng.IPromise>; + $query(success: Function, error?: Function): ng.IPromise>; $save(): ng.IPromise; $save(params?: Object, success?: Function, error?: Function): ng.IPromise; @@ -124,7 +124,7 @@ declare module ng.resource { */ interface IResourceArray extends Array { /** the promise of the original server interaction that created this collection. **/ - $promise : ng.IPromise; + $promise : ng.IPromise>; $resolved : boolean; } From d9539f82c479ecb68987724159a8332ae7ce3a2b Mon Sep 17 00:00:00 2001 From: David Driscoll Date: Tue, 15 Apr 2014 15:12:23 -0400 Subject: [PATCH 006/132] Reduce text differences with the old version (Visual Studio being mean!) --- lodash/lodash-tests.disabled.ts | 588 ++++++++++++++++---------------- lodash/lodash.d.ts | 14 +- 2 files changed, 301 insertions(+), 301 deletions(-) diff --git a/lodash/lodash-tests.disabled.ts b/lodash/lodash-tests.disabled.ts index 97c2709405..de96b3d978 100644 --- a/lodash/lodash-tests.disabled.ts +++ b/lodash/lodash-tests.disabled.ts @@ -41,16 +41,16 @@ interface IKey { var foodsOrganic: IFoodOrganic[] = [ { name: 'banana', organic: true }, - { name: 'beet', organic: false }, + { name: 'beet', organic: false }, ]; var foodsType: IFoodType[] = [ - { name: 'apple', type: 'fruit' }, + { name: 'apple', type: 'fruit' }, { name: 'banana', type: 'fruit' }, - { name: 'beet', type: 'vegetable' } + { name: 'beet', type: 'vegetable' } ]; var foodsCombined: IFoodCombined[] = [ - { 'name': 'apple', 'organic': false, 'type': 'fruit' }, - { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } + { 'name': 'apple', 'organic': false, 'type': 'fruit' }, + { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } ]; var stoogesQuotes: IStoogesQuote[] = [ @@ -63,24 +63,24 @@ var stoogesAges: IStoogesAge[] = [ ]; var stoogesCombined: IStoogesCombined[] = [ - { 'name': 'curly', 'age': 30, 'quotes': ['Oh, a wise guy, eh?', 'Poifect!'] }, - { 'name': 'moe', 'age': 40, 'quotes': ['Spread out!', 'You knucklehead!'] } + { 'name': 'curly', 'age': 30, 'quotes': ['Oh, a wise guy, eh?', 'Poifect!'] }, + { 'name': 'moe', 'age': 40, 'quotes': ['Spread out!', 'You knucklehead!'] } ]; var keys: IKey[] = [ - { 'dir': 'left', 'code': 97 }, - { 'dir': 'right', 'code': 100 } + { 'dir': 'left', 'code': 97 }, + { 'dir': 'right', 'code': 100 } ]; class Dog { - constructor(public name: string) { } + constructor(public name: string) {} public bark() { - console.log('Woof, woof!'); + console.log('Woof, woof!'); } } -var result: any; +var result : any; /************* * Chaining * @@ -119,14 +119,14 @@ result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).splice(1); result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).splice(1, 2, 5, 6); result = <_.LoDashWrapper>_([1, 2, 3, 4]).unshift(5, 6); -result = _.tap([1, 2, 3, 4], function (array) { console.log(array); }); -result = <_.LoDashWrapper>_('test').tap(function (value) { console.log(value); }); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).tap(function (array) { console.log(array); }); +result = _.tap([1, 2, 3, 4], function(array) { console.log(array); }); +result = <_.LoDashWrapper>_('test').tap(function(value) { console.log(value); }); +result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).tap(function(array) { console.log(array); }); result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).tap(function (array) { console.log(array); }); result = _('test').toString(); result = _([1, 2, 3]).toString(); -result = _({ 'key1': 'test1', 'key2': 'test2' }).toString(); +result = _({'key1': 'test1', 'key2': 'test2'}).toString(); result = _('test').valueOf(); result = _([1, 2, 3]).valueOf(); @@ -140,10 +140,10 @@ result = <_.Dictionary>_(<{ [index: string]: string; }>{ 'key1': 'test1' // * Arrays * // *************/ result = _.compact([0, 1, false, 2, '', 3]); -result = <_.LoDashArrayWrapper>_([0, 1, false, 2, '', 3]).compact(); + result = <_.LoDashArrayWrapper>_([0, 1, false, 2, '', 3]).compact(); result = _.difference([1, 2, 3, 4, 5], [5, 2, 10]); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4, 5]).difference([5, 2, 10]); + result = <_.LoDashArrayWrapper>_([1, 2, 3, 4, 5]).difference([5, 2, 10]); result = _.rest([1, 2, 3]); result = _.rest([1, 2, 3], 2); @@ -163,48 +163,48 @@ result = _.tail([1, 2, 3], (num) => num < 3) result = _.tail(foodsOrganic, 'test') result = _.tail(foodsType, { 'type': 'value' }) -result = _.findIndex(['apple', 'banana', 'beet'], function (f) { - return /^b/.test(f); +result = _.findIndex(['apple', 'banana', 'beet'], function(f) { + return /^b/.test(f); }); result = _.findIndex(['apple', 'banana', 'beet'], 'apple'); -result = _.findIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple' }); +result = _.findIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple'}); -result = _.findLastIndex(['apple', 'banana', 'beet'], function (f: string) { - return /^b/.test(f); +result = _.findLastIndex(['apple', 'banana', 'beet'], function(f: string) { + return /^b/.test(f); }); result = _.findLastIndex(['apple', 'banana', 'beet'], 'apple'); -result = _.findLastIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple' }); +result = _.findLastIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple'}); result = _.first([1, 2, 3]); result = _.first([1, 2, 3], 2); -result = _.first([1, 2, 3], function (num) { - return num < 3; +result = _.first([1, 2, 3], function(num) { + return num < 3; }); result = _.first(foodsOrganic, 'organic'); result = _.first(foodsType, { 'type': 'fruit' }); -result = _.head([1, 2, 3]); -result = _.head([1, 2, 3], 2); -result = _.head([1, 2, 3], function (num) { - return num < 3; -}); -result = _.head(foodsOrganic, 'organic'); -result = _.head(foodsType, { 'type': 'fruit' }); + result = _.head([1, 2, 3]); + result = _.head([1, 2, 3], 2); + result = _.head([1, 2, 3], function(num) { + return num < 3; + }); + result = _.head(foodsOrganic, 'organic'); + result = _.head(foodsType, { 'type': 'fruit' }); -result = _.take([1, 2, 3]); -result = _.take([1, 2, 3], 2); -result = _.take([1, 2, 3], (num) => num < 3); -result = _.take(foodsOrganic, 'organic'); -result = _.take(foodsType, { 'type': 'fruit' }); + result = _.take([1, 2, 3]); + result = _.take([1, 2, 3], 2); + result = _.take([1, 2, 3], (num) => num < 3); + result = _.take(foodsOrganic, 'organic'); + result = _.take(foodsType, { 'type': 'fruit' }); result = _.flatten([1, [2], [3, [[4]]]]); result = _.flatten([1, [2], [3, [[4]]]], true); var result: any result = _.flatten(stoogesQuotes, 'quotes'); -result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(); -result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(true); -result = <_.LoDashArrayWrapper>_(stoogesQuotes).flatten('quotes'); + result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(); + result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(true); + result = <_.LoDashArrayWrapper>_(stoogesQuotes).flatten('quotes'); result = _.indexOf([1, 2, 3, 1, 2, 3], 2); result = _.indexOf([1, 2, 3, 1, 2, 3], 2, 3); @@ -212,8 +212,8 @@ result = _.indexOf([1, 1, 2, 2, 3, 3], 2, true); result = _.initial([1, 2, 3]); result = _.initial([1, 2, 3], 2); -result = _.initial([1, 2, 3], function (num) { - return num > 1; +result = _.initial([1, 2, 3], function(num) { + return num > 1; }); result = _.initial(foodsOrganic, 'organic'); result = _.initial(foodsType, { 'type': 'vegetable' }); @@ -222,8 +222,8 @@ result = _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); result = _.last([1, 2, 3]); result = _.last([1, 2, 3], 2); -result = _.last([1, 2, 3], function (num) { - return num > 1; +result = _.last([1, 2, 3], function(num) { + return num > 1; }); result = _.last(foodsOrganic, 'organic'); result = _.last(foodsType, { 'type': 'vegetable' }); @@ -231,8 +231,8 @@ result = _.last(foodsType, { 'type': 'vegetable' }); result = _.lastIndexOf([1, 2, 3, 1, 2, 3], 2); result = _.lastIndexOf([1, 2, 3, 1, 2, 3], 2, 3); -result = <{ [key: string]: any }>_.zipObject(['moe', 'larry'], [30, 40]); -result = <{ [key: string]: any }>_.object(['moe', 'larry'], [30, 40]); +result = <{[key: string]: any}>_.zipObject(['moe', 'larry'], [30, 40]); +result = <{[key: string]: any}>_.object(['moe', 'larry'], [30, 40]); result = _.pull([1, 2, 3, 1, 2, 3], 2, 3); @@ -243,39 +243,39 @@ result = _.range(0, -10, -1); result = _.range(1, 4, 0); result = _.range(0); -result = _.remove([1, 2, 3, 4, 5, 6], function (num: number) { return num % 2 == 0; }); +result = _.remove([1, 2, 3, 4, 5, 6], function(num: number) { return num % 2 == 0; }); result = _.remove(foodsOrganic, 'organic'); -result = _.remove(foodsType, { 'type': 'vegetable' }); +result = _.remove(foodsType, { 'type': 'vegetable'}); result = _.sortedIndex([20, 30, 50], 40); result = _.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x'); var sortedIndexDict = { - 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 } + 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 } }; -result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function (word) { - return sortedIndexDict.wordToNumber[word]; +result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { + return sortedIndexDict.wordToNumber[word]; }); -result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function (word) { - return this.wordToNumber[word]; +result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { + return this.wordToNumber[word]; }, sortedIndexDict); result = _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); result = _.uniq([1, 2, 1, 3, 1]); result = _.uniq([1, 1, 2, 2, 3], true); -result = _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function (letter) { - return letter.toLowerCase(); +result = _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { + return letter.toLowerCase(); }); -result = _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function (num) { return this.floor(num); }, Math); -result = <{ x: number; }[]>_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); +result = _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); +result = <{x: number;}[]>_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); -result = _.unique([1, 2, 1, 3, 1]); -result = _.unique([1, 1, 2, 2, 3], true); -result = _.unique(['A', 'b', 'C', 'a', 'B', 'c'], function (letter) { - return letter.toLowerCase(); -}); -result = _.unique([1, 2.5, 3, 1.5, 2, 3.5], function (num) { return this.floor(num); }, Math); -result = <{ x: number; }[]>_.unique([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + result = _.unique([1, 2, 1, 3, 1]); + result = _.unique([1, 1, 2, 2, 3], true); + result = _.unique(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { + return letter.toLowerCase(); + }); + result = _.unique([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); + result = <{x: number;}[]>_.unique([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); result = _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); @@ -294,13 +294,13 @@ result = _.contains([1, 2, 3], 1, 2); result = _.contains({ 'name': 'moe', 'age': 40 }, 'moe'); result = _.contains('curly', 'ur'); -result = _.include([1, 2, 3], 1); -result = _.include([1, 2, 3], 1, 2); -result = _.include({ 'name': 'moe', 'age': 40 }, 'moe'); -result = _.include('curly', 'ur'); + result = _.include([1, 2, 3], 1); + result = _.include([1, 2, 3], 1, 2); + result = _.include({ 'name': 'moe', 'age': 40 }, 'moe'); + result = _.include('curly', 'ur'); -result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function (num) { return Math.floor(num); }); -result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function (num) { return this.floor(num); }, Math); +result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function(num) { return Math.floor(num); }); +result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function(num) { return this.floor(num); }, Math); result = <_.Dictionary>_.countBy(['one', 'two', 'three'], 'length'); result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.3, 6.1, 6.4]).countBy(function (num) { return Math.floor(num); }); @@ -311,55 +311,55 @@ result = _.every([true, 1, null, 'yes'], Boolean); result = _.every(stoogesAges, 'age'); result = _.every(stoogesAges, { 'age': 50 }); -result = _.all([true, 1, null, 'yes'], Boolean); -result = _.all(stoogesAges, 'age'); -result = _.all(stoogesAges, { 'age': 50 }); + result = _.all([true, 1, null, 'yes'], Boolean); + result = _.all(stoogesAges, 'age'); + result = _.all(stoogesAges, { 'age': 50 }); -result = _.filter([1, 2, 3, 4, 5, 6], function (num) { return num % 2 == 0; }); +result = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); result = _.filter(foodsCombined, 'organic'); result = _.filter(foodsCombined, { 'type': 'fruit' }); -result = _([1, 2, 3, 4, 5, 6]).filter(function (num) { return num % 2 == 0; }).value(); -result = _(foodsCombined).filter('organic').value(); -result = _(foodsCombined).filter({ 'type': 'fruit' }).value(); + result = _([1, 2, 3, 4, 5, 6]).filter(function(num) { return num % 2 == 0; }).value(); + result = _(foodsCombined).filter('organic').value(); + result = _(foodsCombined).filter({ 'type': 'fruit' }).value(); -result = _.select([1, 2, 3, 4, 5, 6], function (num) { return num % 2 == 0; }); -result = _.select(foodsCombined, 'organic'); -result = _.select(foodsCombined, { 'type': 'fruit' }); + result = _.select([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); + result = _.select(foodsCombined, 'organic'); + result = _.select(foodsCombined, { 'type': 'fruit' }); -result = _([1, 2, 3, 4, 5, 6]).select(function (num) { return num % 2 == 0; }).value(); -result = _(foodsCombined).select('organic').value(); -result = _(foodsCombined).select({ 'type': 'fruit' }).value(); + result = _([1, 2, 3, 4, 5, 6]).select(function(num) { return num % 2 == 0; }).value(); + result = _(foodsCombined).select('organic').value(); + result = _(foodsCombined).select({ 'type': 'fruit' }).value(); -result = _.find([1, 2, 3, 4], function (num) { - return num % 2 == 0; +result = _.find([1, 2, 3, 4], function(num) { + return num % 2 == 0; }); result = _.find(foodsCombined, { 'type': 'vegetable' }); result = _.find(foodsCombined, 'organic'); -result = _.detect([1, 2, 3, 4], function (num) { - return num % 2 == 0; -}); -result = _.detect(foodsCombined, { 'type': 'vegetable' }); -result = _.detect(foodsCombined, 'organic'); + result = _.detect([1, 2, 3, 4], function(num) { + return num % 2 == 0; + }); + result = _.detect(foodsCombined, { 'type': 'vegetable' }); + result = _.detect(foodsCombined, 'organic'); -result = _.findWhere([1, 2, 3, 4], function (num) { - return num % 2 == 0; -}); -result = _.findWhere(foodsCombined, { 'type': 'vegetable' }); -result = _.findWhere(foodsCombined, 'organic'); + result = _.findWhere([1, 2, 3, 4], function(num) { + return num % 2 == 0; + }); + result = _.findWhere(foodsCombined, { 'type': 'vegetable' }); + result = _.findWhere(foodsCombined, 'organic'); -result = _.findLast([1, 2, 3, 4], function (num) { - return num % 2 == 0; +result = _.findLast([1, 2, 3, 4], function(num) { + return num % 2 == 0; }); result = _.findLast(foodsCombined, { 'type': 'vegetable' }); result = _.findLast(foodsCombined, 'organic'); -result = _.forEach([1, 2, 3], function (num) { console.log(num); }); -result = <_.Dictionary>_.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); +result = _.forEach([1, 2, 3], function(num) { console.log(num); }); +result = <_.Dictionary>_.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); -result = _.each([1, 2, 3], function (num) { console.log(num); }); -result = <_.Dictionary>_.each({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); + result = _.each([1, 2, 3], function(num) { console.log(num); }); + result = <_.Dictionary>_.each({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEach(function (num) { console.log(num); }); result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).forEach(function (num) { console.log(num); }); @@ -367,11 +367,11 @@ result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: numb result = <_.LoDashArrayWrapper>_([1, 2, 3]).each(function (num) { console.log(num); }); result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).each(function (num) { console.log(num); }); -result = _.forEachRight([1, 2, 3], function (num) { console.log(num); }); -result = <_.Dictionary>_.forEachRight({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); +result = _.forEachRight([1, 2, 3], function(num) { console.log(num); }); +result = <_.Dictionary>_.forEachRight({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); -result = _.eachRight([1, 2, 3], function (num) { console.log(num); }); -result = <_.Dictionary>_.eachRight({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { console.log(num); }); + result = _.eachRight([1, 2, 3], function(num) { console.log(num); }); + result = <_.Dictionary>_.eachRight({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEachRight(function (num) { console.log(num); }); result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).forEachRight(function (num) { console.log(num); }); @@ -379,80 +379,80 @@ result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: numb result = <_.LoDashArrayWrapper>_([1, 2, 3]).eachRight(function (num) { console.log(num); }); result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).eachRight(function (num) { console.log(num); }); -result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function (num) { return Math.floor(num); }); -result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function (num) { return this.floor(num); }, Math); +result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); }); +result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math); result = <_.Dictionary>_.groupBy(['one', 'two', 'three'], 'length'); -result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function (num) { return Math.floor(num); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function (num) { return this.floor(num); }, Math); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).groupBy('length'); + result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function(num) { return Math.floor(num); }); + result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function(num) { return this.floor(num); }, Math); + result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).groupBy('length'); result = <_.Dictionary>_.indexBy(keys, 'dir'); -result = <_.Dictionary>_.indexBy(keys, function (key) { return String.fromCharCode(key.code); }); -result = <_.Dictionary>_.indexBy(keys, function (key) { this.fromCharCode(key.code); }, String); +result = <_.Dictionary>_.indexBy(keys, function(key) { return String.fromCharCode(key.code); }); +result = <_.Dictionary>_.indexBy(keys, function(key) { this.fromCharCode(key.code); }, String); result = _.invoke([[5, 1, 7], [3, 2, 1]], 'sort'); result = _.invoke([123, 456], String.prototype.split, ''); -result = _.map([1, 2, 3], function (num) { return num * 3; }); -result = _.map({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { return num * 3; }); +result = _.map([1, 2, 3], function(num) { return num * 3; }); +result = _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); result = _.map(stoogesAges, 'name'); -result = _([1, 2, 3]).map(function (num) { return num * 3; }).value(); -result = _({ 'one': 1, 'two': 2, 'three': 3 }).map(function (num) { return num * 3; }).value(); -result = _(stoogesAges).map('name').value(); + result = _([1, 2, 3]).map(function(num) { return num * 3; }).value(); + result = _({ 'one': 1, 'two': 2, 'three': 3 }).map(function(num) { return num * 3; }).value(); + result = _(stoogesAges).map('name').value(); -result = _.collect([1, 2, 3], function (num) { return num * 3; }); -result = _.collect({ 'one': 1, 'two': 2, 'three': 3 }, function (num) { return num * 3; }); +result = _.collect([1, 2, 3], function(num) { return num * 3; }); +result = _.collect({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); result = _.collect(stoogesAges, 'name'); -result = _([1, 2, 3]).collect(function (num) { return num * 3; }).value(); -result = _({ 'one': 1, 'two': 2, 'three': 3 }).collect(function (num) { return num * 3; }).value(); -result = _(stoogesAges).collect('name').value(); + result = _([1, 2, 3]).collect(function(num) { return num * 3; }).value(); + result = _({ 'one': 1, 'two': 2, 'three': 3 }).collect(function(num) { return num * 3; }).value(); + result = _(stoogesAges).collect('name').value(); result = _.max([4, 2, 8, 6]); -result = _.max(stoogesAges, function (stooge) { return stooge.age; }); +result = _.max(stoogesAges, function(stooge) { return stooge.age; }); result = _.max(stoogesAges, 'age'); result = _.min([4, 2, 8, 6]); -result = _.min(stoogesAges, function (stooge) { return stooge.age; }); +result = _.min(stoogesAges, function(stooge) { return stooge.age; }); result = _.min(stoogesAges, 'age'); result = _.pluck(stoogesAges, 'name'); -result = _.reduce([1, 2, 3], function (sum: number, num: number) { - return sum + num; +result = _.reduce([1, 2, 3], function(sum: number, num: number) { + return sum + num; }); interface ABC { - a: number; - b: number; - c: number; + a: number; + b: number; + c: number; } -result = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function (r: ABC, num, key) { - r[key] = num * 3; - return r; +result = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { + r[key] = num * 3; + return r; }, {}); -result = _.foldl([1, 2, 3], function (sum, num) { - return sum + num; +result = _.foldl([1, 2, 3], function(sum, num) { + return sum + num; }); -result = _.foldl({ 'a': 1, 'b': 2, 'c': 3 }, function (r: ABC, num, key) { - r[key] = num * 3; - return r; +result = _.foldl({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { + r[key] = num * 3; + return r; }, {}); -result = _.inject([1, 2, 3], function (sum, num) { - return sum + num; +result = _.inject([1, 2, 3], function(sum, num) { + return sum + num; }); -result = _.inject({ 'a': 1, 'b': 2, 'c': 3 }, function (r: ABC, num, key) { - r[key] = num * 3; - return r; +result = _.inject({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { + r[key] = num * 3; + return r; }, {}); -result = _.reduceRight([[0, 1], [2, 3], [4, 5]], function (a: number[], b: number[]) { return a.concat(b); }, []); -result = _.foldr([[0, 1], [2, 3], [4, 5]], function (a: number[], b: number[]) { return a.concat(b); }, []); +result = _.reduceRight([[0, 1], [2, 3], [4, 5]], function(a: number[], b: number[]) { return a.concat(b); }, []); +result = _.foldr([[0, 1], [2, 3], [4, 5]], function(a: number[], b: number[]) { return a.concat(b); }, []); -result = _.reject([1, 2, 3, 4, 5, 6], function (num) { return num % 2 == 0; }); +result = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); result = _.reject(foodsCombined, 'organic'); result = _.reject(foodsCombined, { 'type': 'fruit' }); @@ -473,11 +473,11 @@ result = _.any([null, 0, 'yes', false], Boolean); result = _.any(foodsCombined, 'organic'); result = _.any(foodsCombined, { 'type': 'meat' }); -result = _.sortBy([1, 2, 3], function (num) { return Math.sin(num); }); -result = _.sortBy([1, 2, 3], function (num) { return this.sin(num); }, Math); +result = _.sortBy([1, 2, 3], function(num) { return Math.sin(num); }); +result = _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math); result = _.sortBy(['banana', 'strawberry', 'apple'], 'length'); -(function (a: number, b: number, c: number, d: number) { return _.toArray(arguments).slice(1); })(1, 2, 3, 4); +(function(a: number, b: number, c: number, d: number){ return _.toArray(arguments).slice(1); })(1, 2, 3, 4); result = _.where(stoogesCombined, { 'age': 40 }); result = _.where(stoogesCombined, { 'quotes': ['Poifect!'] }); @@ -489,20 +489,20 @@ var saves = ['profile', 'settings']; var asyncSave = (obj: any) => obj.done(); var done: Function; -done = _.after(saves.length, function () { - console.log('Done saving!'); +done = _.after(saves.length, function() { + console.log('Done saving!'); }); -_.forEach(saves, function (type) { - asyncSave({ 'type': type, 'complete': done }); +_.forEach(saves, function(type) { + asyncSave({ 'type': type, 'complete': done }); }); -done = _(saves.length).after(function () { - console.log('Done saving!'); +done = _(saves.length).after(function() { + console.log('Done saving!'); }).value(); -_.forEach(saves, function (type) { - asyncSave({ 'type': type, 'complete': done }); +_.forEach(saves, function(type) { + asyncSave({ 'type': type, 'complete': done }); }); var funcBind = function (greeting: string) { return greeting + ' ' + this.name }; @@ -513,8 +513,8 @@ var funcBind3: () => any = _(funcBind).bind({ 'name': 'moe' }, 'hi').value(); funcBind3(); var view = { - 'label': 'docs', - 'onClick': function () { console.log('clicked ' + this.label); } + 'label': 'docs', + 'onClick': function() { console.log('clicked ' + this.label); } }; view = _.bindAll(view); @@ -524,17 +524,17 @@ view = _(view).bindAll().value(); jQuery('#docs').on('click', view.onClick); var objectBindKey = { - 'name': 'moe', - 'greet': function (greeting: string) { - return greeting + ' ' + this.name; - } + 'name': 'moe', + 'greet': function(greeting: string) { + return greeting + ' ' + this.name; + } }; var funcBindKey: Function = _.bindKey(objectBindKey, 'greet', 'hi'); funcBindKey(); -objectBindKey.greet = function (greeting) { - return greeting + ', ' + this.name + '!'; +objectBindKey.greet = function(greeting) { + return greeting + ', ' + this.name + '!'; }; funcBindKey(); @@ -543,16 +543,16 @@ funcBindKey = _(objectBindKey).bindKey('greet', 'hi').value(); funcBindKey(); var realNameMap = { - 'curly': 'jerome' + 'curly': 'jerome' }; -var format = function (name: string) { - name = realNameMap[name.toLowerCase()] || name; - return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase(); +var format = function(name: string) { + name = realNameMap[name.toLowerCase()] || name; + return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase(); }; -var greet = function (formatted: string) { - return 'Hiya ' + formatted + '!'; +var greet = function(formatted: string) { + return 'Hiya ' + formatted + '!'; }; result = _.compose(greet, format); @@ -564,57 +564,57 @@ result = <() => boolean>_.createCallback(createCallbackObj); result = <_.LoDashObjectWrapper<() => any>>_('name').createCallback(); result = <_.LoDashObjectWrapper<() => boolean>>_(createCallbackObj).createCallback(); -result = _.curry(function (a, b, c) { - console.log(a + b + c); +result = _.curry(function(a, b, c) { + console.log(a + b + c); }); -result = <_.LoDashObjectWrapper>_(function (a, b, c) { - console.log(a + b + c); +result = <_.LoDashObjectWrapper>_(function(a, b, c) { + console.log(a + b + c); }).curry(); declare var source: any; -result = _.debounce(function () { }, 150); +result = _.debounce(function() {}, 150); -jQuery('#postbox').on('click', _.debounce(function () { }, 300, { - 'leading': true, - 'trailing': false +jQuery('#postbox').on('click', _.debounce(function() {}, 300, { + 'leading': true, + 'trailing': false })); -source.addEventListener('message', _.debounce(function () { }, 250, { - 'maxWait': 1000 +source.addEventListener('message', _.debounce(function() {}, 250, { + 'maxWait': 1000 }), false); -result = <_.LoDashObjectWrapper>_(function () { }).debounce(150); +result = <_.LoDashObjectWrapper>_(function() {}).debounce(150); -jQuery('#postbox').on('click', <_.LoDashObjectWrapper>_(function () { }).debounce(300, { - 'leading': true, - 'trailing': false +jQuery('#postbox').on('click', <_.LoDashObjectWrapper>_(function() {}).debounce(300, { + 'leading': true, + 'trailing': false })); -source.addEventListener('message', <_.LoDashObjectWrapper>_(function () { }).debounce(250, { - 'maxWait': 1000 +source.addEventListener('message', <_.LoDashObjectWrapper>_(function() {}).debounce(250, { + 'maxWait': 1000 }), false); var returnedDebounce = _.throttle(function (a) { return a * 5; }, 5); returnedThrottled(4); -result = _.defer(function () { console.log('deferred'); }); -result = <_.LoDashWrapper>_(function () { console.log('deferred'); }).defer(); +result = _.defer(function() { console.log('deferred'); }); +result = <_.LoDashWrapper>_(function() { console.log('deferred'); }).defer(); var log = _.bind(console.log, console); result = _.delay(log, 1000, 'logged later'); result = <_.LoDashWrapper>_(log).delay(1000, 'logged later'); -var fibonacci = _.memoize(function (n) { - return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); +var fibonacci = _.memoize(function(n) { + return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); }); var data = { - 'moe': { 'name': 'moe', 'age': 40 }, - 'curly': { 'name': 'curly', 'age': 60 } + 'moe': { 'name': 'moe', 'age': 40 }, + 'curly': { 'name': 'curly', 'age': 60 } }; -var stooge = _.memoize(function (name: string) { return data[name]; }, _.identity); +var stooge = _.memoize(function(name: string) { return data[name]; }, _.identity); stooge('curly'); stooge['cache']['curly'].name = 'jerome'; @@ -623,21 +623,21 @@ stooge('curly'); var returnedMemoize = _.throttle(function (a) { return a * 5; }, 5); returnedMemoize(4); -var initialize = _.once(function () { }); +var initialize = _.once(function(){ }); initialize(); initialize();'' var returnedOnce = _.throttle(function (a) { return a * 5; }, 5); returnedOnce(4); -var greetPartial = function (greeting: string, name: string) { return greeting + ' ' + name; }; +var greetPartial = function(greeting: string, name: string) { return greeting + ' ' + name; }; var hi = _.partial(greetPartial, 'hi'); hi('moe'); var defaultsDeep = _.partialRight(_.merge, _.defaults); var optionsPartialRight = { - 'variable': 'data', - 'imports': { 'jq': $ } + 'variable': 'data', + 'imports': { 'jq': $ } }; defaultsDeep(optionsPartialRight, _.templateSettings); @@ -645,16 +645,16 @@ defaultsDeep(optionsPartialRight, _.templateSettings); var throttled = _.throttle(function () { }, 100); jQuery(window).on('scroll', throttled); -jQuery('.interactive').on('click', _.throttle(function () { }, 300000, { - 'trailing': false +jQuery('.interactive').on('click', _.throttle(function() { }, 300000, { + 'trailing': false })); -var returnedThrottled = _.throttle(function (a) { return a * 5; }, 5); +var returnedThrottled = _.throttle(function (a) { return a*5; }, 5); returnedThrottled(4); -var helloWrap = function (name: string) { return 'hello ' + name; }; -var helloWrap2 = _.wrap(helloWrap, function (func) { - return 'before, ' + func('moe') + ', after'; +var helloWrap = function(name: string) { return 'hello ' + name; }; +var helloWrap2 = _.wrap(helloWrap, function(func) { + return 'before, ' + func('moe') + ', after'; }); helloWrap2(); @@ -662,93 +662,93 @@ helloWrap2(); * Objects * ***********/ interface NameAge { - name: string; - age: number; + name: string; + age: number; } result = _.assign({ 'name': 'moe' }, { 'age': 40 }); -result = _.assign({ 'name': 'moe' }, { 'age': 40 }, function (a, b) { - return typeof a == 'undefined' ? b : a; +result = _.assign({ 'name': 'moe' }, { 'age': 40 }, function(a, b) { + return typeof a == 'undefined' ? b : a; }); result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }); -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }, function (a, b) { - return typeof a == 'undefined' ? b : a; +result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }, function(a, b) { + return typeof a == 'undefined' ? b : a; }); result = _.extend({ 'name': 'moe' }, { 'age': 40 }); -result = _.extend({ 'name': 'moe' }, { 'age': 40 }, function (a, b) { - return typeof a == 'undefined' ? b : a; +result = _.extend({ 'name': 'moe' }, { 'age': 40 }, function(a, b) { + return typeof a == 'undefined' ? b : a; }); result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }); -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }, function (a, b) { - return typeof a == 'undefined' ? b : a; +result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }, function(a, b) { + return typeof a == 'undefined' ? b : a; }); result = _.clone(stoogesAges); result = _.clone(stoogesAges, true); -result = _.clone(stoogesAges, true, function (value) { - return _.isElement(value) ? value.cloneNode(false) : undefined; +result = _.clone(stoogesAges, true, function(value) { + return _.isElement(value) ? value.cloneNode(false) : undefined; }); result = _.cloneDeep(stoogesAges); -result = _.cloneDeep(stoogesAges, function (value) { - return _.isElement(value) ? value.cloneNode(false) : undefined; +result = _.cloneDeep(stoogesAges, function(value) { + return _.isElement(value) ? value.cloneNode(false) : undefined; }); interface Food { - name: string; - type: string; + name: string; + type: string; } var foodDefaults = { 'name': 'apple' }; result = _.defaults(foodDefaults, { 'name': 'banana', 'type': 'fruit' }); -result = <_.LoDashObjectWrapper>_(foodDefaults).defaults({ 'name': 'banana', 'type': 'fruit' }); + result = <_.LoDashObjectWrapper>_(foodDefaults).defaults({ 'name': 'banana', 'type': 'fruit' }); -result = _.findKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function (num) { - return num % 2 == 0; +result = _.findKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function(num) { + return num % 2 == 0; }); -result = _.findLastKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function (num) { - return num % 2 == 1; +result = _.findLastKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function(num) { + return num % 2 == 1; }); -result = _.forIn(new Dog('Dagny'), function (value, key) { - console.log(key); +result = _.forIn(new Dog('Dagny'), function(value, key) { + console.log(key); }); -result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forIn(function (value, key) { - console.log(key); +result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forIn(function(value, key) { + console.log(key); }); -result = _.forInRight(new Dog('Dagny'), function (value, key) { - console.log(key); +result = _.forInRight(new Dog('Dagny'), function(value, key) { + console.log(key); }); -result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forInRight(function (value, key) { - console.log(key); +result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forInRight(function(value, key) { + console.log(key); }); interface ZeroOne { - 0: string; - 1: string; - one: string; + 0: string; + 1: string; + one: string; } -result = _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function (num, key) { - console.log(key); +result = _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { + console.log(key); }); -result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwn(function (num, key) { - console.log(key); + result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwn(function(num, key) { + console.log(key); + }); + +result = _.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { + console.log(key); }); -result = _.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function (num, key) { - console.log(key); -}); - -result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwnRight(function (num, key) { - console.log(key); -}); + result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwnRight(function(num, key) { + console.log(key); + }); result = _.functions(_); result = _.methods(_); @@ -759,12 +759,12 @@ result = <_.LoDashArrayWrapper>_(_).methods(); result = _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b'); interface FirstSecond { - first: string; - second: string; + first: string; + second: string; } result = _.invert({ 'first': 'moe', 'second': 'larry' }); -(function (...args: any[]) { return _.isArguments(arguments); })(1, 2, 3); +(function(...args: any[]) { return _.isArguments(arguments); })(1, 2, 3); (function () { return _.isArray(arguments); })(); result = _.isArray([1, 2, 3]); @@ -787,12 +787,12 @@ result = _.isEqual(moe, copy); var words = ['hello', 'goodbye']; var otherWords = ['hi', 'goodbye']; -result = _.isEqual(words, otherWords, function (a, b) { - var reGreet = /^(?:hello|hi)$/i, - aGreet = _.isString(a) && reGreet.test(a), - bGreet = _.isString(b) && reGreet.test(b); +result = _.isEqual(words, otherWords, function(a, b) { + var reGreet = /^(?:hello|hi)$/i, + aGreet = _.isString(a) && reGreet.test(a), + bGreet = _.isString(b) && reGreet.test(b); - return (aGreet || bGreet) ? (aGreet == bGreet) : undefined; + return (aGreet || bGreet) ? (aGreet == bGreet) : undefined; }); result = _.isFinite(-101); @@ -820,7 +820,7 @@ class Stooge { constructor( public name: string, public age: number - ) { } + ) {} } result = _.isPlainObject(new Stooge('moe', 40)); @@ -836,67 +836,67 @@ result = _.isUndefined(void 0); result = _.keys({ 'one': 1, 'two': 2, 'three': 3 }); var mergeNames = { - 'stooges': [ - { 'name': 'moe' }, - { 'name': 'larry' } - ] + 'stooges': [ + { 'name': 'moe' }, + { 'name': 'larry' } + ] }; var mergeAges = { - 'stooges': [ - { 'age': 40 }, - { 'age': 50 } - ] + 'stooges': [ + { 'age': 40 }, + { 'age': 50 } + ] }; result = _.merge(mergeNames, mergeAges); var mergeFood = { - 'fruits': ['apple'], - 'vegetables': ['beet'] + 'fruits': ['apple'], + 'vegetables': ['beet'] }; var mergeOtherFood = { - 'fruits': ['banana'], - 'vegetables': ['carrot'] + 'fruits': ['banana'], + 'vegetables': ['carrot'] }; interface FruitVeg { - fruits: string[]; - vegetables: string[] + fruits: string[]; + vegetables: string[] }; -result = _.merge(mergeFood, mergeOtherFood, function (a, b) { - return _.isArray(a) ? a.concat(b) : undefined; +result = _.merge(mergeFood, mergeOtherFood, function(a, b) { + return _.isArray(a) ? a.concat(b) : undefined; }); interface HasName { - name: string; + name: string; } result = _.omit({ 'name': 'moe', 'age': 40 }, 'age'); result = _.omit({ 'name': 'moe', 'age': 40 }, ['age']); -result = _.omit({ 'name': 'moe', 'age': 40 }, function (value) { - return typeof value == 'number'; +result = _.omit({ 'name': 'moe', 'age': 40 }, function(value) { + return typeof value == 'number'; }); result = _.pairs({ 'moe': 30, 'larry': 40 }); result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, 'name'); result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, ['name']); -result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, function (value, key) { - return key.charAt(0) != '_'; +result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, function(value, key) { + return key.charAt(0) != '_'; }); -result = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function (r, num) { - num *= num; - if (num % 2) { - return r.push(num) < 3; - } +result = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(r, num) { + num *= num; + if (num % 2) { + return r.push(num) < 3; + } }); // → [1, 9, 25] -result = <{ a: number; b: number; c: number; }>_.transform({ 'a': 1, 'b': 2, 'c': 3 }, function (r, num, key) { - r[key] = num * 3; +result = <{a:number;b:number;c:number;}>_.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(r, num, key) { + r[key] = num * 3; }); result = _.values({ 'one': 1, 'two': 2, 'three': 3 }); @@ -910,9 +910,9 @@ result = _.escape('Moe, Larry & Curly'); result = <{ name: string }>_.identity({ 'name': 'moe' }); _.mixin({ - 'capitalize': function (string) { - return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); - } + 'capitalize': function(string) { + return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); + } }); var lodash = _.noConflict(); @@ -926,10 +926,10 @@ result = _.random(1.2, 5.2); result = _.random(0, 5, true); var object = { - 'cheese': 'crumpets', - 'stuff': function () { - return 'nonsense'; - } + 'cheese': 'crumpets', + 'stuff': function() { + return 'nonsense'; + } }; result = _.result(object, 'cheese'); @@ -963,10 +963,10 @@ class Mage { } } -var mage = new Mage(); +var mage = new Mage(); result = _.times(3, <() => number>_.partial(_.random, 1, 6)); -result = _.times(3, function (n: number) { mage.castSpell(n); }); -result = _.times(3, function (n: number) { this.cast(n); }, mage); +result = _.times(3, function(n: number) { mage.castSpell(n); }); +result = _.times(3, function(n: number) { this.cast(n); }, mage); result = _.unescape('Moe, Larry & Curly'); diff --git a/lodash/lodash.d.ts b/lodash/lodash.d.ts index 3c4b572c15..80b1940c98 100644 --- a/lodash/lodash.d.ts +++ b/lodash/lodash.d.ts @@ -181,15 +181,15 @@ declare module _ { **/ valueOf(): T; - /** - * @see valueOf - **/ - value(): T; - } + /** + * @see valueOf + **/ + value(): T; + } - interface LoDashWrapper extends LoDashWrapperBase> { } + interface LoDashWrapper extends LoDashWrapperBase> {} - interface LoDashObjectWrapper extends LoDashWrapperBase> { } + interface LoDashObjectWrapper extends LoDashWrapperBase> {} interface LoDashArrayWrapper extends LoDashWrapperBase> { concat(...items: T[]): LoDashArrayWrapper; From c5d83cb079e9ceae34c5d854ba4eefef28d2091e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20B=C3=BCrk?= Date: Mon, 21 Apr 2014 00:32:05 +0200 Subject: [PATCH 007/132] #1659: Added BigInteger.js (flattened commit) --- CONTRIBUTORS.md | 1 + bigInteger/bigInteger-tests.ts | 95 +++++++++++++++++++ bigInteger/bigInteger.d.ts | 161 +++++++++++++++++++++++++++++++++ 3 files changed, 257 insertions(+) create mode 100644 bigInteger/bigInteger-tests.ts create mode 100644 bigInteger/bigInteger.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 54ae0cdc8c..d68e3061cc 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -22,6 +22,7 @@ All definitions files include a header with the author and editors, so at some p * [Atom](https://atom.io/) (by [vvakame](https://github.com/vvakame)) * [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) * [Backbone Relational](http://backbonerelational.org/) (by [Eirik Hoem](https://github.com/eirikhm)) +* [BigInteger](https://github.com/peterolson/BigInteger.js) (by [Ingo Bürk](https://github.com/Airblader)) * [BigScreen](http://brad.is/coding/BigScreen/) (by [Douglas Eichelberger](https://github.com/dduugg)) * [Bluebird](https://github.com/petkaantonov/bluebird) (by [Bart van der Schoor](https://github.com/Bartvds)) * [Bootbox](https://github.com/makeusabrew/bootbox) (by [Vincent Bortone](https://github.com/vbortone/)) diff --git a/bigInteger/bigInteger-tests.ts b/bigInteger/bigInteger-tests.ts new file mode 100644 index 0000000000..7940b86296 --- /dev/null +++ b/bigInteger/bigInteger-tests.ts @@ -0,0 +1,95 @@ +/// + +// constructor tests +var noArgument = bigInt(), + numberArgument = bigInt( 93 ), + stringArgument = bigInt( "75643564363473453456342378564387956906736546456235345" ), + bigIntArgument = bigInt( noArgument ); + +// method tests +var x = bigInt(), + isBigInteger: BigInteger, + isNumber: number, + isBoolean: boolean, + isString: string, + isDivmod: { + quotient: BigInteger; + remainder: BigInteger; + }; + +isBigInteger = x.abs(); + +isBigInteger = x.add( 0 ); +isBigInteger = x.add( x ); + +isBigInteger = x.compare( 0 ); +isBigInteger = x.compare( x ); + +isBigInteger = x.compareAbs( 0 ); +isBigInteger = x.compareAbs( x ); + +isBigInteger = x.divide( 0 ); +isBigInteger = x.divide( x ); + +isDivmod = x.divmod( 0 ); +isDivmod = x.divmod( x ); + +isBoolean = x.equals( 0 ); +isBoolean = x.equals( x ); + +isBoolean = x.greater( 0 ); +isBoolean = x.greater( x ); + +isBoolean = x.greaterOrEquals( 0 ); +isBoolean = x.greaterOrEquals( x ); + +isBoolean = x.isEven(); + +isBoolean = x.isNegative(); + +isBoolean = x.isOdd(); + +isBoolean = x.isPositive(); + +isBoolean = x.lesser( 0 ); +isBoolean = x.lesser( x ); + +isBoolean = x.lesserOrEquals( 0 ); +isBoolean = x.lesserOrEquals( x ); + +isBigInteger = x.minus( 0 ); +isBigInteger = x.minus( x ); + +isBigInteger = x.mod( 0 ); +isBigInteger = x.mod( x ); + +isBigInteger = x.multiply( 0 ); +isBigInteger = x.multiply( x ); + +isBigInteger = x.next(); + +isBoolean = x.notEquals( 0 ); +isBoolean = x.notEquals( x ); + +isBigInteger = x.over( 0 ); +isBigInteger = x.over( x ); + +isBigInteger = x.plus( 0 ); +isBigInteger = x.plus( x ); + +isBigInteger = x.pow( 0 ); +isBigInteger = x.pow( x ); + +isBigInteger = x.prev(); + +isBigInteger = x.subtract( 0 ); +isBigInteger = x.subtract( x ); + +isBigInteger = x.times( 0 ); +isBigInteger = x.times( x ); + +isNumber = x.toJSNumber(); + +isString = x.toString(); + +isNumber = x.valueOf(); \ No newline at end of file diff --git a/bigInteger/bigInteger.d.ts b/bigInteger/bigInteger.d.ts new file mode 100644 index 0000000000..ed03fc5ea1 --- /dev/null +++ b/bigInteger/bigInteger.d.ts @@ -0,0 +1,161 @@ +// Type definitions for BigInteger.js +// Project: https://github.com/peterolson/BigInteger.js +// Definitions by: Ingo Bürk +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface BigInteger { + /** Returns the absolute value of a bigInt. */ + abs(): BigInteger; + + /** Performs addition */ + add( number: number ): BigInteger; + /** Performs addition */ + add( number: BigInteger ): BigInteger; + + /** Alias for the add method. */ + plus( number: number ): BigInteger; + /** Alias for the add method. */ + plus( number: BigInteger ): BigInteger; + + /** Alias for the subtract method. */ + minus( number: number ): BigInteger; + /** Alias for the subtract method. */ + minus( number: BigInteger ): BigInteger; + + /** Performs subtraction. */ + subtract( number: number ): BigInteger; + /** Performs subtraction. */ + subtract( number: BigInteger ): BigInteger; + + /** Performs multiplication. */ + multiply( number: number ): BigInteger; + /** Performs multiplication. */ + multiply( number: BigInteger ): BigInteger; + + /** Alias for the multiply method. */ + times( number: number ): BigInteger; + /** Alias for the multiply method. */ + times( number: BigInteger ): BigInteger; + + /** Performs integer division, disregarding the remainder. */ + divide( number: number ): BigInteger; + /** Performs integer division, disregarding the remainder. */ + divide( number: BigInteger ): BigInteger; + + /** Alias for the divide method. */ + over( number: number ): BigInteger; + /** Alias for the divide method. */ + over( number: BigInteger ): BigInteger; + + /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */ + pow( number: number ): BigInteger; + /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */ + pow( number: BigInteger ): BigInteger; + + /** Adds one to the number. */ + next(): BigInteger; + + /** Subtracts one from the number. */ + prev(): BigInteger; + + /** Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. */ + mod( number: number ): BigInteger; + /** Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. */ + mod( number: BigInteger ): BigInteger; + + /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */ + divmod( number: number ): { quotient: BigInteger; remainder: BigInteger }; + /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */ + divmod( number: BigInteger ): { quotient: BigInteger; remainder: BigInteger }; + + /** Checks if the first number is greater than the second. */ + greater( number: number ): boolean; + /** Checks if the first number is greater than the second. */ + greater( number: BigInteger ): boolean; + + /** Checks if the first number is greater than or equal to the second. */ + greaterOrEquals( number: number ): boolean; + /** Checks if the first number is greater than or equal to the second. */ + greaterOrEquals( number: BigInteger ): boolean; + + /** Checks if the first number is lesser than the second. */ + lesser( number: number ): boolean; + /** Checks if the first number is lesser than the second. */ + lesser( number: BigInteger ): boolean; + + /** Checks if the first number is less than or equal to the second. */ + lesserOrEquals( number: number ): boolean; + /** Checks if the first number is less than or equal to the second. */ + lesserOrEquals( number: BigInteger ): boolean; + + /** Returns true if the number is even, false otherwise. */ + isEven(): boolean; + + /** Returns true if the number is odd, false otherwise. */ + isOdd(): boolean; + + /** Return true if the number is positive, false otherwise. Returns true for 0 and false for -0. */ + isPositive(): boolean; + + /** Returns true if the number is negative, false otherwise. Returns false for 0 and true for -0. */ + isNegative(): boolean; + + /** + * Performs a comparison between two numbers. If the numbers are equal, it returns 0. + * If the first number is greater, it returns 1. If the first number is lesser, it returns -1. + */ + compare( number: number ): BigInteger; + /** + * Performs a comparison between two numbers. If the numbers are equal, it returns 0. + * If the first number is greater, it returns 1. If the first number is lesser, it returns -1. + */ + compare( number: BigInteger ): BigInteger; + + /** Performs a comparison between the absolute value of two numbers. */ + compareAbs( number: number ): BigInteger; + /** Performs a comparison between the absolute value of two numbers. */ + compareAbs( number: BigInteger ): BigInteger; + + /** Checks if two numbers are equal. */ + equals( number: number ): boolean; + /** Checks if two numbers are equal. */ + equals( number: BigInteger ): boolean; + + /** Checks if two numbers are not equal. */ + notEquals( number: number ): boolean; + /** Checks if two numbers are not equal. */ + notEquals( number: BigInteger ): boolean; + + /** Converts a bigInt into a native Javascript number. Loses precision for numbers outside the range. */ + toJSNumber(): number; + + /** Converts a bigInt to a string. */ + toString(): string; + + /** Converts a bigInt to a native Javascript number. This override allows you to use native arithmetic operators without explicit conversion. */ + valueOf(): number; +} + +interface BigIntegerStatic { + /** Equivalent to bigInt(1) */ + one: BigInteger; + /** Equivalent to bigInt(0) */ + zero: BigInteger; + /** Equivalent to bigInt(-1) */ + minusOne: BigInteger; + + /** Equivalent to bigInt(0) */ + (): BigInteger; + /** Parse a Javascript number into a bigInt */ + ( number: number ): BigInteger; + /** Parse a string into a bigInt */ + ( string: string ): BigInteger; + /** no-op */ + ( bigInt: BigInteger ): BigInteger; +} + +declare var bigInt: BigIntegerStatic; + +declare module "BigInteger" { + export = bigInt; +} \ No newline at end of file From 6416531210d6a22e582214a5f683334469c0970d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20B=C3=BCrk?= Date: Mon, 21 Apr 2014 00:42:58 +0200 Subject: [PATCH 008/132] #2073 BigInteger.js: added string signatures for all methods --- bigInteger/bigInteger-tests.ts | 19 ++++++++++++++++ bigInteger/bigInteger.d.ts | 41 ++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/bigInteger/bigInteger-tests.ts b/bigInteger/bigInteger-tests.ts index 7940b86296..225b2118de 100644 --- a/bigInteger/bigInteger-tests.ts +++ b/bigInteger/bigInteger-tests.ts @@ -21,27 +21,35 @@ isBigInteger = x.abs(); isBigInteger = x.add( 0 ); isBigInteger = x.add( x ); +isBigInteger = x.add( "100" ); isBigInteger = x.compare( 0 ); isBigInteger = x.compare( x ); +isBigInteger = x.compare( "100" ); isBigInteger = x.compareAbs( 0 ); isBigInteger = x.compareAbs( x ); +isBigInteger = x.compareAbs( "100" ); isBigInteger = x.divide( 0 ); isBigInteger = x.divide( x ); +isBigInteger = x.divide( "100" ); isDivmod = x.divmod( 0 ); isDivmod = x.divmod( x ); +isDivmod = x.divmod( "100" ); isBoolean = x.equals( 0 ); isBoolean = x.equals( x ); +isBoolean = x.equals( "100" ); isBoolean = x.greater( 0 ); isBoolean = x.greater( x ); +isBoolean = x.greater( "100" ); isBoolean = x.greaterOrEquals( 0 ); isBoolean = x.greaterOrEquals( x ); +isBoolean = x.greaterOrEquals( "100" ); isBoolean = x.isEven(); @@ -53,40 +61,51 @@ isBoolean = x.isPositive(); isBoolean = x.lesser( 0 ); isBoolean = x.lesser( x ); +isBoolean = x.lesser( "100" ); isBoolean = x.lesserOrEquals( 0 ); isBoolean = x.lesserOrEquals( x ); +isBoolean = x.lesserOrEquals( "100" ); isBigInteger = x.minus( 0 ); isBigInteger = x.minus( x ); +isBigInteger = x.minus( "100" ); isBigInteger = x.mod( 0 ); isBigInteger = x.mod( x ); +isBigInteger = x.mod( "100" ); isBigInteger = x.multiply( 0 ); isBigInteger = x.multiply( x ); +isBigInteger = x.multiply( "100" ); isBigInteger = x.next(); isBoolean = x.notEquals( 0 ); isBoolean = x.notEquals( x ); +isBoolean = x.notEquals( "100" ); isBigInteger = x.over( 0 ); isBigInteger = x.over( x ); +isBigInteger = x.over( "100" ); isBigInteger = x.plus( 0 ); isBigInteger = x.plus( x ); +isBigInteger = x.plus( "100" ); isBigInteger = x.pow( 0 ); isBigInteger = x.pow( x ); +isBigInteger = x.pow( "100" ); isBigInteger = x.prev(); isBigInteger = x.subtract( 0 ); isBigInteger = x.subtract( x ); +isBigInteger = x.subtract( "100" ); isBigInteger = x.times( 0 ); isBigInteger = x.times( x ); +isBigInteger = x.times( "100" ); isNumber = x.toJSNumber(); diff --git a/bigInteger/bigInteger.d.ts b/bigInteger/bigInteger.d.ts index ed03fc5ea1..a98fad7e79 100644 --- a/bigInteger/bigInteger.d.ts +++ b/bigInteger/bigInteger.d.ts @@ -11,46 +11,64 @@ interface BigInteger { add( number: number ): BigInteger; /** Performs addition */ add( number: BigInteger ): BigInteger; + /** Performs addition */ + add( number: string ): BigInteger; /** Alias for the add method. */ plus( number: number ): BigInteger; /** Alias for the add method. */ plus( number: BigInteger ): BigInteger; + /** Alias for the add method. */ + plus( number: string ): BigInteger; /** Alias for the subtract method. */ minus( number: number ): BigInteger; /** Alias for the subtract method. */ minus( number: BigInteger ): BigInteger; + /** Alias for the subtract method. */ + minus( number: string ): BigInteger; /** Performs subtraction. */ subtract( number: number ): BigInteger; /** Performs subtraction. */ subtract( number: BigInteger ): BigInteger; + /** Performs subtraction. */ + subtract( number: string ): BigInteger; /** Performs multiplication. */ multiply( number: number ): BigInteger; /** Performs multiplication. */ multiply( number: BigInteger ): BigInteger; + /** Performs multiplication. */ + multiply( number: string ): BigInteger; /** Alias for the multiply method. */ times( number: number ): BigInteger; /** Alias for the multiply method. */ times( number: BigInteger ): BigInteger; + /** Alias for the multiply method. */ + times( number: string ): BigInteger; /** Performs integer division, disregarding the remainder. */ divide( number: number ): BigInteger; /** Performs integer division, disregarding the remainder. */ divide( number: BigInteger ): BigInteger; + /** Performs integer division, disregarding the remainder. */ + divide( number: string ): BigInteger; /** Alias for the divide method. */ over( number: number ): BigInteger; /** Alias for the divide method. */ over( number: BigInteger ): BigInteger; + /** Alias for the divide method. */ + over( number: string ): BigInteger; /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */ pow( number: number ): BigInteger; /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */ pow( number: BigInteger ): BigInteger; + /** Performs exponentiation. If the exponent is less than 0, pow returns 0. bigInt.zero.pow(0) returns 1. */ + pow( number: string ): BigInteger; /** Adds one to the number. */ next(): BigInteger; @@ -62,31 +80,43 @@ interface BigInteger { mod( number: number ): BigInteger; /** Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. */ mod( number: BigInteger ): BigInteger; + /** Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. */ + mod( number: string ): BigInteger; /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */ divmod( number: number ): { quotient: BigInteger; remainder: BigInteger }; /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */ divmod( number: BigInteger ): { quotient: BigInteger; remainder: BigInteger }; + /** Performs division and returns an object with two properties: quotient and remainder. The sign of the remainder will match the sign of the dividend. */ + divmod( number: string ): { quotient: BigInteger; remainder: BigInteger }; /** Checks if the first number is greater than the second. */ greater( number: number ): boolean; /** Checks if the first number is greater than the second. */ greater( number: BigInteger ): boolean; + /** Checks if the first number is greater than the second. */ + greater( number: string ): boolean; /** Checks if the first number is greater than or equal to the second. */ greaterOrEquals( number: number ): boolean; /** Checks if the first number is greater than or equal to the second. */ greaterOrEquals( number: BigInteger ): boolean; + /** Checks if the first number is greater than or equal to the second. */ + greaterOrEquals( number: string ): boolean; /** Checks if the first number is lesser than the second. */ lesser( number: number ): boolean; /** Checks if the first number is lesser than the second. */ lesser( number: BigInteger ): boolean; + /** Checks if the first number is lesser than the second. */ + lesser( number: string ): boolean; /** Checks if the first number is less than or equal to the second. */ lesserOrEquals( number: number ): boolean; /** Checks if the first number is less than or equal to the second. */ lesserOrEquals( number: BigInteger ): boolean; + /** Checks if the first number is less than or equal to the second. */ + lesserOrEquals( number: string ): boolean; /** Returns true if the number is even, false otherwise. */ isEven(): boolean; @@ -110,21 +140,32 @@ interface BigInteger { * If the first number is greater, it returns 1. If the first number is lesser, it returns -1. */ compare( number: BigInteger ): BigInteger; + /** + * Performs a comparison between two numbers. If the numbers are equal, it returns 0. + * If the first number is greater, it returns 1. If the first number is lesser, it returns -1. + */ + compare( number: string ): BigInteger; /** Performs a comparison between the absolute value of two numbers. */ compareAbs( number: number ): BigInteger; /** Performs a comparison between the absolute value of two numbers. */ compareAbs( number: BigInteger ): BigInteger; + /** Performs a comparison between the absolute value of two numbers. */ + compareAbs( number: string ): BigInteger; /** Checks if two numbers are equal. */ equals( number: number ): boolean; /** Checks if two numbers are equal. */ equals( number: BigInteger ): boolean; + /** Checks if two numbers are equal. */ + equals( number: string ): boolean; /** Checks if two numbers are not equal. */ notEquals( number: number ): boolean; /** Checks if two numbers are not equal. */ notEquals( number: BigInteger ): boolean; + /** Checks if two numbers are not equal. */ + notEquals( number: string ): boolean; /** Converts a bigInt into a native Javascript number. Loses precision for numbers outside the range. */ toJSNumber(): number; From f723f78dc43ee468aa9c3d69975a6e511b3efb3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20B=C3=BCrk?= Date: Mon, 21 Apr 2014 01:52:28 +0200 Subject: [PATCH 009/132] #2073: fix spelling --- .../bigInteger-tests.ts => big-integer/big-integer-tests.ts | 2 +- bigInteger/bigInteger.d.ts => big-integer/big-integer.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename bigInteger/bigInteger-tests.ts => big-integer/big-integer-tests.ts (98%) rename bigInteger/bigInteger.d.ts => big-integer/big-integer.d.ts (99%) diff --git a/bigInteger/bigInteger-tests.ts b/big-integer/big-integer-tests.ts similarity index 98% rename from bigInteger/bigInteger-tests.ts rename to big-integer/big-integer-tests.ts index 225b2118de..3b9fb8745f 100644 --- a/bigInteger/bigInteger-tests.ts +++ b/big-integer/big-integer-tests.ts @@ -1,4 +1,4 @@ -/// +/// // constructor tests var noArgument = bigInt(), diff --git a/bigInteger/bigInteger.d.ts b/big-integer/big-integer.d.ts similarity index 99% rename from bigInteger/bigInteger.d.ts rename to big-integer/big-integer.d.ts index a98fad7e79..dfadc49629 100644 --- a/bigInteger/bigInteger.d.ts +++ b/big-integer/big-integer.d.ts @@ -197,6 +197,6 @@ interface BigIntegerStatic { declare var bigInt: BigIntegerStatic; -declare module "BigInteger" { +declare module "big-integer" { export = bigInt; } \ No newline at end of file From 1975cba549763a5f35db7e0845e0075c75db64c0 Mon Sep 17 00:00:00 2001 From: "Omid K. Rad" Date: Wed, 16 Apr 2014 15:54:26 -0700 Subject: [PATCH 010/132] Added definitions for Handlebars Runtime --- handlebars/handlebars.d.ts | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/handlebars/handlebars.d.ts b/handlebars/handlebars.d.ts index ceff786637..0c8fdbf0f7 100644 --- a/handlebars/handlebars.d.ts +++ b/handlebars/handlebars.d.ts @@ -4,22 +4,45 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped +// Use either HandlebarsStatic or HandlebarsRuntimeStatic declare var Handlebars: HandlebarsStatic; +//declare var Handlebars: HandlebarsRuntimeStatic; -interface HandlebarsStatic { +/** +* Implement this interface on your MVW/MVVM/MVC views such as Backbone.View +**/ +interface HandlebarsTemplatable { + template: HandlebarsTemplateDelegate; +} + +interface HandlebarsTemplateDelegate { + (context: any, options?: any): string; +} + +interface HandlebarsCommon { registerHelper(name: string, fn: Function, inverse?: boolean): void; registerPartial(name: string, str: any): void; K(): void; createFrame(object: any): any; + Exception(message: string): void; SafeString: typeof SafeString; - parse(input: string): boolean; + logger: Logger; log(level: number, obj: any): void; - compile(input: any, options?: any): (context?: any, options?: any) => string; Logger: typeof Logger; } +interface HandlebarsStatic extends HandlebarsCommon { + parse(input: string): boolean; + compile(input: any, options?: any): HandlebarsTemplateDelegate; +} + +interface HandlebarsRuntimeStatic extends HandlebarsCommon { + // Handlebars.templates is the default template namespace in precompiler. + templates: { (s: string): HandlebarsTemplateDelegate }[]; +} + declare class SafeString { constructor(str: string); static toString(): string; From 63c560a05f51ac7796031627db215e3bb990f000 Mon Sep 17 00:00:00 2001 From: Seon-Wook Park Date: Tue, 22 Apr 2014 15:43:58 +0200 Subject: [PATCH 011/132] Add definitions for github.com/sandeepmistry/noble --- CONTRIBUTORS.md | 1 + noble/noble-tests.ts | 83 ++++++++++++++++++++++++++++++++++ noble/noble.d.ts | 105 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 189 insertions(+) create mode 100644 noble/noble-tests.ts create mode 100644 noble/noble.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 54ae0cdc8c..b26e55b1b5 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -200,6 +200,7 @@ All definitions files include a header with the author and editors, so at some p * [Mousetrap](http://craig.is/killing/mice) (by [Dániel Tar](https://github.com/qcz)) * [msgpack.js](https://github.com/uupaa/msgpack.js) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki)) * [Mustache.js](https://github.com/janl/mustache.js) (by [Boris Yankov](https://github.com/borisyankov)) +* [noble](https://github.com/sandeepmistry/noble) (by [Seon-Wook Park](https://github.com/swook)) * [Node.js](http://nodejs.org/) (from TypeScript samples) * [node_redis](https://github.com/mranney/node_redis) (by [Boris Yankov](https://github.com/borisyankov)) * [node-ffi](https://github.com/rbranson/node-ffi) (by [Paul Loyd](https://github.com/loyd)) diff --git a/noble/noble-tests.ts b/noble/noble-tests.ts new file mode 100644 index 0000000000..3e7b4afaf9 --- /dev/null +++ b/noble/noble-tests.ts @@ -0,0 +1,83 @@ +/// + +import noble = require("noble"); + +function test_startScanning(): void { + "use strict"; + noble.startScanning(); + noble.startScanning(["0x180d"]); + noble.startScanning(["0x180d"], true); +} +test_startScanning(); + +function test_stopScanning(): void { + "use strict"; + noble.stopScanning(); +} +test_stopScanning(); + +noble.on("stateChange", (state: string): void => {}); +noble.on("scanStart", (): void => {}); +noble.on("scanStop", (): void => {}); +noble.on("discover", (peripheral: noble.Peripheral): void => { + peripheral.connect((error: string): void => {}); + peripheral.disconnect((): void => {}); +}); + +var peripheral: noble.Peripheral = new noble.Peripheral(); +peripheral.uuid = "12ad4e81"; +peripheral.advertisement = { + localName: "device", + serviceData: new Buffer(1), + txPowerLevel: 1, + manufacturerData: new Buffer(1), + serviceUuids: ["0x180a", "0x180d"] +}; +peripheral.connect((error: string): void => {}); +peripheral.disconnect((): void => {}); +peripheral.discoverServices(["180d"], (error: string, services: noble.Service[]): void => {}); +peripheral.discoverAllServicesAndCharacteristics((error: string, services: noble.Service[], characteristics: noble.Characteristic[]): void => {}); +peripheral.discoverSomeServicesAndCharacteristics(["180d"], ["2a38"], (error: string, services: noble.Service[], characteristics: noble.Characteristic[]): void => {}); +peripheral.readHandle(new Buffer(1), (error: string, data: NodeBuffer): void => {}); +peripheral.writeHandle(new Buffer(1), new Buffer(1), true, (error: string): void => {}); +peripheral.on("connect", (error: string): void => {}); +peripheral.on("disconnect", (error: string): void => {}); +peripheral.on("rssiUpdate", (rssi: number): void => {}); +peripheral.on("servicesDiscover", (services: noble.Service[]): void => {}); + +var service: noble.Service = new noble.Service(); +service.uuid = "180a"; +service.name = ""; +service.type = ""; +service.includedServiceUuids = ["180d"]; +service.discoverIncludedServices(["180d"], (error: string, includedServiceUuids: string[]): void => {}); +service.discoverCharacteristics(["2a38"], (error: string, characteristics: noble.Characteristic[]): void => {}); +service.on("includedServicesDiscover", (includedServiceUuids: string[]): void => {}); +service.on("characteristicsDiscover", (characteristics: noble.Characteristic[]): void => {}); + +var characteristic: noble.Characteristic = new noble.Characteristic(); +characteristic.uuid = "2a37"; +characteristic.name = ""; +characteristic.type = ""; +characteristic.properties = ["read", "notify"]; +characteristic.read((error: string, data: NodeBuffer): void => {}); +characteristic.write(new Buffer(1), true, (error: string): void => {}); +characteristic.broadcast(true, (error: string): void => {}); +characteristic.notify(true, (error: string): void => {}); +characteristic.discoverDescriptors((error: string, descriptors: noble.Descriptor[]): void => {}); +characteristic.on("read", (data: NodeBuffer, isNotification: boolean): void => {}); +characteristic.on("write", true, (error: string): void => {}); +characteristic.on("broadcast", (state: string): void => {}); +characteristic.on("notify", (state: string): void => {}); +characteristic.on("descriptorsDiscover", (descriptors: noble.Descriptor[]): void => {}); + +var descriptor: noble.Descriptor = new noble.Descriptor(); +descriptor.uuid = ""; +descriptor.name = ""; +descriptor.type = ""; +descriptor.readValue((error: string, data: NodeBuffer): void => {}); +descriptor.writeValue(new Buffer(1), (error: string): void => {}); +descriptor.on("valueRead", (error: string, data: NodeBuffer): void => {}); +descriptor.on("valueWrite", (error: string): void => {}); + +// vim expandtab shiftwidth=4 diff --git a/noble/noble.d.ts b/noble/noble.d.ts new file mode 100644 index 0000000000..12ffb08bbc --- /dev/null +++ b/noble/noble.d.ts @@ -0,0 +1,105 @@ +// Type definitions for noble +// Project: https://github.com/sandeepmistry/noble +// Definitions by: Seon-Wook Park +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "noble" { + export function startScanning(): void; + export function startScanning(serviceUUIDs: string[]): void; + export function startScanning(serviceUUIDs: string[], allowDuplicates: boolean): void; + export function stopScanning(): void; + + export function on(event: string, callback: Function): void; + export function on(event: "stateChange", callback: (state: string) => void): void; + export function on(event: "scanStart", callback: () => void): void; + export function on(event: "scanStop", callback: () => void): void; + export function on(event: "discover", callback: (peripheral: Peripheral) => void): void; + + export class Peripheral { + uuid: string; + advertisement: Advertisement; + rssi: number; + services: string[]; + + connect(callback: (error: string) => void): void; + disconnect(callback: () => void): void; + discoverServices(serviceUUIDs: string[], callback: (error: string, services: Service[]) => void): void; + discoverAllServicesAndCharacteristics(callback: (error: string, services: Service[], characteristics: Characteristic[]) => void): void; + discoverSomeServicesAndCharacteristics(serviceUUIDs: string[], characteristicUUIDs: string[], callback: (error: string, services: Service[], characteristics: Characteristic[]) => void): void; + + readHandle(handle: NodeBuffer, callback: (error: string, data: NodeBuffer) => void): void; + writeHandle(handle: NodeBuffer, data: NodeBuffer, withoutResponse: boolean, callback: (error: string) => void): void; + toString(): string; + + on(event: string, callback: Function): void; + on(event: "connect", callback: (error: string) => void): void; + on(event: "disconnect", callback: (error: string) => void): void; + on(event: "rssiUpdate", callback: (rssi: number) => void): void; + on(event: "servicesDiscover", callback: (services: Service[]) => void): void; + } + + export interface Advertisement { + localName: string; + serviceData: NodeBuffer; + txPowerLevel: number; + manufacturerData: NodeBuffer; + serviceUuids: string[]; + } + + export class Service { + uuid: string; + name: string; + type: string; + includedServiceUuids: string[]; + characteristics: Characteristic[]; + + discoverIncludedServices(serviceUUIDs: string[], callback: (error: string, includedServiceUuids: string[]) => void): void; + discoverCharacteristics(characteristicUUIDs: string[], callback: (error: string, characteristics: Characteristic[]) => void): void; + toString(): string; + + on(event: string, callback: Function): void; + on(event: "includedServicesDiscover", callback: (includedServiceUuids: string[]) => void): void; + on(event: "characteristicsDiscover", callback: (characteristics: Characteristic[]) => void): void; + } + + export class Characteristic { + uuid: string; + name: string; + type: string; + properties: string[]; + descriptors: Descriptor[]; + + read(callback: (error: string, data: NodeBuffer) => void): void; + write(data: NodeBuffer, notify: boolean, callback: (error: string) => void): void; + broadcast(broadcast: boolean, callback: (error: string) => void): void; + notify(notify: boolean, callback: (error: string) => void): void; + discoverDescriptors(callback: (error: string, descriptors: Descriptor[]) => void): void; + toString(): string; + + on(event: string, callback: Function): void; + on(event: string, option: boolean, callback: Function): void; + on(event: "read", callback: (data: NodeBuffer, isNotification: boolean) => void): void; + on(event: "write", withoutResponse: boolean, callback: (error: string) => void): void; + on(event: "broadcast", callback: (state: string) => void): void; + on(event: "notify", callback: (state: string) => void): void; + on(event: "descriptorsDiscover", callback: (descriptors: Descriptor[]) => void): void; + } + + export class Descriptor { + uuid: string; + name: string; + type: string; + + readValue(callback: (error: string, data: NodeBuffer) => void): void; + writeValue(data: NodeBuffer, callback: (error: string) => void): void; + toString(): string; + + on(event: string, callback: Function): void; + on(event: "valueRead", callback: (error: string, data: NodeBuffer) => void): void; + on(event: "valueWrite", callback: (error: string) => void): void; + } +} + +// vim expandtab shiftwidth=4 From 09f3d7a8dc79f448b538862c3ad5872f75112d60 Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Tue, 22 Apr 2014 22:09:35 +0200 Subject: [PATCH 012/132] imported 25 definitions from typescript-node-definitions first batch: the easy pickings - as per https://github.com/borisyankov/DefinitelyTyped/issues/115 - added DT headers (scraped creators from git history) - added tests - some modifications - added CONTRIBUTORS.md for the substantial defs (>50 LOC) --- CONTRIBUTORS.md | 9 + atpl/atpl-tests.ts | 25 + atpl/atpl.d.ts | 20 + aws-sdk/aws-sdk-tests.ts | 13 + aws-sdk/aws-sdk.d.ts | 909 +++++++++++++++++++++++++++++ consolidate/consolidate-tests.ts | 27 + consolidate/consolidate.d.ts | 30 + fibers/fibers-tests.ts | 13 + fibers/fibers.d.ts | 24 + form-data/form-data-tests.ts | 8 + form-data/form-data.d.ts | 15 + fs-extra/fs-extra-tests.ts | 229 ++++++++ fs-extra/fs-extra.d.ts | 187 ++++++ gently/gently-tests.ts | 14 + gently/gently.d.ts | 26 + imagemagick/imagemagick-tests.ts | 27 + imagemagick/imagemagick.d.ts | 59 ++ memory-cache/memory-cache-tests.ts | 24 + memory-cache/memory-cache.d.ts | 20 + mime/mime-tests.ts | 13 + mime/mime.d.ts | 19 + mu2/mu2-tests.ts | 32 + mu2/mu2.d.ts | 29 + nconf/nconf-tests.ts | 101 ++++ nconf/nconf.d.ts | 100 ++++ nock/nock-tests.ts | 60 ++ nock/nock.d.ts | 54 ++ nodeunit/nodeunit-tests.ts | 59 ++ nodeunit/nodeunit.d.ts | 59 ++ optimist/optimist-tests.ts | 46 ++ optimist/optimist.d.ts | 53 ++ redis/redis-tests.ts | 62 ++ redis/redis.d.ts | 224 +++++++ rimraf/rimraf-tests.ts | 11 + rimraf/rimraf.d.ts | 16 + sprintf/sprintf-tests.ts | 14 + sprintf/sprintf.d.ts | 11 + swig/swig-tests.ts | 25 + swig/swig.d.ts | 24 + swiz/swiz-tests.ts | 172 ++++++ swiz/swiz.d.ts | 195 +++++++ timezone-js/timezone-js-tests.ts | 26 + timezone-js/timezone-js.d.ts | 45 ++ twig/twig-tests.ts | 45 ++ twig/twig.d.ts | 37 ++ watch/watch-tests.ts | 32 + watch/watch.d.ts | 35 ++ winston/winston-tests.ts | 40 ++ winston/winston.d.ts | 39 ++ wrench/wrench-tests.ts | 36 ++ wrench/wrench.d.ts | 27 + 51 files changed, 3420 insertions(+) create mode 100644 atpl/atpl-tests.ts create mode 100644 atpl/atpl.d.ts create mode 100644 aws-sdk/aws-sdk-tests.ts create mode 100644 aws-sdk/aws-sdk.d.ts create mode 100644 consolidate/consolidate-tests.ts create mode 100644 consolidate/consolidate.d.ts create mode 100644 fibers/fibers-tests.ts create mode 100644 fibers/fibers.d.ts create mode 100644 form-data/form-data-tests.ts create mode 100644 form-data/form-data.d.ts create mode 100644 fs-extra/fs-extra-tests.ts create mode 100644 fs-extra/fs-extra.d.ts create mode 100644 gently/gently-tests.ts create mode 100644 gently/gently.d.ts create mode 100644 imagemagick/imagemagick-tests.ts create mode 100644 imagemagick/imagemagick.d.ts create mode 100644 memory-cache/memory-cache-tests.ts create mode 100644 memory-cache/memory-cache.d.ts create mode 100644 mime/mime-tests.ts create mode 100644 mime/mime.d.ts create mode 100644 mu2/mu2-tests.ts create mode 100644 mu2/mu2.d.ts create mode 100644 nconf/nconf-tests.ts create mode 100644 nconf/nconf.d.ts create mode 100644 nock/nock-tests.ts create mode 100644 nock/nock.d.ts create mode 100644 nodeunit/nodeunit-tests.ts create mode 100644 nodeunit/nodeunit.d.ts create mode 100644 optimist/optimist-tests.ts create mode 100644 optimist/optimist.d.ts create mode 100644 redis/redis-tests.ts create mode 100644 redis/redis.d.ts create mode 100644 rimraf/rimraf-tests.ts create mode 100644 rimraf/rimraf.d.ts create mode 100644 sprintf/sprintf-tests.ts create mode 100644 sprintf/sprintf.d.ts create mode 100644 swig/swig-tests.ts create mode 100644 swig/swig.d.ts create mode 100644 swiz/swiz-tests.ts create mode 100644 swiz/swiz.d.ts create mode 100644 timezone-js/timezone-js-tests.ts create mode 100644 timezone-js/timezone-js.d.ts create mode 100644 twig/twig-tests.ts create mode 100644 twig/twig.d.ts create mode 100644 watch/watch-tests.ts create mode 100644 watch/watch.d.ts create mode 100644 winston/winston-tests.ts create mode 100644 winston/winston.d.ts create mode 100644 wrench/wrench-tests.ts create mode 100644 wrench/wrench.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 54ae0cdc8c..9f4f84f19c 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -20,6 +20,7 @@ All definitions files include a header with the author and editors, so at some p * [assert](https://github.com/Jxck/assert) (by [vvakame](https://github.com/vvakame)) * [async](https://github.com/caolan/async) (by [Boris Yankov](https://github.com/borisyankov)) * [Atom](https://atom.io/) (by [vvakame](https://github.com/vvakame)) +* [aws-sdk-js](https://github.com/aws/aws-sdk-js) (by [midknight41](https://github.com/midknight41)) * [Backbone.js](http://backbonejs.org/) (by [Boris Yankov](https://github.com/borisyankov)) * [Backbone Relational](http://backbonerelational.org/) (by [Eirik Hoem](https://github.com/eirikhm)) * [BigScreen](http://brad.is/coding/BigScreen/) (by [Douglas Eichelberger](https://github.com/dduugg)) @@ -75,6 +76,7 @@ All definitions files include a header with the author and editors, so at some p * [Flight by Twitter](http://flightjs.github.com/flight/) (by [Jonathan Hedrén](https://github.com/jonathanhedren)) * [Foundation](http://foundation.zurb.com/) (by [Boris Yankov](https://github.com/borisyankov)) * [FPSMeter](http://darsa.in/fpsmeter/) (by [Aaron Lampros](https://github.com/alampros)) +* [fs-extra](https://github.com/jprichardson/node-fs-extra) (by [midknight41](https://github.com/midknight41)) * [FullCalendar](http://arshaw.com/fullcalendar/) (by [Neil Stalker](https://github.com/nestalk)) * [Gamepad](http://www.w3.org/TR/gamepad/) (by [Kon](http://phyzkit.net/)) * [Giraffe](https://github.com/barc/backbone.giraffe) (by [Matt McCray](https://github.com/darthapo)) @@ -106,6 +108,7 @@ All definitions files include a header with the author and editors, so at some p * [i18next](http://i18next.com/) (by [Maarten Docter](https://github.com/mdocter)) * [iCheck](http://damirfoy.com/iCheck/) (by [Dániel Tar](https://github.com/qcz)) * [Impress.js](https://github.com/bartaz/impress.js) (by [Boris Yankov](https://github.com/borisyankov)) +* [Imagemagick](http://github.com/rsms/node-imagemagick) (by [Carlos Ballesteros Velasco](https://github.com/soywiz)) * [iScroll](http://cubiq.org/iscroll-4) (by [Boris Yankov](https://github.com/borisyankov) and [Christiaan Rakowski](https://github.com/csrakowski)) * [IxJS (Interactive extensions)](https://github.com/Reactive-Extensions/IxJS) (by [Igor Oleinikov](https://github.com/Igorbek)) * [jake](https://github.com/mde/jake) (by [Kon](http://phyzkit.net/)) @@ -200,16 +203,20 @@ All definitions files include a header with the author and editors, so at some p * [Mousetrap](http://craig.is/killing/mice) (by [Dániel Tar](https://github.com/qcz)) * [msgpack.js](https://github.com/uupaa/msgpack.js) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki)) * [Mustache.js](https://github.com/janl/mustache.js) (by [Boris Yankov](https://github.com/borisyankov)) +* [nconf](https://github.com/flatiron/nconf) (by [Jeff Goddard](https://github.com/jedigo)) +* [nock](https://github.com/pgte/nock) (by [bonnici](https://github.com/bonnici)) * [Node.js](http://nodejs.org/) (from TypeScript samples) * [node_redis](https://github.com/mranney/node_redis) (by [Boris Yankov](https://github.com/borisyankov)) * [node-ffi](https://github.com/rbranson/node-ffi) (by [Paul Loyd](https://github.com/loyd)) * [node-git](https://github.com/christkv/node-git) (by [vvakame](https://github.com/vvakame)) +* [nodeunit](https://github.com/caolan/nodeunit) (by [Jeff Goddard](https://github.com/jedigo)) * [node_zeromq](https://github.com/JustinTulloss/zeromq.node) (by [Dave McKeown](https://github.com/davemckeown)) * [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov)) * [notify.js](https://github.com/alexgibson/notify.js) (by [soundTricker](https://github.com/soundTricker)) * [NProgress](https://github.com/rstacruz/nprogress) (by [Judah Gabriel Himango](https://github.com/judahgabriel)) * [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/)) * [OpenLayers](https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/)) +* [Optimist](https://github.com/substack/node-optimist) (by [Carlos Ballesteros Velasco](https://github.com/soywiz)) * [Passport](http://passportjs.org/) (by [Hiroki Horiuchi](https://github.com/horiuchi/)) * [pathwatcher](http://atom.github.io/node-pathwatcher/) (by [vvakame](https://github.com/vvakame)) * [Parallel.js](https://github.com/adambom/parallel.js) (by [Josh Baldwin](https://github.com/jbaldwin)) @@ -230,6 +237,7 @@ All definitions files include a header with the author and editors, so at some p * [Rickshaw](http://code.shutterstock.com/rickshaw/) (by [Blake Niemyjski](https://github.com/niemyjski)) * [Riot.js](https://github.com/moot/riotjs) (by [vvakame](https://github.com/vvakame)) * [Restify](https://github.com/mcavage/node-restify) (by [Bret Little](https://github.com/blittle)) +* [Redis](https://github.com/mranney/node_redis) (by [Carlos Ballesteros Velasco](https://github.com/soywiz)) * [Royalslider](http://dimsemenov.com/plugins/royal-slider/) (by [Christiaan Rakowski](https://github.com/csrakowski)) * [Rx.js](http://rx.codeplex.com/) (by [gsino](http://www.codeplex.com/site/users/view/gsino), [Igor Oleinikov](https://github.com/Igorbek), [Carl de Billy](http://carl.debilly.net/), [zoetrope](https://github.com/zoetrope)) * [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) @@ -256,6 +264,7 @@ All definitions files include a header with the author and editors, so at some p * [Sugar](http://sugarjs.com/) (by [Josh Baldwin](https://github.com/jbaldwin/)) * [Swiper](http://www.idangero.us/sliders/swiper) (by [Sebastián Galiano](https://github.com/sgaliano)) * [SwipeView](http://cubiq.org/swipeview) (by [Boris Yankov](https://github.com/borisyankov)) +* [Swiz](https://github.com/racker/node-swiz) (by [Jeff Goddard](https://github.com/jedigo)) * [TV4](https://github.com/geraintluff/tv4) (by [Bart van der Schoor](https://github.com/Bartvds)) * [Tags Manager](http://welldonethings.com/tags/manager) (by [Vincent Bortone](https://github.com/vbortone)) * [Teechart](http://www.steema.com) (by [Steema](http://www.steema.com)) diff --git a/atpl/atpl-tests.ts b/atpl/atpl-tests.ts new file mode 100644 index 0000000000..f1751d9015 --- /dev/null +++ b/atpl/atpl-tests.ts @@ -0,0 +1,25 @@ +/// + +import atpl = require('atpl'); + +var bool: boolean; +var str: string; +var err: Error; +var items: any; +var options: Object; +var callback: Function; + +atpl.compile(str, options); +atpl.__express(str, options, callback); + +atpl.registerExtension(items); +atpl.registerTags(items); +atpl.registerFunctions(items); +atpl.registerFilters(items); +atpl.registerTests(items); + +atpl.registerTags(null); +atpl.renderFile(str, str, options, bool, (e, res?) => { + err = err; + str = res; +}); diff --git a/atpl/atpl.d.ts b/atpl/atpl.d.ts new file mode 100644 index 0000000000..7eae246a80 --- /dev/null +++ b/atpl/atpl.d.ts @@ -0,0 +1,20 @@ +// Type definitions for atpl +// Project: https://github.com/soywiz/atpl.js +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/atpl.d.ts + +declare module "atpl" { + export function compile(templateString: string, options: any): (context:any) => string; + export function __express(filename: string, options: any, callback: Function): any; + + export function registerExtension(items: any): void; + export function registerTags(items: any): void; + export function registerFunctions(items: any): void; + export function registerFilters(items: any): void; + export function registerTests(items: any): void; + + export function renderFileSync(viewsPath: string, filename: string, parameters: any, cache: boolean ): string; + export function renderFile(viewsPath: string, filename: string, parameters: any, cache: boolean, done: (err: Error, result?: string) => void): void; +} diff --git a/aws-sdk/aws-sdk-tests.ts b/aws-sdk/aws-sdk-tests.ts new file mode 100644 index 0000000000..8a3464a6df --- /dev/null +++ b/aws-sdk/aws-sdk-tests.ts @@ -0,0 +1,13 @@ +/// + +import awsSdk = require('aws-sdk'); + +var str: string; + +var creds: awsSdk.Credentials; + +creds = new awsSdk.Credentials(str, str); +creds = new awsSdk.Credentials(str, str, str); +str = creds.accessKeyId; + +// more diff --git a/aws-sdk/aws-sdk.d.ts b/aws-sdk/aws-sdk.d.ts new file mode 100644 index 0000000000..3ae6778b5d --- /dev/null +++ b/aws-sdk/aws-sdk.d.ts @@ -0,0 +1,909 @@ +// Type definitions for aws-sdk +// Project: https://github.com/aws/aws-sdk-js +// Definitions by: midknight41 +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/aws-sdk.d.ts + +/// + +declare module "aws-sdk" { + + export var config: ClientConfig; + + export function Config(json: any): void; + + export class Credentials { + constructor(accessKeyId: string, secretAccessKey: string, sessionToken?: string); + accessKeyId: string; + } + + export interface ClientConfig { + credentials: Credentials; + region: string; + } + + export class SQS { + constructor(options?: any); + public client: Sqs.Client; + } + + export class SES { + constructor(options?: any); + public client: Ses.Client; + } + + export class SNS { + constructor(options?: any); + public client: Sns.Client; + } + + export class SimpleWorkflow { + constructor(options?: any); + public client: Swf.Client; + } + + export class S3 { + constructor(options?: any); + public client: s3.Client; + } + + export module Sqs { + + export interface Client { + config: ClientConfig; + + sendMessage(params: SendMessageRequest, callback: (err: any, data: SendMessageResult) => void): void; + sendMessageBatch(params: SendMessageBatchRequest, callback: (err: any, data: SendMessageBatchResult) => void): void; + receiveMessage(params: ReceiveMessageRequest, callback: (err: any, data: ReceiveMessageResult) => void): void; + deleteMessage(params: DeleteMessageRequest, callback: (err: any, data: any) => void): void; + deleteMessageBatch(params: DeleteMessageBatchRequest, callback: (err: any, data: DeleteMessageBatchResult) => void): void; + createQueue(params: CreateQueueRequest, callback: (err: any, data: CreateQueueResult) => void): void; + deleteQueue(params: DeleteQueueRequest, callback: (err: any, data: any) => void): void; + } + + export interface SendMessageRequest { + QueueUrl?: string; + MessageBody?: string; + DelaySeconds?: number; + } + + export interface ReceiveMessageRequest { + QueueUrl?: string; + MaxNumberOfMessages?: number; + VisibilityTimeout?: number; + AttributeNames?: string[]; + } + + export interface DeleteMessageBatchRequest { + QueueUrl?: string; + Entries?: DeleteMessageBatchRequestEntry[]; + } + + export interface DeleteMessageBatchRequestEntry { + Id: string; + ReceiptHandle: string; + } + + export interface DeleteMessageRequest { + QueueUrl?: string; + ReceiptHandle?: string; + } + + export class Attribute { + Name: string; + Value: string; + } + + export interface SendMessageBatchRequest { + QueueUrl?: string; + Entries?: SendMessageBatchRequestEntry[]; + } + + export class SendMessageBatchRequestEntry { + Id: string; + MessageBody: string; + DelaySeconds: number; + } + + export interface CreateQueueRequest { + QueueName?: string; + DefaultVisibilityTimeout?: number; + DelaySeconds?: number; + Attributes?: Attribute[]; + } + + export interface DeleteQueueRequest { + QueueUrl?: string; + } + + export class SendMessageResult { + MessageId: string; + MD5OfMessageBody: string; + } + + export class ReceiveMessageResult { + Messages: Message[]; + } + + export class Message { + MessageId: string; + ReceiptHandle: string; + MD5OfBody: string; + Body: string; + Attributes: Attribute[]; + } + + export class DeleteMessageBatchResult { + Successful: DeleteMessageBatchResultEntry[]; + Failed: BatchResultErrorEntry[]; + } + + export class DeleteMessageBatchResultEntry { + Id: string; + } + + export class BatchResultErrorEntry { + Id: string; + Code: string; + Message: string; + SenderFault: string; + } + + export class SendMessageBatchResult { + Successful: SendMessageBatchResultEntry[]; + Failed: BatchResultErrorEntry[]; + } + + export class SendMessageBatchResultEntry { + Id: string; + MessageId: string; + MD5OfMessageBody: string; + } + + export class CreateQueueResult { + QueueUrl: string; + } + + } + + export module Ses { + + export interface Client { + config: ClientConfig; + + sendEmail(params: any, callback: (err: any, data: SendEmailResult) => void): void; + } + + export interface SendEmailRequest { + Source: string; + Destination: Destination; + Message: Message; + ReplyToAddresses: string[]; + ReturnPath: string; + } + + export class Destination { + ToAddresses: string[]; + CcAddresses: string[]; + BccAddresses: string[]; + } + + export class Message { + Subject: Content; + Body: Body; + } + + export class Content { + Data: string; + Charset: string; + } + + export class Body { + Text: Content; + Html: Content; + } + + export class SendEmailResult { + MessageId: string; + } + + } + + export module Swf { + + export class Client { + //constructor(options?: any); + public config: ClientConfig; + + countClosedWorkflowExecutions(params: any, callback: (err: any, data: any) => void): void; + countOpenWorkflowExecutions(params: any, callback: (err: any, data: any) => void): void; + countPendingActivityTasks(params: any, callback: (err: any, data: any) => void): void; + countPendingDecisionTasks(params: any, callback: (err: any, data: any) => void): void; + deprecateActivityType(params: any, callback: (err: any, data: any) => void): void; + deprecateDomain(params: any, callback: (err: any, data: any) => void): void; + deprecateWorkflowType(params: any, callback: (err: any, data: any) => void): void; + describeActivityType(params: any, callback: (err: any, data: any) => void): void; + describeDomain(params: any, callback: (err: any, data: any) => void): void; + describeWorkflowExecution(params: any, callback: (err: any, data: any) => void): void; + describeWorkflowType(params: any, callback: (err: any, data: any) => void): void; + getWorkflowExecutionHistory(params: any, callback: (err: any, data: any) => void): void; + listActivityTypes(params: any, callback: (err: any, data: any) => void): void; + listClosedWorkflowExecutions(params: any, callback: (err: any, data: any) => void): void; + listDomains(params: any, callback: (err: any, data: any) => void): void; + listOpenWorkflowExecutions(params: any, callback: (err: any, data: any) => void): void; + listWorkflowTypes(params: any, callback: (err: any, data: any) => void): void; + pollForActivityTask(params: any, callback: (err: any, data: ActivityTask) => void): void; + pollForDecisionTask(params: any, callback: (err: any, data: DecisionTask) => void): void; + recordActivityTaskHeartbeat(params: any, callback: (err: any, data: any) => void): void; + registerActivityType(params: any, callback: (err: any, data: any) => void): void; + registerDomain(params: any, callback: (err: any, data: any) => void): void; + registerWorkflowType(params: any, callback: (err: any, data: any) => void): void; + requestCancelWorkflowExecution(params: any, callback: (err: any, data: any) => void): void; + respondActivityTaskCanceled(params: RespondActivityTaskCanceledRequest, callback: (err: any, data: any) => void): void; + respondActivityTaskCompleted(params: RespondActivityTaskCompletedRequest, callback: (err: any, data: any) => void): void; + respondActivityTaskFailed(params: RespondActivityTaskFailedRequest, callback: (err: any, data: any) => void): void; + respondDecisionTaskCompleted(params: RespondDecisionTaskCompletedRequest, callback: (err: any, data: any) => void): void; + signalWorkflowExecution(params: any, callback: (err: any, data: any) => void): void; + startWorkflowExecution(params: any, callback: (err: any, data: StartWorkflowExecutionResult) => void): void; + terminateWorkflowExecution(params: any, callback: (err: any, data: any) => void): void; + } + + export interface PollForActivityTaskRequest { + domain?: string; + taskList?: TaskList; + identity?: string; + } + + export interface TaskList { + name?: string; + } + + export interface PollForDecisionTaskRequest { + domain?: string; + taskList?: TaskList; + identity?: string; + nextPageToken?: string; + maximumPageSize?: number; + reverseOrder?: Boolean; + } + + export interface StartWorkflowExecutionRequest { + domain?: string; + workflowId?: string; + workflowType?: WorkflowType; + taskList?: TaskList; + input?: string; + executionStartToCloseTimeout?: string; + tagList?: string[]; + taskStartToCloseTimeout?: string; + childPolicy?: string; + } + + export interface WorkflowType { + name?: string; + version?: string; + } + + export interface RespondDecisionTaskCompletedRequest { + taskToken?: string; + decisions?: Decision[]; + executionContext?: string; + } + + export interface Decision { + decisionType?: string; + scheduleActivityTaskDecisionAttributes?: ScheduleActivityTaskDecisionAttributes; + requestCancelActivityTaskDecisionAttributes?: RequestCancelActivityTaskDecisionAttributes; + completeWorkflowExecutionDecisionAttributes?: CompleteWorkflowExecutionDecisionAttributes; + failWorkflowExecutionDecisionAttributes?: FailWorkflowExecutionDecisionAttributes; + cancelWorkflowExecutionDecisionAttributes?: CancelWorkflowExecutionDecisionAttributes; + continueAsNewWorkflowExecutionDecisionAttributes?: ContinueAsNewWorkflowExecutionDecisionAttributes; + recordMarkerDecisionAttributes?: RecordMarkerDecisionAttributes; + startTimerDecisionAttributes?: StartTimerDecisionAttributes; + cancelTimerDecisionAttributes?: CancelTimerDecisionAttributes; + signalExternalWorkflowExecutionDecisionAttributes?: SignalExternalWorkflowExecutionDecisionAttributes; + requestCancelExternalWorkflowExecutionDecisionAttributes?: RequestCancelExternalWorkflowExecutionDecisionAttributes; + startChildWorkflowExecutionDecisionAttributes?: StartChildWorkflowExecutionDecisionAttributes; + } + + export interface ScheduleActivityTaskDecisionAttributes { + activityType?: ActivityType; + activityId?: string; + control?: string; + input?: string; + scheduleToCloseTimeout?: string; + taskList?: TaskList; + scheduleToStartTimeout?: string; + startToCloseTimeout?: string; + heartbeatTimeout?: string; + } + + export interface ActivityType { + name?: string; + version?: string; + } + + export interface RequestCancelActivityTaskDecisionAttributes { + activityId?: string; + } + + export interface CompleteWorkflowExecutionDecisionAttributes { + result?: string; + } + + export interface FailWorkflowExecutionDecisionAttributes { + reason?: string; + details?: string; + } + + export interface CancelWorkflowExecutionDecisionAttributes { + details?: string; + } + + export interface ContinueAsNewWorkflowExecutionDecisionAttributes { + input?: string; + executionStartToCloseTimeout?: string; + taskList?: TaskList; + taskStartToCloseTimeout?: string; + childPolicy?: string; + tagList?: string[]; + workflowTypeVersion?: string; + } + + export interface RecordMarkerDecisionAttributes { + markerName?: string; + details?: string; + } + + export interface StartTimerDecisionAttributes { + timerId?: string; + control?: string; + startToFireTimeout?: string; + } + + export interface CancelTimerDecisionAttributes { + timerId?: string; + } + + export interface SignalExternalWorkflowExecutionDecisionAttributes { + workflowId?: string; + runId?: string; + signalName?: string; + input?: string; + control?: string; + } + + export interface RequestCancelExternalWorkflowExecutionDecisionAttributes { + workflowId?: string; + runId?: string; + control?: string; + } + + export interface StartChildWorkflowExecutionDecisionAttributes { + workflowType?: WorkflowType; + workflowId?: string; + control?: string; + input?: string; + executionStartToCloseTimeout?: string; + taskList?: TaskList; + taskStartToCloseTimeout?: string; + childPolicy?: string; + tagList?: string[]; + } + + export interface RespondActivityTaskCompletedRequest { + taskToken?: string; + result?: string; + } + + export interface RespondActivityTaskFailedRequest { + taskToken?: string; + reason?: string; + details?: string; + } + + export interface RespondActivityTaskCanceledRequest { + taskToken?: string; + details?: string; + } + + export interface DecisionTask { + taskToken?: string; + startedEventId?: number; + workflowExecution?: WorkflowExecution; + workflowType?: WorkflowType; + events?: HistoryEvent[]; + nextPageToken?: string; + previousStartedEventId?: number; + } + + export interface WorkflowExecution { + workflowId?: string; + runId?: string; + } + + export interface HistoryEvent { + eventTimestamp?: any; + eventType?: string; + eventId?: number; + workflowExecutionStartedEventAttributes?: WorkflowExecutionStartedEventAttributes; + workflowExecutionCompletedEventAttributes?: WorkflowExecutionCompletedEventAttributes; + completeWorkflowExecutionFailedEventAttributes?: CompleteWorkflowExecutionFailedEventAttributes; + workflowExecutionFailedEventAttributes?: WorkflowExecutionFailedEventAttributes; + failWorkflowExecutionFailedEventAttributes?: FailWorkflowExecutionFailedEventAttributes; + workflowExecutionTimedOutEventAttributes?: WorkflowExecutionTimedOutEventAttributes; + workflowExecutionCanceledEventAttributes?: WorkflowExecutionCanceledEventAttributes; + cancelWorkflowExecutionFailedEventAttributes?: CancelWorkflowExecutionFailedEventAttributes; + workflowExecutionContinuedAsNewEventAttributes?: WorkflowExecutionContinuedAsNewEventAttributes; + continueAsNewWorkflowExecutionFailedEventAttributes?: ContinueAsNewWorkflowExecutionFailedEventAttributes; + workflowExecutionTerminatedEventAttributes?: WorkflowExecutionTerminatedEventAttributes; + workflowExecutionCancelRequestedEventAttributes?: WorkflowExecutionCancelRequestedEventAttributes; + decisionTaskScheduledEventAttributes?: DecisionTaskScheduledEventAttributes; + decisionTaskStartedEventAttributes?: DecisionTaskStartedEventAttributes; + decisionTaskCompletedEventAttributes?: DecisionTaskCompletedEventAttributes; + decisionTaskTimedOutEventAttributes?: DecisionTaskTimedOutEventAttributes; + activityTaskScheduledEventAttributes?: ActivityTaskScheduledEventAttributes; + activityTaskStartedEventAttributes?: ActivityTaskStartedEventAttributes; + activityTaskCompletedEventAttributes?: ActivityTaskCompletedEventAttributes; + activityTaskFailedEventAttributes?: ActivityTaskFailedEventAttributes; + activityTaskTimedOutEventAttributes?: ActivityTaskTimedOutEventAttributes; + activityTaskCanceledEventAttributes?: ActivityTaskCanceledEventAttributes; + activityTaskCancelRequestedEventAttributes?: ActivityTaskCancelRequestedEventAttributes; + workflowExecutionSignaledEventAttributes?: WorkflowExecutionSignaledEventAttributes; + markerRecordedEventAttributes?: MarkerRecordedEventAttributes; + timerStartedEventAttributes?: TimerStartedEventAttributes; + timerFiredEventAttributes?: TimerFiredEventAttributes; + timerCanceledEventAttributes?: TimerCanceledEventAttributes; + startChildWorkflowExecutionInitiatedEventAttributes?: StartChildWorkflowExecutionInitiatedEventAttributes; + childWorkflowExecutionStartedEventAttributes?: ChildWorkflowExecutionStartedEventAttributes; + childWorkflowExecutionCompletedEventAttributes?: ChildWorkflowExecutionCompletedEventAttributes; + childWorkflowExecutionFailedEventAttributes?: ChildWorkflowExecutionFailedEventAttributes; + childWorkflowExecutionTimedOutEventAttributes?: ChildWorkflowExecutionTimedOutEventAttributes; + childWorkflowExecutionCanceledEventAttributes?: ChildWorkflowExecutionCanceledEventAttributes; + childWorkflowExecutionTerminatedEventAttributes?: ChildWorkflowExecutionTerminatedEventAttributes; + signalExternalWorkflowExecutionInitiatedEventAttributes?: SignalExternalWorkflowExecutionInitiatedEventAttributes; + externalWorkflowExecutionSignaledEventAttributes?: ExternalWorkflowExecutionSignaledEventAttributes; + signalExternalWorkflowExecutionFailedEventAttributes?: SignalExternalWorkflowExecutionFailedEventAttributes; + externalWorkflowExecutionCancelRequestedEventAttributes?: ExternalWorkflowExecutionCancelRequestedEventAttributes; + requestCancelExternalWorkflowExecutionInitiatedEventAttributes?: RequestCancelExternalWorkflowExecutionInitiatedEventAttributes; + requestCancelExternalWorkflowExecutionFailedEventAttributes?: RequestCancelExternalWorkflowExecutionFailedEventAttributes; + scheduleActivityTaskFailedEventAttributes?: ScheduleActivityTaskFailedEventAttributes; + requestCancelActivityTaskFailedEventAttributes?: RequestCancelActivityTaskFailedEventAttributes; + startTimerFailedEventAttributes?: StartTimerFailedEventAttributes; + cancelTimerFailedEventAttributes?: CancelTimerFailedEventAttributes; + startChildWorkflowExecutionFailedEventAttributes?: StartChildWorkflowExecutionFailedEventAttributes; + } + + export interface WorkflowExecutionStartedEventAttributes { + input?: string; + executionStartToCloseTimeout?: string; + taskStartToCloseTimeout?: string; + childPolicy?: string; + taskList?: TaskList; + workflowType?: WorkflowType; + tagList?: string[]; + continuedExecutionRunId?: string; + parentWorkflowExecution?: WorkflowExecution; + parentInitiatedEventId?: number; + } + + export interface WorkflowExecutionCompletedEventAttributes { + result?: string; + decisionTaskCompletedEventId?: number; + } + + export interface CompleteWorkflowExecutionFailedEventAttributes { + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface WorkflowExecutionFailedEventAttributes { + reason?: string; + details?: string; + decisionTaskCompletedEventId?: number; + } + + export interface FailWorkflowExecutionFailedEventAttributes { + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface WorkflowExecutionTimedOutEventAttributes { + timeoutType?: string; + childPolicy?: string; + } + + export interface WorkflowExecutionCanceledEventAttributes { + details?: string; + decisionTaskCompletedEventId?: number; + } + + export interface CancelWorkflowExecutionFailedEventAttributes { + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface WorkflowExecutionContinuedAsNewEventAttributes { + input?: string; + decisionTaskCompletedEventId?: number; + newExecutionRunId?: string; + executionStartToCloseTimeout?: string; + taskList?: TaskList; + taskStartToCloseTimeout?: string; + childPolicy?: string; + tagList?: string[]; + workflowType?: WorkflowType; + } + + export interface ContinueAsNewWorkflowExecutionFailedEventAttributes { + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface WorkflowExecutionTerminatedEventAttributes { + reason?: string; + details?: string; + childPolicy?: string; + cause?: string; + } + + export interface WorkflowExecutionCancelRequestedEventAttributes { + externalWorkflowExecution?: WorkflowExecution; + externalInitiatedEventId?: number; + cause?: string; + } + + export interface DecisionTaskScheduledEventAttributes { + taskList?: TaskList; + startToCloseTimeout?: string; + } + + export interface DecisionTaskStartedEventAttributes { + identity?: string; + scheduledEventId?: number; + } + + export interface DecisionTaskCompletedEventAttributes { + executionContext?: string; + scheduledEventId?: number; + startedEventId?: number; + } + + export interface DecisionTaskTimedOutEventAttributes { + timeoutType?: string; + scheduledEventId?: number; + startedEventId?: number; + } + + export interface ActivityTaskScheduledEventAttributes { + activityType?: ActivityType; + activityId?: string; + input?: string; + control?: string; + scheduleToStartTimeout?: string; + scheduleToCloseTimeout?: string; + startToCloseTimeout?: string; + taskList?: TaskList; + decisionTaskCompletedEventId?: number; + heartbeatTimeout?: string; + } + + export interface ActivityTaskStartedEventAttributes { + identity?: string; + scheduledEventId?: number; + } + + export interface ActivityTaskCompletedEventAttributes { + result?: string; + scheduledEventId?: number; + startedEventId?: number; + } + + export interface ActivityTaskFailedEventAttributes { + reason?: string; + details?: string; + scheduledEventId?: number; + startedEventId?: number; + } + + export interface ActivityTaskTimedOutEventAttributes { + timeoutType?: string; + scheduledEventId?: number; + startedEventId?: number; + details?: string; + } + + export interface ActivityTaskCanceledEventAttributes { + details?: string; + scheduledEventId?: number; + startedEventId?: number; + latestCancelRequestedEventId?: number; + } + + export interface ActivityTaskCancelRequestedEventAttributes { + decisionTaskCompletedEventId?: number; + activityId?: string; + } + + export interface WorkflowExecutionSignaledEventAttributes { + signalName?: string; + input?: string; + externalWorkflowExecution?: WorkflowExecution; + externalInitiatedEventId?: number; + } + + export interface MarkerRecordedEventAttributes { + markerName?: string; + details?: string; + decisionTaskCompletedEventId?: number; + } + + export interface TimerStartedEventAttributes { + timerId?: string; + control?: string; + startToFireTimeout?: string; + decisionTaskCompletedEventId?: number; + } + + export interface TimerFiredEventAttributes { + timerId?: string; + startedEventId?: number; + } + + export interface TimerCanceledEventAttributes { + timerId?: string; + startedEventId?: number; + decisionTaskCompletedEventId?: number; + } + + export interface StartChildWorkflowExecutionInitiatedEventAttributes { + workflowId?: string; + workflowType?: WorkflowType; + control?: string; + input?: string; + executionStartToCloseTimeout?: string; + taskList?: TaskList; + decisionTaskCompletedEventId?: number; + childPolicy?: string; + taskStartToCloseTimeout?: string; + tagList?: string[]; + } + + export interface ChildWorkflowExecutionStartedEventAttributes { + workflowExecution?: WorkflowExecution; + workflowType?: WorkflowType; + initiatedEventId?: number; + } + + export interface ChildWorkflowExecutionCompletedEventAttributes { + workflowExecution?: WorkflowExecution; + workflowType?: WorkflowType; + result?: string; + initiatedEventId?: number; + startedEventId?: number; + } + + export interface ChildWorkflowExecutionFailedEventAttributes { + workflowExecution?: WorkflowExecution; + workflowType?: WorkflowType; + reason?: string; + details?: string; + initiatedEventId?: number; + startedEventId?: number; + } + + export interface ChildWorkflowExecutionTimedOutEventAttributes { + workflowExecution?: WorkflowExecution; + workflowType?: WorkflowType; + timeoutType?: string; + initiatedEventId?: number; + startedEventId?: number; + } + + export interface ChildWorkflowExecutionCanceledEventAttributes { + workflowExecution?: WorkflowExecution; + workflowType?: WorkflowType; + details?: string; + initiatedEventId?: number; + startedEventId?: number; + } + + export interface ChildWorkflowExecutionTerminatedEventAttributes { + workflowExecution?: WorkflowExecution; + workflowType?: WorkflowType; + initiatedEventId?: number; + startedEventId?: number; + } + + export interface SignalExternalWorkflowExecutionInitiatedEventAttributes { + workflowId?: string; + runId?: string; + signalName?: string; + input?: string; + decisionTaskCompletedEventId?: number; + control?: string; + } + + export interface ExternalWorkflowExecutionSignaledEventAttributes { + workflowExecution?: WorkflowExecution; + initiatedEventId?: number; + } + + export interface SignalExternalWorkflowExecutionFailedEventAttributes { + workflowId?: string; + runId?: string; + cause?: string; + initiatedEventId?: number; + decisionTaskCompletedEventId?: number; + control?: string; + } + + export interface ExternalWorkflowExecutionCancelRequestedEventAttributes { + workflowExecution?: WorkflowExecution; + initiatedEventId?: number; + } + + export interface RequestCancelExternalWorkflowExecutionInitiatedEventAttributes { + workflowId?: string; + runId?: string; + decisionTaskCompletedEventId?: number; + control?: string; + } + + export interface RequestCancelExternalWorkflowExecutionFailedEventAttributes { + workflowId?: string; + runId?: string; + cause?: string; + initiatedEventId?: number; + decisionTaskCompletedEventId?: number; + control?: string; + } + + export interface ScheduleActivityTaskFailedEventAttributes { + activityType?: ActivityType; + activityId?: string; + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface RequestCancelActivityTaskFailedEventAttributes { + activityId?: string; + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface StartTimerFailedEventAttributes { + timerId?: string; + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface CancelTimerFailedEventAttributes { + timerId?: string; + cause?: string; + decisionTaskCompletedEventId?: number; + } + + export interface StartChildWorkflowExecutionFailedEventAttributes { + workflowType?: WorkflowType; + cause?: string; + workflowId?: string; + initiatedEventId?: number; + decisionTaskCompletedEventId?: number; + control?: string; + } + + export interface ActivityTask { + taskToken?: string; + activityId?: string; + startedEventId?: number; + workflowExecution?: WorkflowExecution; + activityType?: ActivityType; + input?: string; + } + + export interface PollForActivityTaskResult { + activityTask?: ActivityTask; + } + + export interface PollForDecisionTaskResult { + decisionTask?: DecisionTask; + } + + export interface StartWorkflowExecutionResult { + run?: Run; + } + + export interface Run { + runId?: string; + } + + } + + export module Sns { + + export interface Client { + config: ClientConfig; + + publicTopic(params: PublishRequest, callback: (err: any, data: PublishResult) => void): void; + createTopic(params: CreateTopicRequest, callback: (err: any, data: CreateTopicResult) => void): void; + deleteTopic(params: DeleteTopicRequest, callback: (err: any, data: any) => void): void; + } + + export interface PublishRequest { + TopicArn?: string; + Message?: string; + MessageStructure?: string; + Subject?: string; + } + + export interface PublishResult { + MessageId?: string; + } + + export interface CreateTopicRequest { + Name?: string; + } + + export interface CreateTopicResult { + TopicArn?: string; + } + + export interface DeleteTopicRequest { + TopicArn?: string; + } + + } + + export module s3 { + + export interface Client { + config: ClientConfig; + + putObject(params: PutObjectRequest, callback: (err: any, data: any) => void): void; + getObject(params: GetObjectRequest, callback: (err: any, data: any) => void): void; + } + + export interface PutObjectRequest { + ACL?: string; + Body?: any; + Bucket: string; + CacheControl?: string; + ContentDisposition?: string; + ContentEncoding?: string; + ContentLanguage?: string; + ContentLength?: string; + ContentMD5?: string; + ContentType?: string; + Expires?: any; + GrantFullControl?: string; + GrantRead?: string; + GrantReadACP?: string; + GrantWriteACP?: string; + Key: string; + Metadata?: string[]; + ServerSideEncryption?: string; + StorageClass?: string; + WebsiteRedirectLocation?: string; + } + + export interface GetObjectRequest { + Bucket: string; + IfMatch?: string; + IfModifiedSince?: any; + IfNoneMatch?: string; + IfUnmodifiedSince?: any; + Key: string; + Range?: string; + ResponseCacheControl?: string; + ResponseContentDisposition?: string; + ResponseContentEncoding?: string; + ResponseContentLanguage?: string; + ResponseContentType?: string; + ResponseExpires?: any; + VersionId?: string; + } + + } +} diff --git a/consolidate/consolidate-tests.ts b/consolidate/consolidate-tests.ts new file mode 100644 index 0000000000..bf4fea4496 --- /dev/null +++ b/consolidate/consolidate-tests.ts @@ -0,0 +1,27 @@ +/// + +import consolidate = require('consolidate'); + +var path: string = null; +var options: any = null; +var fn: any = null; + +consolidate.clearCache(); +consolidate.jade(path, options, fn); +consolidate.dust(path, options, fn); +consolidate.swig(path, options, fn); +consolidate.liquor(path, options, fn); +consolidate.ejs(path, options, fn); +consolidate.eco(path, options, fn); +consolidate.jazz(path, options, fn); +consolidate.jqtpl(path, options, fn); +consolidate.haml(path, options, fn); +consolidate.whiskers(path, options, fn); +//consolidate.'haml-coffee':Function; +consolidate.hogan(path, options, fn); +consolidate.handlebars(path, options, fn); +consolidate.underscore(path, options, fn); +consolidate.qejs(path, options, fn); +consolidate.walrus(path, options, fn); +consolidate.mustache(path, options, fn); +consolidate.dot(path, options, fn); diff --git a/consolidate/consolidate.d.ts b/consolidate/consolidate.d.ts new file mode 100644 index 0000000000..3bfe35bf04 --- /dev/null +++ b/consolidate/consolidate.d.ts @@ -0,0 +1,30 @@ +// Type definitions for consolidate +// Project: https://github.com/visionmedia/consolidate.js +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/consolidate.d.ts + +/// + +declare module "consolidate" { + export function clearCache(): void; + export var jade: (path: String, options: any, fn: any) => void; + export var dust: (path: String, options: any, fn: any) => void; + export var swig: (path: String, options: any, fn: any) => void; + export var liquor: (path: String, options: any, fn: any) => void; + export var ejs: (path: String, options: any, fn: any) => void; + export var eco: (path: String, options: any, fn: any) => void; + export var jazz: (path: String, options: any, fn: any) => void; + export var jqtpl: (path: String, options: any, fn: any) => void; + export var haml: (path: String, options: any, fn: any) => void; + export var whiskers: (path: String, options: any, fn: any) => void; + //export var 'haml-coffee':Function; + export var hogan: (path: String, options: any, fn: any) => void; + export var handlebars: (path: String, options: any, fn: any) => void; + export var underscore: (path: String, options: any, fn: any) => void; + export var qejs: (path: String, options: any, fn: any) => void; + export var walrus: (path: String, options: any, fn: any) => void; + export var mustache: (path: String, options: any, fn: any) => void; + export var dot: (path: String, options: any, fn: any) => void; +} diff --git a/fibers/fibers-tests.ts b/fibers/fibers-tests.ts new file mode 100644 index 0000000000..62645defb1 --- /dev/null +++ b/fibers/fibers-tests.ts @@ -0,0 +1,13 @@ +/// + +import fibers = require('fibers'); + +var fib: fibers.Fiber; +var x:any = null; +var func: () => void = null; + +fib = fibers(func); +fib = fibers.current; +x = fibers.yield(x); +x = fib.run(); +x = fib.run(x); diff --git a/fibers/fibers.d.ts b/fibers/fibers.d.ts new file mode 100644 index 0000000000..0faea1593c --- /dev/null +++ b/fibers/fibers.d.ts @@ -0,0 +1,24 @@ +// Type definitions for fibers +// Project: https://github.com/laverdet/node-fibers +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/fibers.d.ts + +declare module "fibers" { + + function fibers(callback: () => void): fibers.Fiber; + + module fibers { + export var poolSize: number; + export var fibersCreated: number; + export var current: fibers.Fiber; + export function yield(value: any): any; + + export interface Fiber { + run(step?: number): any; + } + } + + export = fibers; +} diff --git a/form-data/form-data-tests.ts b/form-data/form-data-tests.ts new file mode 100644 index 0000000000..641a368749 --- /dev/null +++ b/form-data/form-data-tests.ts @@ -0,0 +1,8 @@ +/// + +import formData = require('form-data'); + +var value: any; +var fd = new formData.FormData(); +var obj: Object = fd.getHeaders(); +value = fd.pipe(value); diff --git a/form-data/form-data.d.ts b/form-data/form-data.d.ts new file mode 100644 index 0000000000..af0f2d799b --- /dev/null +++ b/form-data/form-data.d.ts @@ -0,0 +1,15 @@ +// Type definitions for fibers +// Project: https://github.com/felixge/node-form-data +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/form-data.d.ts + +declare module "form-data" { + export class FormData { + append(key: string, value: any): FormData; + getHeaders(): Object; + // TODO expand pipe + pipe(to: any): any; + } +} diff --git a/fs-extra/fs-extra-tests.ts b/fs-extra/fs-extra-tests.ts new file mode 100644 index 0000000000..ea3432e1cf --- /dev/null +++ b/fs-extra/fs-extra-tests.ts @@ -0,0 +1,229 @@ +/// +/// + +import fs = require('fs-extra'); +import stream = require('stream'); + +var stats: fs.Stats; +var str: string; +var strArr: string[]; +var bool: boolean; +var num: number; +var src: string; +var dest: string; +var file: string; +var filename: string; +var dir: string; +var path: string; +var data: any; +var object: Object; +var buffer: NodeBuffer; +var modeNum: number; +var modeStr: string; +var encoding: string; +var type: string; +var flags: string; +var srcpath: string; +var dstpath: string; +var oldPath: string; +var newPath: string; +var cache: string; +var offset: number; +var length: number; +var position: number; +var cacheBool: boolean; +var cacheStr: string; +var fd: number; +var len: number; +var uid: number; +var gid: number; +var atime: number; +var mtime: number; +var statsCallback: (err: Error, stats: fs.Stats) => void; +var errorCallback: (err: Error) => void; +var openOpts: fs.OpenOptions; +var watcher: fs.FSWatcher; +var readStreeam: stream.Readable; +var writeStream: stream.Writable; + +fs.copy(src, dest, errorCallback); +fs.copy(src, dest, (src: string) => { + return false; +}, errorCallback); +fs.copySync(src, dest); +fs.copySync(src, dest, (src: string) => { + return false; +}); +fs.createFile(file, errorCallback); +fs.createFileSync(file); + +fs.mkdirs(dir, errorCallback); +fs.mkdirsSync(dir); +fs.mkdirp(dir, errorCallback); +fs.mkdirpSync(dir); + +fs.outputFile(file, data, errorCallback); +fs.outputFileSync(file, data); +fs.outputJson(file, data, errorCallback); +fs.outputJSON(file, data, errorCallback); + +fs.outputJsonSync(file, data); +fs.outputJSONSync(file, data); + +fs.readJson(file, errorCallback); +fs.readJson(file, openOpts, errorCallback); +fs.readJSON(file, errorCallback); +fs.readJSON(file, openOpts, errorCallback); + +fs.readJsonSync(file, openOpts); +fs.readJSONSync(file, openOpts); + +fs.remove(dir, errorCallback); +fs.removeSync(dir); + +fs.writeJson(file, object, errorCallback); +fs.writeJson(file, object, openOpts, errorCallback); +fs.writeJSON(file, object, errorCallback); +fs.writeJSON(file, object, openOpts, errorCallback); + +fs.writeJsonSync(file, object, openOpts); +fs.writeJSONSync(file, object, openOpts); + +fs.rename(oldPath, newPath, errorCallback); +fs.renameSync(oldPath, newPath); +fs.truncate(fd, len, errorCallback); +fs.truncateSync(fd, len); +fs.chown(path, uid, gid, errorCallback); +fs.chownSync(path, uid, gid); +fs.fchown(fd, uid, gid, errorCallback); +fs.fchownSync(fd, uid, gid); +fs.lchown(path, uid, gid, errorCallback); +fs.lchownSync(path, uid, gid); +fs.chmod(path, modeNum, errorCallback); +fs.chmod(path, modeStr, errorCallback); +fs.chmodSync(path, modeNum); +fs.chmodSync(path, modeStr); +fs.fchmod(fd, modeNum, errorCallback); +fs.fchmod(fd, modeStr, errorCallback); +fs.fchmodSync(fd, modeNum); +fs.fchmodSync(fd, modeStr); +fs.lchmod(path, modeStr, errorCallback); +fs.lchmod(path, modeNum, errorCallback); +fs.lchmodSync(path, modeNum); +fs.lchmodSync(path, modeStr); +fs.stat(path, statsCallback); +fs.lstat(path, statsCallback); +fs.fstat(fd, statsCallback); +stats = fs.statSync(path); +stats = fs.lstatSync(path); +stats = fs.fstatSync(fd); +fs.link(srcpath, dstpath, errorCallback); +fs.linkSync(srcpath, dstpath); +fs.symlink(srcpath, dstpath, type, errorCallback); +fs.symlinkSync(srcpath, dstpath, type); +fs.readlink(path, (err: Error, linkString: string) => { + +}); +fs.realpath(path, (err: Error, resolvedPath: string) => { + +}); +fs.realpath(path, cache, (err: Error, resolvedPath: string) => { + +}); +str = fs.realpathSync(path, cacheBool); +fs.unlink(path, errorCallback); +fs.unlinkSync(path); +fs.rmdir(path, errorCallback); +fs.rmdirSync(path); +fs.mkdir(path, modeNum, errorCallback); +fs.mkdir(path, modeStr, errorCallback); +fs.mkdirSync(path, modeNum); +fs.mkdirSync(path, modeStr); +fs.readdir(path, (err: Error, files: string[]) => { + +}); +strArr = fs.readdirSync(path); +fs.close(fd, errorCallback); +fs.closeSync(fd); +fs.open(path, flags, modeStr, (err: Error, fd: number) => [ + +]); +num = fs.openSync(path, flags, modeStr); +fs.utimes(path, atime, mtime, errorCallback); +fs.utimesSync(path, atime, mtime); +fs.futimes(fd, atime, mtime, errorCallback); +fs.futimesSync(fd, atime, mtime); +fs.fsync(fd, errorCallback); +fs.fsyncSync(fd); +fs.write(fd, buffer, offset, length, position, (err: Error, written: number, buffer: NodeBuffer) => { + +}); +num = fs.writeSync(fd, buffer, offset, length, position); +fs.read(fd, buffer, offset, length, position, (err: Error, bytesRead: number, buffer: NodeBuffer) => { + +}); +num = fs.readSync(fd, buffer, offset, length, position); +fs.readFile(filename, (err: Error, data: NodeBuffer) => { + +}); +fs.readFile(filename, encoding, (err: Error, data: string) => { + +}); +fs.readFile(filename, openOpts, (err: Error, data: string) => { + +}); +fs.readFile(filename, (err: Error, data: NodeBuffer) => { + +}); +buffer = fs.readFileSync(filename); +str = fs.readFileSync(filename, encoding); +str = fs.readFileSync(filename, openOpts); + +fs.writeFile(filename, data, errorCallback); +fs.writeFile(filename, data, encoding, errorCallback); +fs.writeFile(filename, data, openOpts, errorCallback); +fs.writeFileSync(filename, data); +fs.writeFileSync(filename, data, encoding); +fs.writeFileSync(filename, data, openOpts); + +fs.appendFile(filename, data, errorCallback); +fs.appendFile(filename, data, encoding, errorCallback); +fs.appendFile(filename, data, openOpts, errorCallback); +fs.appendFileSync(filename, data); +fs.appendFileSync(filename, data, encoding); +fs.appendFileSync(filename, data, openOpts); + +fs.watchFile(filename, { + curr: stats, + prev: stats +}); +fs.watchFile(filename, { + persistent: bool, + interval: num +}, { + curr: stats, + prev: stats +}); +fs.unwatchFile(filename); +watcher = fs.watch(filename, { persistent: bool }, (event: string, filename: string) => { + +}); +fs.exists(path, (exists: boolean) => { + +}); +bool = fs.existsSync(path); + +readStreeam = fs.createReadStream(path); +readStreeam = fs.createReadStream(path, { + flags: str, + encoding: str, + fd: num, + mode: num, + bufferSize: num +}); +writeStream = fs.createWriteStream(path); +writeStream = fs.createWriteStream(path, { + flags: str, + encoding: str, + string: str +}); diff --git a/fs-extra/fs-extra.d.ts b/fs-extra/fs-extra.d.ts new file mode 100644 index 0000000000..75f6c71a03 --- /dev/null +++ b/fs-extra/fs-extra.d.ts @@ -0,0 +1,187 @@ +// Type definitions for aws-sdk +// Project: https://github.com/jprichardson/node-fs-extra +// Definitions by: midknight41 +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/fs-extra.d.ts + +/// + +declare module "fs-extra" { + import stream = require("stream"); + + export interface Stats { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + dev: number; + ino: number; + mode: number; + nlink: number; + uid: number; + gid: number; + rdev: number; + size: number; + blksize: number; + blocks: number; + atime: Date; + mtime: Date; + ctime: Date; + } + + export interface FSWatcher { + close(): void; + } + + export class ReadStream extends stream.Readable { } + export class WriteStream extends stream.Writable { } + + //extended methods + export function copy(src: string, dest: string, callback?: (err: Error) => void): void; + export function copy(src: string, dest: string, filter: (src: string) => boolean, callback?: (err: Error) => void): void; + + export function copySync(src: string, dest: string): void; + export function copySync(src: string, dest: string, filter: (src: string) => boolean): void; + + export function createFile(file: string, callback?: (err: Error) => void): void; + export function createFileSync(file: string): void; + + export function mkdirs(dir: string, callback?: (err: Error) => void): void; + export function mkdirp(dir: string, callback?: (err: Error) => void): void; + export function mkdirsSync(dir: string): void; + export function mkdirpSync(dir: string): void; + + export function outputFile(file: string, data: any, callback?: (err: Error) => void): void; + export function outputFileSync(file: string, data: any): void; + + export function outputJson(file: string, data: any, callback?: (err: Error) => void): void; + export function outputJSON(file: string, data: any, callback?: (err: Error) => void): void; + export function outputJsonSync(file: string, data: any): void; + export function outputJSONSync(file: string, data: any): void; + + export function readJson(file: string, callback?: (err: Error) => void): void; + export function readJson(file: string, options?: OpenOptions, callback?: (err: Error) => void): void; + export function readJSON(file: string, callback?: (err: Error) => void): void; + export function readJSON(file: string, options?: OpenOptions, callback?: (err: Error) => void): void; + + export function readJsonSync(file: string, options?: OpenOptions): void; + export function readJSONSync(file: string, options?: OpenOptions): void; + + export function remove(dir: string, callback?: (err: Error) => void): void; + export function removeSync(dir: string): void; + // export function delete(dir: string, callback?: (err: Error) => void): void; + // export function deleteSync(dir: string): void; + + export function writeJson(file: string, object: any, callback?: (err: Error) => void): void; + export function writeJson(file: string, object: any, options?: OpenOptions, callback?: (err: Error) => void): void; + export function writeJSON(file: string, object: any, callback?: (err: Error) => void): void; + export function writeJSON(file: string, object: any, options?: OpenOptions, callback?: (err: Error) => void): void; + + export function writeJsonSync(file: string, object: any, options?: OpenOptions): void; + export function writeJSONSync(file: string, object: any, options?: OpenOptions): void; + + export function rename(oldPath: string, newPath: string, callback?: (err: Error) => void): void; + export function renameSync(oldPath: string, newPath: string): void; + export function truncate(fd: number, len: number, callback?: (err: Error) => void): void; + export function truncateSync(fd: number, len: number): void; + export function chown(path: string, uid: number, gid: number, callback?: (err: Error) => void): void; + export function chownSync(path: string, uid: number, gid: number): void; + export function fchown(fd: number, uid: number, gid: number, callback?: (err: Error) => void): void; + export function fchownSync(fd: number, uid: number, gid: number): void; + export function lchown(path: string, uid: number, gid: number, callback?: (err: Error) => void): void; + export function lchownSync(path: string, uid: number, gid: number): void; + export function chmod(path: string, mode: number, callback?: (err: Error) => void): void; + export function chmod(path: string, mode: string, callback?: (err: Error) => void): void; + export function chmodSync(path: string, mode: number): void; + export function chmodSync(path: string, mode: string): void; + export function fchmod(fd: number, mode: number, callback?: (err: Error) => void): void; + export function fchmod(fd: number, mode: string, callback?: (err: Error) => void): void; + export function fchmodSync(fd: number, mode: number): void; + export function fchmodSync(fd: number, mode: string): void; + export function lchmod(path: string, mode: string, callback?: (err: Error) => void): void; + export function lchmod(path: string, mode: number, callback?: (err: Error) => void): void; + export function lchmodSync(path: string, mode: number): void; + export function lchmodSync(path: string, mode: string): void; + export function stat(path: string, callback?: (err: Error, stats: Stats) => void): void; + export function lstat(path: string, callback?: (err: Error, stats: Stats) => void): void; + export function fstat(fd: number, callback?: (err: Error, stats: Stats) => void): void; + export function statSync(path: string): Stats; + export function lstatSync(path: string): Stats; + export function fstatSync(fd: number): Stats; + export function link(srcpath: string, dstpath: string, callback?: (err: Error) => void): void; + export function linkSync(srcpath: string, dstpath: string): void; + export function symlink(srcpath: string, dstpath: string, type?: string, callback?: (err: Error) => void): void; + export function symlinkSync(srcpath: string, dstpath: string, type?: string): void; + export function readlink(path: string, callback?: (err: Error, linkString: string) => void): void; + export function realpath(path: string, callback?: (err: Error, resolvedPath: string) => void): void; + export function realpath(path: string, cache: string, callback: (err: Error, resolvedPath: string) => void): void; + export function realpathSync(path: string, cache?: boolean): string; + export function unlink(path: string, callback?: (err: Error) => void): void; + export function unlinkSync(path: string): void; + export function rmdir(path: string, callback?: (err: Error) => void): void; + export function rmdirSync(path: string): void; + export function mkdir(path: string, mode?: number, callback?: (err: Error) => void): void; + export function mkdir(path: string, mode?: string, callback?: (err: Error) => void): void; + export function mkdirSync(path: string, mode?: number): void; + export function mkdirSync(path: string, mode?: string): void; + export function readdir(path: string, callback?: (err: Error, files: string[]) => void ): void; + export function readdirSync(path: string): string[]; + export function close(fd: number, callback?: (err: Error) => void): void; + export function closeSync(fd: number): void; + export function open(path: string, flags: string, mode?: string, callback?: (err: Error, fs: number) => void): void; + export function openSync(path: string, flags: string, mode?: string): number; + export function utimes(path: string, atime: number, mtime: number, callback?: (err: Error) => void): void; + export function utimesSync(path: string, atime: number, mtime: number): void; + export function futimes(fd: number, atime: number, mtime: number, callback?: (err: Error) => void): void; + export function futimesSync(fd: number, atime: number, mtime: number): void; + export function fsync(fd: number, callback?: (err: Error) => void): void; + export function fsyncSync(fd: number): void; + export function write(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number, callback?: (err: Error, written: number, buffer: NodeBuffer) => void): void; + export function writeSync(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number): number; + export function read(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number, callback?: (err: Error, bytesRead: number, buffer: NodeBuffer) => void ): void; + export function readSync(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number): number; + export function readFile(filename: string, encoding: string, callback: (err: Error, data: string) => void ): void; + export function readFile(filename: string, options: OpenOptions, callback: (err: Error, data: string) => void ): void; + export function readFile(filename: string, callback: (err: Error, data: NodeBuffer) => void ): void; + export function readFileSync(filename: string): NodeBuffer; + export function readFileSync(filename: string, encoding: string): string; + export function readFileSync(filename: string, options: OpenOptions): string; + export function writeFile(filename: string, data: any, encoding?: string, callback?: (err: Error) => void): void; + export function writeFile(filename: string, data: any, options?: OpenOptions, callback?: (err: Error) => void): void; + export function writeFileSync(filename: string, data: any, encoding?: string): void; + export function writeFileSync(filename: string, data: any, option?: OpenOptions): void; + export function appendFile(filename: string, data: any, encoding?: string, callback?: (err: Error) => void): void; + export function appendFile(filename: string, data: any,option?: OpenOptions, callback?: (err: Error) => void): void; + export function appendFileSync(filename: string, data: any, encoding?: string): void; + export function appendFileSync(filename: string, data: any, option?: OpenOptions): void; + export function watchFile(filename: string, listener: { curr: Stats; prev: Stats; }): void; + export function watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: { curr: Stats; prev: Stats; }): void; + export function unwatchFile(filename: string, listener?: Stats): void; + export function watch(filename: string, options?: { persistent?: boolean; }, listener?: (event: string, filename: string) => any): FSWatcher; + export function exists(path: string, callback?: (exists: boolean) => void ): void; + export function existsSync(path: string): boolean; + + export interface OpenOptions { + encoding?: string; + flag?: string; + } + + export interface ReadStreamOptions { + flags?: string; + encoding?: string; + fd?: number; + mode?: number; + bufferSize?: number; + } + export interface WriteStreamOptions { + flags?: string; + encoding?: string; + string?: string; + } + export function createReadStream(path: string, options?: ReadStreamOptions): ReadStream; + export function createWriteStream(path: string, options?: WriteStreamOptions): WriteStream; +} diff --git a/gently/gently-tests.ts b/gently/gently-tests.ts new file mode 100644 index 0000000000..a1ce563520 --- /dev/null +++ b/gently/gently-tests.ts @@ -0,0 +1,14 @@ +/// + +import Gently = require('gently'); + +var g = new Gently(); + +g.expect(null, '', () => { + // .. +})(); +g.expect(null, '', 0, () => { + // .. +})(); + +g.restore(null, ''); diff --git a/gently/gently.d.ts b/gently/gently.d.ts new file mode 100644 index 0000000000..de2ec72c86 --- /dev/null +++ b/gently/gently.d.ts @@ -0,0 +1,26 @@ +// Type definitions for gently +// Project: https://www.npmjs.org/package/gently +// Definitions by: bonnici +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/gently.d.ts + +declare module "gently" { + export = Gently; + + class Gently { + constructor(); + hijacked: any[]; + + expect(obj: any, method: string, stubFn?: (...args: any[]) => any): (...args: any[]) => any; + expect(obj: any, method: string, count: number, stubFn: (...args: any[]) => any): (...args: any[]) => any; + + restore(obj: any, method: string): void; + + hijack(realRequire: (id: string) => any): (id: string) => any; + + stub(location: string, exportsName?: string): any; + + verify(msg?: string): void; + } +} diff --git a/imagemagick/imagemagick-tests.ts b/imagemagick/imagemagick-tests.ts new file mode 100644 index 0000000000..dbf03db04b --- /dev/null +++ b/imagemagick/imagemagick-tests.ts @@ -0,0 +1,27 @@ +/// +/// + +import imagemagick = require('imagemagick'); +import child_process = require('child_process'); + +var str: string = null; +var num: number = 0; +var cp: child_process.ChildProcess; + +cp = imagemagick.identify(str, (err: Error, res: imagemagick.Features) => { + str = res.format; + num = res.width; + num = res.height; + num = res.depth; +}); + +cp = imagemagick.convert(str, num, (err: Error, res: any) => { + +}); + +cp = imagemagick.resize({ + width: num, + height: num +}, (err: Error, res: any) => { + +}); diff --git a/imagemagick/imagemagick.d.ts b/imagemagick/imagemagick.d.ts new file mode 100644 index 0000000000..0d551a5d4b --- /dev/null +++ b/imagemagick/imagemagick.d.ts @@ -0,0 +1,59 @@ +// Type definitions for imagemagick +// Project: http://github.com/rsms/node-imagemagick +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/imagemagick.d.ts + +/// + +declare module "imagemagick" { + import child_process = require("child_process"); + + export function identify(path: string, callback: (err: Error, features: Features) => void): child_process.ChildProcess; + export function identify(path: any[], callback: (err: Error, result: string) => void): child_process.ChildProcess; + export module identify { + export var path: string; + } + export function readMetadata(path: string, callback: (err: Error, result: any) => void): child_process.ChildProcess; + + export function convert(args: any, callback: (err: Error, result: any) => void): child_process.ChildProcess; + export function convert(args: any, timeout: number, callback: (err: Error, result: any) => void): child_process.ChildProcess; + export module convert { + export var path: string; + } + + export function resize(options: Options, callback: (err: Error, result: any) => void): child_process.ChildProcess; + export function crop(options: Options, callback: (err: Error, result: any) => void): child_process.ChildProcess; + export function resizeArgs(options: Options): ResizeArgs; + + export interface Features { + format?: string; + width?: number; + height?: number; + depth?: number; + } + + export interface Options { + srcPath?: string; //: null, + srcData?: string; //: null, + srcFormat?: string; //: null, + dstPath?: string; //: null, + quality?: number; //: 0.8, + format?: string; //: 'jpg', + progressive?: boolean; //: false, + colorspace?: any; //: null, + width?: number; //: 0, + height?: number; //: 0, + strip?: boolean; //: true, + filter?: string; //: 'Lagrange', + sharpening?: number; //: 0.2, + customArgs?: any[]; //: [], + timeout?: number; //: 0 + } + + export interface ResizeArgs { + opt: Options; + args: string[]; + } +} diff --git a/memory-cache/memory-cache-tests.ts b/memory-cache/memory-cache-tests.ts new file mode 100644 index 0000000000..14ee55c203 --- /dev/null +++ b/memory-cache/memory-cache-tests.ts @@ -0,0 +1,24 @@ +/// + +import memoryCache = require('memory-cache'); + +var key: any; +var value: any; +var bool: boolean; +var num: number; + +memoryCache.put(key, value); +memoryCache.put(key, value, num); +memoryCache.put(key, value, num, (key) => { + +}); +value = memoryCache.get(key); +memoryCache.del(key); +memoryCache.clear(); + +num = memoryCache.size(); +num = memoryCache.memsize(); + +memoryCache.debug(bool); +num = memoryCache.hits(); +num = memoryCache.misses(); diff --git a/memory-cache/memory-cache.d.ts b/memory-cache/memory-cache.d.ts new file mode 100644 index 0000000000..1eb9c61cff --- /dev/null +++ b/memory-cache/memory-cache.d.ts @@ -0,0 +1,20 @@ +// Type definitions for memory-cache +// Project: http://github.com/ptarjan/node-cache +// Definitions by: Jeff Goddard +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/memory-cache.d.ts + +declare module "memory-cache" { + export function put(key: any, value: any, time?: number, timeoutCallback?: (key: any) => void): void; + export function get(key: any): any; + export function del(key: any): void; + export function clear(): void; + + export function size(): number; + export function memsize(): number; + + export function debug(bool: boolean): void; + export function hits(): number; + export function misses(): number; +} diff --git a/mime/mime-tests.ts b/mime/mime-tests.ts new file mode 100644 index 0000000000..36f0e5c15d --- /dev/null +++ b/mime/mime-tests.ts @@ -0,0 +1,13 @@ +/// + +import mime = require('mime'); + +var str: string; +var obj: Object; + +str = mime.lookup(str); +str = mime.extension(str); +mime.load(str); +mime.define(obj); + +str = mime.charsets.lookup(str); diff --git a/mime/mime.d.ts b/mime/mime.d.ts new file mode 100644 index 0000000000..bfaa7a51f1 --- /dev/null +++ b/mime/mime.d.ts @@ -0,0 +1,19 @@ +// Type definitions for mime +// Project: https://github.com/broofa/node-mime +// Definitions by: Jeff Goddard +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/mime.d.ts + +declare module "mime" { + export function lookup(path: string): string; + export function extension(mime: string): string; + export function load(filepath: string): void; + export function define(mimes: Object): void; + + interface Charsets { + lookup(mime: string): string; + } + + export var charsets: Charsets; +} diff --git a/mu2/mu2-tests.ts b/mu2/mu2-tests.ts new file mode 100644 index 0000000000..e8172b800e --- /dev/null +++ b/mu2/mu2-tests.ts @@ -0,0 +1,32 @@ +/// +/// + +import mu2 = require('mu2'); +import stream = require('stream'); + +var str: string; +var value: any; +var read: ReadableStream; +var parsed: mu2.IParsed; + +str = mu2.root; + +read = mu2.compileAndRender(str, value); + +mu2.compile(str, (err: Error, parsed: mu2.IParsed) => { + +}); +mu2.compileText(str, str, (err: Error, parsed: mu2.IParsed) => { + +}); +parsed = mu2.compileText(str, str); +parsed = mu2.compileText(str); + +read = mu2.render(str, value); +read = mu2.render(parsed, value); + +read = mu2.renderText(str, value); +read = mu2.renderText(str, value, value); + +mu2.clearCache(); +mu2.clearCache(str); diff --git a/mu2/mu2.d.ts b/mu2/mu2.d.ts new file mode 100644 index 0000000000..cbc46d6fb7 --- /dev/null +++ b/mu2/mu2.d.ts @@ -0,0 +1,29 @@ +// Type definitions for mu2 +// Project: http://github.com/raycmorgan/mu +// Definitions by: Jeff Goddard +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/mu2.d.ts + +/// + +declare module "mu2" { + export var root: string; + + export function compileAndRender(templateName: string, view: any): ReadableStream; + + export function compile(filename: string, callback: (err: Error, parsed: IParsed) => void): void; + + export function compileText(name: string, template: string, callback: (err: Error, parsed: IParsed) => void): void; + export function compileText(name: string, template: string): IParsed; + export function compileText(template: string): IParsed; + + export function render(filenameOrParsed: string, view: any): ReadableStream; + export function render(filenameOrParsed: IParsed, view: any): ReadableStream; + + export function renderText(template: string, view: any, partials?: any): ReadableStream; + + export function clearCache(templateName?: string): void; + + export interface IParsed { } +} diff --git a/nconf/nconf-tests.ts b/nconf/nconf-tests.ts new file mode 100644 index 0000000000..13b314af8e --- /dev/null +++ b/nconf/nconf-tests.ts @@ -0,0 +1,101 @@ +/// + +import nconf = require('nconf'); + +var value: any; +var num: number; +var bool: boolean; +var valueArr: any[]; +var str: string; +var strArr: string[]; +var p: nconf.Provider; +var opts: nconf.IOptions; +var fopts: nconf.IFileOptions; +var store: nconf.IStore; +var callback: (err: Error) => void; + +value = nconf.clear(str, callback); +value = nconf.get (str, callback); +value = nconf.merge(str, value, callback); +value = nconf.set (str, value, callback); +value = nconf.reset(callback); + +value = nconf.load(callback); +nconf.mergeSources(value); +value = nconf.loadSources(); +value = nconf.save(value, callback); + +p = nconf.add(str); +p = nconf.add(str, opts);; + +p = nconf.argv(); +p = nconf.argv(opts); + +p = nconf.env(); +p = nconf.env(opts); + +p = nconf.file(str); +p = nconf.file(str, fopts); +p = nconf.file(fopts); + +p = nconf.use(str); +p = nconf.use(str, opts); + +p = nconf.defaults(); +p = nconf.defaults(opts); + +nconf.init(); +nconf.init(opts); + +p = nconf.overrides(); +p = nconf.overrides(opts); +nconf.remove(str); +store = nconf.create(str, opts); + +str = nconf.key(value, value); +valueArr = nconf.path(value); +nconf.loadFiles(value, callback); +nconf.loadFilesSync(value, callback); + +// - - - - - - - - - - - - - - - - - - - - - - - - - + +str = store.type; +value = store.get(str); +bool = store.set(str, value); +bool = store.clear(str); +bool = store.merge(str, value); +bool = store.reset(callback); + +// - - - - - - - - - - - - - - - - - - - - - - - - - + +p = new nconf.Provider(opts); +value = p.stores; +valueArr = p.sources; + +value = p.clear(str, callback); +value = p.get(str, callback); +value = p.merge(str,value,callback); +value = p.set(str,value,callback); +value = p.reset(callback); + +value = p.load(callback); +p.mergeSources(value); +value = p.loadSources(); +value = p.save(value, callback); + +p = p.add(str); +p = p.add(str, opts); +p = p.argv(); +p = p.argv(opts); +p = p.env(); +p = p.env(opts); +p = p.file(str); +p = p.file(str, fopts); +p = p.file(fopts); +p = p.use(str, opts); + +p = p.defaults(opts); +p.init(opts); +p = p.overrides(opts); +p.remove(str); +store = p.create(str, opts); diff --git a/nconf/nconf.d.ts b/nconf/nconf.d.ts new file mode 100644 index 0000000000..2ebd18a150 --- /dev/null +++ b/nconf/nconf.d.ts @@ -0,0 +1,100 @@ +// Type definitions for nconf +// Project: https://github.com/flatiron/nconf +// Definitions by: Jeff Goddard +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/nconf.d.ts + +declare module "nconf" { + export var version: number; + export var stores: any; + export var sources: any[]; + + export function clear(key: string, callback?: ICallbackFunction): any; + export function get (key: string, callback?: ICallbackFunction): any; + export function merge(key: string, value: any, callback?: ICallbackFunction): any; + export function set (key: string, value: any, callback?: ICallbackFunction): any; + export function reset(callback?: ICallbackFunction): any; + + export function load(callback?: ICallbackFunction): any; + export function mergeSources(data: any): void; + export function loadSources(): any; + export function save(value: any, callback?: ICallbackFunction): any; + + export function add(name: string, options?: IOptions): Provider; + export function argv(options?: IOptions): Provider; + export function env(options?: IOptions): Provider; + export function file(name: string, options?: IFileOptions): Provider; + export function file(options: IFileOptions): Provider; + export function use(name: string, options?: IOptions): Provider; + export function defaults(options?: IOptions): Provider; + export function init(options?: IOptions): void; + export function overrides(options?: IOptions): Provider; + export function remove(name: string): void; + export function create(name: string, options: IOptions): IStore; + + export function key(...values: any[]): string; + export function path(key: any): any[]; + export function loadFiles(files: any, callback?: ICallbackFunction): void; + export function loadFilesSync(files: any, callback?: ICallbackFunction): void; + + export enum formats { + json, + ini + } + + export interface IOptions { + type?: string; + } + + export interface IFileOptions extends IOptions { + file?: string; + dir?: string; + search?: boolean; + json_spacing?: number; + } + + export interface ICallbackFunction { + (err: Error): void; + } + + export class Provider { + constructor(options: IOptions); + + stores: any; + sources: any[]; + + clear(key: string, callback?: ICallbackFunction): any; + get (key: string, callback?: ICallbackFunction): any; + merge(key: string, value: any, callback?: ICallbackFunction): any; + set (key: string, value: any, callback?: ICallbackFunction): any; + reset(callback?: ICallbackFunction): any; + + load(callback?: ICallbackFunction): any; + mergeSources(data: any): void; + loadSources(): any; + save(value: any, callback?: ICallbackFunction): any; + + add(name: string, options?: IOptions): Provider; + argv(options?: IOptions): Provider; + env(options?: IOptions): Provider; + file(name: string, options?: IFileOptions): Provider; + file(options: IFileOptions): Provider; + use(name: string, options?: IOptions): Provider; + + defaults(options?: IOptions): Provider; + init(options?: IOptions): void; + overrides(options?: IOptions): Provider; + remove(name: string): void; + create(name: string, options: IOptions): IStore; + } + + export interface IStore { + type: string; + get (key: string): any; + set (key: string, value: any): boolean; + clear(key: string): boolean; + merge(key: string, value: any): boolean; + reset(callback?: ICallbackFunction): boolean; + } +} diff --git a/nock/nock-tests.ts b/nock/nock-tests.ts new file mode 100644 index 0000000000..b3b68dd200 --- /dev/null +++ b/nock/nock-tests.ts @@ -0,0 +1,60 @@ +/// + +import nock = require('nock'); + +var inst: nock.Scope; +var str: string; +var bool: boolean; +var data: string; +var num: number; +var value: any; +var regex: RegExp; +var options: nock.Options; +var headers: Object; + +inst = inst.head(str); +inst = inst.get(str); +inst = inst.get(str, data); +inst = inst.post(str); +inst = inst.post(str, data); +inst = inst.put(str); +inst = inst.put(str, data); + +inst = inst.delete(str); +inst = inst.delete(str, data); + +inst = inst.intercept(str, str); +inst = inst.intercept(str, str, str); +inst = inst.intercept(str, str, str, value); + +inst = inst.reply(num); +inst = inst.reply(num, str); +inst = inst.reply(num, str, headers); +inst = inst.reply(num, (uri: string, body: string) => { + return str; +}); +inst = inst.reply(num, (uri: string, body: string) => { + return str; +}, headers); +inst = inst.replyWithFile(num, str); + +inst = inst.defaultReplyHeaders(value); +inst = inst.matchHeader(str, str); + +inst = inst.filteringPath(regex, str); +inst = inst.filteringPath((path: string) => { + return str; +}); +inst = inst.filteringRequestBody(regex, str); +inst = inst.filteringRequestBody((path: string) => { + return str; +}); + +inst = inst.persist(); +inst = inst.log(() => { + +}); + +inst.done(); +bool = inst.isDone(); +inst.restore(); diff --git a/nock/nock.d.ts b/nock/nock.d.ts new file mode 100644 index 0000000000..9c8aaac2ef --- /dev/null +++ b/nock/nock.d.ts @@ -0,0 +1,54 @@ +// Type definitions for nock +// Project: https://github.com/pgte/nock +// Definitions by: bonnici +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/nock.d.ts + +declare module "nock" { + export = nock; + + function nock (host: string, options?: nock.Options): nock.Scope; + + module nock { + export function cleanAll(): void; + export var recorder: Recorder; + + export interface Scope { + get(path: string, data?: string): Scope; + post(path: string, data?: string): Scope; + put(path: string, data?: string): Scope; + head(path: string): Scope; + delete(path: string, data?: string): Scope; + intercept(path: string, verb: string, body?: string, options?: any): Scope; + + reply(responseCode: number, body?: string, headers?: Object): Scope; + reply(responseCode: number, callback: (uri: string, body: string) => string, headers?: Object): Scope; + replyWithFile(responseCode: number, fileName: string): Scope; + + defaultReplyHeaders(headers: Object): Scope; + matchHeader(name: string, value: string): Scope; + + filteringPath(regex: RegExp, replace: string): Scope; + filteringPath(fn: (path: string) => string): Scope; + filteringRequestBody(regex: RegExp, replace: string): Scope; + filteringRequestBody(fn: (path: string) => string): Scope; + + persist(): Scope; + log(out: () => void): Scope; + + done(): void; + isDone(): boolean; + restore(): void; + } + + export interface Recorder { + rec(capture?: boolean): void; + play(): string[]; + } + + export interface Options { + allowUnmocked?: boolean; + } + } +} diff --git a/nodeunit/nodeunit-tests.ts b/nodeunit/nodeunit-tests.ts new file mode 100644 index 0000000000..bdd705b0e3 --- /dev/null +++ b/nodeunit/nodeunit-tests.ts @@ -0,0 +1,59 @@ +/// + +import nodeunit = require('nodeunit'); + +var num: number; +var value: any; +var actual: any; +var expected: any; +var message: string; +var operator: string; +var error: any; +var block: () =>{ + +}; + +export var testGroup: nodeunit.ITestGroup = { + setUp: function (callback: nodeunit.ICallbackFunction) { + callback(); + }, + tearDown: function (callback: nodeunit.ICallbackFunction) { + callback(); + }, + test1: function (test: nodeunit.Test) { + test.expect(num); + + test.fail(actual, expected, message, operator); + test.assert(value, message); + test.ok(value); + test.ok(value, message); + test.equal(actual, expected); + test.equal(actual, expected, message); + test.notEqual(actual, expected); + test.notEqual(actual, expected, message); + test.deepEqual(actual, expected); + test.deepEqual(actual, expected, message); + test.notDeepEqual(actual, expected); + test.notDeepEqual(actual, expected, message); + test.strictEqual(actual, expected); + test.strictEqual(actual, expected, message); + test.notStrictEqual(actual, expected); + test.notStrictEqual(actual, expected, message); + test.throws(block); + test.throws(block, error); + test.throws(block, error, message); + test.doesNotThrow(block); + test.doesNotThrow(block, error); + test.doesNotThrow(block, error, message); + test.ifError(value); + + //assertion wrappers + test.equals(actual, expected); + test.equals(actual, expected, message); + test.same(actual, expected); + test.same(actual, expected, message); + + test.done(error); + test.done(); + } +}; diff --git a/nodeunit/nodeunit.d.ts b/nodeunit/nodeunit.d.ts new file mode 100644 index 0000000000..c427dbf171 --- /dev/null +++ b/nodeunit/nodeunit.d.ts @@ -0,0 +1,59 @@ +// Type definitions for nodeunit +// Project: https://github.com/caolan/nodeunit +// Definitions by: Jeff Goddard +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/nodeunit.d.ts + +declare module 'nodeunit' { + export interface Test { + done: ICallbackFunction; + expect(num: number): void; + + //assersions from node assert module + fail(actual: any, expected: any, message: string, operator: string): void; + assert(value: any, message: string): void; + ok(value: any, message?: string): void; + equal(actual: any, expected: any, message?: string): void; + notEqual(actual: any, expected: any, message?: string): void; + deepEqual(actual: any, expected: any, message?: string): void; + notDeepEqual(actual: any, expected: any, message?: string): void; + strictEqual(actual: any, expected: any, message?: string): void; + notStrictEqual(actual: any, expected: any, message?: string): void; + throws(block: any, error?: any, message?: string): void; + doesNotThrow(block: any, error?: any, message?: string): void; + ifError(value: any): void; + + //assertion wrappers + equals(actual: any, expected: any, message?: string): void; + same(actual: any, expected: any, message?: string): void; + } + + // Test Group Usage: + // var testGroup: nodeunit.ITestGroup = { + // setUp: function (callback: nodeunit.ICallbackFunction): void { + // callback(); + // }, + // tearDown: function (callback: nodeunit.ICallbackFunction): void { + // callback(); + // }, + // test1: function (test: nodeunit.Test): void { + // test.done(); + // } + // } + // exports.testgroup = testGroup; + + export interface ITestBody { + (callback: Test): void; + } + + export interface ITestGroup { + setUp?: (callback: ICallbackFunction) => void; + tearDown?: (callback: ICallbackFunction) => void; + } + + export interface ICallbackFunction { + (err?: any): void; + } +} + diff --git a/optimist/optimist-tests.ts b/optimist/optimist-tests.ts new file mode 100644 index 0000000000..aa7f0341ff --- /dev/null +++ b/optimist/optimist-tests.ts @@ -0,0 +1,46 @@ +/// + +import optimist = require('optimist'); + +var fn: Function; +var str: string; +var value: any; +var num: number; +var bool: boolean; +var strArr: string[]; + +var argv: optimist.Argv; +var opt: optimist.Optimist; + +argv = opt.argv; +argv = opt.argv; +argv = optimist(strArr).argv; + +opt = optimist(strArr).default(str, value); +opt = optimist(strArr).default({}); + +opt = optimist(strArr).boolean(str); +opt = optimist(strArr).boolean(strArr); + +opt = optimist(strArr).string(str); +opt = optimist(strArr).string(strArr); + +opt = opt.wrap(num); + +opt.help(); +opt.showHelp(fn); + +opt = opt.usage(str); + +opt = opt.demand(str); +opt = opt.demand(num); +opt = opt.demand(strArr); + +opt = opt.alias(str, str); + +opt = opt.describe(str, str); + +opt = opt.options(str, Object); + +opt.check(fn); +opt = opt.parse(strArr); diff --git a/optimist/optimist.d.ts b/optimist/optimist.d.ts new file mode 100644 index 0000000000..01d44ab630 --- /dev/null +++ b/optimist/optimist.d.ts @@ -0,0 +1,53 @@ +// Type definitions for optimist +// Project: https://github.com/substack/node-optimist +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/optimist.d.ts + +declare module "optimist" { + + function optimist(args: string[]): optimist.Optimist; + + module optimist { + export interface Optimist { + default(name: string, value: any): Optimist; + default(args: Object): Optimist; + + boolean(name: string): Optimist; + boolean(names: string[]): Optimist; + + string(name: string): Optimist; + string(names: string[]): Optimist; + + wrap(columns: number): Optimist; + + help(): void; + showHelp(fn: Function): void; + + usage(message: string): Optimist; + + demand(key: string): Optimist; + demand(key: number): Optimist; + demand(key: string[]): Optimist; + + alias(key: string, alias: string): Optimist; + + describe(key: string, desc: string): Optimist; + + options(key: string, opt: Object): Optimist; + + check(fn: Function): void; + + parse(args: string[]): Optimist; + + argv: Argv; + } + + export interface Argv extends Object { + _: string[]; + } + } + + export = optimist; +} diff --git a/redis/redis-tests.ts b/redis/redis-tests.ts new file mode 100644 index 0000000000..98ed2371be --- /dev/null +++ b/redis/redis-tests.ts @@ -0,0 +1,62 @@ +/// + +import redis = require('redis'); + +var value: any; +var valueArr: any[]; +var num: number; +var str: string; +var bool: boolean; +var err: Error; +var args: any[]; +var options: redis.ClientOpts; +var client: redis.RedisClient; +var info: redis.ServerInfo; +var resCallback: (err: Error, res: any) => void; +var numCallback: (err: Error, res: number) => void; +var strCallback: (err: Error, res: string) => void; +var messageHandler: (channel: string, message: any) => void; + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +bool = redis.debug_mode; +redis.print(err, value); + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +client = redis.createClient(num, str, options); + +bool = client.connected; +num = client.retry_delay; +num = client.retry_backoff; +valueArr = client.command_queue; +valueArr = client.offline_queue; +info = client.server_info; + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +client.end(); + +// Connection (http://redis.io/commands#connection) +client.auth(str, resCallback); +client.ping(numCallback); + +// Strings (http://redis.io/commands#strings) +client.append(str, str, numCallback); +client.bitcount(str, numCallback); +client.bitcount(str, num, num, numCallback); +client.set(str, str, strCallback); +client.get(str, strCallback); +client.exists(str, str, numCallback); + +client.publish(str, value); +client.subscribe(str); +client.on(str, messageHandler); + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +// some of the bulk methods +client.get(args); +client.get(args, resCallback); +client.set(args); +client.set(args, resCallback); diff --git a/redis/redis.d.ts b/redis/redis.d.ts new file mode 100644 index 0000000000..e31b130aca --- /dev/null +++ b/redis/redis.d.ts @@ -0,0 +1,224 @@ +// Type definitions for redis +// Project: https://github.com/mranney/node_redis +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/redis.d.ts + +declare module "redis" { + export function createClient(port_arg: number, host_arg: string, options: ClientOpts): RedisClient; + export function print(err: Error, reply: any): void; + export var debug_mode: boolean; + + interface MessageHandler { + (channel: string, message: any): void; + } + + interface ResCallback { + (err: Error, res: any): void; + } + + interface NumCallback { + (err: Error, reply: number): void; + } + + interface StringCallback { + (err: Error, reply: string): void; + } + + interface ServerInfo { + redis_version: string; + versions: number[]; + } + + interface ClientOpts { + parser: string; + return_buffers?: boolean; + detect_buffers?: boolean; + socket_nodelay?: boolean; + no_ready_check?: boolean; + enable_offline_queue?: boolean; + retry_max_delay?: number; + connect_timeout?: number; + max_attempts?: number; + auth_pass?: boolean; + } + + interface RedisClient { + // event: connect + // event: error + // event: message + // event: pmessage + // event: subscribe + // event: psubscribe + // event: unsubscribe + // event: punsubscribe + + connected: boolean; + retry_delay: number; + retry_backoff: number; + command_queue: any[]; + offline_queue: any[]; + server_info: ServerInfo; + + end(): void; + + // Connection (http://redis.io/commands#connection) + auth(password: string, callback?: ResCallback): void; + ping(callback?: NumCallback): void; + + // Strings (http://redis.io/commands#strings) + append(key: string, value: string, callback?: NumCallback): void; + bitcount(key: string, callback?: NumCallback): void; + bitcount(key: string, start: number, end: number, callback?: NumCallback): void; + set(key: string, value: string, callback?: StringCallback): void; + get(key: string, callback?: StringCallback): void; + exists(key: string, value: string, callback?: NumCallback): void; + + publish(channel: string, value: any): void; + subscribe(channel: string): void; + on(channel: string, handler: MessageHandler): void; + + /* + commands = set_union([ + "get", "set", "setnx", "setex", "append", "strlen", "del", "exists", "setbit", "getbit", "setrange", "getrange", "substr", + "incr", "decr", "mget", "rpush", "lpush", "rpushx", "lpushx", "linsert", "rpop", "lpop", "brpop", "brpoplpush", "blpop", "llen", "lindex", + "lset", "lrange", "ltrim", "lrem", "rpoplpush", "sadd", "srem", "smove", "sismember", "scard", "spop", "srandmember", "sinter", "sinterstore", + "sunion", "sunionstore", "sdiff", "sdiffstore", "smembers", "zadd", "zincrby", "zrem", "zremrangebyscore", "zremrangebyrank", "zunionstore", + "zinterstore", "zrange", "zrangebyscore", "zrevrangebyscore", "zcount", "zrevrange", "zcard", "zscore", "zrank", "zrevrank", "hset", "hsetnx", + "hget", "hmset", "hmget", "hincrby", "hdel", "hlen", "hkeys", "hvals", "hgetall", "hexists", "incrby", "decrby", "getset", "mset", "msetnx", + "randomkey", "select", "move", "rename", "renamenx", "expire", "expireat", "keys", "dbsize", "auth", "ping", "echo", "save", "bgsave", + "bgrewriteaof", "shutdown", "lastsave", "type", "multi", "exec", "discard", "sync", "flushdb", "flushall", "sort", "info", "monitor", "ttl", + "persist", "slaveof", "debug", "config", "subscribe", "unsubscribe", "psubscribe", "punsubscribe", "publish", "watch", "unwatch", "cluster", + "restore", "migrate", "dump", "object", "client", "eval", "evalsha"], require("./lib/commands")); + */ + + get(args: any[], callback?: ResCallback): void; + set(args: any[], callback?: ResCallback): void; + setnx(args: any[], callback?: ResCallback): void; + setex(args: any[], callback?: ResCallback): void; + append(args: any[], callback?: ResCallback): void; + strlen(args: any[], callback?: ResCallback): void; + del(args: any[], callback?: ResCallback): void; + exists(args: any[], callback?: ResCallback): void; + setbit(args: any[], callback?: ResCallback): void; + getbit(args: any[], callback?: ResCallback): void; + setrange(args: any[], callback?: ResCallback): void; + getrange(args: any[], callback?: ResCallback): void; + substr(args: any[], callback?: ResCallback): void; + incr(args: any[], callback?: ResCallback): void; + decr(args: any[], callback?: ResCallback): void; + mget(args: any[], callback?: ResCallback): void; + rpush(args: any[], callback?: ResCallback): void; + lpush(args: any[], callback?: ResCallback): void; + rpushx(args: any[], callback?: ResCallback): void; + lpushx(args: any[], callback?: ResCallback): void; + linsert(args: any[], callback?: ResCallback): void; + rpop(args: any[], callback?: ResCallback): void; + lpop(args: any[], callback?: ResCallback): void; + brpop(args: any[], callback?: ResCallback): void; + brpoplpush(args: any[], callback?: ResCallback): void; + blpop(args: any[], callback?: ResCallback): void; + llen(args: any[], callback?: ResCallback): void; + lindex(args: any[], callback?: ResCallback): void; + lset(args: any[], callback?: ResCallback): void; + lrange(args: any[], callback?: ResCallback): void; + ltrim(args: any[], callback?: ResCallback): void; + lrem(args: any[], callback?: ResCallback): void; + rpoplpush(args: any[], callback?: ResCallback): void; + sadd(args: any[], callback?: ResCallback): void; + srem(args: any[], callback?: ResCallback): void; + smove(args: any[], callback?: ResCallback): void; + sismember(args: any[], callback?: ResCallback): void; + scard(args: any[], callback?: ResCallback): void; + spop(args: any[], callback?: ResCallback): void; + srandmember(args: any[], callback?: ResCallback): void; + sinter(args: any[], callback?: ResCallback): void; + sinterstore(args: any[], callback?: ResCallback): void; + sunion(args: any[], callback?: ResCallback): void; + sunionstore(args: any[], callback?: ResCallback): void; + sdiff(args: any[], callback?: ResCallback): void; + sdiffstore(args: any[], callback?: ResCallback): void; + smembers(args: any[], callback?: ResCallback): void; + zadd(args: any[], callback?: ResCallback): void; + zincrby(args: any[], callback?: ResCallback): void; + zrem(args: any[], callback?: ResCallback): void; + zremrangebyscore(args: any[], callback?: ResCallback): void; + zremrangebyrank(args: any[], callback?: ResCallback): void; + zunionstore(args: any[], callback?: ResCallback): void; + zinterstore(args: any[], callback?: ResCallback): void; + zrange(args: any[], callback?: ResCallback): void; + zrangebyscore(args: any[], callback?: ResCallback): void; + zrevrangebyscore(args: any[], callback?: ResCallback): void; + zcount(args: any[], callback?: ResCallback): void; + zrevrange(args: any[], callback?: ResCallback): void; + zcard(args: any[], callback?: ResCallback): void; + zscore(args: any[], callback?: ResCallback): void; + zrank(args: any[], callback?: ResCallback): void; + zrevrank(args: any[], callback?: ResCallback): void; + hset(args: any[], callback?: ResCallback): void; + hsetnx(args: any[], callback?: ResCallback): void; + hget(args: any[], callback?: ResCallback): void; + hmset(args: any[], callback?: ResCallback): void; + hmget(args: any[], callback?: ResCallback): void; + hincrby(args: any[], callback?: ResCallback): void; + hdel(args: any[], callback?: ResCallback): void; + hlen(args: any[], callback?: ResCallback): void; + hkeys(args: any[], callback?: ResCallback): void; + hvals(args: any[], callback?: ResCallback): void; + hgetall(args: any[], callback?: ResCallback): void; + hexists(args: any[], callback?: ResCallback): void; + incrby(args: any[], callback?: ResCallback): void; + decrby(args: any[], callback?: ResCallback): void; + getset(args: any[], callback?: ResCallback): void; + mset(args: any[], callback?: ResCallback): void; + msetnx(args: any[], callback?: ResCallback): void; + randomkey(args: any[], callback?: ResCallback): void; + select(args: any[], callback?: ResCallback): void; + move(args: any[], callback?: ResCallback): void; + rename(args: any[], callback?: ResCallback): void; + renamenx(args: any[], callback?: ResCallback): void; + expire(args: any[], callback?: ResCallback): void; + expireat(args: any[], callback?: ResCallback): void; + keys(args: any[], callback?: ResCallback): void; + dbsize(args: any[], callback?: ResCallback): void; + auth(args: any[], callback?: ResCallback): void; + ping(args: any[], callback?: ResCallback): void; + echo(args: any[], callback?: ResCallback): void; + save(args: any[], callback?: ResCallback): void; + bgsave(args: any[], callback?: ResCallback): void; + bgrewriteaof(args: any[], callback?: ResCallback): void; + shutdown(args: any[], callback?: ResCallback): void; + lastsave(args: any[], callback?: ResCallback): void; + type(args: any[], callback?: ResCallback): void; + multi(args: any[], callback?: ResCallback): void; + exec(args: any[], callback?: ResCallback): void; + discard(args: any[], callback?: ResCallback): void; + sync(args: any[], callback?: ResCallback): void; + flushdb(args: any[], callback?: ResCallback): void; + flushall(args: any[], callback?: ResCallback): void; + sort(args: any[], callback?: ResCallback): void; + info(args: any[], callback?: ResCallback): void; + monitor(args: any[], callback?: ResCallback): void; + ttl(args: any[], callback?: ResCallback): void; + persist(args: any[], callback?: ResCallback): void; + slaveof(args: any[], callback?: ResCallback): void; + debug(args: any[], callback?: ResCallback): void; + config(args: any[], callback?: ResCallback): void; + subscribe(args: any[], callback?: ResCallback): void; + unsubscribe(args: any[], callback?: ResCallback): void; + psubscribe(args: any[], callback?: ResCallback): void; + punsubscribe(args: any[], callback?: ResCallback): void; + publish(args: any[], callback?: ResCallback): void; + watch(args: any[], callback?: ResCallback): void; + unwatch(args: any[], callback?: ResCallback): void; + cluster(args: any[], callback?: ResCallback): void; + restore(args: any[], callback?: ResCallback): void; + migrate(args: any[], callback?: ResCallback): void; + dump(args: any[], callback?: ResCallback): void; + object(args: any[], callback?: ResCallback): void; + client(args: any[], callback?: ResCallback): void; + eval(args: any[], callback?: ResCallback): void; + evalsha(args: any[], callback?: ResCallback): void; + } +} diff --git a/rimraf/rimraf-tests.ts b/rimraf/rimraf-tests.ts new file mode 100644 index 0000000000..74e33ce678 --- /dev/null +++ b/rimraf/rimraf-tests.ts @@ -0,0 +1,11 @@ +/// + +import rimraf = require('rimraf'); + +rimraf('./xyz', (err: Error) => { + +}); +rimraf.sync('./xyz'); + +rimraf.EMFILE_MAX = 0; +rimraf.BUSYTRIES_MAX = 0; diff --git a/rimraf/rimraf.d.ts b/rimraf/rimraf.d.ts new file mode 100644 index 0000000000..b02581aefe --- /dev/null +++ b/rimraf/rimraf.d.ts @@ -0,0 +1,16 @@ +// Type definitions for rimraf +// Project: https://github.com/isaacs/rimraf +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/rimraf.d.ts + +declare module "rimraf" { + function rimraf(path: string, callback: (error: Error) => void): void; + module rimraf { + export function sync(path: string): void; + export var EMFILE_MAX: number; + export var BUSYTRIES_MAX: number; + } + export = rimraf; +} diff --git a/sprintf/sprintf-tests.ts b/sprintf/sprintf-tests.ts new file mode 100644 index 0000000000..563fbebdd9 --- /dev/null +++ b/sprintf/sprintf-tests.ts @@ -0,0 +1,14 @@ +/// + +import sprintf = require('sprintf'); + +var str: string; +var num: number; + +sprintf.sprintf(str, str); +sprintf.sprintf(str, str, num); +sprintf.sprintf(str, num, str); + +sprintf.vsprintf(str, [str]); +sprintf.vsprintf(str, [str, num]); +sprintf.vsprintf(str, [num, str]); diff --git a/sprintf/sprintf.d.ts b/sprintf/sprintf.d.ts new file mode 100644 index 0000000000..547d93532f --- /dev/null +++ b/sprintf/sprintf.d.ts @@ -0,0 +1,11 @@ +// Type definitions for sprintff +// Project: https://github.com/maritz/node-sprintff +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/sprintff.d.ts + +declare module "sprintf" { + export function sprintf(fmt: string, ...args: any[]): string; + export function vsprintf(fmt: string, args: any[]): string; +} diff --git a/swig/swig-tests.ts b/swig/swig-tests.ts new file mode 100644 index 0000000000..1f68aa44cb --- /dev/null +++ b/swig/swig-tests.ts @@ -0,0 +1,25 @@ +/// + +import swig = require('swig'); + +var value: any; +var str: string; +var num: number; +var bool: boolean; + +var opts: swig.Options = { + allowErrors: bool, + autoescape: bool, + cache: bool, + encoding: str, + filters: value, + root: str, + tags: value, + extensions: value, + tzOffset: num +}; + +swig.init(opts); +value = swig.compileFile(str); +value = swig.compile(str); +value = swig.compile(str, opts); diff --git a/swig/swig.d.ts b/swig/swig.d.ts new file mode 100644 index 0000000000..c8317ac5cf --- /dev/null +++ b/swig/swig.d.ts @@ -0,0 +1,24 @@ +// Type definitions for swig +// Project: http://github.com/paularmstrong/swig +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/swig.d.ts + +declare module "swig" { + export function init(options: Options): void; + export function compileFile(filepath: string): any; + export function compile(source: string, options?: Options): any; + + export interface Options { + allowErrors?: boolean; + autoescape?: boolean; + cache?: boolean; + encoding?: string; + filters?: any; + root?: string; + tags?: any; + extensions?: any; + tzOffset?: number; + } +} diff --git a/swiz/swiz-tests.ts b/swiz/swiz-tests.ts new file mode 100644 index 0000000000..b156ff1403 --- /dev/null +++ b/swiz/swiz-tests.ts @@ -0,0 +1,172 @@ +/// + +import swiz = require('swiz'); + +var chain: swiz.IChain; +var sw: swiz.Swiz; +var value: any; +var valueArr: any[]; +var str: string; +var strArr: string[]; +var exp: RegExp; +var num: number; +var bool: boolean; +var callback: Function; + +var defs: swiz.struct.IObj[]; +var opts: swiz.ISwizOptions; +var field: swiz.struct.IField; +var ser: swiz.ISerializable; +var fieldArr: swiz.struct.IField[]; + +var opts: swiz.ISwizOptions = { + stripNulls: bool, + stripSerializerType: bool, + for: str +}; + +var obj: swiz.struct.IObj = { + name: str, + options: objOpts, + singular: str, + plural: str, + fields: fieldArr +}; + +var field: swiz.struct.IField = { + name: str, + options: fieldOpts, + src: str, + singular: str, + plural: str, + desc: str, + val: chain, + attribute: bool, + enumerated: bool, + ignorePublic: bool, + filterFrom: strArr, + coerceTo: value +}; + +var objOpts: swiz.struct.IObjOptions = { + singular: str, + plural: str, + fields: fieldArr +}; + +var fieldOpts: swiz.struct.IFieldOptions = { + src: str, + singular: str, + plural: str, + desc: str, + val: chain, + attribute: bool, + enumerated: value, + ignorePublic: bool, + filterFrom: strArr, + coerceTo: str +}; + +var valid: swiz.IValidator; +str = valid.name; +valid.func(value, value, callback); +str = valid.help; + +sw = new swiz.Swiz(defs, opts); +sw.buildObject(value, (err: any, result: any) => { + +}); +value = sw.buildObjectSync(value); +str = sw.serializeJson(value); +str = sw.serializeXml(value); +value = sw.deserializeXml(str); +sw.serialize(swiz.SERIALIZATION.SERIALIZATION_JSON, num, ser, (err: any, str: string) => { + +}); +sw.serializeForPagination(swiz.SERIALIZATION.SERIALIZATION_JSON, valueArr, value, (err: any, str: string) => { + +}); +sw.deserialize(swiz.SERIALIZATION.SERIALIZATION_JSON, num, str, (err: any, result: any) => { + +}); +field = sw.getFieldDefinition(str, str); + +// some of the chain API +chain = swiz.chain(); + +num = chain.getValidatorPos(str); +num = chain.hasValidator(str); + +valid = chain.getValidatorAtPos(num); +chain = chain.isUnique(); +chain = chain.toUnique(); +chain = chain.notIPBlacklisted(); +chain = chain.isCIDR(); +chain = chain.isEmail(); +chain = chain.isUrl(); +chain = chain.isAddressPair(); +chain = chain.isIP(); +chain = chain.isIPv4(); +chain = chain.isIPv6(); +chain = chain.isHostnameOrIp(); +chain = chain.isAllowedFQDNOrIP(); +chain = chain.isAllowedFQDNOrIP(strArr); +chain = chain.isHostname(); +chain = chain.isAlpha(); +chain = chain.isAlphanumeric(); +chain = chain.isNumeric(); +chain = chain.isInt(); +chain = chain.isLowercase(); +chain = chain.isUppercase(); +chain = chain.isDecimal(); +chain = chain.isFloat(); +chain = chain.notNull(); +chain = chain.isNull(); +chain = chain.notEmpty(); +chain = chain.equals(value); +chain = chain.contains(value); +chain = chain.notContains(value); +chain = chain.notIn(valueArr); +chain = chain.notIn(valueArr, bool); +chain = chain.regex(exp); +chain = chain.regex(str); +chain = chain.regex(str, str); +chain = chain.is(str); +chain = chain.is(str, str); +chain = chain.notRegex(exp); +chain = chain.notRegex(str); +chain = chain.notRegex(str, str); +chain = chain.not(str, str); +chain = chain.len(num); +chain = chain.len(num, num); +chain = chain.numItems(num, num); +chain = chain.toFloat(); +chain = chain.toInt(); +chain = chain.toBoolean(); +chain = chain.toBooleanStrict(); +chain = chain.entityDecode(); +chain = chain.entityEncode(); +chain = chain.trim(); +chain = chain.trim(str); +chain = chain.trim(); +chain = chain.trim(str); +chain = chain.ltrim(); +chain = chain.ltrim(str); +chain = chain.rtrim(str); +chain = chain.ifNull(str); +chain = chain.xss(); +chain = chain.xss(bool); +chain = chain.enumerated(value); +chain = chain.inArray(valueArr); +chain = chain.isString(); +chain = chain.isBoolean(); +chain = chain.range(value, value); +chain = chain.optional(); +chain = chain.isPort(); +chain = chain.isV1UUID(); +chain = chain.immutable(); +chain = chain.updateRequired(); +chain = chain.isArray(chain); +chain = chain.isHash(chain, chain); +chain = chain.rename(str); +chain = chain.custom(str); diff --git a/swiz/swiz.d.ts b/swiz/swiz.d.ts new file mode 100644 index 0000000000..4e76fab7d5 --- /dev/null +++ b/swiz/swiz.d.ts @@ -0,0 +1,195 @@ +// Type definitions for swiz +// Project: https://github.com/racker/node-swiz +// Definitions by: Jeff Goddard +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/swiz.d.ts + +declare module "swiz" { + export class Cidr { + constructor(x: string, y?: string); + isInCIDR(x: any): boolean; + } + + export class Valve { + constructor(schema: IValveSchema, baton?: any); + setSchema(schema: IValveSchema): Valve; + addFinalValidator(func: (obj: any, callback: (err: Error, cleaned: any) => void) => void): Valve; + addChainValidator(name: string, description: string, func: (value: any, callback: (err: Error, cleaned: any) => void) => void): void; + check(obj: any, options: ICheckOptions, callback: (err: any, cleaned: any) => void): void; + check(obj: any, callback: (err: any, cleaned: any) => void): void; + checkUpdate(existing: any, obj: any, callback: (err: any, cleaned: any) => void): void; + help(schema: IValveSchema): any; + } + + export interface ICheckOptions { + strict?: boolean; + } + + export interface IValveSchema { + [index: string]: IValveSchemaMember; + } + + export interface IValveSchemaMember {} + + export interface IValveSchemaMemberArray extends IValveSchemaMember { + [index: string]: IValveSchemaMember; + } + + export function Chain(): IChain; + + export function chain(): IChain; + + export interface IChain extends IValveSchemaMember { + getValidatorPos(name: string): number; + hasValidator(name: string): number; + getValidatorAtPos(pos: number): IValidator; + isUnique(): IChain; + toUnique(): IChain; + notIPBlacklisted(): IChain; + isCIDR(): IChain; + isEmail(): IChain; + isUrl(): IChain; + isAddressPair(): IChain; + isIP(): IChain; + isIPv4(): IChain; + isIPv6(): IChain; + isHostnameOrIp(): IChain; + isAllowedFQDNOrIP(blacklist?: string[]): IChain; + isHostname(): IChain; + isAlpha(): IChain; + isAlphanumeric(): IChain; + isNumeric(): IChain; + isInt(): IChain; + isLowercase(): IChain; + isUppercase(): IChain; + isDecimal(): IChain; + isFloat(): IChain; + notNull(): IChain; + isNull(): IChain; + notEmpty(): IChain; + equals(arg: any): IChain; + contains(arg: any): IChain; + notContains(arg: any): IChain; + notIn(values: any[], caseSensitive?: boolean): IChain; + regex(pattern: RegExp): IChain; + regex(pattern: string, modifiers?: string): IChain; + is(pattern: string, modifiers?: string): IChain; + notRegex(pattern: RegExp): IChain; + notRegex(pattern: string, modifiers?: string): IChain; + not(pattern: string, modifiers: string): IChain; + len(min: number, max?: number): IChain; + numItems(min: number, max: number): IChain; + toFloat(): IChain; + toInt(): IChain; + toBoolean(): IChain; + toBooleanStrict(): IChain; + entityDecode(): IChain; + entityEncode(): IChain; + trim(chars?: string): IChain; + ltrim(chars?: string): IChain; + rtrim(chars: string): IChain; + ifNull(replace: string): IChain; + xss(is_image?: boolean): IChain; + enumerated(map: any): IChain; + inArray(array: any[]): IChain; + isString(): IChain; + isBoolean(): IChain; + range(min: any, max: any): IChain; + optional(): IChain; + isPort(): IChain; + isV1UUID(): IChain; + immutable(): IChain; + updateRequired(): IChain; + isArray(chain: IChain): IChain; + isHash(keyChain: IChain, valueChain: IChain): IChain; + rename(target: string): IChain; + custom(name: string): IChain; + } + + export function defToValve(def: struct.IObj[]): IValveSchema[]; + + export class Swiz { + constructor(defs: struct.IObj[], options?: ISwizOptions); + buildObject(obj: any, callback: (err: any, result: any) => void): void; + buildObjectSync(obj: any): any; + serializeJson(obj: any): string; + serializeXml(obj: any): string; + deserializeXml(xml: string): any; + serialize(mode: SERIALIZATION, version: number, obj: ISerializable, callback: (err: any, result: string) => void): void; + serializeForPagination(mode: SERIALIZATION, array: any[], metadata: any, callback: (err: any, result: string) => void): void; + deserialize(mode: SERIALIZATION, version: number, raw: string, callback: (err: any, result: any) => void): void; + getFieldDefinition(stype: string, name: string): struct.IField; + } + + export interface ISerializable { + getSerializerType(): string; + } + + export interface ISwizOptions { + stripNulls?: boolean; + stripSerializerType?: boolean; + for?: string; + } + + interface IValidator { + name: string; + func(value: any, baton: any, callback: Function): void; + help: string; + } + + export function stripSerializerTypes(obj: any): any; + + export module struct { + export function Obj(name: string, options?: IObjOptions): IObj; + export function Field(name: string, options?: IFieldOptions): IField; + export function coerce(value: any, coerceTo: string): any; + + export interface IObj { + name: string; + options: IObjOptions; + singular: string; + plural: string; + fields: IField[]; + } + + export interface IField { + name: string; + options: IFieldOptions; + src: string; + singular: string; + plural: string; + desc?: string; + val?: IChain; + attribute: boolean; + enumerated: boolean; + ignorePublic: boolean; + filterFrom: string[]; + coerceTo: any; + } + + export interface IObjOptions { + singular?: string; + plural?: string; + fields?: IField[]; + } + + export interface IFieldOptions { + src?: string; + singular?: string; + plural?: string; + desc?: string; + val?: IChain; + attribute?: boolean; + enumerated?: any; + ignorePublic?: boolean; + filterFrom?: string[]; + coerceTo?: string; + } + } + + export enum SERIALIZATION { + SERIALIZATION_JSON, + SERIALIZATION_XML + } +} diff --git a/timezone-js/timezone-js-tests.ts b/timezone-js/timezone-js-tests.ts new file mode 100644 index 0000000000..9484d16406 --- /dev/null +++ b/timezone-js/timezone-js-tests.ts @@ -0,0 +1,26 @@ +/// + +import timezone = require('timezone-js'); +var tz = timezone.timezone; + +var value: any; +var str: string; +var bool: boolean; + +var opts: timezone.TimezoneJsOptions = { + async: bool, + success: (data: string) => { + + }, + error: (err: Error) => { + + }, + url: str +}; + +str = tz.zoneFileBasePath; +tz.loadingScheme; +tz.loadingSchemes; + +value = tz.transport(opts); +value = tz.init(opts); diff --git a/timezone-js/timezone-js.d.ts b/timezone-js/timezone-js.d.ts new file mode 100644 index 0000000000..50b9c3f369 --- /dev/null +++ b/timezone-js/timezone-js.d.ts @@ -0,0 +1,45 @@ +// Type definitions for timezone-js +// Project: https://github.com/mde/timezone-js +// Definitions by: bonnici +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/timezone-js.d.ts + +declare module "timezone-js" { + export var timezone: TimezoneJs; + + export var Date: { + new (timezone?: string): TimezoneJsDate; + new (time: string, timezone?: string): TimezoneJsDate; + new (year?: number, month?: number, day?: number, hour?: number, minute?: number, second?: string, timezone?: string): TimezoneJsDate; + }; + + export interface TimezoneJsDate extends Date { + setTimezone: (timezone: string) => void; + } + + export interface TimezoneJs { + zoneFileBasePath: string; + loadingScheme: TimezoneJsLoadingScheme; + loadingSchemes: TimezoneJsLoadingSchemes; + + transport(opts: TimezoneJsOptions): any; + init(opts?: TimezoneJsOptions): any; + } + + export interface TimezoneJsOptions { + async?: boolean; + success?: (data: string) => void; + error?: (err: Error) => void; + url?: string; + } + + export interface TimezoneJsLoadingScheme { + } + + export enum TimezoneJsLoadingSchemes { + PRELOAD_ALL, + LAZY_LOAD, + MANUAL_LOAD + } + } diff --git a/twig/twig-tests.ts b/twig/twig-tests.ts new file mode 100644 index 0000000000..bf41affd1c --- /dev/null +++ b/twig/twig-tests.ts @@ -0,0 +1,45 @@ +/// + +import twig = require('twig'); + +var value: any; +var str: string; +var num: number; +var bool: boolean; + +var params: twig.Parameters = { + id: value, + ref: value, + href: value, + path: value, + debug: bool, + trace: bool, + strict_variables: bool, + data: value +}; + +var temp: twig.Template; +var compOpts: twig.CompileOptions = { + filename: str, + settings: value +}; + +var compiled:(context: any) => any; + +temp = twig.twig(params); +twig.extendFilter(str, (left: any, ...params: any[]) => { + return str; +}); +twig.extendFunction(str, (...params: any[]) => { + return str; +}); +twig.extendTest(str, (value: any) => bool); +twig.extendTag(value); +compiled = twig.compile(str, compOpts); +twig.renderFile(str, compOpts, (err, result) => { + +}); +twig.__express(str, compOpts, (err, result) => { + +}); +twig.cache(bool); diff --git a/twig/twig.d.ts b/twig/twig.d.ts new file mode 100644 index 0000000000..0ce655272f --- /dev/null +++ b/twig/twig.d.ts @@ -0,0 +1,37 @@ +// Type definitions for twig +// Project: https://github.com/justjohn/twig.js +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/twig.d.ts + +declare module "twig" { + export interface Parameters { + id?: any; + ref?: any; + href?: any; + path?: any; + debug?: boolean; + trace?: boolean; + strict_variables?: boolean; + data: any; + } + + export interface Template { + } + + export interface CompileOptions { + filename: string; + settings: any; + } + + export function twig(params: Parameters): Template; + export function extendFilter(name: string, definition: (left: any, ...params: any[]) => string): void; + export function extendFunction(name: string, definition: (...params: any[]) => string): void; + export function extendTest(name: string, definition: (value: any) => boolean): void; + export function extendTag(definition: any): void; + export function compile(markup: string, options: CompileOptions): (context: any) => any; + export function renderFile(path: string, options: CompileOptions, fn: (err: Error, result: any) => void): void; + export function __express(path: string, options: CompileOptions, fn: (err: Error, result: any) => void): void; + export function cache(value: boolean): void; +} diff --git a/watch/watch-tests.ts b/watch/watch-tests.ts new file mode 100644 index 0000000000..4888d41e2e --- /dev/null +++ b/watch/watch-tests.ts @@ -0,0 +1,32 @@ +/// + +import watch = require('watch'); +import fs = require('fs'); + +var value: any; +var str: string; +var num: number; +var bool: boolean; + +var mon: watch.Monitor; +var opts: watch.Options = { + ignoreDotFiles: bool, + filter: value +}; + +mon.on('foo', () => { + +}); + +watch.watchTree(str, (f: any, curr: fs.Stats, prev: fs.Stats) => { + +}); +watch.watchTree(str, opts, (f: any, curr: fs.Stats, prev: fs.Stats) => { + +}); +watch.createMonitor(str, (monitor: watch.Monitor) => { + +}); +watch.createMonitor(str, opts, (monitor: watch.Monitor) => { + +}); diff --git a/watch/watch.d.ts b/watch/watch.d.ts new file mode 100644 index 0000000000..d011b11f76 --- /dev/null +++ b/watch/watch.d.ts @@ -0,0 +1,35 @@ +// Type definitions for watch +// Project: https://github.com/mikeal/watch +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/watch.d.ts + +/// + +declare module "watch" { + import fs = require("fs"); + import events = require("events"); + + export interface Monitor extends events.EventEmitter { + // event: created + // event: removed + // event: changed + + // export function onCreated(callback, function(f, stat: fs.Stats) { }); + // export function onChanged(callback, function(f, curr: fs.Stats, prev: fs.Stats) { }); + // export function onRemoved(callback, function(f, stat: fs.Stats) { }); + } + + export interface Options { + persistent?: boolean; + ignoreDotFiles?: boolean; + filter?: any; + interval?: number; + } + + export function watchTree(root: string, callback: (f: any, curr: fs.Stats, prev: fs.Stats) => void): void; + export function watchTree(root: string, options: Options, callback: (f: any, curr: fs.Stats, prev: fs.Stats) => void): void; + export function createMonitor(root: string, callback: (monitor: Monitor) => void): void; + export function createMonitor(root: string, options: Options, callback: (monitor: Monitor) => void): void; +} diff --git a/winston/winston-tests.ts b/winston/winston-tests.ts new file mode 100644 index 0000000000..499b427a62 --- /dev/null +++ b/winston/winston-tests.ts @@ -0,0 +1,40 @@ +/// + +import winston = require('winston'); + +var str: string; +var bool: boolean; +var metadata: any; +var options: any; +var value: any; +var transport: winston.Transport; + +transport = winston.transports.File; +transport = winston.transports.Console; +transport = winston.transports.Loggly; + +winston.log(str, str); +winston.log(str, str, metadata); +winston.debug(str); +winston.debug(str, metadata); +winston.info(str); +winston.info(str, metadata); +winston.warn(str); +winston.warn(str, metadata); +winston.error(str); +winston.error(str, metadata); + +winston.add(transport, options); +winston.remove(transport); + +winston.profile(str); + +winston.query(options, (err: any, results: any) => { + +}); + +value = winston.stream(options); + +winston.handleExceptions(transport); +winston.exitOnError = bool; + diff --git a/winston/winston.d.ts b/winston/winston.d.ts new file mode 100644 index 0000000000..8ebd618ff6 --- /dev/null +++ b/winston/winston.d.ts @@ -0,0 +1,39 @@ +// Type definitions for winston +// Project: https://github.com/flatiron/winston +// Definitions by: bonnici +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/winston.d.ts + +declare module "winston" { + export function log(level: string, message: string, metadata?: any): void; + export function debug(message: string, metadata?: any): void; + export function info(message: string, metadata?: any): void; + export function warn(message: string, metadata?: any): void; + export function error(message: string, metadata?: any): void; + + export function add(transport: Transport, options: any): void; + export function remove(transport: Transport): void; + + export function profile(name: string): void; + + export function query(options: any, done: (err: any, results: any) => void): void; + + export function stream(options: any): any; + + export function handleExceptions(transport: Transport): void; + + export class Logger { + + } + + export interface Transport { + } + export interface Transports { + File: Transport; + Console: Transport; + Loggly: Transport; + } + export var transports: Transports; + export var exitOnError: boolean; +} diff --git a/wrench/wrench-tests.ts b/wrench/wrench-tests.ts new file mode 100644 index 0000000000..c75a4ddb00 --- /dev/null +++ b/wrench/wrench-tests.ts @@ -0,0 +1,36 @@ +/// + +import wrench = require('wrench'); + +var str: string; +var num: number; +var bool: boolean; +var strArr: string[]; +var line: wrench.LineReader; + +strArr = wrench.readdirSyncRecursive(str); +wrench.rmdirSyncRecursive(str); +wrench.rmdirSyncRecursive(str, bool); +wrench.copyDirSyncRecursive(str, str); +wrench.copyDirSyncRecursive(str, str, { + preserve: bool +}); +wrench.chmodSyncRecursive(str, num); +wrench.chownSyncRecursive(str, num, num); +wrench.mkdirSyncRecursivefunction(str, num); +wrench.readdirRecursive(str, (err: Error, files: string[]) => { + +}); +wrench.rmdirRecursive(str, (err: Error) => { + +}); +wrench.copyDirRecursive(str, str, (err: Error) => { + +}); + +line = new wrench.LineReader(str); +line = new wrench.LineReader(str, num); + +str = line.getNextLine(); +bool = line.hasNextLine(); +num = line.getBufferAndSetCurrentPosition(num); diff --git a/wrench/wrench.d.ts b/wrench/wrench.d.ts new file mode 100644 index 0000000000..d3c03fc774 --- /dev/null +++ b/wrench/wrench.d.ts @@ -0,0 +1,27 @@ +// Type definitions for wrench +// Project: https://github.com/ryanmcgrath/wrench-js +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/wrench.d.ts + +declare module "wrench" { + export function readdirSyncRecursive(baseDir: string): string[]; + export function rmdirSyncRecursive(path: string, failSilent?: boolean): void; + export function copyDirSyncRecursive(sourceDir: string, newDirLocation: string, opts?: { preserve?: boolean; }): void; + export function chmodSyncRecursive(sourceDir: string, filemode: number): void; + export function chownSyncRecursive(sourceDir: string, uid: number, gid: number): void; + export function mkdirSyncRecursivefunction(path: string, mode: number): void; + + export function readdirRecursive(baseDir: string, fn: (err: Error, files: string[]) => void): void; + export function rmdirRecursive(path: string, fn: (err: Error) => void): void; + export function copyDirRecursive(srcDir: string, newDir: string, fn: (err: Error) => void): void; + + export class LineReader { + constructor (filename: string, bufferSize?: number); + + getBufferAndSetCurrentPosition(position: number): number; + hasNextLine(): boolean; + getNextLine(): string; + } +} From ec18e20c241f2bd6920d2c5dd8b92cf33f2d4b42 Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Wed, 23 Apr 2014 00:58:42 +0200 Subject: [PATCH 013/132] imported Request definitions from typescript-node-definitions - as per https://github.com/borisyankov/DefinitelyTyped/issues/115 - added DT header (scraped creators from git history) - added tests - updated some fields - restructured to be more accurate --- CONTRIBUTORS.md | 1 + request/request-tests.ts | 198 +++++++++++++++++++++++++++++++++++++++ request/request.d.ts | 171 +++++++++++++++++++++++++++++++++ 3 files changed, 370 insertions(+) create mode 100644 request/request-tests.ts create mode 100644 request/request.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 9f4f84f19c..4e7cb6074f 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -238,6 +238,7 @@ All definitions files include a header with the author and editors, so at some p * [Riot.js](https://github.com/moot/riotjs) (by [vvakame](https://github.com/vvakame)) * [Restify](https://github.com/mcavage/node-restify) (by [Bret Little](https://github.com/blittle)) * [Redis](https://github.com/mranney/node_redis) (by [Carlos Ballesteros Velasco](https://github.com/soywiz)) +* [Request](https://github.com/mikeal/request) (by [Carlos Ballesteros Velasco](https://github.com/soywiz)) * [Royalslider](http://dimsemenov.com/plugins/royal-slider/) (by [Christiaan Rakowski](https://github.com/csrakowski)) * [Rx.js](http://rx.codeplex.com/) (by [gsino](http://www.codeplex.com/site/users/view/gsino), [Igor Oleinikov](https://github.com/Igorbek), [Carl de Billy](http://carl.debilly.net/), [zoetrope](https://github.com/zoetrope)) * [Raphael](http://raphaeljs.com/) (by [CheCoxshall](https://github.com/CheCoxshall)) diff --git a/request/request-tests.ts b/request/request-tests.ts new file mode 100644 index 0000000000..d422c3abc5 --- /dev/null +++ b/request/request-tests.ts @@ -0,0 +1,198 @@ +/// + +import request = require('request'); +import http = require('http'); +import stream = require('stream'); +import formData = require('form-data'); + +var value: any; +var str: string; +var buffer: NodeBuffer; +var num: number; +var bool: boolean; +var date: Date; +var obj: Object; +var dest: string; + +var uri: string; +var headers: {[key: string]: string}; + +var agent: http.Agent; +var write: stream.Writable; +var req: request.Request; +var form: formData.FormData; + +var bodyArr: request.RequestPart[] = [{ + body: value +}, { + body: value +}, { + body: value +}]; + +// --- --- --- --- --- --- --- --- --- --- --- --- + +str = req.toJSON(); + +var cookieValue: request.CookieValue; +str = cookieValue.name; +value = cookieValue.value; +bool = cookieValue.httpOnly; + +var cookie: request.Cookie; +str = cookie.str; +date = cookie.expires; +str = cookie.path; +str = cookie.toString(); + +var jar: request.CookieJar; +jar.add(cookie); +cookie = jar.get(req); +str = jar.cookieString(req); + +var aws: request.AWSOptions; +str = aws.secret; +str = aws.bucket; + +var oauth: request.OAuthOptions; +str = oauth.callback; +str = oauth.consumer_key; +str = oauth.consumer_secret; +str = oauth.token; +str = oauth.token_secret; +str = oauth.verifier; + +var options: request.Options = { + url: str, + uri: str, + callback: (error: any, response: any, body: any) => { + + }, + jar: value, + form: value, + oauth: value, + aws: aws, + qs: obj, + json: value, + multipart: value, + agentOptions: value, + agentClass: value, + forever: value, + host: str, + port: num, + method: str, + headers: value, + body: value, + followRedirect: bool, + followAllRedirects: bool, + maxRedirects: num, + encoding: str, + pool: value, + timeout: num, + proxy: value, + strictSSL: bool +}; + +// --- --- --- --- --- --- --- --- --- --- --- --- + +agent = req.getAgent(); +//req.start(); +//req.abort(); +req.pipeDest(dest); +req = req.setHeader(str, str); +req = req.setHeader(str, str, bool); +req = req.setHeaders(headers); +req = req.qs(obj); +req = req.qs(obj, bool); +req = req.form(obj); +form = req.form(); +req = req.multipart(bodyArr); +req = req.json(value); +req = req.aws(aws); +req = req.aws(aws, bool); +req = req.oauth(oauth); +req = req.jar(jar); +write = req.pipe(write); +write = req.pipe(write, value); +req.write(); +req.end(str); +req.end(buffer); +req.pause(); +req.resume(); +req.abort(); +req.destroy(); + +// --- --- --- --- --- --- --- --- --- --- --- --- + +var callback: (error: any, response: any, body: any) => void; + +value = request.initParams; + +req = request(uri); +req = request(uri, options); +req = request(uri, options, callback); +req = request(uri, callback); +req = request(options); +req = request(options, callback); + +req = request.request(uri); +req = request.request(uri, options); +req = request.request(uri, options, callback); +req = request.request(uri, callback); +req = request.request(options); +req = request.request(options, callback); + +req = request.get(uri); +req = request.get(uri, options); +req = request.get(uri, options, callback); +req = request.get(uri, callback); +req = request.get(options); +req = request.get(options, callback); + +req = request.post(uri); +req = request.post(uri, options); +req = request.post(uri, options, callback); +req = request.post(uri, callback); +req = request.post(options); +req = request.post(options, callback); + +req = request.put(uri); +req = request.put(uri, options); +req = request.put(uri, options, callback); +req = request.put(uri, callback); +req = request.put(options); +req = request.put(options, callback); + +req = request.head(uri); +req = request.head(uri, options); +req = request.head(uri, options, callback); +req = request.head(uri, callback); +req = request.head(options); +req = request.head(options, callback); + +req = request.patch(uri); +req = request.patch(uri, options); +req = request.patch(uri, options, callback); +req = request.patch(uri, callback); +req = request.patch(options); +req = request.patch(options, callback); + +req = request.del(uri); +req = request.del(uri, options); +req = request.del(uri, options, callback); +req = request.del(uri, callback); +req = request.del(options); +req = request.del(options, callback); + +req = request.forever(value, value); +jar = request.jar(); +cookie = request.cookie(str); + +var r = request.defaults(options); +r(str); +r.get(str); +r.post(str); + +r(options); +r.get(options); +r.post(options); diff --git a/request/request.d.ts b/request/request.d.ts new file mode 100644 index 0000000000..e6a1d100e9 --- /dev/null +++ b/request/request.d.ts @@ -0,0 +1,171 @@ +// Type definitions for request +// Project: https://github.com/mikeal/request +// Definitions by: Carlos Ballesteros Velasco , bonnici , Bart van der Schoor +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +// Imported from: https://github.com/soywiz/typescript-node-definitions/d.ts + +/// +/// + +declare module 'request' { + import stream = require('stream'); + import http = require('http'); + import FormData = require('form-data'); + + export = RequestAPI; + + function RequestAPI(uri: string, options?: RequestAPI.Options, callback?: (error: any, response: any, body: any) => void): RequestAPI.Request; + function RequestAPI(uri: string, callback?: (error: any, response: any, body: any) => void): RequestAPI.Request; + function RequestAPI(options: RequestAPI.Options, callback?: (error: any, response: any, body: any) => void): RequestAPI.Request; + + module RequestAPI { + export function defaults(options: Options): typeof RequestAPI; + + export function request(uri: string, options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + export function request(uri: string, callback?: (error: any, response: any, body: any) => void): Request; + export function request(options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + + export function get(uri: string, options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + export function get(uri: string, callback?: (error: any, response: any, body: any) => void): Request; + export function get(options: Options, callback?: (error: any, response: any, body: any) => void): Request; + + export function post(uri: string, options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + export function post(uri: string, callback?: (error: any, response: any, body: any) => void): Request; + export function post(options: Options, callback?: (error: any, response: any, body: any) => void): Request; + + export function put(uri: string, options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + export function put(uri: string, callback?: (error: any, response: any, body: any) => void): Request; + export function put(options: Options, callback?: (error: any, response: any, body: any) => void): Request; + + export function head(uri: string, options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + export function head(uri: string, callback?: (error: any, response: any, body: any) => void): Request; + export function head(options: Options, callback?: (error: any, response: any, body: any) => void): Request; + + export function patch(uri: string, options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + export function patch(uri: string, callback?: (error: any, response: any, body: any) => void): Request; + export function patch(options: Options, callback?: (error: any, response: any, body: any) => void): Request; + + export function del(uri: string, options?: Options, callback?: (error: any, response: any, body: any) => void): Request; + export function del(uri: string, callback?: (error: any, response: any, body: any) => void): Request; + export function del(options: Options, callback?: (error: any, response: any, body: any) => void): Request; + + export function forever(agentOptions: any, optionsArg: any): Request; + export function jar(): CookieJar; + export function cookie(str: string): Cookie; + + export var initParams: any; + + export interface Options { + url?: string; + uri?: string; + callback?: (error: any, response: any, body: any) => void; + jar?: any; // CookieJar + form?: FormData; + oauth?: OAuthOptions; + aws?: AWSOptions; + hawk ?: HawkOptions; + qs?: Object; + json?: any; + multipart?: RequestPart[]; + agentOptions?: any; + agentClass?: any; + forever?: any; + host?: string; + port?: number; + method?: string; + headers?: Headers; + body?: any; + followRedirect?: boolean; + followAllRedirects?: boolean; + maxRedirects?: number; + encoding?: string; + pool?: any; + timeout?: number; + proxy?: any; + strictSSL?: boolean; + } + + export interface RequestPart { + headers?: Headers; + body: any; + } + + export interface Request { + getAgent(): http.Agent; + //start(): void; + //abort(): void; + pipeDest(dest: any): void; + setHeader(name: string, value: string, clobber?: boolean): Request; + setHeaders(headers: Headers): Request; + qs(q: Object, clobber?: boolean): Request; + form(): FormData.FormData; + form(form: any): Request; + multipart(multipart: RequestPart[]): Request; + json(val: any): Request; + aws(opts: AWSOptions, now?: boolean): Request; + oauth(oauth: OAuthOptions): Request; + jar(jar: CookieJar): Request; + + pipe(dest: stream.Writable, opts?: any): stream.Writable; + write(): void; + end(chunk: string): void; + end(chunk: NodeBuffer): void; + pause(): void; + resume(): void; + abort(): void; + destroy(): void; + toJSON(): string; + } + + export interface Headers { + [key: string]: any; + } + + export interface AuthOptions { + user?: string; + username?: string; + pass?: string; + password?: string; + sendImmediately?: boolean; + } + + export interface OAuthOptions { + callback?: string; + consumer_key?: string; + consumer_secret?: string; + token?: string; + token_secret?: string; + verifier?: string; + } + + export interface HawkOptions { + credentials: any; + } + + export interface AWSOptions { + secret: string; + bucket?: string; + } + + export interface CookieJar { + add(cookie: Cookie): void; + get(req: Request): Cookie; + cookieString(req: Request): string; + } + + export interface CookieValue { + name: string; + value: any; + httpOnly: boolean; + } + + export interface Cookie extends Array { + constructor(name: string, req: Request): void; + str: string; + expires: Date; + path: string; + toString(): string; + } + } +} From 6dc732cd0e251379bf5533bb78869b4ece75508a Mon Sep 17 00:00:00 2001 From: Jeff May Date: Sun, 20 Apr 2014 00:12:00 -0400 Subject: [PATCH 014/132] Added node-uuid and tests --- node-uuid/node-uuid.d.ts | 49 ++++++++++++++++++++++++++++++++++++ node-uuid/node-uuid.tests.ts | 22 ++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 node-uuid/node-uuid.d.ts create mode 100644 node-uuid/node-uuid.tests.ts diff --git a/node-uuid/node-uuid.d.ts b/node-uuid/node-uuid.d.ts new file mode 100644 index 0000000000..8c287bb2e7 --- /dev/null +++ b/node-uuid/node-uuid.d.ts @@ -0,0 +1,49 @@ +// Type definitions for node-uuid.js +// Project: https://github.com/broofa/node-uuid +// Definitions by: Jeff May +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +interface UUIDOptions { + + /** + * Node id as Array of 6 bytes (per 4.1.6). + * Default: Randomly generated ID. See note 1. + */ + node: any[] + + /** + * (Number between 0 - 0x3fff) RFC clock sequence. + * Default: An internally maintained clockseq is used. + */ + clockseq: number + + /** + * (Number | Date) Time in milliseconds since unix Epoch. + * Default: The current time is used. + */ + msecs: any + + /** + * (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if msecs is unspecified. + * Default: internal uuid counter is used, as per 4.2.1.2. + */ + nsecs: number +} + +interface UUID { + v1(options?: UUIDOptions, buffer?: number[], offset?: number): string + v1(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string + + v2(options?: UUIDOptions, buffer?: number[], offset?: number): string + v2(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string + + v3(options?: UUIDOptions, buffer?: number[], offset?: number): string + v3(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string + + v4(options?: UUIDOptions, buffer?: number[], offset?: number): string + v4(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string +} + +declare var uuid: UUID; diff --git a/node-uuid/node-uuid.tests.ts b/node-uuid/node-uuid.tests.ts new file mode 100644 index 0000000000..6e1d7bd8c1 --- /dev/null +++ b/node-uuid/node-uuid.tests.ts @@ -0,0 +1,22 @@ +/// + +var uid1: string = uuid.v1() +var uid2: string = uuid.v2() +var uid3: string = uuid.v3() +var uid4: string = uuid.v4() + +var options: UUIDOptions = { + node: [], + clockseq: 2, + nsecs: 3, + msecs: new Date() +} + +var padding: number[] = [0, 1, 2] + +var offset: number = 15 + +uuid.v1(options, padding, offset) +uuid.v2(options, padding, offset) +uuid.v3(options, padding, offset) +uuid.v4(options, padding, offset) From f4d822a03e20f93022648be6cc1e3bc9dcc39354 Mon Sep 17 00:00:00 2001 From: Jeff May Date: Tue, 22 Apr 2014 11:47:50 -0400 Subject: [PATCH 015/132] Added node-uuid to README.md --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d68e3061cc..88263116ec 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -207,6 +207,7 @@ All definitions files include a header with the author and editors, so at some p * [node-git](https://github.com/christkv/node-git) (by [vvakame](https://github.com/vvakame)) * [node_zeromq](https://github.com/JustinTulloss/zeromq.node) (by [Dave McKeown](https://github.com/davemckeown)) * [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov)) +* [node-uuid](https://github.com/broofa/node-uuid) (by [Jeff May](https://github.com/jeffmay)) * [notify.js](https://github.com/alexgibson/notify.js) (by [soundTricker](https://github.com/soundTricker)) * [NProgress](https://github.com/rstacruz/nprogress) (by [Judah Gabriel Himango](https://github.com/judahgabriel)) * [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/)) From b03204e6f034d0962cd9a459642f17b8f02fd5d8 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Wed, 23 Apr 2014 09:50:10 +0100 Subject: [PATCH 016/132] jQuery UI: changeMonth and changeYear JSDoc --- jqueryui/jqueryui-tests.ts | 18 ++++++++++++++++++ jqueryui/jqueryui.d.ts | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/jqueryui/jqueryui-tests.ts b/jqueryui/jqueryui-tests.ts index c922ec161a..e2aac42a09 100644 --- a/jqueryui/jqueryui-tests.ts +++ b/jqueryui/jqueryui-tests.ts @@ -1270,6 +1270,24 @@ function test_datepicker() { // setter var $set: JQuery = $(".selector").datepicker("option", "calculateWeek", myWeekCalc); } + + function changeMonth() { + $(".selector").datepicker({ changeMonth: true }); + + var changeMonth: boolean = $(".selector").datepicker("option", "changeMonth"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "changeMonth", true); + } + + function changeYear() { + $(".selector").datepicker({ changeYear: true }); + + var changeYear: boolean = $(".selector").datepicker("option", "changeYear"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "changeYear", true); + } } diff --git a/jqueryui/jqueryui.d.ts b/jqueryui/jqueryui.d.ts index 083df7b463..2ccd2c262e 100644 --- a/jqueryui/jqueryui.d.ts +++ b/jqueryui/jqueryui.d.ts @@ -1287,10 +1287,41 @@ interface JQuery { * @param methodName 'option' * @param optionName 'buttonText' * @param calculateWeekValue A function to calculate the week of the year for a given date. The default implementation uses the ISO 8601 definition: weeks start on a Monday; the first week of the year contains the first Thursday of the year. - */ datepicker(methodName: 'option', optionName: 'calculateWeek', calculateWeekValue: (date: Date) => string): JQuery; + /** + * Get the changeMonth option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'changeMonth'): boolean; + /** + * Set the changeMonth option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param changeMonthValue Whether the month should be rendered as a dropdown instead of text. + */ + datepicker(methodName: 'option', optionName: 'changeMonth', changeMonthValue: boolean): JQuery; + + /** + * Get the changeYear option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'changeYear'): boolean; + /** + * Set the changeYear option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param changeYearValue Whether the year should be rendered as a dropdown instead of text. Use the yearRange option to control which years are made available for selection. + */ + datepicker(methodName: 'option', optionName: 'changeYear', changeYearValue: boolean): JQuery; + /** * Gets the value currently associated with the specified optionName. * From a71f0ee0f91e681c729c9c717f701a477168614b Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Wed, 23 Apr 2014 13:45:09 +0200 Subject: [PATCH 017/132] added Google Analytics beacon so we have some github stats in the GA account to compare to the sites --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4671d37859..479e04cc89 100755 --- a/README.md +++ b/README.md @@ -37,3 +37,5 @@ Here is an updated list of [definitions people have requested](https://github.co This project is licensed under the MIT license. Copyrights on the definition files are respective of each contributor listed at the beginning of each definition file. + +[![Analytics](https://ga-beacon.appspot.com/UA-47495295-4/borisyankov/DefinitelyTyped)](https://github.com/igrigorik/ga-beacon) \ No newline at end of file From c16618cc4304b83e840ac3b7fa89be2d0771c3f8 Mon Sep 17 00:00:00 2001 From: soywiz Date: Wed, 23 Apr 2014 14:24:16 +0200 Subject: [PATCH 018/132] - Added tspromise definition --- tspromise/tspromise-test.ts | 21 +++++++++++++++++++++ tspromise/tspromise.d.ts | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 tspromise/tspromise-test.ts create mode 100644 tspromise/tspromise.d.ts diff --git a/tspromise/tspromise-test.ts b/tspromise/tspromise-test.ts new file mode 100644 index 0000000000..79903f0ce2 --- /dev/null +++ b/tspromise/tspromise-test.ts @@ -0,0 +1,21 @@ +/// + +import Promise = require('tspromise'); + +var MyFuncFunc = Promise.async((a: boolean, b: number) => { + console.log('[a] ' + a); + yield(Promise.waitAsync(1000)); + console.log('[b]' + b); +}); + +MyFuncFunc(true, 10); + +Promise.all([Promise.waitAsync(10), Promise.waitAsync(20)]).then(() => { + return new Promise((resolve, reject) => { + resolve('test'); + }); +}).then(() => { + throw (new Error()); +}).catch((e) => { + console.log(e.message); +}); \ No newline at end of file diff --git a/tspromise/tspromise.d.ts b/tspromise/tspromise.d.ts new file mode 100644 index 0000000000..8608d105cc --- /dev/null +++ b/tspromise/tspromise.d.ts @@ -0,0 +1,35 @@ +/// +declare class Thenable { + then(onFulfilled: (value: T) => Thenable, onRejected?: (error: Error) => TR): Thenable; + then(onFulfilled: (value: T) => Thenable, onRejected?: (error: Error) => void): Thenable; + then(onFulfilled: (value: T) => TR, onRejected?: (error: Error) => void): Thenable; + then(onFulfilled: (value: T) => TR, onRejected?: (error: Error) => TR): Thenable; + catch(onRejected: (error: Error) => T): Thenable; +} + +interface NodeCallback { + (err: Error, value: T): void; +} + +declare module "tspromise" { + class Promise extends Thenable { + constructor(callback: (resolve: (value?: T) => void, reject?: (error: Error) => void) => void); + static resolve(value?: T): Thenable; + static resolve(promise: Thenable): Thenable; + static reject(error: Error): Thenable; + static all(promises: Thenable[]): Thenable; + static async(callback: () => TR): () => Thenable; + static async(callback: (p1: T1) => TR): (p1: T1) => Thenable; + static async(callback: (p1: T1, p2: T2) => TR): (p1: T1, p2: T2) => Thenable; + static async(callback: (p1: T1, p2: T2, p3: T3) => TR): (p1: T1, p2: T2, p3: T3) => Thenable; + static async(callback: (p1: T1, p2: T2, p3: T3, p4: T4) => TR): (p1: T1, p2: T2, p3: T3, p4: T4) => Thenable; + static spawn(generatorFunction: () => TR): Thenable; + static rewriteFolderSync(path: string): void; + static waitAsync(time: number): Thenable<{}>; + static nfcall(obj: any, methodName: String, ...args: any[]): Thenable; + } + + export = Promise; +} + +declare function yield(promise: Thenable): T; From 6550e264a59748eb7027a417b05390d693e2aebe Mon Sep 17 00:00:00 2001 From: soywiz Date: Wed, 23 Apr 2014 14:26:24 +0200 Subject: [PATCH 019/132] - Added info to definition --- tspromise/tspromise.d.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tspromise/tspromise.d.ts b/tspromise/tspromise.d.ts index 8608d105cc..0d1132ed1e 100644 --- a/tspromise/tspromise.d.ts +++ b/tspromise/tspromise.d.ts @@ -1,4 +1,9 @@ -/// +// Type definitions for tspromise 0.0.4 +// Project: https://github.com/soywiz/tspromise +// Definitions by: Carlos Ballesteros Velasco +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// declare class Thenable { then(onFulfilled: (value: T) => Thenable, onRejected?: (error: Error) => TR): Thenable; then(onFulfilled: (value: T) => Thenable, onRejected?: (error: Error) => void): Thenable; From f1d0dcabb728013aa5dbbbc82f5f603de7d977e0 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Wed, 23 Apr 2014 17:08:19 +0100 Subject: [PATCH 020/132] jQueryUI: Finished the c's --- jqueryui/jqueryui-tests.ts | 27 +++++++++++++++++++++ jqueryui/jqueryui.d.ts | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/jqueryui/jqueryui-tests.ts b/jqueryui/jqueryui-tests.ts index e2aac42a09..136bb2c962 100644 --- a/jqueryui/jqueryui-tests.ts +++ b/jqueryui/jqueryui-tests.ts @@ -1288,6 +1288,33 @@ function test_datepicker() { // setter var $set: JQuery = $(".selector").datepicker("option", "changeYear", true); } + + function closeText() { + $(".selector").datepicker({ closeText: "Close" }); + + var closeText: string = $(".selector").datepicker("option", "closeText"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "closeText", "Close"); + } + + function constrainInput() { + $(".selector").datepicker({ constrainInput: false }); + + var constrainInput: boolean = $(".selector").datepicker("option", "constrainInput"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "constrainInput", false); + } + + function currentText() { + $(".selector").datepicker({ currentText: "Now" }); + + var currentText: string = $(".selector").datepicker("option", "currentText"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "currentText", "Now"); + } } diff --git a/jqueryui/jqueryui.d.ts b/jqueryui/jqueryui.d.ts index 2ccd2c262e..57f10c08ee 100644 --- a/jqueryui/jqueryui.d.ts +++ b/jqueryui/jqueryui.d.ts @@ -1322,6 +1322,54 @@ interface JQuery { */ datepicker(methodName: 'option', optionName: 'changeYear', changeYearValue: boolean): JQuery; + /** + * Get the closeText option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'closeText'): string; + /** + * Set the closeText option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param closeTextValue The text to display for the close link. Use the showButtonPanel option to display this button. + */ + datepicker(methodName: 'option', optionName: 'closeText', closeTextValue: string): JQuery; + + /** + * Get the constrainInput option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'constrainInput'): boolean; + /** + * Set the constrainInput option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param constrainInputValue When true, entry in the input field is constrained to those characters allowed by the current dateFormat option. + */ + datepicker(methodName: 'option', optionName: 'constrainInput', constrainInputValue: boolean): JQuery; + + /** + * Get the currentText option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'currentText'): string; + /** + * Set the currentText option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param currentTextValue The text to display for the current day link. Use the showButtonPanel option to display this button. + */ + datepicker(methodName: 'option', optionName: 'currentText', currentTextValue: string): JQuery; + /** * Gets the value currently associated with the specified optionName. * From 89c5eaf231206eb2b7c851e46c31766433abad48 Mon Sep 17 00:00:00 2001 From: Max Ackley Date: Wed, 23 Apr 2014 10:49:21 -0700 Subject: [PATCH 021/132] Added type definitions and tests for jQuery Finger plugin. --- CONTRIBUTORS.md | 1 + jquery.finger/jquery.finger-tests.ts | 37 +++++++++ jquery.finger/jquery.finger.d.ts | 109 +++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 jquery.finger/jquery.finger-tests.ts create mode 100644 jquery.finger/jquery.finger.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d68e3061cc..96e221802b 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -131,6 +131,7 @@ All definitions files include a header with the author and editors, so at some p * [jQuery.dataTables](http://www.datatables.net) (by [Armin Sander](https://github.com/pragmatrix)) * [jQuery.datetimepicker](http://trentrichardson.com/examples/timepicker/) (by [Doug McDonald](https://github.com/dougajmcdonald)) * [jQuery.dynatree](http://code.google.com/p/dynatree/) (by [François de Campredon](https://github.com/fdecampredon)) +* [jQuery.Finger](http://ngryman.sh/jquery.finger/) (by [Max Ackley](https://github.com/maxackley)) * [jQuery.Flot](http://www.flotcharts.org/) (by [Matt Burland](https://github.com/burlandm)) * [jQuery.form](http://malsup.com/jquery/form/) (by [François Guillot](http://fguillot.developpez.com/)) * [jQuery.Globalize](https://github.com/jquery/globalize) (by [Boris Yankov](https://github.com/borisyankov)) diff --git a/jquery.finger/jquery.finger-tests.ts b/jquery.finger/jquery.finger-tests.ts new file mode 100644 index 0000000000..e50fe1d5f2 --- /dev/null +++ b/jquery.finger/jquery.finger-tests.ts @@ -0,0 +1,37 @@ +/// +/// + +$.Finger.doubleTapInterval = 400; +$.Finger.flickDuration = 250; +$.Finger.pressDuration = 100; +$.Finger.motionThreshhold = 10; +$.Finger.preventDefault = true; +var fingerEventObject: JQueryFingerEventObject; +fingerEventObject.x = 1; +fingerEventObject.y = 2; +fingerEventObject.dx = 3; +fingerEventObject.dy = 4; +fingerEventObject.adx = 3; +fingerEventObject.ady = 4; +fingerEventObject.orientation = 'horizontal'; +fingerEventObject.direction = 1; +$('body').on('drag', e => { + if ('vertical' == e.orientation) return; + e.preventDefault(); +}); + +$('body').on('drag', '.drag', e => { + if ('vertical' == e.orientation) return; + e.preventDefault(); +}); + +$('#menu').on('flick', function (e) { + if ('horizontal' == e.orientation) { + if (1 == e.direction) { + $(this).addClass('is-opened'); + } + else { + $(this).removeClass('is-opened'); + } + } +}); diff --git a/jquery.finger/jquery.finger.d.ts b/jquery.finger/jquery.finger.d.ts new file mode 100644 index 0000000000..0b0cb7ebff --- /dev/null +++ b/jquery.finger/jquery.finger.d.ts @@ -0,0 +1,109 @@ +// Type definitions for jquery.finger.js +// Project: http://ngryman.sh/jquery.finger/ +// Definitions by: Max Ackley +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module JQueryFinger { + export interface JQueryFingerOptions { + /** + * The time the user must hold in order to fire a press event. If this + * time is not reached, a tap event will be fired instead. + * Default: 300(ms). + */ + pressDuration: number; + + /** + * The maximum time between two tap events to fire a doubletap event. + * If this time is reached, two distinct tap events will be fired instead. + * Default: 300(ms). + */ + doubleTapInterval: number; + + /** + * The maximum time the user will have to swipe in order to fire a flick + * event. If this time is reached, only drag events will continue to be + * fired. + * Default: 150(ms). + */ + flickDuration: number; + + /** + * The number of pixels the user will have to move in order to fire motion + * events (drag or flick). If this time is not reached, no motion will + * be handled and tap, doubletap or press event will be fired. + * Default: 5(px). + */ + motionThreshhold: number; + + /** + * Globally prevents every native default behavior. + * Default: undefined. + */ + preventDefault: boolean; + } +} + +interface JQueryFingerEventObject extends JQueryEventObject { + /** + * The x page coordinate. + */ + x: number; + + /** + * The y page coordinate. + */ + y: number; + + /** + * The x delta since the last event. + */ + dx: number; + + /** + * The y delta since the last event. + */ + dy: number; + + /** + * The absolute x delta since the last event. + */ + adx: number; + + /** + * The absolute y delta since the last event. + */ + ady: number; + + /** + * The orientation of the motion. Adjusted by $.Finger.motionThreshhold. + * Value is 'horizontal' or 'vertical'. + */ + orientation: string; + + /** + * The direction of the motion. Value is 1 if the motion is 'positive' + * (left-to-right or top-to-bottom) or -1 if 'negative'(right-to-left or + * bottom-to-top). + */ + direction: number; +} + +interface JQuery { + on(events: 'tap', handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'doubletap', handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'press', handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'drag', handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'flick', handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + + on(events: 'tap', data: any, handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'doubletap', data: any, handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'press', data: any, handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'drag', data: any, handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; + on(events: 'flick', data: any, handler: (eventObject: JQueryFingerEventObject, ...args: any[]) => any): JQuery; +} + +interface JQueryStatic { + Finger: JQueryFinger.JQueryFingerOptions; +} From e3c20e7aca12cb54e5b66d7bd03218805dfc0a00 Mon Sep 17 00:00:00 2001 From: Santi Albo Date: Thu, 24 Apr 2014 11:35:12 +0100 Subject: [PATCH 022/132] (restangular) Fix argument order in custom methods The arguments were in the wrong order for custom methods --- restangular/restangular.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/restangular/restangular.d.ts b/restangular/restangular.d.ts index a5b7de20d9..0cc4321afb 100644 --- a/restangular/restangular.d.ts +++ b/restangular/restangular.d.ts @@ -60,8 +60,8 @@ interface RestangularCustom { customGET(path: string, params?: any, headers?: any): ng.IPromise; customGETLIST(path: string, params?: any, headers?: any): ng.IPromise; customDELETE(path: string, params?: any, headers?: any): ng.IPromise; - customPOST(path: string, params?: any, headers?: any, elem?: any): ng.IPromise; - customPUT(path: string, params?: any, headers?: any, elem?: any): ng.IPromise; + customPOST(elem?: any, path?: string, params?: any, headers?: any): ng.IPromise; + customPUT(elem?: any, path?: string, params?: any, headers?: any): ng.IPromise; customOperation(operation: string, path: string, params?: any, headers?: any, elem?: any): ng.IPromise; addRestangularMethod(name: string, operation: string, path?: string, params?: any, headers?: any, elem?: any): ng.IPromise; } From e3d8e5fe91cfe0111686da53bf50ba8303d6102f Mon Sep 17 00:00:00 2001 From: Santi Albo Date: Thu, 24 Apr 2014 11:42:09 +0100 Subject: [PATCH 023/132] fix restangular test --- restangular/restangular-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/restangular/restangular-tests.ts b/restangular/restangular-tests.ts index 22473e13e2..9643c9e6b3 100644 --- a/restangular/restangular-tests.ts +++ b/restangular/restangular-tests.ts @@ -75,7 +75,7 @@ function test_basic() { $scope.account = account.get({ single: true }); - account.customPOST("messages", { param: "myParam" }, {}, { name: "My Message" }) + account.customPOST({ name: "My Message" }, "messages", { param: "myParam" }, {}) } function test_config() { From 79a48d8772e6b677ad0e2bc471e0724909c7a0ab Mon Sep 17 00:00:00 2001 From: John Reilly Date: Thu, 24 Apr 2014 15:47:53 +0100 Subject: [PATCH 024/132] jQueryUI: now the d's --- jqueryui/jqueryui-tests.ts | 47 ++++++++++++++++++ jqueryui/jqueryui.d.ts | 98 +++++++++++++++++++++++++++++++++++++- 2 files changed, 144 insertions(+), 1 deletion(-) diff --git a/jqueryui/jqueryui-tests.ts b/jqueryui/jqueryui-tests.ts index 136bb2c962..b83006c3a8 100644 --- a/jqueryui/jqueryui-tests.ts +++ b/jqueryui/jqueryui-tests.ts @@ -1315,6 +1315,53 @@ function test_datepicker() { // setter var $set: JQuery = $(".selector").datepicker("option", "currentText", "Now"); } + + function dateFormat() { + $(".selector").datepicker({ dateFormat: "yy-mm-dd" }); + + var dateFormat: string = $(".selector").datepicker("option", "dateFormat"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "dateFormat", "yy-mm-dd"); + } + + function dayNames() { + $(".selector").datepicker({ dayNames: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"] }); + + var dayNames: string[] = $(".selector").datepicker("option", "dayNames"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "dayNames", ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]); + } + + function dayNamesMin() { + $(".selector").datepicker({ dayNamesMin: ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"] }); + + var dayNamesMin: string[] = $(".selector").datepicker("option", "dayNamesMin"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "dayNamesMin", ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"]); + } + + function dayNamesShort() { + $(".selector").datepicker({ dayNamesShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"] }); + + var dayNamesShort: string[] = $(".selector").datepicker("option", "dayNamesShort"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "dayNamesShort", ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"]); + } + + function defaultDate() { + $(".selector").datepicker({ defaultDate: +7 }); + + var defaultDate: any = $(".selector").datepicker("option", "defaultDate"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "defaultDate", +7); + $set = $(".selector").datepicker("option", "defaultDate", new Date()); + $set = $(".selector").datepicker("option", "defaultDate", "+1m +7d"); + } } diff --git a/jqueryui/jqueryui.d.ts b/jqueryui/jqueryui.d.ts index 57f10c08ee..5019a99504 100644 --- a/jqueryui/jqueryui.d.ts +++ b/jqueryui/jqueryui.d.ts @@ -180,7 +180,7 @@ declare module JQueryUI { * Number: A number of days from today. For example 2 represents two days from today and -1 represents yesterday. * String: A string in the format defined by the dateFormat option, or a relative date. Relative dates must contain value and period pairs; valid periods are "y" for years, "m" for months, "w" for weeks, and "d" for days. For example, "+1m +7d" represents one month and seven days from today. */ - defaultDateType?: any; // Date, number or string + defaultDate?: any; // Date, number or string /** * Control the speed at which the datepicker appears, it may be a time in milliseconds or a string representing one of the three predefined speeds ("slow", "normal", "fast"). */ @@ -1370,6 +1370,102 @@ interface JQuery { */ datepicker(methodName: 'option', optionName: 'currentText', currentTextValue: string): JQuery; + /** + * Get the dateFormat option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'dateFormat'): string; + /** + * Set the dateFormat option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param dateFormatValue The format for parsed and displayed dates. For a full list of the possible formats see the formatDate function. + */ + datepicker(methodName: 'option', optionName: 'dateFormat', dateFormatValue: string): JQuery; + + /** + * Get the dayNames option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'dayNames'): string[]; + /** + * Set the dayNames option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param dayNamesValue The list of long day names, starting from Sunday, for use as requested via the dateFormat option. + */ + datepicker(methodName: 'option', optionName: 'dayNames', dayNamesValue: string[]): JQuery; + + /** + * Get the dayNamesMin option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'dayNamesMin'): string[]; + /** + * Set the dayNamesMin option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param dayNamesMinValue The list of minimised day names, starting from Sunday, for use as column headers within the datepicker. + */ + datepicker(methodName: 'option', optionName: 'dayNamesMin', dayNamesMinValue: string[]): JQuery; + + /** + * Get the dayNamesShort option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + */ + datepicker(methodName: 'option', optionName: 'dayNamesShort'): string[]; + /** + * Set the dayNamesShort option, after initialization + * + * @param methodName 'option' + * @param optionName 'buttonText' + * @param dayNamesShortValue The list of abbreviated day names, starting from Sunday, for use as requested via the dateFormat option. + */ + datepicker(methodName: 'option', optionName: 'dayNamesShort', dayNamesShortValue: string[]): JQuery; + + /** + * Get the defaultDate option, after initialization + * + * @param methodName 'option' + * @param optionName 'defaultDate' + */ + datepicker(methodName: 'option', optionName: 'defaultDate'): any; + /** + * Set the defaultDate option, after initialization + * + * @param methodName 'option' + * @param optionName 'defaultDate' + * @param defaultDateValue A date object containing the default date. + */ + datepicker(methodName: 'option', optionName: 'defaultDate', defaultDateValue: Date): JQuery; + /** + * Set the defaultDate option, after initialization + * + * @param methodName 'option' + * @param optionName 'defaultDate' + * @param defaultDateValue A number of days from today. For example 2 represents two days from today and -1 represents yesterday. + */ + datepicker(methodName: 'option', optionName: 'defaultDate', defaultDateValue: number): JQuery; + /** + * Set the defaultDate option, after initialization + * + * @param methodName 'option' + * @param optionName 'defaultDate' + * @param defaultDateValue A string in the format defined by the dateFormat option, or a relative date. Relative dates must contain value and period pairs; valid periods are "y" for years, "m" for months, "w" for weeks, and "d" for days. For example, "+1m +7d" represents one month and seven days from today. + */ + datepicker(methodName: 'option', optionName: 'defaultDate', defaultDateValue: string): JQuery; + /** * Gets the value currently associated with the specified optionName. * From 45b1c617ad3979914fb407398440b37a42f4bb4b Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Thu, 24 Apr 2014 17:41:01 +0200 Subject: [PATCH 025/132] changed joi header to v4.0.0 --- joi/joi.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/joi/joi.d.ts b/joi/joi.d.ts index 344738e891..10bc7225e7 100644 --- a/joi/joi.d.ts +++ b/joi/joi.d.ts @@ -1,4 +1,4 @@ -// Type definitions for joi v3.1.0 +// Type definitions for joi v4.0.0 // Project: https://github.com/spumko/joi // Definitions by: Bart van der Schoor // Definitions: https://github.com/borisyankov/DefinitelyTyped From 58b7a009bf87c3a887f6961e3def8d499df2e808 Mon Sep 17 00:00:00 2001 From: AdaskoTheBeAsT Date: Thu, 24 Apr 2014 23:08:39 +0200 Subject: [PATCH 026/132] www.jstree.com definition file added amazing tree jstree definition file added --- jquery.jstree/jquery.jstree.d.ts | 696 +++++++++++++++++++++++++++++++ 1 file changed, 696 insertions(+) create mode 100644 jquery.jstree/jquery.jstree.d.ts diff --git a/jquery.jstree/jquery.jstree.d.ts b/jquery.jstree/jquery.jstree.d.ts new file mode 100644 index 0000000000..55e3c6f418 --- /dev/null +++ b/jquery.jstree/jquery.jstree.d.ts @@ -0,0 +1,696 @@ +/// + +interface JQueryStatic { + /** + * holds all jstree related functions and variables, + * including the actual class and methods to create, + * access and manipulate instances. + * @property jstree + * @type {JSTreeStatic} + */ + jstree?: JSTreeStatic; + +} + +interface JSTreeStatic { + /** + * specifies the jstree version in use + * @property version + * @type {string} + */ + version: string; + + /** + * holds all the default options used when creating new instances + * @property defaults + * @type {JSTreeStaticDefaults} + */ + defaults: JSTreeStaticDefaults; + + /** + * stores all loaded jstree plugins (used internally) + */ + plugins: any[]; + + /** + * creates a jstree instance + * @param el the element to create the instance on, can be jQuery extended or a selector + * @param options {JSTreeOptions} options for this instance (extends `$.jstree.defaults`) + * @returns {JSTree} the new instance + */ + create(el: any, options?: JSTreeStaticDefaults): JSTree; + + /** + * the jstree class constructor, used only internally + * @param id {number} this instance's index + */ + core(id: number): void; + + /** + * get a reference to an existing instance + * @param needle + * @returns {JSTree} the instance or `null` if not found + */ + reference(needle: any): JSTree; +} + +interface JSTreeStaticDefaults { + /** + * configure which plugins will be active on an instance. + * Should be an array of strings, where each element is a plugin name. + * The default is [] + */ + plugins: string[]; + /** + * stores all defaults for the core + */ + core: JSTreeStaticDefaultsCore; + /** + * stores all defaults for the checkbox plugin + */ + checkbox?: JSTreeStaticDefaultsCheckbox; + /** + * stores all defaults for the contextmenu plugin + */ + contextmenu?: JSTreeStaticDefaultsContextMenu; + /** + * stores all defaults for the drag'n'drop plugin + */ + dnd?: JSTreeStaticDefaultsDragNDrop; + /** + * stores all defaults for the search plugin + */ + search?: JSTreeStaticDefaultsSearch; + /** + * the settings function used to sort the nodes. + * It is executed in the tree's context, + * accepts two nodes as arguments and should return 1 or -1. + */ + sort?: (x: any, y: any) => number; + /** + * stores all defaults for the state plugin + */ + state?: JSTreeStaticDefaultsState; + /** + * An object storing all types as key value pairs, + * where the key is the type name and the value is an object + * that could contain following keys (all optional). + * max_children the maximum number of immediate children this node type can have. + * Do not specify or set to -1 for unlimited. + * max_depth the maximum number of nesting this node type can have. + * A value of 1 would mean that the node can have children, but no grandchildren. + * Do not specify or set to -1 for unlimited. + * valid_children an array of node type strings, that nodes of this type can have as children. + * Do not specify or set to -1 for no limits. + * icon a string - can be a path to an icon or a className, if using an image + * that is in the current directory use a ./ prefix, otherwise it will be detected as a class. + * Omit to use the default icon from your theme. + * There are two predefined types: + * # represents the root of the tree, for example max_children would control the maximum number of root nodes. + * default represents the default node - any settings here will be applied to all nodes that do not have a type specified. + */ + types?: any; +} + +interface JSTreeStaticDefaultsCore { + /** + * data configuration + */ + data?: any; + /** + * configure the various strings used throughout the tree + */ + strings?: any; + /** + * + */ + check_callback?: (operation: string, node: any, node_parent: any, node_position: any) => void; + /** + * the open / close animation duration in milliseconds + * set this to false to disable the animation (default is 200) + */ + animation?: any; + /** + * a boolean indicating if multiple nodes can be selected + */ + multiple?: boolean; + /** + * theme configuration object + */ + themes?:JSTreeStaticDefaultsCoreThemes; +} + +interface JSTreeStaticDefaultsCoreThemes { + /** + * the name of the theme to use (if left as false the default theme is used) + */ + name?: string; + /** + * the URL of the theme's CSS file, leave this as false if you have manually + * included the theme CSS (recommended). + * You can set this to true too which will try to autoload the theme. + */ + url?: string; + /** + * the location of all jstree themes - only used if url is set to true + */ + dir?: string; + /** + * a boolean indicating if connecting dots are shown + */ + dots?: boolean; + /** + * a boolean indicating if node icons are shown + */ + icons?: boolean; + /** + * a boolean indicating if the tree background is striped + */ + stripes?: boolean; + /** + * a string (or boolean false) specifying the theme + * variant to use (if the theme supports variants) + */ + variant?: any; + /** + * a boolean specifying if a reponsive version of the theme should kick + * in on smaller screens (if the theme supports it). Defaults to true. + */ + responsive?: boolean; + /** + * if left as true all parents of all selected nodes will be opened + * once the tree loads (so that all selected nodes are visible to the user) + */ + expand_selected_onload?:boolean; + +} + +interface JSTreeStaticDefaultsCheckbox { + /** + * a boolean indicating if checkboxes should be visible + * (can be changed at a later time using show_checkboxes() + * and hide_checkboxes). Defaults to true. + */ + visible: boolean; + /** + * a boolean indicating if checkboxes should cascade down + * and have an undetermined state. Defaults to true. + */ + three_state: boolean; + /** + * a boolean indicating if clicking anywhere on the node + * should act as clicking on the checkbox. Defaults to true. + */ + whole_node: boolean; + /** + * a boolean indicating if the selected style of a node + * should be kept, or removed. Defaults to true. + */ + keep_selected_style: boolean; +} + +interface JSTreeStaticDefaultsContextMenu { + /** + * a boolean indicating if the node should be selected + * when the context menu is invoked on it. Defaults to true. + */ + select_node: boolean; + /** + * a boolean indicating if the menu should be shown aligned + * with the node. Defaults to true, otherwise the mouse coordinates are used. + */ + show_at_node: boolean; + /** + * an object of actions, or a function that accepts a node + * and returns an object of actions available for that node + * Each action consists of a key (a unique name) and a value which is an object with the following properties: + * separator_before - a boolean indicating if there should be a separator before this item + * separator_after - a boolean indicating if there should be a separator after this item + * _disabled - a boolean indicating if this action should be disabled + * label - a string - the name of the action + * action - a function to be executed if this item is chosen + */ + items: any; +} + +interface JSTreeStaticDefaultsDragNDrop { + /** + * a boolean indicating if a copy should be possible + * while dragging (by pressint the meta key or Ctrl). Defaults to true. + */ + copy: boolean; + /** + * a number indicating how long a node should remain hovered + * while dragging to be opened. Defaults to 500. + */ + open_timeout: number; +} + +interface JSTreeStaticDefaultsSearch { + /** + * a jQuery-like AJAX config, which jstree uses + * if a server should be queried for results. + * A str (which is the search string) parameter will be added with the request. + * The expected result is a JSON array with nodes that need to be opened + * so that matching nodes will be revealed. Leave this setting as false to not query the server. + */ + ajax: any; + /** + * Indicates if the search should be fuzzy + * or not (should chnd3 match child node 3). Default is true. + */ + fuzzy: boolean; + /** + * Indicates if the search should be case sensitive. Default is false. + */ + case_sensitive: boolean; + /** + * Indicates if the tree should be filtered to show only matching nodes + * (keep in mind this can be a heavy on large trees in old browsers). Default is false. + */ + show_only_matches: boolean; + /** + * Indicates if all nodes opened to reveal the search result, + * should be closed when the search is cleared or a new search is performed. Default is true. + */ + close_opened_onclear: boolean; +} + +interface JSTreeStaticDefaultsState { + /** + * A string for the key to use when saving the current tree + * (change if using multiple trees in your project). Defaults to jstree. + */ + key: string; + /** + * A space separated list of events that trigger a state save. + * Defaults to changed.jstree open_node.jstree close_node.jstree. + */ + events: string; +} + +interface JQuery { + jstree(): JSTree; + jstree(options: JSTreeStaticDefaults): JSTree; + jstree(arg: boolean): JSTree; + jstree(...args: any[]): JSTree; +} + +interface JSTree extends JQuery { + /** + * destroy an instance + */ + destroy: () => void; + /** + * returns the jQuery extended instance container + */ + get_container: () => JQuery; + /** + * get the JSON representation of a node + * (or the actual jQuery extended DOM node) + * by using any input (child DOM element, ID string, selector, etc) + */ + get_node: (obj: any, as_dom?: boolean) => JQuery; + /** + * get the next visible node that is below the obj node. + * If strict is set to true only sibling nodes are returned. + */ + get_next_dom: (obj:any,strict?:boolean) => JQuery; + /** + * get the previous visible node that is above the obj node. + * If strict is set to true only sibling nodes are returned. + */ + get_prev_dom: (obj: any, strict?: boolean) => JQuery; + /** + * get the parent ID of a node + */ + get_parent: (obj: any) => string; + /** + * get a jQuery collection of all the children of a node (node must be rendered) + */ + get_children_dom: (obj: any) => JQuery; + /** + * checks if a node has children + */ + is_parent: (obj: any) => boolean; + /** + * checks if a node is loaded (its children are available) + */ + is_loaded: (obj: any) => boolean; + /** + * check if a node is currently loading (fetching children) + */ + is_loading: (obj: any) => boolean; + /** + * check if a node is opened + */ + is_open: (obj: any) => boolean; + /** + * check if a node is in a closed state + */ + is_closed: (obj: any) => boolean; + /** + * check if a node has no children + */ + is_leaf: (obj: any) => boolean; + /** + * loads a node (fetches its children using the core.data setting). + * Multiple nodes can be passed to by using an array. + * @param obj mixed + * @param callback a function to be executed once loading is conplete, + * the function is executed in the instance's scope and receives two arguments + * the node and a boolean status + */ + load_node: (obj: any, callback: any) => boolean; + /** + * redraws all nodes that need to be redrawn or optionally - the whole tree + * @param full if set to `true` all nodes are redrawn. + */ + redraw: (full?: boolean) => void; + /** + * opens a node, revaling its children. If the node is not loaded + * it will be loaded and opened once ready. + * @param obj the node to open + * @param callback a function to execute once the node is opened + * @param animation the animation duration in milliseconds when opening the node + * (overrides the `core.animation` setting). Use `false` for no animation. + */ + open_node: (obj: any, callback?: any, animation?: any) => void; + /** + * opens a node, revaling its children. If the node is not loaded + * it will be loaded and opened once ready. + * @param obj the node to close + * @param animation the animation duration in milliseconds when closing the node + * (overrides the `core.animation` setting). Use `false` for no animation. + */ + close_node: (obj: any, animation?: any) => void; + /** + * toggles a node - closing it if it is open, opening it if it is closed + */ + toggle_node: (obj: any) => void; + /** + * opens all nodes within a node (or the tree), revaling their children. + * If the node is not loaded it will be loaded and opened once ready. + * @param obj the node to open recursively, omit to open all nodes in the tree + * @param animation the animation duration in milliseconds when opening the nodes, the default is no animation + * @param original_obj to the node that started the process (internal use) + */ + open_all: (obj?: any, animation?: number, original_obj?: any) => void; + /** + * closes all nodes within a node (or the tree), revaling their children + * @param obj the node to close recursively, omit to close all nodes in the tree + * @param animation the animation duration in milliseconds when closing the nodes, the default is no animation + */ + close_all: (obj?: any, animation?: number) => void; + /** + * checks if a node is disabled (not selectable) + */ + is_disabled: (obj: any) => boolean; + /** + * enables a node - so that it can be selected + */ + enable_node: (obj: any) => boolean; + /** + * disables a node - so that it can not be selected + */ + disable_node: (obj: any) => boolean; + /** + * select a node + * @param obj an array can be used to select multiple nodes + * @param supress_event if set to `true` the `changed.jstree` event won't be triggered + * @param prevent_open if set to `true` parents of the selected node won't be opened + */ + select_node: (obj: any, supress_event?: boolean, prevent_open?: boolean) => void; + /** + * deselect a node + * @param obj an array can be used to deselect multiple nodes + * @param supress_event if set to `true` the `changed.jstree` event won't be triggered + */ + deselect_node: (obj: any, supress_event?: boolean) => void; + /** + * select all nodes in the tree + * @param supress_event if set to `true` the `changed.jstree` event won't be triggered + */ + select_all: (supress_event?: boolean) => void; + /** + * deselect all selected nodes + * @param supress_event if set to `true` the `changed.jstree` event won't be triggered + */ + deselect_all: (supress_event?: boolean) => void; + /** + * checks if a node is selected + */ + is_selected: (obj: any) => boolean; + /** + * get an array of all selected node IDs + * @param full if set to `true` the returned array will consist of the full node objects, + * otherwise - only IDs will be returned + */ + get_selected: (full?: any) => string[]; + /** + * refreshes the tree - all nodes are reloaded with calls to load_node. + */ + refresh: () => void; + /** + * set (change) the ID of a node + * @param obj the node + * @param id the new ID + */ + set_id: (obj: any, id: string) => void; + /** + * get the text value of a node + */ + get_text: (obj: any) => string; + /** + * gets a JSON representation of a node (or the whole tree) + */ + get_json: (obj?: any, options?: JSTreeGetJsonOptions) => any; + /** + * create a new node (do not confuse with load_node) + * @param obj the parent node + * @param node the data for the new node (a valid JSON object, or a simple string with the name) + * @param pos the index at which to insert the node, "first" and "last" are also supported, default is "last" + * @param callback a function to be called once the node is created + * @param is_loaded internal argument indicating if the parent node was succesfully loaded + * @returns the ID of the newly create node + */ + create_node: (obj?: any, node?: any, pos?: any, callback?: any, is_loaded?: boolean) => string; + /** + * set the text value of a node + * @param obj the node, you can pass an array to rename multiple nodes to the same name + * @param val the new text value + */ + rename_node: (obj: any, val: string) => boolean; + /** + * remove a node + * @param obj the node, you can pass an array to delete multiple nodes + */ + delete_node: (obj: any) => boolean; + /** + * move a node to a new parent + * @param obj the node to move, pass an array to move multiple nodes + * @param par the new parent + * @param pos the position to insert at ("first" and "last" are supported, as well as "before" and "after"), defaults to `0` + * @param callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param internal parameter indicating if the parent node has been loaded + */ + move_node: (obj: any, par: any, pos?: any, callback?: any, internal?: boolean) => void; + /** + * copy a node to a new parent + * @param obj the node to copy, pass an array to copy multiple nodes + * @param par the new parent + * @param pos the position to insert at ("first" and "last" are supported, as well as "before" and "after"), defaults to `0` + * @param callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param internal parameter indicating if the parent node has been loaded + */ + copy_node: (obj: any, par: any, pos?: any, callback?: any, internal?: boolean) => void; + /** + * cut a node (a later call to paste(obj) would move the node) + * @param obj multiple objects can be passed using an array + */ + cut: (obj: any) => void; + /** + * copy a node (a later call to paste(obj) would copy the node) + * @param obj multiple objects can be passed using an array + */ + copy: (obj: any) => void; + /** + * get the current buffer (any nodes that are waiting for a paste operation) + * @returns an object consisting of `mode` ("copy_node" or "move_node"), + * `node` (an array of objects) and `inst` (the instance) + */ + get_buffer: () => any; + /** + * check if there is something in the buffer to paste + */ + can_paste: () => boolean; + /** + * copy or move the previously cut or copied nodes to a new parent + * @param obj the new parent + */ + paste: (obj: any) => void; + /** + * put a node in edit mode (input field to rename the node) + * @param obj + * @param default_text the text to populate the input with (if omitted the node text value is used) + */ + edit: (obj: any, default_text?: string) => void; + /** + * changes the theme + * @param theme_name the name of the new theme to apply + * @param theme_url the location of the CSS file for this theme. + * Omit or set to `false` if you manually included the file. + * Set to `true` to autoload from the `core.themes.dir` directory. + */ + set_theme: (theme_name: string, theme_url?: any) => void; + /** + * gets the name of the currently applied theme name + */ + get_theme: () => string; + /** + * changes the theme variant (if the theme has variants) + * @param variant_name the variant to apply (if `false` is used the current variant is removed) + */ + set_theme_variant: (variant_name: any) => void; + /** + * gets the name of the currently applied theme variant name + */ + get_theme_variant: () => string; + /** + * shows a striped background on the container (if the theme supports it) + */ + show_stripes: () => void; + /** + * hides the striped background on the container + */ + hide_stripes: () => void; + /** + * toggles the striped background on the container + */ + toggle_stripes: () => void; + /** + * shows the connecting dots (if the theme supports it) + */ + show_dots: () => void; + /** + * hides the connecting dots + */ + hide_dots: () => void; + /** + * toggles the connecting dots + */ + toggle_dots: () => void; + /** + * show the node icons + */ + show_icons: () => void; + /** + * hide the node icons + */ + hide_icons: () => void; + /** + * toggle the node icons + */ + toggle_icons: () => void; + /** + * set the node icon for a node + * @param obj + * @param icon the new icon - can be a path to an icon or a className, + * if using an image that is in the current directory use a `./` prefix, + * otherwise it will be detected as a class + */ + set_icon: (obj: any, icon: string) => void; + /** + * get the node icon for a node + */ + get_icon: (obj: any) => string; + /** + * hide the icon on an individual node + */ + hide_icon: (obj: any) => void; + /** + * show the icon on an individual node + */ + show_icon: (obj: any) => void; + /* + * checkbox plugin: show the node checkbox icons + */ + show_checkboxes: () => void; + /* + * checkbox plugin: hide the node checkbox icons + */ + hide_checkboxes: () => void; + /* + * checkbox plugin: toggle the node icons + */ + toggle_checkboxes: () => void; + /** + * context menu plugin: show the context menu for a node + * @param obj the node + * @param x the x-coordinate relative to the document to show the menu at + * @param y the y-coordinate relative to the document to show the menu at + */ + show_contextmenu: (obj: any, x?: number, y?: number) => void; + /** + * search plugin: used to search the tree nodes for a given string + * @param str the search string + * @param skip_async if set to true server will not be queried even if configured + */ + search: (str: string, skip_async?: boolean) => void; + /** + * search plugin: used to clear the last search (removes classes and shows all nodes if filtering is on) + */ + clear_search: () => void; + /** + * state plugin: save the state + */ + save_state: () => void; + /** + * state plugin: restore the state from the user's computer + */ + restore_state: () => void; + /** + * state plugin: clear the state on the user's computer + */ + clear_state: () => void; + /** + * types plugin: used to retrieve the type settings object for a node + * @param obj the node to find the rules for + */ + get_rules: (obj: any) => any; + /** + * types plugin: used to retrieve the type string or settings object for a node + * @param obj the node to find the rules for + * @param rules if set to `true` instead of a string the settings object will be returned + */ + get_type: (obj: any, rules?: any) => any; + /** + * types plugin: used to change a node's type + * @param obj the node to change + * @param type the new type + */ + set_type: (obj: any, type: string) => any; + //bind(eventType: string, handler?: (event: any, data: JSTreeBindOptions) => any): JSTree; +} + +interface JSTreeGetJsonOptions { + /** + * do not return state information + */ + no_state: boolean; + /** + * do not return ID + */ + no_id: boolean; + /** + * do not include children + */ + no_children: boolean; +} + +interface JSTreeBindOptions { + inst?: any; + args?: any; + rslt?: any; + rlbk?: any; +} \ No newline at end of file From c4d0c9a5515c036e60e3809b4327eadf4056c643 Mon Sep 17 00:00:00 2001 From: "Omid K. Rad" Date: Thu, 24 Apr 2014 17:45:31 -0700 Subject: [PATCH 027/132] Backbone Generics --- backbone-relational/backbone-relational.d.ts | 25 +- backbone/backbone-tests.ts | 157 +++++++----- backbone/backbone.d.ts | 248 ++++++++++--------- backgrid/backgrid-tests.ts | 6 +- backgrid/backgrid.d.ts | 20 +- giraffe/giraffe-tests.ts | 12 +- giraffe/giraffe.d.ts | 75 +++--- jointjs/jointjs.d.ts | 14 +- knockback/knockback.d.ts | 6 +- marionette/marionette.d.ts | 164 ++++++------ 10 files changed, 395 insertions(+), 332 deletions(-) diff --git a/backbone-relational/backbone-relational.d.ts b/backbone-relational/backbone-relational.d.ts index 56dd2e9e83..4f4aa45cc6 100644 --- a/backbone-relational/backbone-relational.d.ts +++ b/backbone-relational/backbone-relational.d.ts @@ -5,12 +5,15 @@ /// - /// declare module Backbone { - export class RelationalModel extends Model { - static extend(properties:any, classProperties?:any):any; // do not use, prefer TypeScript's extend functionality + class RelationalModel extends Model { + /** + * Do not use, prefer TypeScript's extend functionality. + **/ + //private static extend(properties:any, classProperties?:any):any; + relations:any; subModelTypes:any; subModelTypeAttribute:any; @@ -58,7 +61,7 @@ declare module Backbone { setRelated(related:Model):void; - setRelated(related:Collection):void; + setRelated(related:Collection):void; getReverseRelations(model:RelationalModel):Relation; @@ -78,15 +81,15 @@ declare module Backbone { setKeyContents(keyContents:number[]):void; - setKeyContents(keyContents:Collection):void; + setKeyContents(keyContents:Collection):void; onChange(model:Model, attr:any, options:any):void; - handleAddition(model:Model, coll:Collection, options:any):void; + handleAddition(model:Model, coll:Collection, options:any):void; - handleRemoval(model:Model, coll:Collection, options:any):void; + handleRemoval(model:Model, coll:Collection, options:any):void; - handleReset(coll:Collection, options:any):void; + handleReset(coll:Collection, options:any):void; tryAddRelated(model:Model, coll:any, options:any):void; @@ -135,9 +138,9 @@ declare module Backbone { processOrphanRelations():void; - retroFitRelation(relation:RelationalModel, create:boolean):Collection; + retroFitRelation(relation:RelationalModel, create:boolean):Collection; - getCollection(type:RelationalModel, create:boolean):Collection; + getCollection(type:RelationalModel, create:boolean):Collection; getObjectByName(name:string):any; @@ -158,7 +161,7 @@ declare module Backbone { update(model:RelationalModel):void; - unregister(model:RelationalModel, collection:Collection, options:any):void; + unregister(model:RelationalModel, collection:Collection, options:any):void; reset():void; diff --git a/backbone/backbone-tests.ts b/backbone/backbone-tests.ts index c1292c1c25..bf44c56f77 100644 --- a/backbone/backbone-tests.ts +++ b/backbone/backbone-tests.ts @@ -4,7 +4,7 @@ function test_events() { var object = new Backbone.Events(); - object.on("alert", (msg) => alert("Triggered " + msg)); + object.on("alert", (eventName: string) => alert("Triggered " + eventName)); object.trigger("alert", "an event"); @@ -18,48 +18,74 @@ function test_events() { object.off(); } +class SettingDefaults extends Backbone.Model { + + // 'defaults' could be set in one of the following ways: + + defaults() { + return { + name: "Joe" + } + } + + constructor(attributes?: any, options?: any) { + this.defaults = { + name: "Joe" + } + // super has to come last + super(attributes, options); + } + + // or set it like this + initialize() { + this.defaults = { + name: "Joe" + } + + } + + // same patterns could be used for setting 'Router.routes' and 'View.events' +} + +class Sidebar extends Backbone.Model { + + promptColor() { + var cssColor = prompt("Please enter a CSS color:"); + this.set({ color: cssColor }); + } +} + +class Note extends Backbone.Model { + initialize() { } + author() { } + coordinates() { } + allowedToEdit(account: any) { + return true; + } +} + +class PrivateNote extends Note { + allowedToEdit(account: any) { + return account.owns(this); + } + + set(attributes: any, options?: any): Backbone.Model { + return Backbone.Model.prototype.set.call(this, attributes, options); + } +} + function test_models() { - var Sidebar = Backbone.Model.extend({ - promptColor: function () { - var cssColor = prompt("Please enter a CSS color:"); - this.set({ color: cssColor }); - } - }); - var sidebar = new Sidebar(); - sidebar.on('change:color', (model, color) => $('#sidebar').css({ background: color })); + sidebar.on('change:color', (model: {}, color: string) => $('#sidebar').css({ background: color })); sidebar.set({ color: 'white' }); sidebar.promptColor(); - //////// - - var Note = Backbone.Model.extend({ - initialize: () => { }, - author: () => { }, - coordinates: () => { }, - allowedToEdit: (account) => { - return true; - } - }); - - var PrivateNote = Note.extend({ - - allowedToEdit: function (account) { - return account.owns(this); - } - - }); - ////////// - var note = Backbone.Model.extend({ - set: function (attributes, options) { - Backbone.Model.prototype.set.call(this, attributes, options); - } - }); + var note = new PrivateNote(); - note.get("title") + note.get("title"); note.set({ title: "March 20", content: "In his eyes she eclipses..." }); @@ -69,7 +95,7 @@ function test_models() { class Employee extends Backbone.Model { reports: EmployeeCollection; - constructor (options? ) { + constructor(attributes?: any, options?: any) { super(options); this.reports = new EmployeeCollection(); this.reports.url = '../api/employees/' + this.id + '/reports'; @@ -80,29 +106,38 @@ class Employee extends Backbone.Model { } } -class EmployeeCollection extends Backbone.Collection { - findByName(key) { } +class EmployeeCollection extends Backbone.Collection { + findByName(key: any) { } } + +class Book extends Backbone.Model { + title: string; + author: string; +} + +class Library extends Backbone.Collection { + model: typeof Book; +} + +class Books extends Backbone.Collection { } + function test_collection() { - var Book: Backbone.Model; - var Library = Backbone.Collection.extend({ - model: Book + + var books = new Library(); + + books.each(book => { + book.get("title"); }); - var Books: Backbone.Collection; - - Books.each(function (book) { - }); - - var titles = Books.map(function (book) { + var titles = books.map(book => { return book.get("title"); }); - var publishedBooks = Books.filter(function (book) { + var publishedBooks = books.filter(book => { return book.get("published") === true; }); - var alphabetical = Books.sortBy(function (book) { + var alphabetical = books.sortBy((book: Book): number => { return null; }); } @@ -121,26 +156,26 @@ module v1Changes { function test_listenTo() { var model = new Employee; - var view = new Backbone.View; + var view = new Backbone.View(); view.listenTo(model, 'invalid', () => { }); } function test_listenToOnce() { var model = new Employee; - var view = new Backbone.View; + var view = new Backbone.View(); view.listenToOnce(model, 'invalid', () => { }); } function test_stopListening() { var model = new Employee; - var view = new Backbone.View; + var view = new Backbone.View(); view.stopListening(model, 'invalid', () => { }); view.stopListening(model, 'invalid'); view.stopListening(model); } } - module modelandcollection { + module ModelAndCollection { function test_url() { Employee.prototype.url = () => '/employees'; EmployeeCollection.prototype.url = () => '/employees'; @@ -168,7 +203,7 @@ module v1Changes { } } - module model { + module Model { function test_validationError() { var model = new Employee; if (model.validationError) { @@ -195,17 +230,17 @@ module v1Changes { model.destroy({ wait: true, success: (m?, response?, options?) => { }, - error: (m?, jqxhr?: JQueryXHR, options?) => { } + error: (m?, jqxhr?, options?) => { } }); model.destroy({ success: (m?, response?, options?) => { }, - error: (m?, jqxhr?: JQueryXHR) => { } + error: (m?, jqxhr?) => { } }); model.destroy({ success: () => { }, - error: (m?, jqxhr?: JQueryXHR) => { } + error: (m?, jqxhr?) => { } }); } @@ -220,7 +255,7 @@ module v1Changes { wait: true, validate: false, success: (m?, response?, options?) => { }, - error: (m?, jqxhr?: JQueryXHR, options?) => { } + error: (m?, jqxhr?, options?) => { } }); model.save({ @@ -229,7 +264,7 @@ module v1Changes { }, { success: () => { }, - error: (m?, jqxhr?: JQueryXHR) => { } + error: (m?, jqxhr?) => { } }); } @@ -240,7 +275,7 @@ module v1Changes { } } - module collection { + module Collection { function test_fetch() { var collection = new EmployeeCollection; collection.fetch({ reset: true }); @@ -256,7 +291,7 @@ module v1Changes { } } - module router { + module Router { function test_navigate() { var router = new Backbone.Router; @@ -264,4 +299,4 @@ module v1Changes { router.navigate('/employees', true); } } -} \ No newline at end of file +} diff --git a/backbone/backbone.d.ts b/backbone/backbone.d.ts index d94e9172bf..6fa7e6d608 100644 --- a/backbone/backbone.d.ts +++ b/backbone/backbone.d.ts @@ -6,6 +6,7 @@ /// +/// declare module Backbone { @@ -67,7 +68,7 @@ declare module Backbone { } class Events { - on(eventName: any, callback?: Function, context?: any): any; + on(eventName: string, callback?: Function, context?: any): any; off(eventName?: string, callback?: Function, context?: any): any; trigger(eventName: string, ...args: any[]): any; bind(eventName: string, callback: Function, context?: any): any; @@ -86,17 +87,22 @@ declare module Backbone { sync(...arg: any[]): JQueryXHR; } - interface OptionalDefaults { - defaults?(): any; - } + class Model extends ModelBase { - class Model extends ModelBase implements OptionalDefaults { - - static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality + /** + * Do not use, prefer TypeScript's extend functionality. + **/ + private static extend(properties: any, classProperties?: any): any; attributes: any; changed: any[]; cid: string; + /** + * Default attributes for the model. It can be an object hash or a method returning an object hash. + * For assigning an object hash, do it like this: this.defaults = { attribute: value, ... }; + * That works only if you set it in the constructor or the initialize method. + **/ + defaults(): any; id: any; idAttribute: string; validationError: any; @@ -127,7 +133,7 @@ declare module Backbone { unset(attribute: string, options?: Silenceable): Model; validate(attributes: any, options?: any): any; - _validate(attrs: any, options: any): boolean; + private _validate(attrs: any, options: any): boolean; // mixins from underscore @@ -141,115 +147,125 @@ declare module Backbone { omit(...keys: string[]): any; } - class Collection extends ModelBase { + class Collection extends ModelBase { - static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality + /** + * Do not use, prefer TypeScript's extend functionality. + **/ + private static extend(properties: any, classProperties?: any): any; - model: any; - models: any; - collection: Model; + // TODO: this really has to be typeof TModel + //model: typeof TModel; + model: { new(): TModel; }; // workaround + models: TModel[]; + collection: TModel; length: number; - constructor(models?: any, options?: any); + constructor(models?: TModel[], options?: any); fetch(options?: CollectionFetchOptions): JQueryXHR; - comparator(element: Model): any; - comparator(compare: Model, to?: Model): any; + comparator(element: TModel): number; + comparator(compare: TModel, to?: TModel): number; - add(model: Model, options?: AddOptions): Collection; - add(model: any, options?: AddOptions): Collection; - add(models: Model[], options?: AddOptions): Collection; - add(models: any[], options?: AddOptions): Collection; - at(index: number): Model; - get(id: any): Model; - create(attributes: any, options?: ModelSaveOptions): Model; + add(model: TModel, options?: AddOptions): Collection; + add(models: TModel[], options?: AddOptions): Collection; + at(index: number): TModel; + get(id: string): TModel; + create(attributes: any, options?: ModelSaveOptions): TModel; pluck(attribute: string): any[]; - push(model: Model, options?: AddOptions): Model; - pop(options?: Silenceable): Model; - remove(model: Model, options?: Silenceable): Model; - remove(models: Model[], options?: Silenceable): Model[]; - reset(models?: Model[], options?: Silenceable): Model[]; - reset(models?: any[], options?: Silenceable): Model[]; - set(models?: any[], options?: Silenceable): Model[]; - shift(options?: Silenceable): Model; - sort(options?: Silenceable): Collection; - unshift(model: Model, options?: AddOptions): Model; - where(properies: any): Model[]; - findWhere(properties: any): Model; + push(model: TModel, options?: AddOptions): TModel; + pop(options?: Silenceable): TModel; + remove(model: TModel, options?: Silenceable): TModel; + remove(models: TModel[], options?: Silenceable): TModel[]; + reset(models?: TModel[], options?: Silenceable): TModel[]; + set(models?: TModel[], options?: Silenceable): TModel[]; + shift(options?: Silenceable): TModel; + sort(options?: Silenceable): Collection; + unshift(model: TModel, options?: AddOptions): TModel; + where(properies: any): TModel[]; + findWhere(properties: any): TModel; - _prepareModel(attrs?: any, options?: any): any; - _removeReference(model: Model): void; - _onModelEvent(event: string, model: Model, collection: Collection, options: any): void; + private _prepareModel(attrs?: any, options?: any): any; + private _removeReference(model: TModel): void; + private _onModelEvent(event: string, model: TModel, collection: Collection, options: any): void; // mixins from underscore - all(iterator: (element: Model, index: number) => boolean, context?: any): boolean; - any(iterator: (element: Model, index: number) => boolean, context?: any): boolean; - collect(iterator: (element: Model, index: number, context?: any) => any[], context?: any): any[]; + all(iterator: (element: TModel, index: number) => boolean, context?: any): boolean; + any(iterator: (element: TModel, index: number) => boolean, context?: any): boolean; + collect(iterator: (element: TModel, index: number, context?: any) => any[], context?: any): any[]; chain(): any; - compact(): Model[]; + compact(): TModel[]; contains(value: any): boolean; - countBy(iterator: (element: Model, index: number) => any): any[]; - countBy(attribute: string): any[]; + countBy(iterator: (element: TModel, index: number) => any): _.Dictionary; + countBy(attribute: string): _.Dictionary; detect(iterator: (item: any) => boolean, context?: any): any; // ??? - difference(...model: Model[]): Model[]; - drop(): Model; - drop(n: number): Model[]; - each(iterator: (element: Model, index: number, list?: any) => void , context?: any): any; - every(iterator: (element: Model, index: number) => boolean, context?: any): boolean; - filter(iterator: (element: Model, index: number) => boolean, context?: any): Model[]; - find(iterator: (element: Model, index: number) => boolean, context?: any): Model; - first(): Model; - first(n: number): Model[]; - flatten(shallow?: boolean): Model[]; - foldl(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any; - forEach(iterator: (element: Model, index: number, list?: any) => void , context?: any): any; + difference(...model: TModel[]): TModel[]; + drop(): TModel; + drop(n: number): TModel[]; + each(iterator: (element: TModel, index: number, list?: any) => void, context?: any): any; + every(iterator: (element: TModel, index: number) => boolean, context?: any): boolean; + filter(iterator: (element: TModel, index: number) => boolean, context?: any): TModel[]; + find(iterator: (element: TModel, index: number) => boolean, context?: any): TModel; + first(): TModel; + first(n: number): TModel[]; + flatten(shallow?: boolean): TModel[]; + foldl(iterator: (memo: any, element: TModel, index: number) => any, initialMemo: any, context?: any): any; + forEach(iterator: (element: TModel, index: number, list?: any) => void, context?: any): any; + groupBy(iterator: (element: TModel, index: number) => string, context?: any): _.Dictionary; + groupBy(attribute: string, context?: any): _.Dictionary; include(value: any): boolean; - indexOf(element: Model, isSorted?: boolean): number; - initial(): Model; - initial(n: number): Model[]; - inject(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any; - intersection(...model: Model[]): Model[]; + indexOf(element: TModel, isSorted?: boolean): number; + initial(): TModel; + initial(n: number): TModel[]; + inject(iterator: (memo: any, element: TModel, index: number) => any, initialMemo: any, context?: any): any; + intersection(...model: TModel[]): TModel[]; isEmpty(object: any): boolean; invoke(methodName: string, arguments?: any[]): any; - last(): Model; - last(n: number): Model[]; - lastIndexOf(element: Model, fromIndex?: number): number; - map(iterator: (element: Model, index: number, context?: any) => any[], context?: any): any[]; - max(iterator?: (element: Model, index: number) => any, context?: any): Model; - min(iterator?: (element: Model, index: number) => any, context?: any): Model; + last(): TModel; + last(n: number): TModel[]; + lastIndexOf(element: TModel, fromIndex?: number): number; + map(iterator: (element: TModel, index: number, context?: any) => any[], context?: any): any[]; + max(iterator?: (element: TModel, index: number) => any, context?: any): TModel; + min(iterator?: (element: TModel, index: number) => any, context?: any): TModel; object(...values: any[]): any[]; - reduce(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any; + reduce(iterator: (memo: any, element: TModel, index: number) => any, initialMemo: any, context?: any): any; select(iterator: any, context?: any): any[]; size(): number; shuffle(): any[]; - some(iterator: (element: Model, index: number) => boolean, context?: any): boolean; - sortBy(iterator: (element: Model, index: number) => number, context?: any): Model[]; - sortBy(attribute: string, context?: any): Model[]; - sortedIndex(element: Model, iterator?: (element: Model, index: number) => number): number; + some(iterator: (element: TModel, index: number) => boolean, context?: any): boolean; + sortBy(iterator: (element: TModel, index: number) => number, context?: any): TModel[]; + sortBy(attribute: string, context?: any): TModel[]; + sortedIndex(element: TModel, iterator?: (element: TModel, index: number) => number): number; range(stop: number, step?: number): any; range(start: number, stop: number, step?: number): any; - reduceRight(iterator: (memo: any, element: Model, index: number) => any, initialMemo: any, context?: any): any[]; - reject(iterator: (element: Model, index: number) => boolean, context?: any): Model[]; - rest(): Model; - rest(n: number): Model[]; - tail(): Model; - tail(n: number): Model[]; + reduceRight(iterator: (memo: any, element: TModel, index: number) => any, initialMemo: any, context?: any): any[]; + reject(iterator: (element: TModel, index: number) => boolean, context?: any): TModel[]; + rest(): TModel; + rest(n: number): TModel[]; + tail(): TModel; + tail(n: number): TModel[]; toArray(): any[]; - union(...model: Model[]): Model[]; - uniq(isSorted?: boolean, iterator?: (element: Model, index: number) => boolean): Model[]; - without(...values: any[]): Model[]; - zip(...model: Model[]): Model[]; + union(...model: TModel[]): TModel[]; + uniq(isSorted?: boolean, iterator?: (element: TModel, index: number) => boolean): TModel[]; + without(...values: any[]): TModel[]; + zip(...model: TModel[]): TModel[]; } - interface OptionalRoutes { - routes?(): any; - } + class Router extends Events { - class Router extends Events implements OptionalRoutes { + /** + * Do not use, prefer TypeScript's extend functionality. + **/ + private static extend(properties: any, classProperties?: any): any; - static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality + /** + * Routes hash or a method returning the routes hash that maps URLs with parameters to methods on your Router. + * For assigning routes as object hash, do it like this: this.routes = { "route": callback, ... }; + * That works only if you set it in the constructor or the initialize method. + **/ + routes(): any; constructor(options?: RouterOptions); initialize(options?: RouterOptions): void; @@ -257,9 +273,9 @@ declare module Backbone { navigate(fragment: string, options?: NavigateOptions): Router; navigate(fragment: string, trigger?: boolean): Router; - _bindRoutes(): void; - _routeToRegExp(route: string): RegExp; - _extractParameters(route: RegExp, fragment: string): string[]; + private _bindRoutes(): void; + private _routeToRegExp(route: string): RegExp; + private _extractParameters(route: RegExp, fragment: string): string[]; } var history: History; @@ -279,14 +295,14 @@ declare module Backbone { loadUrl(fragmentOverride: string): boolean; navigate(fragment: string, options?: any): boolean; started: boolean; - options: any; - - _updateHash(location: Location, fragment: string, replace: boolean): void; + options: any; + + private _updateHash(location: Location, fragment: string, replace: boolean): void; } - interface ViewOptions { - model?: Backbone.Model; - collection?: Backbone.Collection; + interface ViewOptions { + model?: TModel; + collection?: Backbone.Collection; el?: any; id?: string; className?: string; @@ -294,35 +310,41 @@ declare module Backbone { attributes?: any[]; } - interface OptionalEvents { - events?(): any; - } + class View extends Events { - class View extends Events implements OptionalEvents { + /** + * Do not use, prefer TypeScript's extend functionality. + **/ + private static extend(properties: any, classProperties?: any): any; - static extend(properties: any, classProperties?: any): any; // do not use, prefer TypeScript's extend functionality + constructor(options?: ViewOptions); - constructor(options?: ViewOptions); + /** + * Events hash or a method returning the events hash that maps events/selectors to methods on your View. + * For assigning events as object hash, do it like this: this.events = { "event:selector": callback, ... }; + * That works only if you set it in the constructor or the initialize method. + **/ + events(): any; $(selector: string): JQuery; - model: Model; - collection: Collection; - make(tagName: string, attrs?: any, opts?: any): View; - setElement(element: HTMLElement, delegate?: boolean): View; - setElement(element: JQuery, delegate?: boolean): View; + model: TModel; + collection: Collection; + //template: (json, options?) => string; + make(tagName: string, attrs?: any, opts?: any): View; + setElement(element: HTMLElement, delegate?: boolean): View; + setElement(element: JQuery, delegate?: boolean): View; id: string; cid: string; className: string; tagName: string; - options: any; el: any; $el: JQuery; - setElement(element: any): View; + setElement(element: any): View; attributes: any; $(selector: any): JQuery; - render(): View; - remove(): View; + render(): View; + remove(): View; make(tagName: any, attributes?: any, content?: any): any; delegateEvents(events?: any): any; undelegateEvents(): any; @@ -333,14 +355,12 @@ declare module Backbone { // SYNC function sync(method: string, model: Model, options?: JQueryAjaxSettings): any; function ajax(options?: JQueryAjaxSettings): JQueryXHR; - var emulateHTTP: boolean; + var emulateHTTP: boolean; var emulateJSONBackbone: boolean; // Utility function noConflict(): typeof Backbone; function setDomLibrary(jQueryNew: any): any; - - var $: JQueryStatic; } declare module "backbone" { diff --git a/backgrid/backgrid-tests.ts b/backgrid/backgrid-tests.ts index 0c681a1d34..a29a4ae7e6 100644 --- a/backgrid/backgrid-tests.ts +++ b/backgrid/backgrid-tests.ts @@ -23,7 +23,7 @@ class TestModel extends Backbone.Model { } -class TestCollection extends Backbone.Collection { +class TestCollection extends Backbone.Collection { constructor(models?: any, options?: any) { this.model = TestModel; @@ -41,11 +41,11 @@ class TestCollection extends Backbone.Collection { } } -class TestView extends Backbone.View { +class TestView extends Backbone.View { gridView: Backgrid.Grid; testCollection: TestCollection; - constructor(viewOptions?: Backbone.ViewOptions) { + constructor(viewOptions?: Backbone.ViewOptions) { this.testCollection = new TestCollection(); this.gridView = new Backgrid.Grid({ columns: [new Backgrid.Column({name: "FirstName", cell: "string", label: "First Name"}), diff --git a/backgrid/backgrid.d.ts b/backgrid/backgrid.d.ts index 73cb12450e..fcae05d800 100644 --- a/backgrid/backgrid.d.ts +++ b/backgrid/backgrid.d.ts @@ -9,20 +9,20 @@ declare module Backgrid { interface GridOptions { columns: Column[]; - collection: Backbone.Collection; + collection: Backbone.Collection; header: Header; body: Body; row: Row; footer: Footer; } - class Header extends Backbone.View { + class Header extends Backbone.View { } - class Footer extends Backbone.View { + class Footer extends Backbone.View { } - class Row extends Backbone.View { + class Row extends Backbone.View { } class Command { @@ -50,19 +50,19 @@ declare module Backgrid { initialize(options?: any); } - class Body extends Backbone.View { + class Body extends Backbone.View { tagName: string; initialize(options?: any); - insertRow(model: Backbone.Model, collection: Backbone.Collection, options: any); + insertRow(model: Backbone.Model, collection: Backbone.Collection, options: any); moveToNextCell(model: Backbone.Model, cell: Column, command: Command); refresh(): Body; remove(): Body; - removeRow(model: Backbone.Model, collection: Backbone.Collection, options: any); + removeRow(model: Backbone.Model, collection: Backbone.Collection, options: any); render(): Body; } - class Grid extends Backbone.View { + class Grid extends Backbone.View { body: Backgrid.Body; className: string; footer: any; @@ -72,10 +72,10 @@ declare module Backgrid { initialize(options: any); getSelectedModels(): Backbone.Model[]; insertColumn(...options: any[]): Grid; - insertRow(model: Backbone.Model, collection: Backbone.Collection, options: any); + insertRow(model: Backbone.Model, collection: Backbone.Collection, options: any); remove():Grid; removeColumn(...options: any[]): Grid; - removeRow(model: Backbone.Model, collection: Backbone.Collection, options: any); + removeRow(model: Backbone.Model, collection: Backbone.Collection, options: any); render():Grid; } diff --git a/giraffe/giraffe-tests.ts b/giraffe/giraffe-tests.ts index 70365bb59b..4cd6694da2 100644 --- a/giraffe/giraffe-tests.ts +++ b/giraffe/giraffe-tests.ts @@ -3,13 +3,13 @@ class User extends Giraffe.Model { } -class MainView extends Giraffe.View { +class MainView extends Giraffe.View { constructor(options?) { this.appEvents = { 'startup': 'app_onStartup' - } - super(options) + } + super(options); } app_onStartup() { @@ -23,15 +23,15 @@ class MyApp extends Giraffe.App { this.routes= { '': 'home' } - super() + super(); } home() { - this.attach( new MainView ) + this.attach(new MainView); } } var app= new MyApp(); -app.start(); \ No newline at end of file +app.start(); diff --git a/giraffe/giraffe.d.ts b/giraffe/giraffe.d.ts index 24c41aa243..9987548980 100644 --- a/giraffe/giraffe.d.ts +++ b/giraffe/giraffe.d.ts @@ -38,8 +38,8 @@ declare module Giraffe { interface AppMap { [ cid:string ]: App; } - interface ViewMap { - [ cid:string ]: View; + interface ViewMap { + [ cid:string ]: View; } interface StringMap { [ def:string ]: string; @@ -49,7 +49,7 @@ declare module Giraffe { var apps: AppMap; var defaultOptions: DefaultOptions; var version: string; - var views: ViewMap; + var views: ViewMap; function bindAppEvents( instance:GiraffeObject ): GiraffeObject; function bindDataEvents( instance:GiraffeObject ): GiraffeObject; @@ -64,9 +64,10 @@ declare module Giraffe { function wrapFn( obj:any, name:string, before:Function, after:Function); - class Collection extends Backbone.Collection implements GiraffeObject { + class Collection extends Backbone.Collection implements GiraffeObject { app: App; - model: Model; + //model: typeof TModel; + model: { new (): TModel; }; // workaround } class Model extends Backbone.Model implements GiraffeObject { @@ -85,46 +86,46 @@ declare module Giraffe { reload( url:string ); } - class View extends Backbone.View implements GiraffeObject { + class View extends Backbone.View implements GiraffeObject { app: App; appEvents: StringMap; - children: View[]; + children: View[]; dataEvents: StringMap; defaultOptions: DefaultOptions; documentTitle: string; - parent: View; + parent: View; template: any; ui: StringMap; - attachTo( el:any, options?:AttachmentOptions ): View; - attach( view:View, options?:AttachmentOptions ): View; + attachTo( el:any, options?:AttachmentOptions ): View; + attach( view:View, options?:AttachmentOptions ): View; isAttached( el:any ): boolean; - render( options?:any ): View; + render( options?:any ): View; beforeRender(); afterRender(); templateStrategy(): string; serialize(): any; - setParent( parent:View ): View; + setParent( parent:View ): View; - addChild( child:View ): View; - addChildren( children:View[] ): View; - removeChild( child:View, preserve?:boolean ): View; - removeChildren( preserve?:boolean ): View; + addChild( child:View ): View; + addChildren( children:View[] ): View; + removeChild( child:View, preserve?:boolean ): View; + removeChildren( preserve?:boolean ): View; - detach( preserve?:boolean ): View; - detachChildren( preserve?:boolean ): View; + detach( preserve?:boolean ): View; + detachChildren( preserve?:boolean ): View; invoke( method:string, ...args:any[] ); - dispose(): View; - beforeDispose(): View; - afterDispose(): View; + dispose(): View; + beforeDispose(): View; + afterDispose(): View; - static detachByElement( el:any, preserve?:boolean ): View; - static getClosestView( el:any ): View; - static getByCid( cid:string ): View; + static detachByElement( el:any, preserve?:boolean ): View; + static getClosestView( el:any ): View; + static getByCid( cid:string ): View; static to$El( el:any, parent?:any, allowParentMatch?:boolean ): JQuery; static setDocumentEvents( events:string[], prefix?:string ): string[]; static removeDocumentEvents( prefix?:string ); @@ -132,7 +133,7 @@ declare module Giraffe { static setTemplateStrategy( strategy:any, instance?:any ); } - class App extends View { + class App extends View { routes: StringMap; addInitializer( initializer:( options?:any, callback?:()=>void )=>void ): App; @@ -146,23 +147,23 @@ declare module Giraffe { app: App; } - class CollectionView extends View { + class CollectionView extends View { - collection: Collection; - modelView: View; + collection: Collection; + modelView: View; modelViewArgs: any[]; modelViewEl: any; renderOnChange: boolean; - findByModel( model:Model ): View; - addOne( model:Model ): View; - removeOne( model:Model ): View; + findByModel( model:Model ): View; + addOne( model:Model ): View; + removeOne( model:Model ): View; static getDefaults( ctx:any ): any; } - class FastCollectionView extends View { - collection: Collection; + class FastCollectionView extends View { + collection: Collection; modelTemplate: any; modelTemplateStrategy: string; modelEl: any; @@ -170,11 +171,11 @@ declare module Giraffe { modelSerialize(): any; - addAll(): View; - addOne( model:Model ): View; - removeOne( model:Model ): View; + addAll(): View; + addOne( model:Model ): View; + removeOne( model:Model ): View; - removeByIndex( index:number ): View; + removeByIndex( index:number ): View; findElByModel( model:Model ): JQuery; findElByIndex( index:number ): JQuery; findModelByEl( el:any ): Model; diff --git a/jointjs/jointjs.d.ts b/jointjs/jointjs.d.ts index f4e0926ea7..c2ff9c1c75 100644 --- a/jointjs/jointjs.d.ts +++ b/jointjs/jointjs.d.ts @@ -38,20 +38,19 @@ declare module joint { attr(attrs: any): Cell; } - - class Element extends Cell { position(x: number, y: number): Element; translate(tx: number, ty?: number): Element; resize(width: number, height: number): Element; rotate(angle: number, absolute): Element; } + interface IDefaults { type: string; } class Link extends Cell { - defaults: IDefaults; + defaults(): IDefaults; disconnect(): Link; label(idx?: number, value?: any): any; // @todo: returns either a label under idx or Link if both idx and value were passed } @@ -65,7 +64,7 @@ declare module joint { linkView: LinkView; } - class Paper extends Backbone.View { + class Paper extends Backbone.View { options: IOptions; setDimensions(width: number, height: number); scale(sx: number, sy?: number, ox?: number, oy?: number): Paper; @@ -80,7 +79,8 @@ declare module joint { class ElementView extends CellView { scale(sx: number, sy: number); } - class CellView extends Backbone.View { + + class CellView extends Backbone.View { getBBox(): { x: number; y: number; width: number; height: number; }; highlight(el?: any); unhighlight(el?: any); @@ -94,7 +94,9 @@ declare module joint { } } + module ui { } + module shapes { module basic { class Generic extends joint.dia.Element { } @@ -104,6 +106,7 @@ declare module joint { class Image extends Generic { } } } + module util { function uuid(): string; function guid(obj: any): string; @@ -112,4 +115,5 @@ declare module joint { function deepMixin(objects: any[]): any; function deepSupplement(objects: any[], defaultIndicator?: any): any; } + } diff --git a/knockback/knockback.d.ts b/knockback/knockback.d.ts index 50848e6841..71773ab92b 100644 --- a/knockback/knockback.d.ts +++ b/knockback/knockback.d.ts @@ -126,8 +126,8 @@ declare module Knockback { } interface CollectionObservable extends KnockoutObservableArray { - collection(colleciton: Backbone.Collection); - collection(): Backbone.Collection; + collection(colleciton: Backbone.Collection); + collection(): Backbone.Collection; destroy(); shareOptions(): CollectionOptions; filters(id: any) : Backbone.Model; @@ -163,7 +163,7 @@ declare module Knockback { } interface Static extends Utils { - collectionObservable(model?: Backbone.Collection, options?: CollectionOptions): CollectionObservable; + collectionObservable(model?: Backbone.Collection, options?: CollectionOptions): CollectionObservable; /** Base class for observing model attributes. */ observable( /** the model to observe (can be null) */ diff --git a/marionette/marionette.d.ts b/marionette/marionette.d.ts index 0e501f6f8a..7a52d7453c 100644 --- a/marionette/marionette.d.ts +++ b/marionette/marionette.d.ts @@ -11,49 +11,49 @@ declare module Backbone { // Backbone.BabySitter - class ChildViewContainer { + class ChildViewContainer { constructor(initialViews?: any[]); - add(view: View, customIndex?: number); - findByModel(model): View; - findByModelCid(modelCid): View; - findByCustom(index: number): View; - findByIndex(index: number): View; - findByCid(cid): View; - remove(view: View); + add(view: View, customIndex?: number); + findByModel(model): View; + findByModelCid(modelCid): View; + findByCustom(index: number): View; + findByIndex(index: number): View; + findByCid(cid): View; + remove(view: View); call(method); apply(method: any, args?: any[]); //mixins from Collection (copied from Backbone's Collection declaration) - all(iterator: (element: View, index: number) => boolean, context?: any): boolean; - any(iterator: (element: View, index: number) => boolean, context?: any): boolean; + all(iterator: (element: View, index: number) => boolean, context?: any): boolean; + any(iterator: (element: View, index: number) => boolean, context?: any): boolean; contains(value: any): boolean; detect(iterator: (item: any) => boolean, context?: any): any; - each(iterator: (element: View, index: number, list?: any) => void , context?: any); - every(iterator: (element: View, index: number) => boolean, context?: any): boolean; - filter(iterator: (element: View, index: number) => boolean, context?: any): View[]; - find(iterator: (element: View, index: number) => boolean, context?: any): View; - first(): View; - forEach(iterator: (element: View, index: number, list?: any) => void , context?: any); + each(iterator: (element: View, index: number, list?: any) => void , context?: any); + every(iterator: (element: View, index: number) => boolean, context?: any): boolean; + filter(iterator: (element: View, index: number) => boolean, context?: any): View[]; + find(iterator: (element: View, index: number) => boolean, context?: any): View; + first(): View; + forEach(iterator: (element: View, index: number, list?: any) => void , context?: any); include(value: any): boolean; - initial(): View; - initial(n: number): View[]; + initial(): View; + initial(n: number): View[]; invoke(methodName: string, arguments?: any[]); isEmpty(object: any): boolean; - last(): View; - last(n: number): View[]; - lastIndexOf(element: View, fromIndex?: number): number; - map(iterator: (element: View, index: number, context?: any) => any[], context?: any): any[]; + last(): View; + last(n: number): View[]; + lastIndexOf(element: View, fromIndex?: number): number; + map(iterator: (element: View, index: number, context?: any) => any[], context?: any): any[]; pluck(attribute: string): any[]; - reject(iterator: (element: View, index: number) => boolean, context?: any): View[]; - rest(): View; - rest(n: number): View[]; + reject(iterator: (element: View, index: number) => boolean, context?: any): View[]; + rest(): View; + rest(n: number): View[]; select(iterator: any, context?: any): any[]; - some(iterator: (element: View, index: number) => boolean, context?: any): boolean; + some(iterator: (element: View, index: number) => boolean, context?: any): boolean; toArray(): any[]; - without(...values: any[]): View[]; + without(...values: any[]): View[]; } // Backbone.Wreqr @@ -107,7 +107,7 @@ declare module Marionette { function getOption(target, optionName): any; function triggerMethod(name, ...args: any[]): any; - function MonitorDOMRefresh(view: Backbone.View): void; + function MonitorDOMRefresh(view: Backbone.View): void; function bindEntityEvents(target, entity, bindings); function unbindEntityEvents(target, entity, bindings); @@ -121,24 +121,24 @@ declare module Marionette { close(); } - class Region extends Backbone.Events { + class Region extends Backbone.Events { - static buildRegion(regionConfig, defaultRegionType): Region; + static buildRegion(regionConfig, defaultRegionType): Region; el: any; - show(view: Backbone.View): void; + show(view: Backbone.View): void; ensureEl(): void; - open(view: Backbone.View): void; + open(view: Backbone.View): void; close(): void; - attachView(view: Backbone.View); + attachView(view: Backbone.View); reset(); } - class RegionManager extends Controller { + class RegionManager extends Controller { addRegions(regionDefinitions, defaults?): any; - addRegion(name, definition): Region; - get (name: string): Region; + addRegion(name, definition): Region; + get(name: string): Region; removeRegion(name): void; removeRegions(): void; closeRegions(): void; @@ -146,33 +146,33 @@ declare module Marionette { //mixins from Collection (copied from Backbone's Collection declaration) - all(iterator: (element: Region, index: number) => boolean, context?: any): boolean; - any(iterator: (element: Region, index: number) => boolean, context?: any): boolean; + all(iterator: (element: Region, index: number) => boolean, context?: any): boolean; + any(iterator: (element: Region, index: number) => boolean, context?: any): boolean; contains(value: any): boolean; detect(iterator: (item: any) => boolean, context?: any): any; - each(iterator: (element: Region, index: number, list?: any) => void , context?: any); - every(iterator: (element: Region, index: number) => boolean, context?: any): boolean; - filter(iterator: (element: Region, index: number) => boolean, context?: any): Region[]; - find(iterator: (element: Region, index: number) => boolean, context?: any): Region; - first(): Region; - forEach(iterator: (element: Region, index: number, list?: any) => void , context?: any); + each(iterator: (element: Region, index: number, list?: any) => void , context?: any); + every(iterator: (element: Region, index: number) => boolean, context?: any): boolean; + filter(iterator: (element: Region, index: number) => boolean, context?: any): Region[]; + find(iterator: (element: Region, index: number) => boolean, context?: any): Region; + first(): Region; + forEach(iterator: (element: Region, index: number, list?: any) => void , context?: any); include(value: any): boolean; - initial(): Region; - initial(n: number): Region[]; + initial(): Region; + initial(n: number): Region[]; invoke(methodName: string, arguments?: any[]); isEmpty(object: any): boolean; - last(): Region; - last(n: number): Region[]; - lastIndexOf(element: Region, fromIndex?: number): number; - map(iterator: (element: Region, index: number, context?: any) => any[], context?: any): any[]; + last(): Region; + last(n: number): Region[]; + lastIndexOf(element: Region, fromIndex?: number): number; + map(iterator: (element: Region, index: number, context?: any) => any[], context?: any): any[]; pluck(attribute: string): any[]; - reject(iterator: (element: Region, index: number) => boolean, context?: any): Region[]; - rest(): Region; - rest(n: number): Region[]; + reject(iterator: (element: Region, index: number) => boolean, context?: any): Region[]; + rest(): Region; + rest(n: number): Region[]; select(iterator: any, context?: any): any[]; - some(iterator: (element: Region, index: number) => boolean, context?: any): boolean; + some(iterator: (element: Region, index: number) => boolean, context?: any): boolean; toArray(): any[]; - without(...values: any[]): Region[]; + without(...values: any[]): Region[]; } class TemplateCache { @@ -187,7 +187,7 @@ declare module Marionette { static render(template, data): void; } - class View extends Backbone.View { + class View extends Backbone.View { constructor(options?: any); @@ -208,72 +208,72 @@ declare module Marionette { triggerMethod(name, ...args: any[]): any; } - class ItemView extends View { + class ItemView extends View { constructor(options?: any); ui: any; serializeData(): any; - render(): ItemView; + render(): ItemView; close(); } - class CollectionView extends View { + class CollectionView extends View { constructor(options?: any); itemView: any; children: any; //_initialEvents(); - addChildView(item: View, collection: View, options?: any); + addChildView(item: View, collection: View, options?: any); onShowCalled(); triggerBeforeRender(); triggerRendered(); - render(): CollectionView; + render(): CollectionView; - getItemView(item: any): ItemView; - addItemView(item: any, ItemView: ItemView, index: Number); - addChildViewEventForwarding(view: View); - renderItemView(view: View, index: Number); + getItemView(item: any): ItemView; + addItemView(item: any, ItemView: ItemView, index: Number); + addChildViewEventForwarding(view: View); + renderItemView(view: View, index: Number); buildItemView(item: any, ItemViewType: any, itemViewOptions: any): any; removeItemView(item: any); - removeChildView(view: View); + removeChildView(view: View); checkEmpty(); - appendHtml(collectionView: View, itemView: View, index: Number); + appendHtml(collectionView: View, itemView: View, index: Number); close(); closeChildren(); } - class CompositeView extends CollectionView { + class CompositeView extends CollectionView { constructor(options?: any); itemView: any; itemViewContainer: string; - render(): CompositeView; + render(): CompositeView; appendHtml(cv: any, iv: any); renderModel(): any; } - class Layout extends ItemView { + class Layout extends ItemView { constructor(options?: any); - addRegion(name: string, definition: any): Region; + addRegion(name: string, definition: any): Region; addRegions(regions: any): any; - render(): Layout; + render(): Layout; removeRegion(name: string); } interface AppRouterOptions extends Backbone.RouterOptions { - appRoutes: any; - controller: any; + appRoutes: any; + controller: any; } class AppRouter extends Backbone.Router { @@ -284,7 +284,7 @@ declare module Marionette { } - class Application extends Backbone.Events { + class Application extends Backbone.Events { vent: Backbone.Wreqr.EventAggregator; commands: Backbone.Wreqr.Commands; @@ -297,15 +297,15 @@ declare module Marionette { start(options?); addRegions(regions); closeRegions(): void; - removeRegion(region: Region); - getRegion(regionName: string): Region; + removeRegion(region: Region); + getRegion(regionName: string): Region; module(moduleNames, moduleDefinition); } // modules mapped for convenience, but you should probably use TypeScript modules instead - class Module extends Backbone.Events { + class Module extends Backbone.Events { - constructor(moduleName: string, app: Application); + constructor(moduleName: string, app: Application); submodules: any; triggerMethod(name, ...args: any[]): any; @@ -319,7 +319,7 @@ declare module Marionette { } declare module 'backbone.marionette' { - import Backbone = require('backbone'); - - export = Marionette; + import Backbone = require('backbone'); + + export = Marionette; } From 4d233b71518a91c4e65bf03dbe4a8d8709412040 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Fri, 25 Apr 2014 09:57:57 +0100 Subject: [PATCH 028/132] jQueryUI: Tidy up and up to gotoCurrent --- jqueryui/jqueryui-tests.ts | 27 ++++++++++++ jqueryui/jqueryui.d.ts | 88 +++++++++++++++++++++++++++++--------- 2 files changed, 95 insertions(+), 20 deletions(-) diff --git a/jqueryui/jqueryui-tests.ts b/jqueryui/jqueryui-tests.ts index b83006c3a8..79263027fe 100644 --- a/jqueryui/jqueryui-tests.ts +++ b/jqueryui/jqueryui-tests.ts @@ -1362,6 +1362,33 @@ function test_datepicker() { $set = $(".selector").datepicker("option", "defaultDate", new Date()); $set = $(".selector").datepicker("option", "defaultDate", "+1m +7d"); } + + function duration() { + $(".selector").datepicker({ duration: "slow" }); + + var duration: string = $(".selector").datepicker("option", "duration"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "duration", "slow"); + } + + function firstDay() { + $(".selector").datepicker({ firstDay: 1 }); + + var firstDay: number = $(".selector").datepicker("option", "firstDay"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "firstDay", 1); + } + + function gotoCurrent() { + $(".selector").datepicker({ gotoCurrent: true }); + + var gotoCurrent: boolean = $(".selector").datepicker("option", "gotoCurrent"); + + // setter + var $set: JQuery = $(".selector").datepicker("option", "gotoCurrent", true); + } } diff --git a/jqueryui/jqueryui.d.ts b/jqueryui/jqueryui.d.ts index 5019a99504..26492bf200 100644 --- a/jqueryui/jqueryui.d.ts +++ b/jqueryui/jqueryui.d.ts @@ -1278,14 +1278,14 @@ interface JQuery { * Get the calculateWeek option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'calculateWeek' */ datepicker(methodName: 'option', optionName: 'calculateWeek'): (date: Date) => string; /** * Set the calculateWeek option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'calculateWeek' * @param calculateWeekValue A function to calculate the week of the year for a given date. The default implementation uses the ISO 8601 definition: weeks start on a Monday; the first week of the year contains the first Thursday of the year. */ datepicker(methodName: 'option', optionName: 'calculateWeek', calculateWeekValue: (date: Date) => string): JQuery; @@ -1294,14 +1294,14 @@ interface JQuery { * Get the changeMonth option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'changeMonth' */ datepicker(methodName: 'option', optionName: 'changeMonth'): boolean; /** * Set the changeMonth option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'changeMonth' * @param changeMonthValue Whether the month should be rendered as a dropdown instead of text. */ datepicker(methodName: 'option', optionName: 'changeMonth', changeMonthValue: boolean): JQuery; @@ -1310,14 +1310,14 @@ interface JQuery { * Get the changeYear option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'changeYear' */ datepicker(methodName: 'option', optionName: 'changeYear'): boolean; /** * Set the changeYear option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'changeYear' * @param changeYearValue Whether the year should be rendered as a dropdown instead of text. Use the yearRange option to control which years are made available for selection. */ datepicker(methodName: 'option', optionName: 'changeYear', changeYearValue: boolean): JQuery; @@ -1326,14 +1326,14 @@ interface JQuery { * Get the closeText option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'closeText' */ datepicker(methodName: 'option', optionName: 'closeText'): string; /** * Set the closeText option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'closeText' * @param closeTextValue The text to display for the close link. Use the showButtonPanel option to display this button. */ datepicker(methodName: 'option', optionName: 'closeText', closeTextValue: string): JQuery; @@ -1342,14 +1342,14 @@ interface JQuery { * Get the constrainInput option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'constrainInput' */ datepicker(methodName: 'option', optionName: 'constrainInput'): boolean; /** * Set the constrainInput option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'constrainInput' * @param constrainInputValue When true, entry in the input field is constrained to those characters allowed by the current dateFormat option. */ datepicker(methodName: 'option', optionName: 'constrainInput', constrainInputValue: boolean): JQuery; @@ -1358,14 +1358,14 @@ interface JQuery { * Get the currentText option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'currentText' */ datepicker(methodName: 'option', optionName: 'currentText'): string; /** * Set the currentText option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'currentText' * @param currentTextValue The text to display for the current day link. Use the showButtonPanel option to display this button. */ datepicker(methodName: 'option', optionName: 'currentText', currentTextValue: string): JQuery; @@ -1374,14 +1374,14 @@ interface JQuery { * Get the dateFormat option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dateFormat' */ datepicker(methodName: 'option', optionName: 'dateFormat'): string; /** * Set the dateFormat option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dateFormat' * @param dateFormatValue The format for parsed and displayed dates. For a full list of the possible formats see the formatDate function. */ datepicker(methodName: 'option', optionName: 'dateFormat', dateFormatValue: string): JQuery; @@ -1390,14 +1390,14 @@ interface JQuery { * Get the dayNames option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dayNames' */ datepicker(methodName: 'option', optionName: 'dayNames'): string[]; /** * Set the dayNames option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dayNames' * @param dayNamesValue The list of long day names, starting from Sunday, for use as requested via the dateFormat option. */ datepicker(methodName: 'option', optionName: 'dayNames', dayNamesValue: string[]): JQuery; @@ -1406,14 +1406,14 @@ interface JQuery { * Get the dayNamesMin option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dayNamesMin' */ datepicker(methodName: 'option', optionName: 'dayNamesMin'): string[]; /** * Set the dayNamesMin option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dayNamesMin' * @param dayNamesMinValue The list of minimised day names, starting from Sunday, for use as column headers within the datepicker. */ datepicker(methodName: 'option', optionName: 'dayNamesMin', dayNamesMinValue: string[]): JQuery; @@ -1422,14 +1422,14 @@ interface JQuery { * Get the dayNamesShort option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dayNamesShort' */ datepicker(methodName: 'option', optionName: 'dayNamesShort'): string[]; /** * Set the dayNamesShort option, after initialization * * @param methodName 'option' - * @param optionName 'buttonText' + * @param optionName 'dayNamesShort' * @param dayNamesShortValue The list of abbreviated day names, starting from Sunday, for use as requested via the dateFormat option. */ datepicker(methodName: 'option', optionName: 'dayNamesShort', dayNamesShortValue: string[]): JQuery; @@ -1466,6 +1466,54 @@ interface JQuery { */ datepicker(methodName: 'option', optionName: 'defaultDate', defaultDateValue: string): JQuery; + /** + * Get the duration option, after initialization + * + * @param methodName 'option' + * @param optionName 'duration' + */ + datepicker(methodName: 'option', optionName: 'duration'): string; + /** + * Set the duration option, after initialization + * + * @param methodName 'option' + * @param optionName 'duration' + * @param durationValue Control the speed at which the datepicker appears, it may be a time in milliseconds or a string representing one of the three predefined speeds ("slow", "normal", "fast"). + */ + datepicker(methodName: 'option', optionName: 'duration', durationValue: string): JQuery; + + /** + * Get the firstDay option, after initialization + * + * @param methodName 'option' + * @param optionName 'firstDay' + */ + datepicker(methodName: 'option', optionName: 'firstDay'): number; + /** + * Set the firstDay option, after initialization + * + * @param methodName 'option' + * @param optionName 'firstDay' + * @param firstDayValue Set the first day of the week: Sunday is 0, Monday is 1, etc. + */ + datepicker(methodName: 'option', optionName: 'firstDay', firstDayValue: number): JQuery; + + /** + * Get the gotoCurrent option, after initialization + * + * @param methodName 'option' + * @param optionName 'gotoCurrent' + */ + datepicker(methodName: 'option', optionName: 'gotoCurrent'): boolean; + /** + * Set the gotoCurrent option, after initialization + * + * @param methodName 'option' + * @param optionName 'gotoCurrent' + * @param gotoCurrentValue When true, the current day link moves to the currently selected date instead of today. + */ + datepicker(methodName: 'option', optionName: 'gotoCurrent', gotoCurrentValue: boolean): JQuery; + /** * Gets the value currently associated with the specified optionName. * From bb05b91c9ca3e806ecb0471166a2edcc3b2ec5a1 Mon Sep 17 00:00:00 2001 From: JeremyCBrooks Date: Sun, 13 Apr 2014 11:24:48 -0400 Subject: [PATCH 029/132] added definition for jquery total-storage fixed failing test updated CONTRIBUTORS --- CONTRIBUTORS.md | 1 + .../jquery.total-storage-tests.ts | 21 ++++++ .../jquery.total-storage.d.ts | 64 +++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 jquery.total-storage/jquery.total-storage-tests.ts create mode 100644 jquery.total-storage/jquery.total-storage.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d68e3061cc..dd09cf2830 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -151,6 +151,7 @@ All definitions files include a header with the author and editors, so at some p * [jQuery.TinyCarousel](http://baijs.nl/tinycarousel/) (by [Christiaan Rakowski](https://github.com/csrakowski)) * [jQuery.TinyScrollbar](http://baijs.nl/tinyscrollbar/) (by [Christiaan Rakowski](https://github.com/csrakowski)) * [jQuery.tooltipster](https://github.com/iamceege/tooltipster) (by [Patrick Magee](https://github.com/pjmagee)) +* [jQuery.total-storage](https://github.com/Upstatement/jquery-total-storage) (by [Jeremy Brooks](https://github.com/JeremyCBrooks/)) * [jQuery.Transit](http://ricostacruz.com/jquery.transit/) (by [MrBigDog2U](https://github.com/MrBigDog2U)) * [jQuery.Validation](http://bassistance.de/jquery-plugins/jquery-plugin-validation/) (by [Boris Yankov](https://github.com/borisyankov)) * [jQuery.Watermark](http://jquery-watermark.googlecode.com) (by [Anwar Javed](https://github.com/anwarjaved)) diff --git a/jquery.total-storage/jquery.total-storage-tests.ts b/jquery.total-storage/jquery.total-storage-tests.ts new file mode 100644 index 0000000000..0ba3700eee --- /dev/null +++ b/jquery.total-storage/jquery.total-storage-tests.ts @@ -0,0 +1,21 @@ +// Type definitions for jQueryTotalStorage 1.1.2 +// Project: https://github.com/Upstatement/jquery-total-storage +// Definitions by: Jeremy Brooks +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +//direct call +$.totalStorage("test_key1", "test_value"); +var val1:string = $.totalStorage("test_key"); + +//set/get +$.totalStorage.setItem("test_key2", 123); +var val2:number = $.totalStorage.getItem("test_key2"); + +//get all items +var list = $.totalStorage.getAll(); + +//delete item +var deleted = $.totalStorage.deleteItem("test_key1"); \ No newline at end of file diff --git a/jquery.total-storage/jquery.total-storage.d.ts b/jquery.total-storage/jquery.total-storage.d.ts new file mode 100644 index 0000000000..8bfed0a4d3 --- /dev/null +++ b/jquery.total-storage/jquery.total-storage.d.ts @@ -0,0 +1,64 @@ +// Type definitions for jQueryTotalStorage 1.1.2 +// Project: https://github.com/Upstatement/jquery-total-storage +// Definitions by: Jeremy Brooks +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +/** +* @desc Set the value of a key to a string +* @example $.totalStorage('the_key', 'the_value'); +* @desc Set the value of a key to a number +* @example $.totalStorage('the_key', 800.2); +* @desc Set the value of a key to a complex Array +* @example var myArray = new Array(); +* myArray.push({name:'Jared', company:'Upstatement', zip:63124}); +* myArray.push({name:'McGruff', company:'Police', zip:60652}; +* $.totalStorage('people', myArray); +* //to return: +* $.totalStorage('people'); +* +*/ + +interface JQueryTotalStorage { + + /** + * @desc Set or get a key's value + * @param key Key to set. + * @param value Value to set for key. If ommited, current value for key is returned. + * @param options Not implemented. + */ + (key: string, value?: any, options?: JQueryTotalStorageOptions): any; + + /** + * @desc Set a key's value + * @param key Key to set. + * @param value Value to set for key. + */ + setItem(key: string, value: any): any; + + /** + * @desc Get a key's value + * @param key Key to get. + */ + getItem(key: string): any; + + /** + * @desc Get all set values + */ + getAll(): any[]; + + /** + * @desc Delete item by key + * @param key Key of item to delete + */ + deleteItem(key: string): boolean; +} + +interface JQueryTotalStorageOptions { + //not implemented... +} + +interface JQueryStatic { + totalStorage: JQueryTotalStorage; +} \ No newline at end of file From 4fa6f7c29bec19e0d6420d91e2131d17c2a4570e Mon Sep 17 00:00:00 2001 From: Basarat Ali Syed Date: Sat, 26 Apr 2014 08:59:37 +1000 Subject: [PATCH 030/132] gruntjs: added node.js support --- gruntjs/gruntjs.d.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gruntjs/gruntjs.d.ts b/gruntjs/gruntjs.d.ts index f646bcbf21..fb971a0997 100644 --- a/gruntjs/gruntjs.d.ts +++ b/gruntjs/gruntjs.d.ts @@ -1293,3 +1293,8 @@ interface IGrunt extends grunt.IConfigComponents, grunt.fail.FailModule, grunt.I */ version: string } + +// NodeJS Support +declare module 'grunt' { + export = IGrunt; +} From 87e0cf355331f726ee0169aabdaaef8754d3d83f Mon Sep 17 00:00:00 2001 From: Basarat Ali Syed Date: Sat, 26 Apr 2014 09:07:07 +1000 Subject: [PATCH 031/132] Update gruntjs.d.ts --- gruntjs/gruntjs.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gruntjs/gruntjs.d.ts b/gruntjs/gruntjs.d.ts index fb971a0997..2bf0d91b47 100644 --- a/gruntjs/gruntjs.d.ts +++ b/gruntjs/gruntjs.d.ts @@ -1296,5 +1296,6 @@ interface IGrunt extends grunt.IConfigComponents, grunt.fail.FailModule, grunt.I // NodeJS Support declare module 'grunt' { - export = IGrunt; + var grunt: IGrunt; + export = grunt; } From 2b05c7787265ed95c79d6d8400bcc46d141e82af Mon Sep 17 00:00:00 2001 From: Basarat Ali Syed Date: Sat, 26 Apr 2014 09:08:53 +1000 Subject: [PATCH 032/132] fix underscore string module declaration --- underscore.string/underscore.string.d.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/underscore.string/underscore.string.d.ts b/underscore.string/underscore.string.d.ts index db9ec042d4..9c828fdf7b 100644 --- a/underscore.string/underscore.string.d.ts +++ b/underscore.string/underscore.string.d.ts @@ -562,7 +562,8 @@ interface UnderscoreStringStaticExports { toBoolean(str: string, trueValues?: any[], falseValues?: any[]): boolean; } -declare module "underscore.string" { -export = UnderscoreStringStatic; +declare module 'underscore.string' { + var underscoreString: UnderscoreStringStatic; + export = underscoreString; } // TODO interface UnderscoreString extends Underscore From 3963c4498b7208e0591af6a7873e1aab0afee488 Mon Sep 17 00:00:00 2001 From: MIZUNE Pine Date: Sat, 26 Apr 2014 10:37:50 +0900 Subject: [PATCH 033/132] Add url --- CONTRIBUTORS.md | 1 + js-url/js-url-test.ts | 9 +++++++++ js-url/js-url.d.ts | 14 ++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 js-url/js-url-test.ts create mode 100644 js-url/js-url.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d68e3061cc..7806a004a8 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -156,6 +156,7 @@ All definitions files include a header with the author and editors, so at some p * [jQuery.Watermark](http://jquery-watermark.googlecode.com) (by [Anwar Javed](https://github.com/anwarjaved)) * [jQuery.base64](https://github.com/yatt/jquery.base64) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki)) * [js-git](https://github.com/creationix/js-git) (by [Bart van der Schoor](https://github.com/Bartvds)) +* [js-url](https://github.com/websanova/js-url) (by [MIZUNE Pine](https://github.com/pine613)) * [js-yaml](https://github.com/nodeca/js-yaml) (by [Bart van der Schoor](https://github.com/Bartvds/)) * [jScrollPane](http://jscrollpane.kelvinluck.com) (by [Dániel Tar](https://github.com/qcz)) * [JSDeferred](http://cho45.stfuawsc.com/jsdeferred/) (by [Daisuke Mino](https://github.com/minodisk)) diff --git a/js-url/js-url-test.ts b/js-url/js-url-test.ts new file mode 100644 index 0000000000..0b26f6175b --- /dev/null +++ b/js-url/js-url-test.ts @@ -0,0 +1,9 @@ +/// + +url(); + +url('domain'); +url(1); + +url('domain', 'test.www.example.com/path/here'); +url(-1, 'test.www.example.com/path/here'); diff --git a/js-url/js-url.d.ts b/js-url/js-url.d.ts new file mode 100644 index 0000000000..ff974f15e2 --- /dev/null +++ b/js-url/js-url.d.ts @@ -0,0 +1,14 @@ +// Type definitions for url() v1.8.6 +// Project: https://github.com/websanova/js-url +// Definitions by: MIZUNE Pine +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface UrlStatic { + (): string; + (pattern: string): string; + (pattern: number): string; + (pattern: string, url: string): string; + (pattern: number, url: string): string; +} + +declare var url: UrlStatic; From dd54ecd6b48b766d05264301117b35a9ff93ce22 Mon Sep 17 00:00:00 2001 From: satoru kimura Date: Sat, 26 Apr 2014 16:33:05 +0900 Subject: [PATCH 034/132] update to three.js r67. --- threejs/three-tests.ts | 6 +- threejs/three.d.ts | 544 +++++++++++++++++++++++------------------ 2 files changed, 311 insertions(+), 239 deletions(-) diff --git a/threejs/three-tests.ts b/threejs/three-tests.ts index 8207933bcd..b5d9ed5496 100644 --- a/threejs/three-tests.ts +++ b/threejs/three-tests.ts @@ -10550,7 +10550,6 @@ var container, stats; } geometry.computeFaceNormals(); - geometry.computeCentroids(); group = new THREE.Object3D(); group.scale.x = group.scale.y = group.scale.z = 2; @@ -16481,13 +16480,13 @@ function render() { var normalLength = 15; var fl: number; - var face: THREE.Face; + var face: THREE.Face3; for( f = 0, fl = geometry.faces.length; f < fl; f ++ ) { face = geometry.faces[ f ]; var arrow = new THREE.ArrowHelper( face.normal, - face.centroid, + face.normal, normalLength, 0x3333FF ); mesh.add( arrow ); @@ -17321,7 +17320,6 @@ function render() { // mergeVertices(); is run in case of duplicated vertices smooth.mergeVertices(); - smooth.computeCentroids(); smooth.computeFaceNormals(); smooth.computeVertexNormals(); diff --git a/threejs/three.d.ts b/threejs/three.d.ts index 27938939aa..1c5a4e8cad 100644 --- a/threejs/three.d.ts +++ b/threejs/three.d.ts @@ -1,4 +1,4 @@ -// Type definitions for three.js -- r66 +// Type definitions for three.js -- r67 // Project: http://mrdoob.github.com/three.js/ // Definitions by: Kon , Satoru Kimura // Definitions: https://github.com/borisyankov/DefinitelyTyped @@ -15,7 +15,7 @@ declare module THREE { export var AddEquation: BlendingEquation; export var SubtractEquation: BlendingEquation; export var ReverseSubtractEquation: BlendingEquation; - + // custom blending destination factors export enum BlendingDstFactor { } export var ZeroFactor: BlendingDstFactor; @@ -177,8 +177,8 @@ declare module THREE { /** * Camera with orthographic projection * - * @example - * var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 ); + * @example + * var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 ); * scene.add( camera ); * * @see src/cameras/OrthographicCamera.js @@ -281,20 +281,20 @@ declare module THREE { /** * Sets an offset in a larger frustum. This is useful for multi-window or multi-monitor/multi-machine setups. * For example, if you have 3x2 monitors and each monitor is 1920x1080 and the monitors are in grid like this: - * + * * +---+---+---+ * | A | B | C | * +---+---+---+ * | D | E | F | * +---+---+---+ - * + * * then for each monitor you would call it like this: - * + * * var w = 1920; * var h = 1080; * var fullWidth = w * 3; * var fullHeight = h * 2; - * + * * // A * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); * // B @@ -307,13 +307,13 @@ declare module THREE { * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); * // F * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h ); Note there is no reason monitors have to be the same size or in a grid. - * + * * @param fullWidth full width of multiview setup * @param fullHeight full height of multiview setup * @param x horizontal offset of subcamera * @param y vertical offset of subcamera * @param width width of subcamera - * @param height height of subcamera + * @param height height of subcamera */ setViewOffset(fullWidth: number, fullHeight: number, x: number, y: number, width: number, height: number): void; @@ -328,7 +328,7 @@ declare module THREE { interface BufferGeometryAttributeArray extends ArrayBufferView{ length: number; - } + } interface BufferGeometryAttribute{ itemSize: number; @@ -336,8 +336,8 @@ declare module THREE { numItems: number; } - interface BufferGeometryAttributes{ - [name: string]: BufferGeometryAttribute; + interface BufferGeometryAttributes{ + [name: string]: BufferGeometryAttribute; index?: BufferGeometryAttribute; position?: BufferGeometryAttribute; normal?: BufferGeometryAttribute; @@ -345,7 +345,7 @@ declare module THREE { } /** - * This is a superefficent class for geometries because it saves all data in buffers. + * This is a superefficent class for geometries because it saves all data in buffers. * It reduces memory costs and cpu cycles. But it is not as easy to work with because of all the nessecary buffer calculations. * It is mainly interesting when working with static objects. * @@ -419,7 +419,7 @@ declare module THREE { computeBoundingSphere(): void; /** - * Disposes the object from memory. + * Disposes the object from memory. * You need to call this when you want the bufferGeometry removed while the application is running. */ dispose(): void; @@ -446,7 +446,7 @@ declare module THREE { autoStart: boolean; /** - * When the clock is running, It holds the starttime of the clock. + * When the clock is running, It holds the starttime of the clock. * This counted from the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. */ startTime: number; @@ -503,7 +503,7 @@ declare module THREE { * }; * * }; - * + * * var car = new Car(); * car.addEventListener( 'start', function ( event ) { * @@ -547,57 +547,18 @@ declare module THREE { */ dispatchEvent(event: { type: string; target: any; }): void; } - - export interface Face { - /** - * Face normal. - */ - normal: Vector3; - - /** - * Face color. - */ - color: Color; - - /** - * Array of 4 vertex normals. - */ - vertexNormals: Vector3[]; - - /** - * Array of 4 vertex normals. - */ - vertexColors: Color[]; - - /** - * Array of 4 vertex tangets. - */ - vertexTangents: number[]; - - /** - * Material index (points to {@link Geometry.materials}). - */ - materialIndex: number; - - /** - * Face centroid. - */ - centroid: Vector3; - - clone(): Face; - } /** * Triangle face. * * # Example - * var normal = new THREE.Vector3( 0, 1, 0 ); - * var color = new THREE.Color( 0xffaa00 ); + * var normal = new THREE.Vector3( 0, 1, 0 ); + * var color = new THREE.Color( 0xffaa00 ); * var face = new THREE.Face3( 0, 1, 2, normal, color, 0 ); * * @source https://github.com/mrdoob/three.js/blob/master/src/core/Face3.js */ - export class Face3 implements Face { + export class Face3 { /** * @param a Vertex A index. * @param b Vertex B index. @@ -658,10 +619,6 @@ declare module THREE { */ materialIndex: number; - /** - * Face centroid. - */ - centroid: Vector3; clone(): Face3; } @@ -692,13 +649,13 @@ declare module THREE { /** * Base class for geometries - * + * * # Example * var geometry = new THREE.Geometry(); - * geometry.vertices.push( new THREE.Vector3( -10, 10, 0 ) ); - * geometry.vertices.push( new THREE.Vector3( -10, -10, 0 ) ); - * geometry.vertices.push( new THREE.Vector3( 10, -10, 0 ) ); - * geometry.faces.push( new THREE.Face3( 0, 1, 2 ) ); + * geometry.vertices.push( new THREE.Vector3( -10, 10, 0 ) ); + * geometry.vertices.push( new THREE.Vector3( -10, -10, 0 ) ); + * geometry.vertices.push( new THREE.Vector3( 10, -10, 0 ) ); + * geometry.faces.push( new THREE.Face3( 0, 1, 2 ) ); * geometry.computeBoundingSphere(); * * @see https://github.com/mrdoob/three.js/blob/master/src/core/Geometry.js @@ -732,7 +689,7 @@ declare module THREE { /** * Array of vertex normals, matching number and order of vertices. - * Normal vectors are nessecary for lighting + * Normal vectors are nessecary for lighting * To signal an update in this array, Geometry.normalsNeedUpdate needs to be set to true. */ // normals: Vector3[]; @@ -742,7 +699,7 @@ declare module THREE { * The array of faces describe how each vertex in the model is connected with each other. * To signal an update in this array, Geometry.elementsNeedUpdate needs to be set to true. */ - faces: Face[]; + faces: Face3[]; /** * Array of face UV layers. @@ -863,11 +820,6 @@ declare module THREE { */ applyMatrix(matrix: Matrix4): void; - /** - * Computes centroids for all faces. - */ - computeCentroids(): void; - /** * Computes face normals. */ @@ -890,7 +842,7 @@ declare module THREE { * Geometry must have vertex UVs (layer 0 will be used). */ computeTangents(): void; - + /** * Computes bounding box of the geometry, updating {@link Geometry.boundingBox} attribute. */ @@ -902,6 +854,8 @@ declare module THREE { */ computeBoundingSphere(): void; + merge( geometry: Geometry, matrix: Matrix, materialIndexOffset: number): void; + /** * Checks for duplicate vertices using hashmap. * Duplicated vertices are removed and faces' vertices are updated. @@ -914,19 +868,14 @@ declare module THREE { clone(): Geometry; /** - * Removes The object from memory. + * Removes The object from memory. * Don't forget to call this method when you remove an geometry because it can cuase meomory leaks. */ dispose(): void; computeLineDistances(): void; - } - - export class Geometry2 extends BufferGeometry { - vertices: Float32Array; - normals: Float32Array; - uvs: Float32Array; + makeGroups(usesFaceMaterial: boolean, maxVerticesInGroup: number): void; } /** @@ -1145,7 +1094,7 @@ declare module THREE { /** * Rotate an object along an axis in object space. The axis is assumed to be normalized. - * @param axis A normalized vector in object space. + * @param axis A normalized vector in object space. * @param angle The angle in radians. */ rotateOnAxis(axis: Vector3, angle: number): Object3D; @@ -1168,7 +1117,7 @@ declare module THREE { /** * Transforms a 3D scene object into 2D render data that can be rendered in a screen with your renderer of choice, projecting and clipping things out according to the used camera. - * If the scene were a real scene, this method would be the equivalent of taking a picture with the camera (and developing the film would be the next step, using a Renderer). + * If the scene were a real scene, this method would be the equivalent of taking a picture with the camera (and developing the film would be the next step, using a Renderer). * * @param scene scene to project. * @param camera camera to use in the projection. @@ -1178,14 +1127,14 @@ declare module THREE { objects: Object3D[]; // Mesh, Line or other object sprites: Object3D[]; // Sprite or Particle lights: Light[]; - elements: Face[]; // Line, Particle, Face3 or Face4 + elements: Face3[]; // Line, Particle, Face3 or Face4 }; } export interface Intersection { distance: number; point: Vector3; - face: Face; + face: Face3; object: Object3D; } @@ -1214,9 +1163,9 @@ declare module THREE { /** * This light's color gets applied to all the objects in the scene globally. - * + * * # example - * var light = new THREE.AmbientLight( 0x404040 ); // soft white light + * var light = new THREE.AmbientLight( 0x404040 ); // soft white light * scene.add( light ); * * @source https://github.com/mrdoob/three.js/blob/master/src/lights/AmbientLight.js @@ -1249,9 +1198,9 @@ declare module THREE { * Affects objects using MeshLambertMaterial or MeshPhongMaterial. * * @example - * // White directional light at half intensity shining from the top. - * var directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 ); - * directionalLight.position.set( 0, 1, 0 ); + * // White directional light at half intensity shining from the top. + * var directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 ); + * directionalLight.position.set( 0, 1, 0 ); * scene.add( directionalLight ); * * @see src/lights/DirectionalLight.js @@ -1351,7 +1300,7 @@ declare module THREE { /** * Shadow map texture height in pixels. - * Default — 512. + * Default — 512. */ shadowMapHeight: number; @@ -1425,7 +1374,7 @@ declare module THREE { export class HemisphereLight extends Light { constructor(skyColorHex?: number, groundColorHex?: number, intensity?: number); - + position: Vector3; groundColor: Color; intensity: number; @@ -1438,7 +1387,7 @@ declare module THREE { * * @example * var light = new THREE.PointLight( 0xff0000, 1, 100 ); - * light.position.set( 50, 50, 50 ); + * light.position.set( 50, 50, 50 ); * scene.add( light ); */ export class PointLight extends Light { @@ -1469,15 +1418,15 @@ declare module THREE { * A point light that can cast shadow in one direction. * * @example - * // white spotlight shining from the side, casting shadow + * // white spotlight shining from the side, casting shadow * var spotLight = new THREE.SpotLight( 0xffffff ); * spotLight.position.set( 100, 1000, 100 ); - * spotLight.castShadow = true; + * spotLight.castShadow = true; * spotLight.shadowMapWidth = 1024; - * spotLight.shadowMapHeight = 1024; + * spotLight.shadowMapHeight = 1024; * spotLight.shadowCameraNear = 500; - * spotLight.shadowCameraFar = 4000; - * spotLight.shadowCameraFov = 30; + * spotLight.shadowCameraFar = 4000; + * spotLight.shadowCameraFov = 30; * scene.add( spotLight ); */ export class SpotLight extends Light { @@ -1601,7 +1550,7 @@ declare module THREE { * load * Dispatched when the image has completed loading * content — loaded image - * + * * error * * Dispatched when the image can't be loaded @@ -1658,17 +1607,19 @@ declare module THREE { load(url: string, onLoad: (bufferGeometry: BufferGeometry) => void): void; setCrossOrigin(crossOrigin: string): void; parse(json: any): BufferGeometry; - + } - export class Geometry2Loader { - constructor(manager?: LoadingManager); + export class Cache{ + constructor(); - load(url: string, onLoad: (geometry2: Geometry2) => void): void; - setCrossOrigin(crossOrigin: string): void; - parse(json: any): Geometry2; + files: any[]; + + add(key: string, file: any): void; + get(key: string): any; + remove(key: string): void; + clear(): void; } - /** * A loader for loading an image. * Unlike other loaders, this one emits events instead of using predefined callbacks. So if you're interested in getting notified when things happen, you need to add listeners to the object. @@ -1740,7 +1691,7 @@ declare module THREE { setCrossOrigin(crossOrigin: string): void; parse(json: any): Material; } - + export class ObjectLoader extends EventDispatcher { constructor(manager?: LoadingManager); @@ -1840,14 +1791,11 @@ declare module THREE { export class XHRLoader extends EventDispatcher { constructor(manager?: LoadingManager); + + cache: Cache; crossOrigin: string; - /** - * Begin loading from url - * - * @param url - */ - constructor(onLoad?: (responseText: string) => void, onProgress?: (event: any) => void, onError?: (event: any) => void); - load(onLoad?: (responseText: string) => void, onProgress?: (event: any) => void, onError?: (event: any) => void): void; + + load(url: string, onLoad?: (responseText: string) => void, onProgress?: (event: any) => void, onError?: (event: any) => void): void; setCrossOrigin(crossOrigin: string): void; } @@ -1921,12 +1869,12 @@ declare module THREE { */ polygonOffsetFactor: number; - /** + /** * Sets the polygon offset units. Default is 0. */ polygonOffsetUnits: number; - /** + /** * Sets the alpha value to be used when running an alpha test. Default is 0. */ alphaTest: number; @@ -2207,7 +2155,7 @@ declare module THREE { normalMap: Texture; bumpMap: Texture; wrapRGB: Vector3; - + clone(): MeshPhongMaterial; } @@ -2238,6 +2186,11 @@ declare module THREE { color?: { type: string; value: THREE.Color; }; } + export class RawShaderMaterial extends ShaderMaterial { + constructor(parameters?: ShaderMaterialParameters); + + } + export interface ShaderMaterialParameters { uniforms?: Uniforms; fragmentShader?: string; @@ -2274,7 +2227,7 @@ declare module THREE { linewidth: number; wireframeLinewidth: number; defines: any; - + clone(): ShaderMaterial; } @@ -2355,7 +2308,7 @@ declare module THREE { constructor(min?: Vector3, max?: Vector3); max: Vector3; min: Vector3; - + set(min: Vector3, max: Vector3): Box3; applyMatrix4(matrix: Matrix4): Box3; expandByPoint(point: Vector3): Box3; @@ -2391,7 +2344,7 @@ declare module THREE { /** * Represents a color. See also {@link ColorUtils}. * - * @example + * @example * var color = new THREE.Color( 0xff0000 ); * * @see src/math/Color.js @@ -2475,7 +2428,7 @@ declare module THREE { */ setStyle(style: string): Color; - /** + /** * Returns the value of this color in CSS context style. * Example: rgb(r, g, b) */ @@ -2579,7 +2532,7 @@ declare module THREE { /** * Clamps the x to be larger than a. - * + * * @param x — Value to be clamped. * @param a — Minimum value */ @@ -2587,7 +2540,7 @@ declare module THREE { /** * Linear mapping of x from range [a1, a2] to range [b1, b2]. - * + * * @param x Value to be mapped. * @param a1 Minimum value for range A. * @param a2 Maximum value for range A. @@ -2713,7 +2666,10 @@ declare module THREE { determinant(): number; set(n11: number, n12: number, n13: number, n21: number, n22: number, n23: number, n31: number, n32: number, n33: number): Matrix3; multiplyScalar(s: number): Matrix3; + // DEPRECATED multiplyVector3Array(a: number[]): number[]; + applyToVector3Array(array: number[], offset?: number, length?: number): number[]; + flattenToArrayOffset(array: number[], offset: number): number[]; getNormalMatrix(m: Matrix4): Matrix3; getInverse(matrix: Matrix3, throwOnInvertible?: boolean): Matrix3; getInverse(matrix: Matrix4, throwOnInvertible?: boolean): Matrix3; @@ -2726,19 +2682,19 @@ declare module THREE { * A 4x4 Matrix. * * @example - * // Simple rig for rotating around 3 axes - * var m = new THREE.Matrix4(); - * var m1 = new THREE.Matrix4(); - * var m2 = new THREE.Matrix4(); - * var m3 = new THREE.Matrix4(); - * var alpha = 0; - * var beta = Math.PI; - * var gamma = Math.PI/2; - * m1.makeRotationX( alpha ); - * m2.makeRotationY( beta ); - * m3.makeRotationZ( gamma ); - * m.multiplyMatrices( m1, m2 ); - * m.multiply( m3 ); + * // Simple rig for rotating around 3 axes + * var m = new THREE.Matrix4(); + * var m1 = new THREE.Matrix4(); + * var m2 = new THREE.Matrix4(); + * var m3 = new THREE.Matrix4(); + * var alpha = 0; + * var beta = Math.PI; + * var gamma = Math.PI/2; + * m1.makeRotationX( alpha ); + * m2.makeRotationY( beta ); + * m3.makeRotationZ( gamma ); + * m.multiplyMatrices( m1, m2 ); + * m.multiply( m3 ); */ export class Matrix4 implements Matrix { @@ -2758,7 +2714,7 @@ declare module THREE { */ elements: Float32Array; - /** + /** * Sets all fields of this matrix. */ set(n11: number, n12: number, n13: number, n14: number, n21: number, n22: number, n23: number, n24: number, n31: number, n32: number, n33: number, n34: number, n41: number, n42: number, n43: number, n44: number): Matrix4; @@ -2816,15 +2772,10 @@ declare module THREE { */ transpose(): Matrix4; - /** - * Flattens this matrix into supplied flat array. - */ - flattenToArray(flat: number[]): number[]; - /** * Flattens this matrix into supplied flat array starting from offset position in the array. */ - flattenToArrayOffset(flat: number[], offset: number): number[]; + flattenToArrayOffset(array: number[], offset: number): number[]; /** * Sets the position component for this matrix from vector v. @@ -2870,7 +2821,7 @@ declare module THREE { /** * Sets this matrix as rotation transform around y axis by theta radians. - * + * * @param theta Rotation angle in radians. */ makeRotationY(theta: number): Matrix4; @@ -2886,7 +2837,7 @@ declare module THREE { * Sets this matrix as rotation transform around axis by angle radians. * Based on http://www.gamedev.net/reference/articles/article1199.asp. * - * @param axis Rotation axis. + * @param axis Rotation axis. * @param theta Rotation angle in radians. */ makeRotationAxis(axis: Vector3, angle: number): Matrix4; @@ -2896,7 +2847,7 @@ declare module THREE { */ makeScale(x: number, y: number, z: number): Matrix4; - /** + /** * Creates a frustum matrix. */ makeFrustum(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4; @@ -2916,7 +2867,10 @@ declare module THREE { */ clone(): Matrix4; + // DEPRECATED multiplyVector3Array(a: number[]): number[]; + applyToVector3Array(array: number[], offset?: number, length?: number): number[]; + getMaxScaleOnAxis(): number; } @@ -2950,9 +2904,9 @@ declare module THREE { * Implementation of a quaternion. This is used for rotating things without incurring in the dreaded gimbal lock issue, amongst other advantages. * * @example - * var quaternion = new THREE.Quaternion(); - * quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 ); - * var vector = new THREE.Vector3( 1, 0, 0 ); + * var quaternion = new THREE.Quaternion(); + * quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 ); + * var vector = new THREE.Vector3( 1, 0, 0 ); * vector.applyQuaternion( quaternion ); */ export class Quaternion { @@ -3100,7 +3054,7 @@ declare module THREE { /** * Represents a spline. - * + * * @see src/math/Spline.js */ export class Spline { @@ -3163,7 +3117,7 @@ declare module THREE { plane(optionalTarget?: Vector3): Plane; containsPoint(point: Vector3): boolean; copy(triangle: Triangle): Triangle; - + static normal(a: Vector3, b: Vector3, c: Vector3, optionalTarget?: Vector3): Vector3; static barycoordFromPoint(point: Vector3, a: Vector3, b: Vector3, c: Vector3, optionalTarget: Vector3): Vector3; static containsPoint(point: Vector3, a: Vector3, b: Vector3, c: Vector3): boolean; @@ -3248,7 +3202,7 @@ declare module THREE { /** * NOTE: Vector4 doesn't have the property. - * + * * distanceTo(v:T):number; */ distanceTo(v: Vector): number; @@ -3283,7 +3237,7 @@ declare module THREE { /** * 2D vector. - * + * * ( class Vector2 implements Vector ) */ export class Vector2 implements Vector { @@ -3333,7 +3287,7 @@ declare module THREE { */ divideScalar(s: number): Vector2; - /** + /** * Inverts this vector. */ negate(): Vector2; @@ -3400,7 +3354,7 @@ declare module THREE { /** * Gets a component of this vector. - */ + */ getComponent(index: number): number; fromArray(xy: number[]): Vector2; @@ -3426,9 +3380,9 @@ declare module THREE { * 3D vector. * * @example - * var a = new THREE.Vector3( 1, 0, 0 ); - * var b = new THREE.Vector3( 0, 1, 0 ); - * var c = new THREE.Vector3(); + * var a = new THREE.Vector3( 1, 0, 0 ); + * var b = new THREE.Vector3( 0, 1, 0 ); + * var c = new THREE.Vector3(); * c.crossVectors( a, b ); * * @see src/math/Vector3.js @@ -3478,7 +3432,7 @@ declare module THREE { */ addVectors(a: Vector3, b: Vector3): Vector3; - /** + /** * Subtracts v from this vector. */ sub(a: Vector3): Vector3; @@ -3488,7 +3442,7 @@ declare module THREE { */ subVectors(a: Vector3, b: Vector3): Vector3; - /** + /** * Multiplies this vector by scalar s. */ multiplyScalar(s: number): Vector3; @@ -3657,7 +3611,7 @@ declare module THREE { */ dot(v: Vector4): number; - /** + /** * Computes squared length of this vector. */ lengthSq(): number; @@ -3737,7 +3691,7 @@ declare module THREE { */ setW(w: number): Vector2; - /** + /** * NOTE: Vector4 doesn't have the property. * * distanceToSquared(v:T):number; @@ -3759,6 +3713,11 @@ declare module THREE { skinMatrix: Matrix4; skin: SkinnedMesh; + + accumulatedRotWeight: number; + accumulatedPosWeight: number; + accumulatedSclWeight: number; + update(parentSkinMatrix?: Matrix4, forceUpdate?: boolean): void; } @@ -3795,7 +3754,7 @@ declare module THREE { geometry: Geometry; material: Material; - + getMorphTargetIndexByName(name: string): number; updateMorphTargets(): void; clone(object?: Mesh): Mesh; @@ -3828,13 +3787,13 @@ declare module THREE { parseAnimations(): void; updateAnimation(delta: number): void; setAnimationLabel(label: string, start: number, end: number): void; - + clone(object?: MorphAnimMesh): MorphAnimMesh; } /** * A class for displaying particles in the form of variable size points. For example, if using the WebGLRenderer, the particles are displayed using GL_POINTS. - * + * * @see src/objects/ParticleSystem.js */ export class ParticleSystem extends Object3D { @@ -3846,7 +3805,7 @@ declare module THREE { constructor(geometry: Geometry, material?: ParticleSystemMaterial); constructor(geometry: Geometry, material?: ShaderMaterial); constructor(geometry: BufferGeometry, material?: ParticleSystemMaterial); - constructor(geometry: BufferGeometry, material?: ShaderMaterial); + constructor(geometry: BufferGeometry, material?: ShaderMaterial); /** * An instance of Geometry, where each vertex designates the position of a particle in the system. @@ -3868,6 +3827,16 @@ declare module THREE { clone(object?: ParticleSystem): ParticleSystem; } + export class Skeleton extends Mesh { + constructor(boneList: Bone[], useVertexTexture: boolean); + bones: Bone[]; + useVertexTexture: boolean; + boneMatrices: Float32Array; + + addBone(bone: Bone): Bone; + calculateInverses(bone: Bone): void; + } + export class SkinnedMesh extends Mesh { constructor(geometry?: Geometry, material?: MeshBasicMaterial, useVertexTexture?: boolean); constructor(geometry?: Geometry, material?: MeshDepthMaterial, useVertexTexture?: boolean); @@ -3877,13 +3846,10 @@ declare module THREE { constructor(geometry?: Geometry, material?: MeshPhongMaterial, useVertexTexture?: boolean); constructor(geometry?: Geometry, material?: ShaderMaterial, useVertexTexture?: boolean); - bones: Bone[]; identityMatrix: Matrix4; - useVertexTexture: boolean; - boneMatrices: Float32Array; - + pose(): void; - addBone(bone?: Bone): Bone; + normalizeSkinWeights(): void; clone(object?: SkinnedMesh): SkinnedMesh; } @@ -3917,7 +3883,7 @@ declare module THREE { autoClear: boolean; sortObjects: boolean; sortElements: boolean; - + getMaxAnisotropy(): number; render(scene: Scene, camera: Camera): void; clear(): void; @@ -3928,6 +3894,7 @@ declare module THREE { supportsVertexTextures(): void; setSize(width: number, height: number, updateStyle?: boolean): void; setClearColorHex(hex: number, alpha?: number): void; + setViewport(x: number, y: number, width: number, height: number): void; } export interface RendererPlugin { @@ -3936,7 +3903,7 @@ declare module THREE { } export interface WebGLRendererParameters { - /** + /** * A Canvas where the renderer draws its output. */ canvas?: HTMLCanvasElement; @@ -4045,7 +4012,7 @@ declare module THREE { */ gammaInput: boolean; - /** + /** * Default is false. */ gammaOutput: boolean; @@ -4077,7 +4044,7 @@ declare module THREE { shadowMapDebug: boolean; /** - * Default is false. + * Default is false. */ shadowMapCascade: boolean; @@ -4137,6 +4104,9 @@ declare module THREE { * Return a Boolean true if the context supports vertex textures. */ supportsVertexTextures(): boolean; + supportsFloatTextures(): boolean; + supportsStandardDerivatives(): boolean; + supportsCompressedTextureS3TC(): boolean; /** * Resizes the output canvas to (width, height), and also sets the viewport to fit that size, starting in (0, 0). @@ -4153,7 +4123,7 @@ declare module THREE { */ setScissor(x: number, y: number, width: number, height: number): void; - /** + /** * Enable the scissor test. When this is enabled, only the pixels within the defined scissor area will be affected by further renderer actions. */ enableScissorTest(enable: boolean): void; @@ -4181,6 +4151,10 @@ declare module THREE { */ clear(color?: boolean, depth?: boolean, stencil?: boolean): void; + clearColor(): void; + clearDepth(): void; + clearStencil(): void; + /** * Initialises the postprocessing plugin, and adds it to the renderPluginsPost array. */ @@ -4193,7 +4167,7 @@ declare module THREE { /** * Tells the shadow map plugin to update using the passed scene and camera parameters. - * + * * @param scene an instance of Scene * @param camera — an instance of Camera */ @@ -4218,30 +4192,27 @@ declare module THREE { /** * Used for setting the gl frontFace, cullFace states in the GPU, thus enabling/disabling face culling when rendering. * If cullFace is false, culling will be disabled. - * @param cullFace "back", "front", "front_and_back", or false. + * @param cullFace "back", "front", "front_and_back", or false. * @param frontFace "ccw" or "cw */ - setFaceCulling(cullFace?: string, frontFace?: FrontFaceDirection): void; + setFaceCulling(cullFace?: CullFace, frontFace?: FrontFaceDirection): void; setDepthTest(depthTest: boolean): void; setDepthWrite(depthWrite: boolean): void; setBlending(blending: Blending, blendEquation: BlendingEquation, blendSrc: BlendingSrcFactor, blendDst: BlendingDstFactor): void; setTexture(texture: Texture, slot: number): void; setRenderTarget(renderTarget: RenderTarget): void; - supportsCompressedTextureS3TC(): any; getMaxAnisotropy(): number; getPrecision(): string; setMaterialFaces(material: Material): void; - supportsStandardDerivatives(): any; - supportsFloatTextures(): any; clearTarget(renderTarget:WebGLRenderTarget, color: boolean, depth: boolean, stencil: boolean): void; /** * Sets the clear color, using hex for the color and alpha for the opacity. - * + * * @example - * // Creates a renderer with black background - * var renderer = new THREE.WebGLRenderer(); - * renderer.setSize(200, 100); + * // Creates a renderer with black background + * var renderer = new THREE.WebGLRenderer(); + * renderer.setSize(200, 100); * renderer.setClearColorHex(0x000000, 1); */ setClearColorHex(hex: number, alpha: number): void; @@ -4292,16 +4263,13 @@ declare module THREE { export class RenderableFace { constructor(); - vertexNormalsModelView: Vector3[]; - normalWorld: Vector3; color: number; material: Material; uvs: Vector2[][]; v1: RenderableVertex; v2: RenderableVertex; v3: RenderableVertex; - normalModelView: Vector3; - centroidModel: Vector3; + normalModel: Vector3; vertexNormalsLength: number; z: number; vertexNormalsModel: Vector3[]; @@ -4342,11 +4310,11 @@ declare module THREE { visible: boolean; positionScreen: Vector4; positionWorld: Vector3; - + copy(vertex: RenderableVertex): void; } - // Shaders ///////////////////////////////////////////////////////////////////// + // Renderers / Shaders ///////////////////////////////////////////////////////////////////// export interface ShaderChunk { [name: string]: string; fog_pars_fragment: string; @@ -4436,11 +4404,20 @@ declare module THREE { depthRGBA: Shader; }; + // Renderers / WebGL ///////////////////////////////////////////////////////////////////// + export class WebGLProgram{ + constructor(renderer: WebGLRenderer, code: string, material: ShaderMaterial, parameters: WebGLRendererParameters); + } + + export class WebGLShader{ + constructor(gl: any, type: string, string: string); + } + // Scenes ///////////////////////////////////////////////////////////////////// export interface IFog { name:string; - color: Color; + color: Color; clone():IFog; } @@ -4450,7 +4427,7 @@ declare module THREE { */ export class Fog implements IFog { constructor(hex: number, near?: number, far?: number); - + name:string; /** @@ -4527,8 +4504,8 @@ declare module THREE { magFilter?: TextureFilter, minFilter?: TextureFilter, anisotropy?: number - ); - + ); + clone(): CompressedTexture; } @@ -4545,14 +4522,14 @@ declare module THREE { magFilter: TextureFilter, minFilter: TextureFilter, anisotropy?: number - ); + ); clone(): DataTexture; } export class Texture { constructor( - image: HTMLImageElement, + image: any, // HTMLImageElement or HTMLCanvasElement mapping?: Mapping, wrapS?: Wrapping, wrapT?: Wrapping, @@ -4561,7 +4538,7 @@ declare module THREE { format?: PixelFormat, type?: TextureDataType, anisotropy?: number - ); + ); constructor( image: HTMLCanvasElement, mapping?: Mapping, @@ -4572,7 +4549,7 @@ declare module THREE { format?: PixelFormat, type?: TextureDataType, anisotropy?: number - ); + ); constructor( image: HTMLImageElement, mapping?: MappingConstructor, @@ -4594,7 +4571,7 @@ declare module THREE { format?: PixelFormat, type?: TextureDataType, anisotropy?: number - ); + ); image: Object; // HTMLImageElement or ImageData ; mapping: Mapping; @@ -4635,29 +4612,30 @@ declare module THREE { style: string; weight: string; face: string; - faces: { [weight: string]: { [style: string]: Face; }; }; + faces: { [weight: string]: { [style: string]: Face3; }; }; size: number; - + drawText(text: string): { paths: Path[]; offset: number; }; Triangulate: { (contour: Vector2[], indices: boolean): Vector2[]; area(contour: Vector2[]): number; }; - extractGlyphPoints(c: string, face: Face, scale: number, offset: number, path: Path): { offset: number; path: Path; }; + extractGlyphPoints(c: string, face: Face3, scale: number, offset: number, path: Path): { offset: number; path: Path; }; generateShapes(text: string, parameters?: { size?: number; curveSegments?: number; font?: string; weight?: string; style?: string; }): Shape[]; loadFace(data: TypefaceData): TypefaceData; - getFace(): Face; + getFace(): Face3; }; export var GeometryUtils: { + // DEPRECATED merge(geometry1: Geometry, object2: Mesh, materialIndexOffset?: number): void; + // DEPRECATED merge(geometry1: Geometry, object2: Geometry, materialIndexOffset?: number): void; randomPointInTriangle(vectorA: Vector3, vectorB: Vector3, vectorC: Vector3): Vector3; - randomPointInFace(face: Face, geometry: Geometry, useCachedAreas: boolean): Vector3; + randomPointInFace(face: Face3, geometry: Geometry, useCachedAreas: boolean): Vector3; randomPointsInGeometry(geometry: Geometry, points: number): Vector3; triangleArea(vectorA: Vector3, vectorB: Vector3, vectorC: Vector3): number; center(geometry: Geometry): Vector3; - triangulateQuads(geometry: Geometry): void; }; export var ImageUtils: { @@ -4702,7 +4680,7 @@ declare module THREE { export class Animation { constructor(root: Mesh, name: string); - + root: Mesh; data: AnimationData; hierarchy: Bone[]; @@ -4711,9 +4689,11 @@ declare module THREE { isPlaying: boolean; isPaused: boolean; loop: boolean; + weight: number; interpolationType: AnimationInterpolation; + keyTypes: string[]; - play(loop?: boolean, startTimeMS?: number): void; + play(startTime?: number, weight?: number): void; pause(): void; stop(): void; reset(): void; @@ -4730,10 +4710,12 @@ declare module THREE { CATMULLROM: AnimationInterpolation; CATMULLROM_FORWARD: AnimationInterpolation; LINEAR: AnimationInterpolation; + + remove(name: string): void; removeFromUpdate(animation: Animation): void; get(name: string): AnimationData; update(deltaTimeMS: number): void; - parse(root: SkinnedMesh): Object3D[]; + parse(root: Mesh): Object3D[]; add(data: AnimationData): void; addToUpdate(animation: Animation): void; }; @@ -4779,7 +4761,7 @@ declare module THREE { export class CombinedCamera extends Camera { constructor(width: number, height: number, fov: number, near: number, far: number, orthoNear: number, orthoFar: number); - + fov: number; right: number; bottom: number; @@ -4815,6 +4797,103 @@ declare module THREE { updateCubeMap(renderer: Renderer, scene: Scene): void; } + // Extras / Curves ///////////////////////////////////////////////////////////////////// + export class ArcCurve extends EllipseCurve { + constructor(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean ); + } + export class ClosedSplineCurve3 extends Curve { + constructor( points:Vector3[] ); + + points:Vector3[]; + + getPoint(t: number): Vector3; + } + export class CubicBezierCurve extends Curve { + constructor( v0: Vector2, v1: Vector2, v2: Vector2, v3: Vector2 ); + + v0: Vector2; + v1: Vector2; + v2: Vector2; + v3: Vector2; + + getPoint(t: number): Vector2; + } + export class CubicBezierCurve3 extends Curve { + constructor( v0: Vector3, v1: Vector3, v2: Vector3, v3: Vector3 ); + + v0: Vector2; + v1: Vector2; + v2: Vector2; + v3: Vector2; + + getPoint(t: number): Vector3; + } + export class EllipseCurve extends Curve { + constructor( aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean ); + + ax: number; + ay: number; + xRadius: number; + yRadius: number; + aStartAngle: number; + aEndAngle: number; + aClockwise: boolean; + + getPoint(t: number): Vector2; + } + export class LineCurve extends Curve { + constructor( v1: Vector2, v2: Vector2 ); + + v1: Vector2; + v2: Vector2; + + getPoint(t: number): Vector2; + getPointAt(u: number): Vector2; + getTangent(t: number): Vector2; + } + export class LineCurve3 extends Curve { + constructor( v1: Vector3, v2: Vector3 ); + + v1: Vector2; + v2: Vector2; + + getPoint(t: number): Vector3; + } + export class QuadraticBezierCurve extends Curve { + constructor( v0: Vector2, v1: Vector2, v2: Vector2 ); + + v0: Vector2; + v1: Vector2; + v2: Vector2; + + getPoint(t: number): Vector2; + getTangent(t: number): Vector2; + } + export class QuadraticBezierCurve3 extends Curve { + constructor( v0: Vector3, v1: Vector3, v2: Vector3 ); + + v0: Vector2; + v1: Vector2; + v2: Vector2; + + getPoint(t: number): Vector3; + } + export class SplineCurve extends Curve { + constructor( points: Vector2[] ); + + points:Vector2[]; + + getPoint(t: number): Vector2; + } + export class SplineCurve3 extends Curve { + constructor( points: Vector3[] ); + + points:Vector3[]; + + getPoint(t: number): Vector3; + } + + // Extras / Core ///////////////////////////////////////////////////////////////////// /** @@ -5006,18 +5085,6 @@ declare module THREE { constructor(width: number, height: number, depth: number, widthSegments?: number, heightSegments?: number, depthSegments?: number); } - export class BoxGeometry2 extends Geometry2 { - /** - * @param width — Width of the sides on the X axis. - * @param height — Height of the sides on the Y axis. - * @param depth — Depth of the sides on the Z axis. - * @param widthSegments — Number of segmented faces along the width of the sides. - * @param heightSegments — Number of segmented faces along the height of the sides. - * @param depthSegments — Number of segmented faces along the depth of the sides. - */ - constructor(width: number, height: number, depth: number, widthSegments?: number, heightSegments?: number, depthSegments?: number); - } - export class CircleGeometry extends Geometry { constructor(radius?: number, segments?: number, thetaStart?: number, thetaLength?: number); } @@ -5033,7 +5100,7 @@ declare module THREE { * @param radiusSegments — Number of segmented faces around the circumference of the cylinder. * @param heightSegments — Number of rows of faces along the height of the cylinder. * @param openEnded - A Boolean indicating whether or not to cap the ends of the cylinder. - */ + */ constructor(radiusTop?: number, radiusBottom?: number, height?: number, radiusSegments?: number, heightSegments?: number, openEnded?: boolean); } @@ -5065,12 +5132,8 @@ declare module THREE { constructor(width: number, height: number, widthSegments?: number, heightSegments?: number); } - export class PlaneGeometry2 extends Geometry2 { - constructor(width: number, height: number, widthSegments?: number, heightSegments?: number); - } - export class PolyhedronGeometry extends Geometry { - constructor(vertices: Vector3[], faces: Face[], radius?: number, detail?: number); + constructor(vertices: Vector3[], faces: Face3[], radius?: number, detail?: number); } export class RingGeometry extends Geometry { @@ -5191,13 +5254,14 @@ declare module THREE { } export class DirectionalLightHelper extends Object3D { - constructor(light: Light, sphereSize: number, arrowLength: number); + constructor(light: Light, size: number); - lightSphere: Mesh; + lightPlane: Line; light: Light; targetLine: Line; update(): void; + dispose(): void; } export class EdgesHelper extends Line { @@ -5236,7 +5300,16 @@ declare module THREE { lightSphere: Mesh; light: Light; - + + update(): void; + } + + export class SkeletonHelper extends Line { + constructor(bone: Bone); + + skeleton: Skeleton; + matrixAutoUpdate: boolean; + update(): void; } @@ -5305,8 +5378,9 @@ declare module THREE { positionScreen: Vector3; customUpdateCallback: (object: LensFlare) => void; - add(obj: Object3D): void; add(texture: Texture, size?: number, distance?: number, blending?: Blending, color?: Color): void; + add(obj: Object3D): void; + updateLensFlares(): void; } From 7dc04342a1c6a3aa7309c2285852909c5ffdb05c Mon Sep 17 00:00:00 2001 From: Seon-Wook Park Date: Sun, 27 Apr 2014 01:39:00 +0200 Subject: [PATCH 035/132] noble: Make classes be extends of events.EventEmitter --- noble/noble.d.ts | 58 +++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/noble/noble.d.ts b/noble/noble.d.ts index 12ffb08bbc..20259f0a7c 100644 --- a/noble/noble.d.ts +++ b/noble/noble.d.ts @@ -6,18 +6,20 @@ /// declare module "noble" { + import events = require("events"); + export function startScanning(): void; export function startScanning(serviceUUIDs: string[]): void; export function startScanning(serviceUUIDs: string[], allowDuplicates: boolean): void; export function stopScanning(): void; - export function on(event: string, callback: Function): void; - export function on(event: "stateChange", callback: (state: string) => void): void; - export function on(event: "scanStart", callback: () => void): void; - export function on(event: "scanStop", callback: () => void): void; - export function on(event: "discover", callback: (peripheral: Peripheral) => void): void; + export function on(event: string, listener: Function): events.EventEmitter; + export function on(event: "stateChange", listener: (state: string) => void): events.EventEmitter; + export function on(event: "scanStart", listener: () => void): events.EventEmitter; + export function on(event: "scanStop", listener: () => void): events.EventEmitter; + export function on(event: "discover", listener: (peripheral: Peripheral) => void): events.EventEmitter; - export class Peripheral { + export class Peripheral extends events.EventEmitter { uuid: string; advertisement: Advertisement; rssi: number; @@ -25,7 +27,7 @@ declare module "noble" { connect(callback: (error: string) => void): void; disconnect(callback: () => void): void; - discoverServices(serviceUUIDs: string[], callback: (error: string, services: Service[]) => void): void; + discoverServices(serviceUUIDs: string[], listener: (error: string, services: Service[]) => void): void; discoverAllServicesAndCharacteristics(callback: (error: string, services: Service[], characteristics: Characteristic[]) => void): void; discoverSomeServicesAndCharacteristics(serviceUUIDs: string[], characteristicUUIDs: string[], callback: (error: string, services: Service[], characteristics: Characteristic[]) => void): void; @@ -33,11 +35,11 @@ declare module "noble" { writeHandle(handle: NodeBuffer, data: NodeBuffer, withoutResponse: boolean, callback: (error: string) => void): void; toString(): string; - on(event: string, callback: Function): void; - on(event: "connect", callback: (error: string) => void): void; - on(event: "disconnect", callback: (error: string) => void): void; - on(event: "rssiUpdate", callback: (rssi: number) => void): void; - on(event: "servicesDiscover", callback: (services: Service[]) => void): void; + on(event: string, listener: Function): events.EventEmitter; + on(event: "connect", listener: (error: string) => void): events.EventEmitter; + on(event: "disconnect", listener: (error: string) => void): events.EventEmitter; + on(event: "rssiUpdate", listener: (rssi: number) => void): events.EventEmitter; + on(event: "servicesDiscover", listener: (services: Service[]) => void): events.EventEmitter; } export interface Advertisement { @@ -48,7 +50,7 @@ declare module "noble" { serviceUuids: string[]; } - export class Service { + export class Service extends events.EventEmitter { uuid: string; name: string; type: string; @@ -59,12 +61,12 @@ declare module "noble" { discoverCharacteristics(characteristicUUIDs: string[], callback: (error: string, characteristics: Characteristic[]) => void): void; toString(): string; - on(event: string, callback: Function): void; - on(event: "includedServicesDiscover", callback: (includedServiceUuids: string[]) => void): void; - on(event: "characteristicsDiscover", callback: (characteristics: Characteristic[]) => void): void; + on(event: string, listener: Function): events.EventEmitter; + on(event: "includedServicesDiscover", listener: (includedServiceUuids: string[]) => void): events.EventEmitter; + on(event: "characteristicsDiscover", listener: (characteristics: Characteristic[]) => void): events.EventEmitter; } - export class Characteristic { + export class Characteristic extends events.EventEmitter { uuid: string; name: string; type: string; @@ -78,16 +80,16 @@ declare module "noble" { discoverDescriptors(callback: (error: string, descriptors: Descriptor[]) => void): void; toString(): string; - on(event: string, callback: Function): void; - on(event: string, option: boolean, callback: Function): void; - on(event: "read", callback: (data: NodeBuffer, isNotification: boolean) => void): void; - on(event: "write", withoutResponse: boolean, callback: (error: string) => void): void; - on(event: "broadcast", callback: (state: string) => void): void; - on(event: "notify", callback: (state: string) => void): void; - on(event: "descriptorsDiscover", callback: (descriptors: Descriptor[]) => void): void; + on(event: string, listener: Function): events.EventEmitter; + on(event: string, option: boolean, listener: Function): events.EventEmitter; + on(event: "read", listener: (data: NodeBuffer, isNotification: boolean) => void): events.EventEmitter; + on(event: "write", withoutResponse: boolean, listener: (error: string) => void): events.EventEmitter; + on(event: "broadcast", listener: (state: string) => void): events.EventEmitter; + on(event: "notify", listener: (state: string) => void): events.EventEmitter; + on(event: "descriptorsDiscover", listener: (descriptors: Descriptor[]) => void): events.EventEmitter; } - export class Descriptor { + export class Descriptor extends events.EventEmitter { uuid: string; name: string; type: string; @@ -96,9 +98,9 @@ declare module "noble" { writeValue(data: NodeBuffer, callback: (error: string) => void): void; toString(): string; - on(event: string, callback: Function): void; - on(event: "valueRead", callback: (error: string, data: NodeBuffer) => void): void; - on(event: "valueWrite", callback: (error: string) => void): void; + on(event: string, listener: Function): events.EventEmitter; + on(event: "valueRead", listener: (error: string, data: NodeBuffer) => void): events.EventEmitter; + on(event: "valueWrite", listener: (error: string) => void): events.EventEmitter; } } From 114f930fbd62b5de7715feb6e144bf2c44b52888 Mon Sep 17 00:00:00 2001 From: Keats Date: Sun, 27 Apr 2014 09:55:40 +0100 Subject: [PATCH 036/132] Update Restangular definition Add enhanced promises Add new methods up to current 1.4 Rewrite tests to make them more realistic --- restangular/restangular-tests.ts | 240 ++++++++++++++++--------------- restangular/restangular.d.ts | 180 +++++++++++++---------- 2 files changed, 228 insertions(+), 192 deletions(-) diff --git a/restangular/restangular-tests.ts b/restangular/restangular-tests.ts index 9643c9e6b3..9d5aa9fb4f 100644 --- a/restangular/restangular-tests.ts +++ b/restangular/restangular-tests.ts @@ -1,145 +1,159 @@ /// -function test_basic() { - var $scope; - Restangular.all('accounts'); - Restangular.one('accounts', 1234); - Restangular.all('users').getList().then(function (users) { - $scope.user = users[0]; - }) - $scope.cars = $scope.user.getList('cars'); - $scope.user.sendMessage(); - $scope.user.one('message', 123).all('unread').getList(); +var myApp = angular.module('testModule'); - var baseAccounts = Restangular.all('accounts'); +myApp.config((RestangularProvider: restangular.IProvider) => { + RestangularProvider.setBaseUrl('/api/v1'); + RestangularProvider.setExtraFields(['name']); + RestangularProvider.setResponseExtractor(function (response, operation) { + return response.data; + }); - $scope.allAccounts = baseAccounts.getList(); + RestangularProvider.setDefaultHttpFields({ cache: true }); + RestangularProvider.setMethodOverriders(["put", "patch"]); - var newAccount = { name: "Gonto's account" }; + RestangularProvider.setErrorInterceptor(function (response) { + console.error('' + response.status + ' ' + response.data); + }); - baseAccounts.post(newAccount); + RestangularProvider.setRequestSuffix('.json'); - Restangular.one('accounts', 123).one('buildings', 456).get() + RestangularProvider.setRequestInterceptor(function (element, operation, route, url) { + }); - Restangular.one('accounts', 123).all('buildings').getList() + RestangularProvider.addElementTransformer('accounts', false, function (elem) { + elem.accountName = 'Changed'; + return elem; + }); - baseAccounts.getList().then(function (accounts) { + RestangularProvider.setRestangularFields({ + id: "_id", + route: "restangularRoute", + selfLink: "self.href" + }); - var firstAccount = accounts[0]; - $scope.buildings = firstAccount.getList("buildings"); - $scope.loggedInPlaces = firstAccount.getList("places", { query: 'wuut' }, { 'x-user': 'mgonto' }) + RestangularProvider.addRequestInterceptor(function(element, operation, route, url) { + delete element.name; + return element; + }); - firstAccount.name = "Gonto" - - var editFirstAccount = Restangular.copy(firstAccount); - - firstAccount.put(); - editFirstAccount.put(); - - firstAccount.remove(); - - var myBuilding = { - name: "Gonto's Building", - place: "Argentina" - }; + RestangularProvider.setFullRequestInterceptor(function(element, operation, route, url, headers, params, httpConfig) { + delete element.name; + return { + element: element, + params: params, + headers: headers, + httpConfig: httpConfig + }; + }); +}); - firstAccount.post("Buildings", myBuilding).then(function () { - console.log("Object saved OK"); - }, function () { - console.log("There was an error saving"); - }); - - - firstAccount.getList("users", { query: 'wuut' }).then(function (users) { - - users.post({ userName: 'unknown' }); - - - users.customGET("messages", { param: "myParam" }) - - var firstUser = users[0]; - - $scope.userFromServer = firstUser.get(); - - firstUser.head() - - }); - - }, function errorCallback() { - alert("Oops error from server :("); - }) - - var account = Restangular.one("accounts", 123); - - $scope.account = account.get({ single: true }); - - account.customPOST({ name: "My Message" }, "messages", { param: "myParam" }, {}) +interface MyAppScope extends ng.IScope { + accounts: string[]; + allAccounts: any[]; + account: any; + buildings: restangular.ICollectionPromise; + loggedInPlaces: restangular.ICollectionPromise; + userFromServer: restangular.IPromise; } -function test_config() { - RestangularProvider.setBaseUrl('/api/v1'); - RestangularProvider.setExtraFields(['name']); - RestangularProvider.setResponseExtractor(function (response, operation) { - return response.data; +myApp.controller('TestCtrl', ( + $scope: MyAppScope, + Restangular: restangular.IService + ) => { + var baseAccounts = Restangular.all('accounts'); + + baseAccounts.getList().then(function(accounts) { + $scope.allAccounts = accounts; + }); + + $scope.accounts = Restangular.all('accounts').getList().$object; + var newAccount = {name: "Gonto's account"}; + baseAccounts.post(newAccount); + + Restangular.allUrl('googlers', 'http://www.google.com/').getList(); + Restangular.oneUrl('googlers', 'http://www.google.com/1').get(); + Restangular.one('accounts', 123).one('buildings', 456).get(); + Restangular.one('accounts', 123).getList('buildings'); + + baseAccounts.getList().then(function (accounts) { + var firstAccount = accounts[0]; + $scope.buildings = firstAccount.getList("buildings"); + $scope.loggedInPlaces = firstAccount.getList("places", {query: "param"}, {'x-user': 'mgonto'}); + + firstAccount.name = "Gonto"; + var editFirstAccount = Restangular.copy(firstAccount); + + firstAccount.put(); + editFirstAccount.put(); + + firstAccount.save(); + + firstAccount.remove(); + + var myBuilding = { + name: "Gonto's Building", + place: "Argentina" + }; + + firstAccount.post("Buildings", myBuilding).then(function() { + console.log("Object saved OK"); + }, function() { + console.log("There was an error saving"); }); - RestangularProvider.setDefaultHttpFields({ cache: true }); - RestangularProvider.setMethodOverriders(["put", "patch"]); + firstAccount.getList("users", {query: "params"}).then(function(users) { + users.post({userName: 'unknown'}); + users.customGET("messages", {param: "myParam"}); - RestangularProvider.setErrorInterceptor(function (response) { + var firstUser = users[0]; + $scope.userFromServer = firstUser.get(); + firstUser.head() + + }); + + }, function errorCallback() { + alert("Oops error from server :("); + }); + + var account = Restangular.one("accounts", 123); + + $scope.account = account.get({single: true}); + + account.customPOST({name: "My Message"}, "messages", {param: "myParam"}, {}); + + Restangular.one('accounts', 123).withHttpConfig({timeout: 100}).getList('buildings'); + $scope.account = Restangular.one('accounts', 123); + $scope.account.withHttpConfig({timeout: 100}).put(); + + var myRestangular = Restangular.withConfig((configurer: restangular.IProvider) => { + configurer.setBaseUrl('/api/v1'); + configurer.setExtraFields(['name']); + + configurer.setErrorInterceptor(function (response) { console.error('' + response.status + ' ' + response.data); }); + configurer.setResponseExtractor(function (response, operation) { + return response.data; + }); + configurer.setDefaultHttpFields({ cache: true }); + configurer.setMethodOverriders(["put", "patch"]); - RestangularProvider.setRestangularFields({ + configurer.setRestangularFields({ id: "_id", route: "restangularRoute" }); - RestangularProvider.setRequestSuffix('.json'); + configurer.setRequestSuffix('.json'); - RestangularProvider.setRequestInterceptor(function (element, operation, route, url) { + configurer.setRequestInterceptor(function (element, operation, route, url) { }); - RestangularProvider.addElementTransformer('accounts', false, function (elem) { + configurer.addElementTransformer('accounts', false, function (elem) { elem.accountName = 'Changed'; return elem; }); - - var myRestangular = Restangular.withConfig((configurer: RestangularProvider) => { - configurer.setBaseUrl('/api/v1'); - configurer.setExtraFields(['name']); - - configurer.setErrorInterceptor(function (response) { - console.error('' + response.status + ' ' + response.data); - }); - configurer.setResponseExtractor(function (response, operation) { - return response.data; - }); - configurer.setDefaultHttpFields({ cache: true }); - configurer.setMethodOverriders(["put", "patch"]); - - configurer.setRestangularFields({ - id: "_id", - route: "restangularRoute" - }); - - configurer.setRequestSuffix('.json'); - - configurer.setRequestInterceptor(function (element, operation, route, url) { - }); - - configurer.addElementTransformer('accounts', false, function (elem) { - elem.accountName = 'Changed'; - return elem; - }); - }); -} - -function test_withHttpConfig() { - var $scope; - Restangular.one('accounts', 123).withHttpConfig({timeout: 100}).getList('buildings'); - $scope.account = Restangular.one('accounts', 123); - $scope.account.withHttpConfig({timeout: 100}).put(); -} + }); +}); diff --git a/restangular/restangular.d.ts b/restangular/restangular.d.ts index 0cc4321afb..9fd397bf57 100644 --- a/restangular/restangular.d.ts +++ b/restangular/restangular.d.ts @@ -1,4 +1,4 @@ -// Type definitions for Restangular v1.2.2 +// Type definitions for Restangular v1.4.0 // Project: https://github.com/mgonto/restangular // Definitions by: Boris Yankov // Definitions: https://github.com/borisyankov/DefinitelyTyped @@ -6,7 +6,23 @@ /// -interface RestangularRequestConfig { + +declare module restangular { + + interface IPromise extends ng.IPromise { + call(methodName: string, params?: any): IPromise; + get(fieldName: string): IPromise; + $object: T; +} + + interface ICollectionPromise extends ng.IPromise { + push(object: any): ICollectionPromise; + call(methodName: string, params?: any): ICollectionPromise; + get(fieldName: string): ICollectionPromise; + $object: T[]; + } + + interface IRequestConfig { params?: any; headers?: any; cache?: any; @@ -15,81 +31,9 @@ interface RestangularRequestConfig { transformRequest?: any; transformResponse?: any; timeout?: any; // number | promise -} + } -interface Restangular extends RestangularCustom { - one(route: string, id?: number): RestangularElement; - one(route: string, id?: string): RestangularElement; - oneUrl(route: string, url: string): RestangularElement; - all(route: string): RestangularCollection; - allUrl(route: string, url: string): RestangularCollection; - copy(fromElement: any): RestangularElement; - withConfig(configurer: (RestangularProvider: RestangularProvider) => any): Restangular; - restangularizeElement(parent: any, element: any, route: string, collection?: any, reqParams?: any): RestangularElement; - restangularizeCollection(parent: any, element: any, route: string): RestangularCollection; - stripRestangular(element: any): any; -} - -interface RestangularElement extends Restangular { - get(queryParams?: any, headers?: any): ng.IPromise; - getList(subElement: any, queryParams?: any, headers?: any): ng.IPromise; - put(queryParams?: any, headers?: any): ng.IPromise; - post(subElement: any, elementToPost: any, queryParams?: any, headers?: any): ng.IPromise; - remove(queryParams?: any, headers?: any): ng.IPromise; - head(queryParams?: any, headers?: any): ng.IPromise; - trace(queryParams?: any, headers?: any): ng.IPromise; - options(queryParams?: any, headers?: any): ng.IPromise; - patch(queryParams?: any, headers?: any): ng.IPromise; - withHttpConfig(httpConfig: RestangularRequestConfig): RestangularElement; - getRestangularUrl(): string; -} - -interface RestangularCollection extends Restangular { - getList(queryParams?: any, headers?: any): ng.IPromise; - post(elementToPost: any, queryParams?: any, headers?: any): ng.IPromise; - head(queryParams?: any, headers?: any): ng.IPromise; - trace(queryParams?: any, headers?: any): ng.IPromise; - options(queryParams?: any, headers?: any): ng.IPromise; - patch(queryParams?: any, headers?: any): ng.IPromise; - putElement(idx: any, params: any, headers: any): ng.IPromise; - withHttpConfig(httpConfig: RestangularRequestConfig): RestangularCollection; - getRestangularUrl(): string; -} - -interface RestangularCustom { - customGET(path: string, params?: any, headers?: any): ng.IPromise; - customGETLIST(path: string, params?: any, headers?: any): ng.IPromise; - customDELETE(path: string, params?: any, headers?: any): ng.IPromise; - customPOST(elem?: any, path?: string, params?: any, headers?: any): ng.IPromise; - customPUT(elem?: any, path?: string, params?: any, headers?: any): ng.IPromise; - customOperation(operation: string, path: string, params?: any, headers?: any, elem?: any): ng.IPromise; - addRestangularMethod(name: string, operation: string, path?: string, params?: any, headers?: any, elem?: any): ng.IPromise; -} - -interface RestangularProvider { - setBaseUrl(baseUrl: string): void; - setExtraFields(fields: string[]): void; - setParentless(parentless: boolean, routes: string[]): void; - setDefaultHttpFields(httpFields: any): void; - addElementTransformer(route: string, transformer: Function): void; - addElementTransformer(route: string, isCollection: boolean, transformer: Function): void; - setOnElemRestangularized(callback: (elem: any, isCollection: boolean, what: string, restangular: Restangular) => any): void; - setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred) => any): void; - setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred) => any): void; - setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void; - setFullRequestInterceptor(fullRequestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any) => {element: any; headers: any; params: any}): void; - setErrorInterceptor(errorInterceptor: (response: RestangularResponse) => any): void; - setRestangularFields(fields: {[fieldName: string]: string}): void; - setMethodOverriders(overriders: string[]): void; - setDefaultRequestParams(params: any): void; - setDefaultRequestParams(methods: any, params: any): void; - setFullResponse(fullResponse: boolean): void; - setDefaultHeaders(headers: any): void; - setRequestSuffix(suffix: string): void; - setUseCannonicalId(useCannonicalId: boolean): void; -} - -interface RestangularResponse { + interface IResponse { status: number; data: any; config: { @@ -97,7 +41,85 @@ interface RestangularResponse { url: string; params: any; } -} + } -declare var Restangular: Restangular; -declare var RestangularProvider: RestangularProvider; + interface IProvider { + setBaseUrl(baseUrl: string): void; + setExtraFields(fields: string[]): void; + setParentless(parentless: boolean, routes: string[]): void; + setDefaultHttpFields(httpFields: any): void; + addElementTransformer(route: string, transformer: Function): void; + addElementTransformer(route: string, isCollection: boolean, transformer: Function): void; + setTransformOnlyServerElements(active: boolean): void; + setOnElemRestangularized(callback: (elem: any, isCollection: boolean, what: string, restangular: IService) => any): void; + setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: ng.IDeferred) => any): void; + setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: ng.IDeferred) => any): void; + addResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: ng.IDeferred) => any): void; + setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void; + addRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void; + setFullRequestInterceptor(fullRequestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any, httpConfig: IRequestConfig) => {element: any; headers: any; params: any}): void; + addFullRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any, httpConfig: IRequestConfig) => {headers: any; params: any; element: any; httpConfig: IRequestConfig}): void; + setErrorInterceptor(errorInterceptor: (response: IResponse, deferred: ng.IDeferred) => any): void; + setRestangularFields(fields: {[fieldName: string]: string}): void; + setMethodOverriders(overriders: string[]): void; + setJsonp(jsonp: boolean): void; + setDefaultRequestParams(params: any): void; + setDefaultRequestParams(method: string, params: any): void; + setDefaultRequestParams(methods: string[], params: any): void; + setFullResponse(fullResponse: boolean): void; + setDefaultHeaders(headers: any): void; + setRequestSuffix(suffix: string): void; + setUseCannonicalId(useCannonicalId: boolean): void; + setEncodeIds(encode: boolean): void; + } + + interface ICustom { + customGET(path: string, params?: any, headers?: any): IPromise; + customGETLIST(path: string, params?: any, headers?: any): ICollectionPromise; + customDELETE(path: string, params?: any, headers?: any): IPromise; + customPOST(elem?: any, path?: string, params?: any, headers?: any): IPromise; + customPUT(elem?: any, path?: string, params?: any, headers?: any): IPromise; + customOperation(operation: string, path: string, params?: any, headers?: any, elem?: any): IPromise; + addRestangularMethod(name: string, operation: string, path?: string, params?: any, headers?: any, elem?: any): IPromise; + } + + interface IService extends ICustom { + one(route: string, id?: number): IElement; + one(route: string, id?: string): IElement; + oneUrl(route: string, url: string): IElement; + all(route: string): IElement; + allUrl(route: string, url: string): IElement; + copy(fromElement: any): IElement; + withConfig(configurer: (RestangularProvider: IProvider) => any): IService; + restangularizeElement(parent: any, element: any, route: string, collection?: any, reqParams?: any): IElement; + restangularizeCollection(parent: any, element: any, route: string): ICollection; + stripRestangular(element: any): any; + } + + interface IElement extends IService { + get(queryParams?: any, headers?: any): IPromise; + getList(subElement?: any, queryParams?: any, headers?: any): ICollectionPromise; + put(queryParams?: any, headers?: any): IPromise; + post(subElement: any, elementToPost: any, queryParams?: any, headers?: any): IPromise; + post(elementToPost: any, queryParams?: any, headers?: any): IPromise; + remove(queryParams?: any, headers?: any): IPromise; + head(queryParams?: any, headers?: any): IPromise; + trace(queryParams?: any, headers?: any): IPromise; + options(queryParams?: any, headers?: any): IPromise; + patch(queryParams?: any, headers?: any): IPromise; + withHttpConfig(httpConfig: IRequestConfig): IElement; + getRestangularUrl(): string; + } + + interface ICollection extends IService { + getList(queryParams?: any, headers?: any): ICollectionPromise; + post(elementToPost: any, queryParams?: any, headers?: any): IPromise; + head(queryParams?: any, headers?: any): IPromise; + trace(queryParams?: any, headers?: any): IPromise; + options(queryParams?: any, headers?: any): IPromise; + patch(queryParams?: any, headers?: any): IPromise; + putElement(idx: any, params: any, headers: any): IPromise; + withHttpConfig(httpConfig: IRequestConfig): ICollection; + getRestangularUrl(): string; + } +} From 1d55f70e34b851d9bd2c9a855fb923e64db70ffb Mon Sep 17 00:00:00 2001 From: Anand Prakash Date: Sun, 27 Apr 2014 17:29:43 -0700 Subject: [PATCH 037/132] Fixed local, roaming and temp definitions on WinJS.Application object. These should be instances on IOHelper as defined in WinJS. --- winjs/winjs.d.ts | 161 +++++++++++++++-------------------------------- 1 file changed, 49 insertions(+), 112 deletions(-) diff --git a/winjs/winjs.d.ts b/winjs/winjs.d.ts index 20263a3bb9..d14238eeeb 100644 --- a/winjs/winjs.d.ts +++ b/winjs/winjs.d.ts @@ -25,7 +25,49 @@ and limitations under the License. **/ interface Element { winControl: any; // TODO: This should be control? -}/** +} + +/** + * Utility class for easy access to operations on application folders +**/ +interface IOHelper { + /** + * Instance of the currently wrapped application folder + **/ + folder: Windows.Storage.StorageFolder; + + /** + * Determines whether the specified file exists in the folder. + * @param filename The name of the file. + * @returns A promise that completes with a value of either true (if the file exists) or false. + **/ + exists(filename: string): WinJS.Promise; + + /** + * Reads the specified file. If the file doesn't exist, the specified default value is returned. + * @param fileName The file to read from. + * @param def The default value to be returned if the file failed to open. + * @returns A promise that completes with a value that is either the contents of the file, or the specified default value. + **/ + readText(fileName: string, def?: string): WinJS.Promise; + + /** + * Deletes a file from the folder. + * @param fileName The file to be deleted. + * @returns A promise that is fulfilled when the file has been deleted. + **/ + remove(fileName: string): WinJS.Promise; + + /** + * Writes the specified text to the specified file. + * @param fileName The name of the file. + * @param text The content to be written to the file. + * @returns A promise that completes with a value that is the number of characters written. + **/ + writeText(fileName: string, text: string): WinJS.Promise; +} + +/** * Provides application-level functionality, for example activation, storage, and application events. **/ declare module WinJS.Application { @@ -34,128 +76,23 @@ declare module WinJS.Application { /** * The local storage of the application. **/ - var local: { - //#region Methods - - /** - * Determines whether the specified file exists in the folder. - * @param filename The name of the file. - * @returns A promise that completes with a value of either true (if the file exists) or false. - **/ - exists(filename: string): Promise; - - /** - * Reads the specified file. If the file doesn't exist, the specified default value is returned. - * @param fileName The file to read from. - * @param def The default value to be returned if the file failed to open. - * @returns A promise that completes with a value that is either the contents of the file, or the specified default value. - **/ - readText(fileName: string, def?: string): Promise; - - /** - * Deletes a file from the folder. - * @param fileName The file to be deleted. - * @returns A promise that is fulfilled when the file has been deleted. - **/ - remove(fileName: string): Promise; - - /** - * Writes the specified text to the specified file. - * @param fileName The name of the file. - * @param text The content to be written to the file. - * @returns A promise that completes with a value that is the number of characters written. - **/ - writeText(fileName: string, text: string): Promise; - - //#endregion Methods - - }; + var local: IOHelper; /** * The roaming storage of the application. **/ - var roaming: { - //#region Methods + var roaming: IOHelper; - /** - * Determines whether the specified file exists in the folder. - * @param filename The name of the file. - * @returns A promise that completes with a value of either true (if the file exists) or false. - **/ - exists(filename: string): Promise; - - /** - * Reads the specified file. If the file doesn't exist, the specified default value is returned. - * @param fileName The file to read from. - * @param def The default value to be returned if the file failed to open. - * @returns A promise that completes with a value that is either the contents of the file, or the specified default value. - **/ - readText(fileName: string, def?: string): Promise; - - /** - * Deletes a file from the folder. - * @param fileName The file to be deleted. - * @returns A promise that is fulfilled when the file has been deleted. - **/ - remove(fileName: string): Promise; - - /** - * Writes the specified text to the specified file. - * @param fileName The name of the file. - * @param text The content to be written to the file. - * @returns A promise that completes with a value that is the number of characters written. - **/ - writeText(fileName: string, text: string): Promise; - - //#endregion Methods - - }; + /** + * The temp storage of the application. + **/ + var temp: IOHelper; /** * An object used for storing app information that can be used to restore the app's state after it has been suspended and then resumed. Data that can usefully be contained in this object includes the current navigation page or any information the user has added to the input controls on the page. You should not add information about customization (for example colors) or user-defined lists of content. **/ var sessionState: any; - /** - * The temp storage of the application. - **/ - var temp: { - //#region Methods - - /** - * Determines whether the specified file exists in the folder. - * @param filename The name of the file. - * @returns A promise that completes with a value of either true (if the file exists) or false. - **/ - exists(filename: string): Promise; - - /** - * Reads the specified file. If the file doesn't exist, the specified default value is returned. - * @param fileName The file to read from. - * @param def The default value to be returned if the file failed to open. - * @returns A promise that completes with a value that is either the contents of the file, or the specified default value. - **/ - readText(fileName: string, def?: string): Promise; - - /** - * Deletes a file from the folder. - * @param fileName The file to be deleted. - * @returns A promise that is fulfilled when the file has been deleted. - **/ - remove(fileName: string): Promise; - - /** - * Writes the specified text to the specified file. - * @param fileName The name of the file. - * @param text The text to write. - * @returns A Promise that completes with the number of bytes successfully written to the file. - **/ - writeText(fileName: string, text: string): Promise; - - //#endregion Methods - - }; - //#endregion Objects //#region Methods From 5051de332ff6c146df87526fe810f6b2d3313bd2 Mon Sep 17 00:00:00 2001 From: Anand Prakash Date: Sun, 27 Apr 2014 17:33:12 -0700 Subject: [PATCH 038/132] Changed QueryCollection to be an interface instead of class so that it can extend Array interface. In WinJS implementaion, QueryCollection extends Array and all Array members should be available on QueryCollection. --- winjs/winjs.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/winjs/winjs.d.ts b/winjs/winjs.d.ts index d14238eeeb..f58c11d12d 100644 --- a/winjs/winjs.d.ts +++ b/winjs/winjs.d.ts @@ -76,17 +76,17 @@ declare module WinJS.Application { /** * The local storage of the application. **/ - var local: IOHelper; + var local: IOHelper; /** * The roaming storage of the application. **/ - var roaming: IOHelper; + var roaming: IOHelper; /** * The temp storage of the application. **/ - var temp: IOHelper; + var temp: IOHelper; /** * An object used for storing app information that can be used to restore the app's state after it has been suspended and then resumed. Data that can usefully be contained in this object includes the current navigation page or any information the user has added to the input controls on the page. You should not add information about customization (for example colors) or user-defined lists of content. @@ -7904,7 +7904,7 @@ declare module WinJS.Utilities { /** * Represents the result of a query selector, and provides various operations that perform actions over the elements of the collection. **/ - class QueryCollection { + interface QueryCollection extends Array { //#region Constructors /** From bfe38c6de7878946433025a4b69e34f53dc6ffab Mon Sep 17 00:00:00 2001 From: Anand Prakash Date: Sun, 27 Apr 2014 17:35:19 -0700 Subject: [PATCH 039/132] Made element parameter optional in WinJS.Utilities.query as it is optional in WinJS implementation. See http://msdn.microsoft.com/en-us/library/windows/apps/br229847.aspx. --- winjs/winjs.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winjs/winjs.d.ts b/winjs/winjs.d.ts index f58c11d12d..a2e95e557f 100644 --- a/winjs/winjs.d.ts +++ b/winjs/winjs.d.ts @@ -8243,7 +8243,7 @@ declare module WinJS.Utilities { * @param element Optional. The root element at which to start the query. If this parameter is omitted, the scope of the query is the entire document. * @returns A QueryCollection with zero or one elements matching the specified selector query. **/ - function query(query: any, element: HTMLElement): QueryCollection; + function query(query: any, element?: HTMLElement): QueryCollection; /** * Ensures that the specified function executes only after the DOMContentLoaded event has fired for the current page. The DOMContentLoaded event occurs after the page has been parsed but before all the resources are loaded. From 63ae54c867e3123af911927e7b2eab4b7f89174c Mon Sep 17 00:00:00 2001 From: Anand Prakash Date: Sun, 27 Apr 2014 18:38:43 -0700 Subject: [PATCH 040/132] Added constructor support for QueryCollection interface --- winjs/winjs.d.ts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/winjs/winjs.d.ts b/winjs/winjs.d.ts index a2e95e557f..b5ded7a592 100644 --- a/winjs/winjs.d.ts +++ b/winjs/winjs.d.ts @@ -7905,17 +7905,6 @@ declare module WinJS.Utilities { * Represents the result of a query selector, and provides various operations that perform actions over the elements of the collection. **/ interface QueryCollection extends Array { - //#region Constructors - - /** - * Initializes a new instance of a QueryCollection. - * @constructor - * @param items The items resulting from the query. - **/ - constructor(items: T[]); - - //#endregion Constructors - //#region Methods /** @@ -8062,6 +8051,14 @@ declare module WinJS.Utilities { } + /** + * Constructor support for QueryCollection interface + **/ + export var QueryCollection: { + new (items: T[]): QueryCollection; + prototype: QueryCollection; + } + //#endregion Objects //#region Functions From 5b115418e10781bb8027913418dbc37129b5f15e Mon Sep 17 00:00:00 2001 From: Vladimir Kotikov Date: Mon, 28 Apr 2014 17:05:34 +0400 Subject: [PATCH 041/132] Cordova: multiple fixes * Rewrite ambiguous JSDoc comments if FileSystem.d.ts * Fixed typos & arguments order for ContactField constructor * Remove nonsense constructors in FileSystem.d.ts and Media.d.ts * Fixed typo in WebSQL.d.ts * Fixed repo hyperlink in WebSQL.d.ts --- cordova/plugins/Contacts.d.ts | 16 ++++++++-------- cordova/plugins/FileSystem.d.ts | 22 +++++----------------- cordova/plugins/Media.d.ts | 13 ------------- cordova/plugins/WebSQL.d.ts | 4 ++-- 4 files changed, 15 insertions(+), 40 deletions(-) diff --git a/cordova/plugins/Contacts.d.ts b/cordova/plugins/Contacts.d.ts index a6f7bc0868..f054c12d09 100644 --- a/cordova/plugins/Contacts.d.ts +++ b/cordova/plugins/Contacts.d.ts @@ -143,9 +143,9 @@ interface ContactName { /** The contact's middle name. */ middleName?: string; /** The contact's prefix (example Mr. or Dr.) */ - honorifixPrefix?: string; + honorificPrefix?: string; /** The contact's suffix (example Esq.). */ - honorifixSuffix?: string; + honorificSuffix?: string; } declare var ContactName: { @@ -154,8 +154,8 @@ declare var ContactName: { familyName?: string, givenName?: string, middleName?: string, - honorifixPrefix?: string, - honorifixSuffix?: string): ContactName + honorificPrefix?: string, + honorificSuffix?: string): ContactName }; /** @@ -171,19 +171,19 @@ declare var ContactName: { * contains a base64-encoded image string. */ interface ContactField { - /** Set to true if this ContactField contains the user's preferred value. */ - pref: boolean; /** A string that indicates what type of field this is, home for example. */ type: string; /** The value of the field, such as a phone number or email address. */ value: string; + /** Set to true if this ContactField contains the user's preferred value. */ + pref: boolean; } declare var ContactField: { /** Constructor for ContactField object */ new(type?: string, - pref?: boolean, - value?: string): ContactField + value?: string, + pref?: boolean): ContactField }; /** diff --git a/cordova/plugins/FileSystem.d.ts b/cordova/plugins/FileSystem.d.ts index 4aefa5ecfd..569f9a2096 100644 --- a/cordova/plugins/FileSystem.d.ts +++ b/cordova/plugins/FileSystem.d.ts @@ -25,17 +25,7 @@ interface Window { /** This interface represents a file system. */ interface FileSystem { - /** - * Constructor for FileSystem object - * @param name This is the name of the file system. The specifics of naming filesystems - * is unspecified, but a name must be unique across the list of exposed file systems. - * @param root The root directory of the file system. - */ - new (name: string, root: DirectoryEntry) - /** - * This is the name of the file system. The specifics of naming filesystems - * is unspecified, but a name must be unique across the list of exposed file systems. - */ + /* The name of the file system, unique across the list of exposed file systems. */ name: string; /** The root directory of the file system. */ root: DirectoryEntry; @@ -46,8 +36,6 @@ interface FileSystem { * each of which may be a File or DirectoryEntry. */ interface Entry { - /** Constructor for Entry object */ - new ( isFile: boolean, isDirectory: boolean, name: string, fullPath: string, fileSystem: FileSystem, nativeURL: string) ; /** Entry is a file. */ isFile: boolean; /** Entry is a directory. */ @@ -265,13 +253,13 @@ interface FileSaver extends EventTarget { */ interface FileWriter extends FileSaver { /** - * The byte offset at which the next write to the file will occur. This must be no greater than length. - * A newly-created FileWriter must have position set to 0. + * The byte offset at which the next write to the file will occur. This always less or equal than length. + * A newly-created FileWriter will have position set to 0. */ position: number; /** * The length of the file. If the user does not have read access to the file, - * this must be the highest byte offset at which the user has written. + * this will be the highest byte offset at which the user has written. */ length: number; /** @@ -287,7 +275,7 @@ interface FileWriter extends FileSaver { seek(offset: number): void; /** * Changes the length of the file to that specified. If shortening the file, data beyond the new length - * must be discarded. If extending the file, the existing data must be zero-padded up to the new length. + * will be discarded. If extending the file, the existing data will be zero-padded up to the new length. * @param size The size to which the length of the file is to be adjusted, measured in bytes. */ truncate(size: number): void; diff --git a/cordova/plugins/Media.d.ts b/cordova/plugins/Media.d.ts index 3751152be1..21d1a17e38 100644 --- a/cordova/plugins/Media.d.ts +++ b/cordova/plugins/Media.d.ts @@ -27,19 +27,6 @@ declare var Media: { * W3C specification and may deprecate the current APIs. */ interface Media { - /** - * Constructor for Media object. - * @param src A URI containing the audio content. - * @param mediaSuccess The callback that executes after a Media object has completed - * the current play, record, or stop action. - * @param mediaError The callback that executes if an error occurs. - * @param mediaStatus The callback that executes to indicate status changes. - */ - new ( - src: string, - mediaSuccess: () => void, - mediaError?: (error: MediaError) => any, - mediaStatus?: (status: number) => void): Media; /** * Returns the current position within an audio file. Also updates the Media object's position parameter. * @param mediaSuccess The callback that is passed the current position in seconds. diff --git a/cordova/plugins/WebSQL.d.ts b/cordova/plugins/WebSQL.d.ts index 807dab42a7..8d28a69c8f 100644 --- a/cordova/plugins/WebSQL.d.ts +++ b/cordova/plugins/WebSQL.d.ts @@ -1,5 +1,5 @@ // Type definitions for Apache Cordova WebSQL plugin. -// Project: https://github.com/sgrebnov/cordova-plugin-websql +// Project: https://github.com/MSOpenTech/cordova-plugin-websql // Definitions by: Microsoft Open Technologies, Inc. // Definitions: https://github.com/borisyankov/DefinitelyTyped // @@ -43,7 +43,7 @@ interface Database { successCallback?: () => void): void; name: string; version: string; - displayname: string; + displayName: string; size: number; } From 5bf0b7f456cb80c2f9dd3436e1b5c8c89e954652 Mon Sep 17 00:00:00 2001 From: Seon-Wook Park Date: Mon, 28 Apr 2014 17:08:47 +0200 Subject: [PATCH 042/132] noble: Remove vim comments --- noble/noble-tests.ts | 1 - noble/noble.d.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/noble/noble-tests.ts b/noble/noble-tests.ts index 3e7b4afaf9..46851ab523 100644 --- a/noble/noble-tests.ts +++ b/noble/noble-tests.ts @@ -80,4 +80,3 @@ descriptor.writeValue(new Buffer(1), (error: string): void => {}); descriptor.on("valueRead", (error: string, data: NodeBuffer): void => {}); descriptor.on("valueWrite", (error: string): void => {}); -// vim expandtab shiftwidth=4 diff --git a/noble/noble.d.ts b/noble/noble.d.ts index 20259f0a7c..f9c833bd13 100644 --- a/noble/noble.d.ts +++ b/noble/noble.d.ts @@ -104,4 +104,3 @@ declare module "noble" { } } -// vim expandtab shiftwidth=4 From 1d451a05e18067cfc61414685f70115cdab0dd97 Mon Sep 17 00:00:00 2001 From: Paul Loyd Date: Sun, 6 Apr 2014 18:23:39 +0400 Subject: [PATCH 043/132] node: NodeBuffer -> Buffer. Mark NodeBuffer as deprecated --- buffer-equal/buffer-equal-tests.ts | 2 +- buffer-equal/buffer-equal.d.ts | 2 +- couchbase/couchbase.d.ts | 8 +- graceful-fs/graceful-fs-tests.ts | 2 +- gruntjs/gruntjs.d.ts | 10 +- node-ffi/node-ffi.d.ts | 180 ++++++++++++++--------------- node/node-0.8.8.d.ts | 80 ++++++------- node/node-tests.ts | 2 +- node/node.d.ts | 131 +++++++++++---------- q-io/Q-io-tests.ts | 8 +- q-io/Q-io.d.ts | 28 ++--- superagent/superagent.d.ts | 2 +- websocket/websocket.d.ts | 40 +++---- ws/ws.d.ts | 2 +- 14 files changed, 251 insertions(+), 246 deletions(-) diff --git a/buffer-equal/buffer-equal-tests.ts b/buffer-equal/buffer-equal-tests.ts index 743ed187ec..192051ab47 100644 --- a/buffer-equal/buffer-equal-tests.ts +++ b/buffer-equal/buffer-equal-tests.ts @@ -3,6 +3,6 @@ import bufferEqual = require('buffer-equal'); var bool: boolean; -var buf: NodeBuffer; +var buf: Buffer; bool = bufferEqual(buf, buf); diff --git a/buffer-equal/buffer-equal.d.ts b/buffer-equal/buffer-equal.d.ts index bc8b1ce28e..5f671662dc 100644 --- a/buffer-equal/buffer-equal.d.ts +++ b/buffer-equal/buffer-equal.d.ts @@ -6,6 +6,6 @@ /// declare module 'buffer-equal' { - function bufferEqual(actual:NodeBuffer, expected:NodeBuffer): boolean; + function bufferEqual(actual:Buffer, expected:Buffer): boolean; export = bufferEqual; } diff --git a/couchbase/couchbase.d.ts b/couchbase/couchbase.d.ts index 2b0a720a93..3a8605b731 100644 --- a/couchbase/couchbase.d.ts +++ b/couchbase/couchbase.d.ts @@ -648,8 +648,8 @@ declare module 'couchbase' { append(key: string, fragment: string, callback: KeyCallback): void; append(key: string, fragment: string, options: AppendOptions, callback: KeyCallback): void; - append(key: string, fragment: NodeBuffer, callback: KeyCallback): void; - append(key: string, fragment: NodeBuffer, options: AppendOptions, callback: KeyCallback): void; + append(key: string, fragment: Buffer, callback: KeyCallback): void; + append(key: string, fragment: Buffer, options: AppendOptions, callback: KeyCallback): void; appendMulti(kv: { [key: string]: AppendMultiOptionsForValue }, options: AppendMultiOptions, callback: MultiCallback): void; decr(key: string, callback: KeyCallback): void; @@ -683,8 +683,8 @@ declare module 'couchbase' { prepend(key: string, fragment: string, callback: KeyCallback): void; prepend(key: string, fragment: string, options: PrependOptions, callback: KeyCallback): void; - prepend(key: string, fragment: NodeBuffer, callback: KeyCallback): void; - prepend(key: string, fragment: NodeBuffer, options: PrependOptions, callback: KeyCallback): void; + prepend(key: string, fragment: Buffer, callback: KeyCallback): void; + prepend(key: string, fragment: Buffer, options: PrependOptions, callback: KeyCallback): void; prependMulti(kv: { [key: string]: PrependMultiOptionsFoValue }, options: { [key: string]: PrependMultiOptions }, callback: MultiCallback): void; remove(key: string, callback: KeyCallback): void; diff --git a/graceful-fs/graceful-fs-tests.ts b/graceful-fs/graceful-fs-tests.ts index ca0a5e7b83..5c9bb19aec 100644 --- a/graceful-fs/graceful-fs-tests.ts +++ b/graceful-fs/graceful-fs-tests.ts @@ -3,6 +3,6 @@ import fs = require('graceful-fs'); var str: string; -var buf: NodeBuffer; +var buf: Buffer; fs.renameSync(str, str); \ No newline at end of file diff --git a/gruntjs/gruntjs.d.ts b/gruntjs/gruntjs.d.ts index 2bf0d91b47..86923c56ec 100644 --- a/gruntjs/gruntjs.d.ts +++ b/gruntjs/gruntjs.d.ts @@ -336,7 +336,7 @@ declare module grunt { * whose return value will be used as the destination file's contents. If * this function returns `false`, the file copy will be aborted. */ - process?: (buffer: NodeBuffer) => boolean + process?: (buffer: Buffer) => boolean } /** @@ -370,21 +370,21 @@ declare module grunt { * Returns a string, unless options.encoding is null in which case it returns a Buffer. */ read(filepath: string): string - read(filepath: string, options: IFileEncodedOption): NodeBuffer + read(filepath: string, options: IFileEncodedOption): Buffer /** * Read a file's contents, parsing the data as JSON and returning the result. * @see FileModule.read for a list of supported options. */ readJSON(filepath: string): any - readJSON(filepath: string, options: IFileEncodedOption): NodeBuffer + readJSON(filepath: string, options: IFileEncodedOption): Buffer /** * Read a file's contents, parsing the data as YAML and returning the result. * @see FileModule.read for a list of supported options. */ readYAML(filepath: string): any - readYAML(filepath: string, options: IFileEncodedOption): NodeBuffer + readYAML(filepath: string, options: IFileEncodedOption): Buffer /** * Write the specified contents to a file, creating intermediate directories if necessary. @@ -394,7 +394,7 @@ declare module grunt { * @param options If an encoding is not specified, default to grunt.file.defaultEncoding. */ write(filepath: string, contents: string, options?: IFileEncodedOption): void - write(filepath: string, contents: NodeBuffer): void + write(filepath: string, contents: Buffer): void /** * Copy a source file to a destination path, creating intermediate directories if necessary. diff --git a/node-ffi/node-ffi.d.ts b/node-ffi/node-ffi.d.ts index 957cf5793e..e5ee74621b 100644 --- a/node-ffi/node-ffi.d.ts +++ b/node-ffi/node-ffi.d.ts @@ -38,13 +38,13 @@ declare module "ffi" { /** The type of arguments. */ argTypes: ref.Type[]; /** Is set for node-ffi functions. */ - ffi_type: NodeBuffer; + ffi_type: Buffer; abi: number; /** Get a `Callback` pointer of this function type. */ - toPointer(fn: (...args: any[]) => any): NodeBuffer; + toPointer(fn: (...args: any[]) => any): Buffer; /** Get a `ForeignFunction` of this function type. */ - toFunction(buf: NodeBuffer): ForeignFunction; + toFunction(buf: Buffer): ForeignFunction; } /** Creates and returns a type for a C function pointer. */ @@ -67,10 +67,10 @@ declare module "ffi" { * execution. */ export var ForeignFunction: { - new (ptr: NodeBuffer, retType: ref.Type, argTypes: any[], abi?: number): ForeignFunction; - new (ptr: NodeBuffer, retType: string, argTypes: any[], abi?: number): ForeignFunction; - (ptr: NodeBuffer, retType: ref.Type, argTypes: any[], abi?: number): ForeignFunction; - (ptr: NodeBuffer, retType: string, argTypes: any[], abi?: number): ForeignFunction; + new (ptr: Buffer, retType: ref.Type, argTypes: any[], abi?: number): ForeignFunction; + new (ptr: Buffer, retType: string, argTypes: any[], abi?: number): ForeignFunction; + (ptr: Buffer, retType: ref.Type, argTypes: any[], abi?: number): ForeignFunction; + (ptr: Buffer, retType: string, argTypes: any[], abi?: number): ForeignFunction; } export interface VariadicForeignFunction { @@ -96,17 +96,17 @@ declare module "ffi" { * contain the same ffi_type argument signature. */ export var VariadicForeignFunction: { - new (ptr: NodeBuffer, ret: ref.Type, fixedArgs: any[], abi?: number): VariadicForeignFunction; - new (ptr: NodeBuffer, ret: string, fixedArgs: any[], abi?: number): VariadicForeignFunction; - (ptr: NodeBuffer, ret: ref.Type, fixedArgs: any[], abi?: number): VariadicForeignFunction; - (ptr: NodeBuffer, ret: string, fixedArgs: any[], abi?: number): VariadicForeignFunction; + new (ptr: Buffer, ret: ref.Type, fixedArgs: any[], abi?: number): VariadicForeignFunction; + new (ptr: Buffer, ret: string, fixedArgs: any[], abi?: number): VariadicForeignFunction; + (ptr: Buffer, ret: ref.Type, fixedArgs: any[], abi?: number): VariadicForeignFunction; + (ptr: Buffer, ret: string, fixedArgs: any[], abi?: number): VariadicForeignFunction; }; export interface DynamicLibrary { /** Close library, returns the result of the `dlclose` system function. */ close(): number; /** Get a symbol from this library. */ - get(symbol: string): NodeBuffer; + get(symbol: string): Buffer; /** Get the result of the `dlerror` system function. */ error(): string; } @@ -126,8 +126,8 @@ declare module "ffi" { RTLD_GLOBAL: number; RTLD_NOLOAD: number; RTLD_NODELETE: number; - RTLD_NEXT: NodeBuffer; - RTLD_DEFAUL: NodeBuffer; + RTLD_NEXT: Buffer; + RTLD_DEFAUL: Buffer; } new (path?: string, mode?: number): DynamicLibrary; @@ -140,24 +140,24 @@ declare module "ffi" { * accept C callback functions. */ export var Callback: { - new (retType: any, argTypes: any[], abi: number, fn: any): NodeBuffer; - new (retType: any, argTypes: any[], fn: any): NodeBuffer; - (retType: any, argTypes: any[], abi: number, fn: any): NodeBuffer; - (retType: any, argTypes: any[], fn: any): NodeBuffer; + new (retType: any, argTypes: any[], abi: number, fn: any): Buffer; + new (retType: any, argTypes: any[], fn: any): Buffer; + (retType: any, argTypes: any[], abi: number, fn: any): Buffer; + (retType: any, argTypes: any[], fn: any): Buffer; } export var ffiType: { /** Get a `ffi_type *` Buffer appropriate for the given type. */ - (type: ref.Type): NodeBuffer + (type: ref.Type): Buffer /** Get a `ffi_type *` Buffer appropriate for the given type. */ - (type: string): NodeBuffer + (type: string): Buffer FFI_TYPE: StructType; } - export var CIF: (retType: any, types: any[], abi?: any) => NodeBuffer - export var CIF_var: (retType: any, types: any[], numFixedArgs: number, abi?: any) => NodeBuffer; + export var CIF: (retType: any, types: any[], abi?: any) => Buffer + export var CIF_var: (retType: any, types: any[], numFixedArgs: number, abi?: any) => Buffer; export var HAS_OBJC: boolean; - export var FFI_TYPES: {[key: string]: NodeBuffer}; + export var FFI_TYPES: {[key: string]: Buffer}; export var FFI_OK: number; export var FFI_BAD_TYPEDEF: number; export var FFI_BAD_ABI: number; @@ -172,8 +172,8 @@ declare module "ffi" { export var RTLD_GLOBAL: number; export var RTLD_NOLOAD: number; export var RTLD_NODELETE: number; - export var RTLD_NEXT: NodeBuffer; - export var RTLD_DEFAULT: NodeBuffer; + export var RTLD_NEXT: Buffer; + export var RTLD_DEFAULT: Buffer; export var LIB_EXT: string; export var FFI_TYPE: StructType; @@ -198,9 +198,9 @@ declare module "ref" { /** The current level of indirection of the buffer. */ indirection: number; /** To invoke when `ref.get` is invoked on a buffer of this type. */ - get(buffer: NodeBuffer, offset: number): any; + get(buffer: Buffer, offset: number): any; /** To invoke when `ref.set` is invoked on a buffer of this type. */ - set(buffer: NodeBuffer, offset: number, value: any): void; + set(buffer: Buffer, offset: number, value: any): void; /** The name to use during debugging for this datatype. */ name?: string; /** The alignment of this datatype when placed inside a struct. */ @@ -208,22 +208,22 @@ declare module "ref" { } /** A Buffer that references the C NULL pointer. */ - export var NULL: NodeBuffer; + export var NULL: Buffer; /** A pointer-sized buffer pointing to NULL. */ - export var NULL_POINTER: NodeBuffer; + export var NULL_POINTER: Buffer; /** Get the memory address of buffer. */ - export function address(buffer: NodeBuffer): number; + export function address(buffer: Buffer): number; /** Allocate the memory with the given value written to it. */ - export function alloc(type: Type, value?: any): NodeBuffer; + export function alloc(type: Type, value?: any): Buffer; /** Allocate the memory with the given value written to it. */ - export function alloc(type: string, value?: any): NodeBuffer; + export function alloc(type: string, value?: any): Buffer; /** * Allocate the memory with the given string written to it with the given * encoding (defaults to utf8). The buffer is 1 byte longer than the * string itself, and is NULL terminated. */ - export function allocCString(string: string, encoding?: string): NodeBuffer; + export function allocCString(string: string, encoding?: string): Buffer; /** Coerce a type.*/ export function coerceType(type: Type): Type; @@ -236,7 +236,7 @@ declare module "ref" { * if it's greater than 1 then it merely returns another Buffer, but with * one level less indirection. */ - export function deref(buffer: NodeBuffer): any; + export function deref(buffer: Buffer): any; /** Create clone of the type, with decremented indirection level by 1. */ export function derefType(type: Type): Type; @@ -245,51 +245,51 @@ declare module "ref" { /** Represents the native endianness of the processor ("LE" or "BE"). */ export var endianness: string; /** Check the indirection level and return a dereferenced when necessary. */ - export function get(buffer: NodeBuffer, offset?: number, type?: Type): any; + export function get(buffer: Buffer, offset?: number, type?: Type): any; /** Check the indirection level and return a dereferenced when necessary. */ - export function get(buffer: NodeBuffer, offset?: number, type?: string): any; + export function get(buffer: Buffer, offset?: number, type?: string): any; /** Get type of the buffer. Create a default type when none exists. */ - export function getType(buffer: NodeBuffer): Type; + export function getType(buffer: Buffer): Type; /** Check the NULL. */ - export function isNull(buffer: NodeBuffer): boolean; + export function isNull(buffer: Buffer): boolean; /** Read C string until the first NULL. */ - export function readCString(buffer: NodeBuffer, offset?: number): string; + export function readCString(buffer: Buffer, offset?: number): string; /** * Read a big-endian signed 64-bit int. * If there is losing precision, then return a string, otherwise a number. * @return {number|string} */ - export function readInt64BE(buffer: NodeBuffer, offset?: number): any; + export function readInt64BE(buffer: Buffer, offset?: number): any; /** * Read a little-endian signed 64-bit int. * If there is losing precision, then return a string, otherwise a number. * @return {number|string} */ - export function readInt64LE(buffer: NodeBuffer, offset?: number): any; + export function readInt64LE(buffer: Buffer, offset?: number): any; /** Read a JS Object that has previously been written. */ - export function readObject(buffer: NodeBuffer, offset?: number): Object; + export function readObject(buffer: Buffer, offset?: number): Object; /** Read data from the pointer. */ - export function readPointer(buffer: NodeBuffer, offset?: number, - length?: number): NodeBuffer; + export function readPointer(buffer: Buffer, offset?: number, + length?: number): Buffer; /** * Read a big-endian unsigned 64-bit int. * If there is losing precision, then return a string, otherwise a number. * @return {number|string} */ - export function readUInt64BE(buffer: NodeBuffer, offset?: number): any; + export function readUInt64BE(buffer: Buffer, offset?: number): any; /** * Read a little-endian unsigned 64-bit int. * If there is losing precision, then return a string, otherwise a number. * @return {number|string} */ - export function readUInt64LE(buffer: NodeBuffer, offset?: number): any; + export function readUInt64LE(buffer: Buffer, offset?: number): any; /** Create pointer to buffer. */ - export function ref(buffer: NodeBuffer): NodeBuffer; + export function ref(buffer: Buffer): Buffer; /** Create clone of the type, with incremented indirection level by 1. */ export function refType(type: Type): Type; /** Create clone of the type, with incremented indirection level by 1. */ @@ -300,66 +300,66 @@ declare module "ref" { * This function "attaches" source to the returned buffer to prevent it from * being garbage collected. */ - export function reinterpret(buffer: NodeBuffer, size: number, - offset?: number): NodeBuffer; + export function reinterpret(buffer: Buffer, size: number, + offset?: number): Buffer; /** * Scan past the boundary of the buffer's length until it finds size number * of aligned NULL bytes. */ - export function reinterpretUntilZeros(buffer: NodeBuffer, size: number, - offset?: number): NodeBuffer; + export function reinterpretUntilZeros(buffer: Buffer, size: number, + offset?: number): Buffer; /** Write pointer if the indirection is 1, otherwise write value. */ - export function set(buffer: NodeBuffer, offset: number, value: any, type?: Type): void; + export function set(buffer: Buffer, offset: number, value: any, type?: Type): void; /** Write pointer if the indirection is 1, otherwise write value. */ - export function set(buffer: NodeBuffer, offset: number, value: any, type?: string): void; + export function set(buffer: Buffer, offset: number, value: any, type?: string): void; /** Write the string as a NULL terminated. Default encoding is utf8. */ - export function writeCString(buffer: NodeBuffer, offset: number, + export function writeCString(buffer: Buffer, offset: number, string: string, encoding?: string): void; /** Write a big-endian signed 64-bit int. */ - export function writeInt64BE(buffer: NodeBuffer, offset: number, input: number): void; + export function writeInt64BE(buffer: Buffer, offset: number, input: number): void; /** Write a big-endian signed 64-bit int. */ - export function writeInt64BE(buffer: NodeBuffer, offset: number, input: string): void; + export function writeInt64BE(buffer: Buffer, offset: number, input: string): void; /** Write a little-endian signed 64-bit int. */ - export function writeInt64LE(buffer: NodeBuffer, offset: number, input: number): void; + export function writeInt64LE(buffer: Buffer, offset: number, input: number): void; /** Write a little-endian signed 64-bit int. */ - export function writeInt64LE(buffer: NodeBuffer, offset: number, input: string): void; + export function writeInt64LE(buffer: Buffer, offset: number, input: string): void; /** * Write the JS Object. This function "attaches" object to buffer to prevent * it from being garbage collected. */ - export function writeObject(buffer: NodeBuffer, offset: number, object: Object): void; + export function writeObject(buffer: Buffer, offset: number, object: Object): void; /** * Write the memory address of pointer to buffer at the specified offset. This * function "attaches" object to buffer to prevent it from being garbage collected. */ - export function writePointer(buffer: NodeBuffer, offset: number, - pointer: NodeBuffer): void; + export function writePointer(buffer: Buffer, offset: number, + pointer: Buffer): void; /** Write a little-endian unsigned 64-bit int. */ - export function writeUInt64BE(buffer: NodeBuffer, offset: number, input: number): void; + export function writeUInt64BE(buffer: Buffer, offset: number, input: number): void; /** Write a little-endian unsigned 64-bit int. */ - export function writeUInt64BE(buffer: NodeBuffer, offset: number, input: string): void; + export function writeUInt64BE(buffer: Buffer, offset: number, input: string): void; /** * Attach object to buffer such. * It prevents object from being garbage collected until buffer does. */ - export function _attach(buffer: NodeBuffer, object: Object): void; + export function _attach(buffer: Buffer, object: Object): void; /** Same as ref.reinterpret, except that this version does not attach buffer. */ - export function _reinterpret(buffer: NodeBuffer, size: number, - offset?: number): NodeBuffer; + export function _reinterpret(buffer: Buffer, size: number, + offset?: number): Buffer; /** Same as ref.reinterpretUntilZeros, except that this version does not attach buffer. */ - export function _reinterpretUntilZeros(buffer: NodeBuffer, size: number, - offset?: number): NodeBuffer; + export function _reinterpretUntilZeros(buffer: Buffer, size: number, + offset?: number): Buffer; /** Same as ref.writePointer, except that this version does not attach pointer. */ - export function _writePointer(buffer: NodeBuffer, offset: number, - pointer: NodeBuffer): void; + export function _writePointer(buffer: Buffer, offset: number, + pointer: Buffer): void; /** Same as ref.writeObject, except that this version does not attach object. */ - export function _writeObject(buffer: NodeBuffer, offset: number, object: Object): void; + export function _writeObject(buffer: Buffer, offset: number, object: Object): void; /** Default types. */ export var types: { @@ -375,7 +375,7 @@ declare module "ref" { }; } -interface NodeBuffer { +interface Buffer { /** Shorthand for `ref.address`. */ address(): number; /** Shorthand for `ref.deref`. */ @@ -397,11 +397,11 @@ interface NodeBuffer { /** Shorthand for `ref.readUInt64LE`. */ readUInt64LE(offset?: number): string; /** Shorthand for `ref.ref`. */ - ref(): NodeBuffer; + ref(): Buffer; /** Shorthand for `ref.reinterpret`. */ - reinterpret(size: number, offset?: number): NodeBuffer; + reinterpret(size: number, offset?: number): Buffer; /** Shorthand for `ref.reinterpretUntilZeros`. */ - reinterpretUntilZeros(size: number, offset?: number): NodeBuffer; + reinterpretUntilZeros(size: number, offset?: number): Buffer; /** Shorthand for `ref.writeCString`. */ writeCString(offset: number, string: string, encoding?: string): void; /** Shorthand for `ref.writeInt64BE`. */ @@ -415,7 +415,7 @@ interface NodeBuffer { /** Shorthand for `ref.writeObject`. */ writeObject(offset: number, object: Object): void; /** Shorthand for `ref.writePointer`. */ - writePointer(offset: number, pointer: NodeBuffer): void; + writePointer(offset: number, pointer: Buffer): void; /** Shorthand for `ref.writeUInt64BE`. */ writeUInt64BE(offset: number, input: number): any; /** Shorthand for `ref.writeUInt64BE`. */ @@ -447,21 +447,21 @@ declare module "ref-array" { * for the ArrayType. The "length" of the Array is determined by searching * through the buffer's contents until an aligned NULL pointer is encountered. */ - untilZeros(buffer: NodeBuffer): { [i: number]: T; length: number; toArray(): T[]; - toJSON(): T[]; inspect(): string; buffer: NodeBuffer; ref(): NodeBuffer; }; + untilZeros(buffer: Buffer): { [i: number]: T; length: number; toArray(): T[]; + toJSON(): T[]; inspect(): string; buffer: Buffer; ref(): Buffer; }; new (length?: number): { [i: number]: T; length: number; toArray(): T[]; - toJSON(): T[]; inspect(): string; buffer: NodeBuffer; ref(): NodeBuffer; }; + toJSON(): T[]; inspect(): string; buffer: Buffer; ref(): Buffer; }; new (data: number[], length?: number): { [i: number]: T; length: number; toArray(): T[]; - toJSON(): T[]; inspect(): string; buffer: NodeBuffer; ref(): NodeBuffer; }; - new (data: NodeBuffer, length?: number): { [i: number]: T; length: number; toArray(): T[]; - toJSON(): T[]; inspect(): string; buffer: NodeBuffer; ref(): NodeBuffer; }; + toJSON(): T[]; inspect(): string; buffer: Buffer; ref(): Buffer; }; + new (data: Buffer, length?: number): { [i: number]: T; length: number; toArray(): T[]; + toJSON(): T[]; inspect(): string; buffer: Buffer; ref(): Buffer; }; (length?: number): { [i: number]: T; length: number; toArray(): T[]; - toJSON(): T[]; inspect(): string; buffer: NodeBuffer; ref(): NodeBuffer; }; + toJSON(): T[]; inspect(): string; buffer: Buffer; ref(): Buffer; }; (data: number[], length?: number): { [i: number]: T; length: number; toArray(): T[]; - toJSON(): T[]; inspect(): string; buffer: NodeBuffer; ref(): NodeBuffer; }; - (data: NodeBuffer, length?: number): { [i: number]: T; length: number; toArray(): T[]; - toJSON(): T[]; inspect(): string; buffer: NodeBuffer; ref(): NodeBuffer; }; + toJSON(): T[]; inspect(): string; buffer: Buffer; ref(): Buffer; }; + (data: Buffer, length?: number): { [i: number]: T; length: number; toArray(): T[]; + toJSON(): T[]; inspect(): string; buffer: Buffer; ref(): Buffer; }; } /** @@ -494,10 +494,10 @@ declare module "ref-struct" { */ interface StructType extends ref.Type { /** Pass it an existing Buffer instance to use that as the backing buffer. */ - new (arg: NodeBuffer, data?: {}): any; + new (arg: Buffer, data?: {}): any; new (data?: {}): any; /** Pass it an existing Buffer instance to use that as the backing buffer. */ - (arg: NodeBuffer, data?: {}): any; + (arg: Buffer, data?: {}): any; (data?: {}): any; fields: {[key: string]: {type: ref.Type}}; @@ -551,10 +551,10 @@ declare module "ref-union" { */ interface UnionType extends ref.Type { /** Pass it an existing Buffer instance to use that as the backing buffer. */ - new (arg: NodeBuffer, data?: {}): any; + new (arg: Buffer, data?: {}): any; new (data?: {}): any; /** Pass it an existing Buffer instance to use that as the backing buffer. */ - (arg: NodeBuffer, data?: {}): any; + (arg: Buffer, data?: {}): any; (data?: {}): any; fields: {[key: string]: {type: ref.Type}}; diff --git a/node/node-0.8.8.d.ts b/node/node-0.8.8.d.ts index 39f02a53a6..7a1abbae31 100644 --- a/node/node-0.8.8.d.ts +++ b/node/node-0.8.8.d.ts @@ -44,22 +44,22 @@ declare var module: { // Same as module.exports declare var exports: any; declare var SlowBuffer: { - new (str: string, encoding?: string): NodeBuffer; - new (size: number): NodeBuffer; - new (array: any[]): NodeBuffer; - prototype: NodeBuffer; + new (str: string, encoding?: string): Buffer; + new (size: number): Buffer; + new (array: any[]): Buffer; + prototype: Buffer; isBuffer(obj: any): boolean; byteLength(string: string, encoding?: string): number; - concat(list: NodeBuffer[], totalLength?: number): NodeBuffer; + concat(list: Buffer[], totalLength?: number): Buffer; }; declare var Buffer: { - new (str: string, encoding?: string): NodeBuffer; - new (size: number): NodeBuffer; - new (array: any[]): NodeBuffer; - prototype: NodeBuffer; + new (str: string, encoding?: string): Buffer; + new (size: number): Buffer; + new (array: any[]): Buffer; + prototype: Buffer; isBuffer(obj: any): boolean; byteLength(string: string, encoding?: string): number; - concat(list: NodeBuffer[], totalLength?: number): NodeBuffer; + concat(list: Buffer[], totalLength?: number): Buffer; } /************************************************ @@ -82,10 +82,10 @@ interface EventEmitter { interface WritableStream extends EventEmitter { writable: boolean; write(str: string, encoding?: string, fd?: string): boolean; - write(buffer: NodeBuffer): boolean; + write(buffer: Buffer): boolean; end(): void; end(str: string, enconding: string): void; - end(buffer: NodeBuffer): void; + end(buffer: Buffer): void; destroy(): void; destroySoon(): void; } @@ -155,13 +155,13 @@ interface NodeProcess extends EventEmitter { } // Buffer class -interface NodeBuffer { +interface Buffer { [index: number]: number; write(string: string, offset?: number, length?: number, encoding?: string): number; toString(encoding?: string, start?: number, end?: number): string; length: number; - copy(targetBuffer: NodeBuffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; - slice(start?: number, end?: number): NodeBuffer; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; readUInt8(offset: number, noAsset?: boolean): number; readUInt16LE(offset: number, noAssert?: boolean): number; readUInt16BE(offset: number, noAssert?: boolean): number; @@ -247,7 +247,7 @@ declare module "http" { export interface ServerResponse extends events.NodeEventEmitter, stream.WritableStream { // Extended base methods write(str: string, encoding?: string, fd?: string): boolean; - write(buffer: NodeBuffer): boolean; + write(buffer: Buffer): boolean; writeContinue(): void; writeHead(statusCode: number, reasonPhrase?: string, headers?: any): void; @@ -264,7 +264,7 @@ declare module "http" { export interface ClientRequest extends events.NodeEventEmitter, stream.WritableStream { // Extended base methods write(str: string, encoding?: string, fd?: string): boolean; - write(buffer: NodeBuffer): boolean; + write(buffer: Buffer): boolean; write(chunk: any, encoding?: string): void; end(data?: any, encoding?: string): void; @@ -349,13 +349,13 @@ declare module "zlib" { export function createInflateRaw(options: ZlibOptions): InflateRaw; export function createUnzip(options: ZlibOptions): Unzip; - export function deflate(buf: NodeBuffer, callback: (error: Error, result) =>void ): void; - export function deflateRaw(buf: NodeBuffer, callback: (error: Error, result) =>void ): void; - export function gzip(buf: NodeBuffer, callback: (error: Error, result) =>void ): void; - export function gunzip(buf: NodeBuffer, callback: (error: Error, result) =>void ): void; - export function inflate(buf: NodeBuffer, callback: (error: Error, result) =>void ): void; - export function inflateRaw(buf: NodeBuffer, callback: (error: Error, result) =>void ): void; - export function unzip(buf: NodeBuffer, callback: (error: Error, result) =>void ): void; + export function deflate(buf: Buffer, callback: (error: Error, result) =>void ): void; + export function deflateRaw(buf: Buffer, callback: (error: Error, result) =>void ): void; + export function gzip(buf: Buffer, callback: (error: Error, result) =>void ): void; + export function gunzip(buf: Buffer, callback: (error: Error, result) =>void ): void; + export function inflate(buf: Buffer, callback: (error: Error, result) =>void ): void; + export function inflateRaw(buf: Buffer, callback: (error: Error, result) =>void ): void; + export function unzip(buf: Buffer, callback: (error: Error, result) =>void ): void; // Constants export var Z_NO_FLUSH: number; @@ -556,8 +556,8 @@ declare module "child_process" { timeout?: number; maxBuffer?: number; killSignal?: string; - }, callback: (error: Error, stdout: NodeBuffer, stderr: NodeBuffer) =>void ): ChildProcess; - export function exec(command: string, callback: (error: Error, stdout: NodeBuffer, stderr: NodeBuffer) =>void ): ChildProcess; + }, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess; + export function exec(command: string, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess; export function execFile(file: string, args: string[], options: { cwd?: string; stdio?: any; @@ -567,7 +567,7 @@ declare module "child_process" { timeout?: number; maxBuffer?: string; killSignal?: string; - }, callback: (error: Error, stdout: NodeBuffer, stderr: NodeBuffer) =>void ): ChildProcess; + }, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess; export function fork(modulePath: string, args?: string[], options?: { cwd?: string; env?: any; @@ -615,7 +615,7 @@ declare module "net" { export interface NodeSocket extends stream.ReadWriteStream { // Extended base methods write(str: string, encoding?: string, fd?: string): boolean; - write(buffer: NodeBuffer): boolean; + write(buffer: Buffer): boolean; connect(port: number, host?: string, connectionListener?: Function): void; connect(path: string, connectionListener?: Function): void; @@ -668,7 +668,7 @@ declare module "dgram" { export function createSocket(type: string, callback?: Function): Socket; interface Socket extends events.NodeEventEmitter { - send(buf: NodeBuffer, offset: number, length: number, port: number, address: string, callback?: Function): void; + send(buf: Buffer, offset: number, length: number, port: number, address: string, callback?: Function): void; bind(port: number, address?: string): void; close(): void; address: { address: string; family: string; port: number; }; @@ -761,13 +761,13 @@ declare module "fs" { export function futimesSync(fd: string, atime: number, mtime: number): void; export function fsync(fd: string, callback?: Function): void; export function fsyncSync(fd: string): void; - export function write(fd: string, buffer: NodeBuffer, offset: number, length: number, position: number, callback?: (err: Error, written: number, buffer: NodeBuffer) =>any): void; - export function writeSync(fd: string, buffer: NodeBuffer, offset: number, length: number, position: number): void; - export function read(fd: string, buffer: NodeBuffer, offset: number, length: number, position: number, callback?: (err: Error, bytesRead: number, buffer: NodeBuffer) => void): void; - export function readSync(fd: string, buffer: NodeBuffer, offset: number, length: number, position: number): any[]; + export function write(fd: string, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: Error, written: number, buffer: Buffer) =>any): void; + export function writeSync(fd: string, buffer: Buffer, offset: number, length: number, position: number): void; + export function read(fd: string, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: Error, bytesRead: number, buffer: Buffer) => void): void; + export function readSync(fd: string, buffer: Buffer, offset: number, length: number, position: number): any[]; export function readFile(filename: string, encoding: string, callback: (err: Error, data: string) => void ): void; - export function readFile(filename: string, callback: (err: Error, data: NodeBuffer) => void ): void; - export function readFileSync(filename: string): NodeBuffer; + export function readFile(filename: string, callback: (err: Error, data: Buffer) => void ): void; + export function readFileSync(filename: string): Buffer; export function readFileSync(filename: string, encoding: string): string; export function writeFile(filename: string, data: any, callback?: (err) => void): void; export function writeFile(filename: string, data: any, encoding?: string, callback?: (err) => void): void; @@ -811,8 +811,8 @@ declare module "path" { declare module "string_decoder" { export interface NodeStringDecoder { - write(buffer: NodeBuffer): string; - detectIncompleteChar(buffer: NodeBuffer): number; + write(buffer: Buffer): string; + detectIncompleteChar(buffer: Buffer): number; } export var StringDecoder: { new (encoding: string): NodeStringDecoder; @@ -963,7 +963,7 @@ declare module "crypto" { } export function getDiffieHellman(group_name: string): DiffieHellman; export function pbkdf2(password: string, salt: string, iterations: number, keylen: number, callback: (err: Error, derivedKey: string) => any): void; - export function randomBytes(size: number, callback?: (err: Error, buf: NodeBuffer) =>void ); + export function randomBytes(size: number, callback?: (err: Error, buf: Buffer) =>void ); } declare module "stream" { @@ -972,10 +972,10 @@ declare module "stream" { export interface WritableStream extends events.NodeEventEmitter { writable: boolean; write(str: string, encoding?: string, fd?: string): boolean; - write(buffer: NodeBuffer): boolean; + write(buffer: Buffer): boolean; end(): void; end(str: string, enconding: string): void; - end(buffer: NodeBuffer): void; + end(buffer: Buffer): void; destroy(): void; destroySoon(): void; } diff --git a/node/node-tests.ts b/node/node-tests.ts index a77a4b39b6..5598bac17d 100644 --- a/node/node-tests.ts +++ b/node/node-tests.ts @@ -39,7 +39,7 @@ fs.writeFile("Harry Potter", assert.ifError); var content: string, - buffer: NodeBuffer; + buffer: Buffer; content = fs.readFileSync('testfile', 'utf8'); content = fs.readFileSync('testfile', {encoding : 'utf8'}); diff --git a/node/node.d.ts b/node/node.d.ts index 34862f4b7b..beeb3775a6 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -47,22 +47,22 @@ declare var module: { // Same as module.exports declare var exports: any; declare var SlowBuffer: { - new (str: string, encoding?: string): NodeBuffer; - new (size: number): NodeBuffer; - new (array: any[]): NodeBuffer; - prototype: NodeBuffer; + new (str: string, encoding?: string): Buffer; + new (size: number): Buffer; + new (array: any[]): Buffer; + prototype: Buffer; isBuffer(obj: any): boolean; byteLength(string: string, encoding?: string): number; - concat(list: NodeBuffer[], totalLength?: number): NodeBuffer; + concat(list: Buffer[], totalLength?: number): Buffer; }; declare var Buffer: { - new (str: string, encoding?: string): NodeBuffer; - new (size: number): NodeBuffer; - new (array: any[]): NodeBuffer; - prototype: NodeBuffer; + new (str: string, encoding?: string): Buffer; + new (size: number): Buffer; + new (array: any[]): Buffer; + prototype: Buffer; isBuffer(obj: any): boolean; byteLength(string: string, encoding?: string): number; - concat(list: NodeBuffer[], totalLength?: number): NodeBuffer; + concat(list: Buffer[], totalLength?: number): Buffer; } /************************************************ @@ -98,17 +98,17 @@ interface ReadableStream extends NodeEventEmitter { pipe(destination: T, options?: { end?: boolean; }): T; unpipe(destination?: T): void; unshift(chunk: string): void; - unshift(chunk: NodeBuffer): void; + unshift(chunk: Buffer): void; wrap(oldStream: ReadableStream): ReadableStream; } interface WritableStream extends NodeEventEmitter { writable: boolean; - write(buffer: NodeBuffer, cb?: Function): boolean; + write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; write(str: string, encoding?: string, cb?: Function): boolean; end(): void; - end(buffer: NodeBuffer, cb?: Function): void; + end(buffer: Buffer, cb?: Function): void; end(str: string, cb?: Function): void; end(str: string, encoding?: string, cb?: Function): void; } @@ -175,14 +175,16 @@ interface NodeProcess extends NodeEventEmitter { send?(message: any, sendHandle?: any): void; } -// Buffer class +/** + * @deprecated + */ interface NodeBuffer { [index: number]: number; write(string: string, offset?: number, length?: number, encoding?: string): number; toString(encoding?: string, start?: number, end?: number): string; length: number; - copy(targetBuffer: NodeBuffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; - slice(start?: number, end?: number): NodeBuffer; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; readUInt8(offset: number, noAsset?: boolean): number; readUInt16LE(offset: number, noAssert?: boolean): number; readUInt16BE(offset: number, noAssert?: boolean): number; @@ -214,6 +216,9 @@ interface NodeBuffer { fill(value: any, offset?: number, end?: number): void; } +// Buffer class +interface Buffer extends NodeBuffer {} + interface NodeTimer { ref() : void; unref() : void; @@ -272,8 +277,8 @@ declare module "http" { } export interface ServerResponse extends NodeEventEmitter, WritableStream { // Extended base methods - write(buffer: NodeBuffer): boolean; - write(buffer: NodeBuffer, cb?: Function): boolean; + write(buffer: Buffer): boolean; + write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; write(str: string, encoding?: string, cb?: Function): boolean; write(str: string, encoding?: string, fd?: string): boolean; @@ -291,15 +296,15 @@ declare module "http" { // Extended base methods end(): void; - end(buffer: NodeBuffer, cb?: Function): void; + end(buffer: Buffer, cb?: Function): void; end(str: string, cb?: Function): void; end(str: string, encoding?: string, cb?: Function): void; end(data?: any, encoding?: string): void; } export interface ClientRequest extends NodeEventEmitter, WritableStream { // Extended base methods - write(buffer: NodeBuffer): boolean; - write(buffer: NodeBuffer, cb?: Function): boolean; + write(buffer: Buffer): boolean; + write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; write(str: string, encoding?: string, cb?: Function): boolean; write(str: string, encoding?: string, fd?: string): boolean; @@ -312,7 +317,7 @@ declare module "http" { // Extended base methods end(): void; - end(buffer: NodeBuffer, cb?: Function): void; + end(buffer: Buffer, cb?: Function): void; end(str: string, cb?: Function): void; end(str: string, encoding?: string, cb?: Function): void; end(data?: any, encoding?: string): void; @@ -396,13 +401,13 @@ declare module "zlib" { export function createInflateRaw(options?: ZlibOptions): InflateRaw; export function createUnzip(options?: ZlibOptions): Unzip; - export function deflate(buf: NodeBuffer, callback: (error: Error, result: any) =>void ): void; - export function deflateRaw(buf: NodeBuffer, callback: (error: Error, result: any) =>void ): void; - export function gzip(buf: NodeBuffer, callback: (error: Error, result: any) =>void ): void; - export function gunzip(buf: NodeBuffer, callback: (error: Error, result: any) =>void ): void; - export function inflate(buf: NodeBuffer, callback: (error: Error, result: any) =>void ): void; - export function inflateRaw(buf: NodeBuffer, callback: (error: Error, result: any) =>void ): void; - export function unzip(buf: NodeBuffer, callback: (error: Error, result: any) =>void ): void; + export function deflate(buf: Buffer, callback: (error: Error, result: any) =>void ): void; + export function deflateRaw(buf: Buffer, callback: (error: Error, result: any) =>void ): void; + export function gzip(buf: Buffer, callback: (error: Error, result: any) =>void ): void; + export function gunzip(buf: Buffer, callback: (error: Error, result: any) =>void ): void; + export function inflate(buf: Buffer, callback: (error: Error, result: any) =>void ): void; + export function inflateRaw(buf: Buffer, callback: (error: Error, result: any) =>void ): void; + export function unzip(buf: Buffer, callback: (error: Error, result: any) =>void ): void; // Constants export var Z_NO_FLUSH: number; @@ -603,8 +608,8 @@ declare module "child_process" { timeout?: number; maxBuffer?: number; killSignal?: string; - }, callback: (error: Error, stdout: NodeBuffer, stderr: NodeBuffer) =>void ): ChildProcess; - export function exec(command: string, callback: (error: Error, stdout: NodeBuffer, stderr: NodeBuffer) =>void ): ChildProcess; + }, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess; + export function exec(command: string, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess; export function execFile(file: string, args: string[], options: { cwd?: string; stdio?: any; @@ -614,7 +619,7 @@ declare module "child_process" { timeout?: number; maxBuffer?: string; killSignal?: string; - }, callback: (error: Error, stdout: NodeBuffer, stderr: NodeBuffer) =>void ): ChildProcess; + }, callback: (error: Error, stdout: Buffer, stderr: Buffer) =>void ): ChildProcess; export function fork(modulePath: string, args?: string[], options?: { cwd?: string; env?: any; @@ -676,8 +681,8 @@ declare module "net" { export interface Socket extends ReadWriteStream { // Extended base methods - write(buffer: NodeBuffer): boolean; - write(buffer: NodeBuffer, cb?: Function): boolean; + write(buffer: Buffer): boolean; + write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; write(str: string, encoding?: string, cb?: Function): boolean; write(str: string, encoding?: string, fd?: string): boolean; @@ -701,7 +706,7 @@ declare module "net" { // Extended base methods end(): void; - end(buffer: NodeBuffer, cb?: Function): void; + end(buffer: Buffer, cb?: Function): void; end(str: string, cb?: Function): void; end(str: string, encoding?: string, cb?: Function): void; end(data?: any, encoding?: string): void; @@ -739,7 +744,7 @@ declare module "dgram" { export function createSocket(type: string, callback?: Function): Socket; interface Socket extends NodeEventEmitter { - send(buf: NodeBuffer, offset: number, length: number, port: number, address: string, callback?: Function): void; + send(buf: Buffer, offset: number, length: number, port: number, address: string, callback?: Function): void; bind(port: number, address?: string): void; close(): void; address: { address: string; family: string; port: number; }; @@ -849,17 +854,17 @@ declare module "fs" { export function futimesSync(fd: number, atime: number, mtime: number): void; export function fsync(fd: number, callback?: (err?: ErrnoException) => void): void; export function fsyncSync(fd: number): void; - export function write(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number, callback?: (err: ErrnoException, written: number, buffer: NodeBuffer) => void): void; - export function writeSync(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number): number; - export function read(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number, callback?: (err: ErrnoException, bytesRead: number, buffer: NodeBuffer) => void): void; - export function readSync(fd: number, buffer: NodeBuffer, offset: number, length: number, position: number): number; + export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: ErrnoException, written: number, buffer: Buffer) => void): void; + export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number; + export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: ErrnoException, bytesRead: number, buffer: Buffer) => void): void; + export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number; export function readFile(filename: string, encoding: string, callback: (err: ErrnoException, data: string) => void): void; export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: ErrnoException, data: string) => void): void; - export function readFile(filename: string, options: { flag?: string; }, callback: (err: ErrnoException, data: NodeBuffer) => void): void; - export function readFile(filename: string, callback: (err: ErrnoException, data: NodeBuffer) => void ): void; + export function readFile(filename: string, options: { flag?: string; }, callback: (err: ErrnoException, data: Buffer) => void): void; + export function readFile(filename: string, callback: (err: ErrnoException, data: Buffer) => void ): void; export function readFileSync(filename: string, encoding: string): string; export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string; - export function readFileSync(filename: string, options?: { flag?: string; }): NodeBuffer; + export function readFileSync(filename: string, options?: { flag?: string; }): Buffer; export function writeFile(filename: string, data: any, callback?: (err: ErrnoException) => void): void; export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: ErrnoException) => void): void; export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: ErrnoException) => void): void; @@ -911,8 +916,8 @@ declare module "path" { declare module "string_decoder" { export interface NodeStringDecoder { - write(buffer: NodeBuffer): string; - detectIncompleteChar(buffer: NodeBuffer): number; + write(buffer: Buffer): string; + detectIncompleteChar(buffer: Buffer): number; } export var StringDecoder: { new (encoding: string): NodeStringDecoder; @@ -1031,9 +1036,9 @@ declare module "crypto" { update(data: any, input_encoding?: string, output_encoding?: string): string; final(output_encoding?: string): string; setAutoPadding(auto_padding: boolean): void; + createDecipher(algorithm: string, password: any): Decipher; + createDecipheriv(algorithm: string, key: any, iv: any): Decipher; } - export function createDecipher(algorithm: string, password: any): Decipher; - export function createDecipheriv(algorithm: string, key: any, iv: any): Decipher; interface Decipher { update(data: any, input_encoding?: string, output_encoding?: string): void; final(output_encoding?: string): string; @@ -1063,11 +1068,11 @@ declare module "crypto" { } export function getDiffieHellman(group_name: string): DiffieHellman; export function pbkdf2(password: string, salt: string, iterations: number, keylen: number, callback: (err: Error, derivedKey: string) => any): void; - export function pbkdf2Sync(password: string, salt: string, iterations: number, keylen: number) : NodeBuffer; - export function randomBytes(size: number): NodeBuffer; - export function randomBytes(size: number, callback: (err: Error, buf: NodeBuffer) =>void ): void; - export function pseudoRandomBytes(size: number): NodeBuffer; - export function pseudoRandomBytes(size: number, callback: (err: Error, buf: NodeBuffer) =>void ): void; + export function pbkdf2Sync(password: string, salt: string, iterations: number, keylen: number) : Buffer; + export function randomBytes(size: number): Buffer; + export function randomBytes(size: number, callback: (err: Error, buf: Buffer) =>void ): void; + export function pseudoRandomBytes(size: number): Buffer; + export function pseudoRandomBytes(size: number, callback: (err: Error, buf: Buffer) =>void ): void; } declare module "stream" { @@ -1090,7 +1095,7 @@ declare module "stream" { pipe(destination: T, options?: { end?: boolean; }): T; unpipe(destination?: T): void; unshift(chunk: string): void; - unshift(chunk: NodeBuffer): void; + unshift(chunk: Buffer): void; wrap(oldStream: ReadableStream): ReadableStream; push(chunk: any, encoding?: string): boolean; } @@ -1103,13 +1108,13 @@ declare module "stream" { export class Writable extends events.EventEmitter implements WritableStream { writable: boolean; constructor(opts?: WritableOptions); - _write(data: NodeBuffer, encoding: string, callback: Function): void; + _write(data: Buffer, encoding: string, callback: Function): void; _write(data: string, encoding: string, callback: Function): void; - write(buffer: NodeBuffer, cb?: Function): boolean; + write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; write(str: string, encoding?: string, cb?: Function): boolean; end(): void; - end(buffer: NodeBuffer, cb?: Function): void; + end(buffer: Buffer, cb?: Function): void; end(str: string, cb?: Function): void; end(str: string, encoding?: string, cb?: Function): void; } @@ -1122,13 +1127,13 @@ declare module "stream" { export class Duplex extends Readable implements ReadWriteStream { writable: boolean; constructor(opts?: DuplexOptions); - _write(data: NodeBuffer, encoding: string, callback: Function): void; + _write(data: Buffer, encoding: string, callback: Function): void; _write(data: string, encoding: string, callback: Function): void; - write(buffer: NodeBuffer, cb?: Function): boolean; + write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; write(str: string, encoding?: string, cb?: Function): boolean; end(): void; - end(buffer: NodeBuffer, cb?: Function): void; + end(buffer: Buffer, cb?: Function): void; end(str: string, cb?: Function): void; end(str: string, encoding?: string, cb?: Function): void; } @@ -1140,7 +1145,7 @@ declare module "stream" { readable: boolean; writable: boolean; constructor(opts?: TransformOptions); - _transform(chunk: NodeBuffer, encoding: string, callback: Function): void; + _transform(chunk: Buffer, encoding: string, callback: Function): void; _transform(chunk: string, encoding: string, callback: Function): void; _flush(callback: Function): void; read(size?: number): any; @@ -1150,14 +1155,14 @@ declare module "stream" { pipe(destination: T, options?: { end?: boolean; }): T; unpipe(destination?: T): void; unshift(chunk: string): void; - unshift(chunk: NodeBuffer): void; + unshift(chunk: Buffer): void; wrap(oldStream: ReadableStream): ReadableStream; push(chunk: any, encoding?: string): boolean; - write(buffer: NodeBuffer, cb?: Function): boolean; + write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; write(str: string, encoding?: string, cb?: Function): boolean; end(): void; - end(buffer: NodeBuffer, cb?: Function): void; + end(buffer: Buffer, cb?: Function): void; end(str: string, cb?: Function): void; end(str: string, encoding?: string, cb?: Function): void; } diff --git a/q-io/Q-io-tests.ts b/q-io/Q-io-tests.ts index f4ac32e9e5..21b8969884 100644 --- a/q-io/Q-io-tests.ts +++ b/q-io/Q-io-tests.ts @@ -8,7 +8,7 @@ var bool:boolean; var num:number; var x:any; var path:string; -var buffer:NodeBuffer; +var buffer:Buffer; var str:string; var strArr:string[]; var source:string; @@ -22,7 +22,7 @@ var anyQ:Q.Promise; var strQ:Q.Promise; var boolQ:Q.Promise; var dateQ:Q.Promise; -var bufferQ:Q.Promise; +var bufferQ:Q.Promise; var statsQ:Q.Promise; var readQ:Q.Promise; @@ -39,12 +39,12 @@ fs.open(path, options).then((x) => { }); //fs.open(path, options):Q.Promise; //fs.open(path, options):Q.Promise; -//fs.open(path, options):Q.Promise; +//fs.open(path, options):Q.Promise; //TODO how to define the multiple return types? use any for now? anyQ = fs.read(path, options); //strQ = fs.read(path, options); -//fs.read(path, options):Q.Promise; +//fs.read(path, options):Q.Promise; voidQ = fs.write(path, buffer, options); voidQ = fs.write(path, str, options); diff --git a/q-io/Q-io.d.ts b/q-io/Q-io.d.ts index cbe37214e7..f9d1c10d14 100644 --- a/q-io/Q-io.d.ts +++ b/q-io/Q-io.d.ts @@ -18,17 +18,17 @@ declare module QioFS { export function open(path:string, options?:any):Q.Promise; //export function open(path:string, options?:any):Q.Promise; //export function open(path:string, options?:any):Q.Promise; - //export function open(path:string, options?:any):Q.Promise; + //export function open(path:string, options?:any):Q.Promise; //TODO how to define the multiple return types? use any for now? export function read(path:string, options?:any):Q.Promise; //export function read(path:string, options?:any):Q.Promise; - //export function read(path:string, options?:any):Q.Promise; + //export function read(path:string, options?:any):Q.Promise; - export function write(path:string, content:NodeBuffer, options?:any):Q.Promise; + export function write(path:string, content:Buffer, options?:any):Q.Promise; export function write(path:string, content:string, options?:any):Q.Promise; - export function append(path:string, content:NodeBuffer, options?:any):Q.Promise; + export function append(path:string, content:Buffer, options?:any):Q.Promise; export function append(path:string, content:string, options?:any):Q.Promise; export function copy(source:string, target:string):Q.Promise; @@ -102,7 +102,7 @@ declare module QioFS { //this should return a q-io/fs-mock MockFS export function reroot(path:string):typeof QioFS; - export function toObject(path:string):{[path:string]:NodeBuffer}; + export function toObject(path:string):{[path:string]:Buffer}; //listed but not implemented by Q-io //export function glob(pattern):Q.Promise; @@ -189,7 +189,7 @@ declare module QioHTTP { declare module Qio { interface ForEachCallback { - (chunk:NodeBuffer):Q.Promise; + (chunk:Buffer):Q.Promise; (chunk:string):Q.Promise; } interface ForEach { @@ -198,13 +198,13 @@ declare module Qio { interface Reader extends ForEach { read(charset:string):Q.Promise; - read():Q.Promise; + read():Q.Promise; close():void; node:ReadableStream; } interface Writer { write(content:string):void; - write(content:NodeBuffer):void; + write(content:Buffer):void; flush():Q.Promise; close():void; destroy():void; @@ -213,9 +213,9 @@ declare module Qio { interface Stream { read(charset:string):Q.Promise; - read():Q.Promise; + read():Q.Promise; write(content:string):void; - write(content:NodeBuffer):void; + write(content:Buffer):void; flush():Q.Promise; close():void; destroy():void; @@ -229,15 +229,15 @@ declare module Qio { interface QioBufferReader { new ():Qio.Reader; read(stream:Qio.Reader, charset:string):string; - read(stream:Qio.Reader):NodeBuffer; - join(buffers:NodeBuffer[]):NodeBuffer; + read(stream:Qio.Reader):Buffer; + join(buffers:Buffer[]):Buffer; } interface QioBufferWriter { - (writer:NodeBuffer):Qio.Writer; + (writer:Buffer):Qio.Writer; Writer:Qio.Writer; } interface QioBufferStream { - (buffer:NodeBuffer, encoding:string):Qio.Stream + (buffer:Buffer, encoding:string):Qio.Stream } declare module "q-io/http" { diff --git a/superagent/superagent.d.ts b/superagent/superagent.d.ts index 860f70ea35..f416dee814 100644 --- a/superagent/superagent.d.ts +++ b/superagent/superagent.d.ts @@ -43,7 +43,7 @@ declare module "superagent" { send(data: string): Request; send(data: Object): Request; write(data: string, encoding: string): boolean; - write(data: NodeBuffer, encoding: string): boolean; + write(data: Buffer, encoding: string): boolean; pipe(stream: WritableStream, options?: Object): WritableStream; buffer(val: boolean): Request; timeout(ms: number): Request; diff --git a/websocket/websocket.d.ts b/websocket/websocket.d.ts index cc22b89eaa..d984e1beac 100644 --- a/websocket/websocket.d.ts +++ b/websocket/websocket.d.ts @@ -128,11 +128,11 @@ declare module "websocket" { constructor(serverConfig?: IServerConfig); /** Send binary message for each connection */ - broadcast(data: NodeBuffer): void; + broadcast(data: Buffer): void; /** Send UTF-8 message for each connection */ broadcast(data: IStringified): void; /** Send binary message for each connection */ - broadcastBytes(data: NodeBuffer): void; + broadcastBytes(data: Buffer): void; /** Send UTF-8 message for each connection */ broadcastUTF(data: IStringified): void; /** Attach the `server` instance to a Node http.Server instance */ @@ -251,26 +251,26 @@ declare module "websocket" { export interface IMessage { type: string; utf8Data?: string; - binaryData?: NodeBuffer; + binaryData?: Buffer; } export interface IBufferList extends events.EventEmitter { encoding: string; length: number; - write(buf: NodeBuffer): boolean; - end(buf: NodeBuffer): void; + write(buf: Buffer): boolean; + end(buf: Buffer): void; /** * For each buffer, perform some action. * If fn's result is a true value, cut out early. */ - forEach(fn: (buf: NodeBuffer) => boolean): void; + forEach(fn: (buf: Buffer) => boolean): void; /** Create a single buffer out of all the chunks */ - join(start: number, end: number): NodeBuffer; + join(start: number, end: number): Buffer; /** Join all the chunks to existing buffer */ - joinInto(buf: NodeBuffer, offset: number, start: number, end: number): NodeBuffer; + joinInto(buf: Buffer, offset: number, start: number, end: number): Buffer; /** * Advance the buffer stream by `n` bytes. @@ -290,10 +290,10 @@ declare module "websocket" { // Events on(event: string, listener: () => void): IBufferList; on(event: 'advance', cb: (n: number) => void): IBufferList; - on(event: 'write', cb: (buf: NodeBuffer) => void): IBufferList; + on(event: 'write', cb: (buf: Buffer) => void): IBufferList; addListener(event: string, listener: () => void): IBufferList; addListener(event: 'advance', cb: (n: number) => void): IBufferList; - addListener(event: 'write', cb: (buf: NodeBuffer) => void): IBufferList; + addListener(event: 'write', cb: (buf: Buffer) => void): IBufferList; } class connection extends events.EventEmitter { @@ -330,8 +330,8 @@ declare module "websocket" { config: IConfig; socket: net.Socket; maskOutgoingPackets: boolean; - maskBytes: NodeBuffer; - frameHeader: NodeBuffer; + maskBytes: Buffer; + frameHeader: Buffer; bufferList: IBufferList; currentFrame: frame; fragmentationSize: number; @@ -390,14 +390,14 @@ declare module "websocket" { * to the remote peer. If config.fragmentOutgoingMessages is true the message may be * sent as multiple fragments if it exceeds config.fragmentationThreshold bytes. */ - sendBytes(buffer: NodeBuffer): void; + sendBytes(buffer: Buffer): void; /** Auto-detect the data type and send UTF-8 or Binary message */ - send(data: NodeBuffer): void; + send(data: Buffer): void; send(data: IStringified): void; /** Sends a ping frame. Ping frames must not exceed 125 bytes in length. */ - ping(data: NodeBuffer): void; + ping(data: Buffer): void; ping(data: IStringified): void; /** @@ -408,7 +408,7 @@ declare module "websocket" { * be no need to use this method to respond to pings. * Pong frames must not exceed 125 bytes in length. */ - pong(buffer: NodeBuffer): void; + pong(buffer: Buffer): void; /** * Serializes a `frame` object into binary data and immediately sends it to @@ -494,10 +494,10 @@ declare module "websocket" { * The binary payload data. * Even text frames are sent with a Buffer providing the binary payload data. */ - binaryPayload: NodeBuffer; + binaryPayload: Buffer; - maskBytes: NodeBuffer; - frameHeader: NodeBuffer; + maskBytes: Buffer; + frameHeader: Buffer; config: IConfig; maxReceivedFrameSize: number; protocolError: boolean; @@ -507,7 +507,7 @@ declare module "websocket" { addData(bufferList: IBufferList): boolean; throwAwayPayload(bufferList: IBufferList): boolean; - toBuffer(nullMask: boolean): NodeBuffer; + toBuffer(nullMask: boolean): Buffer; } export interface IClientConfig extends IConfig { diff --git a/ws/ws.d.ts b/ws/ws.d.ts index 2a3dbae405..5e5393ea56 100644 --- a/ws/ws.d.ts +++ b/ws/ws.d.ts @@ -110,7 +110,7 @@ declare module "ws" { close(): void; handleUpgrade(request: http.ClientRequest, socket: net.Socket, - upgradeHead: NodeBuffer, callback: (client: WebSocket) => void): void; + upgradeHead: Buffer, callback: (client: WebSocket) => void): void; // Events on(event: string, listener: () => void): Server; From c40cc2df8905af0ede9acbeea46e7d580a2eb4ea Mon Sep 17 00:00:00 2001 From: Paul Loyd Date: Mon, 7 Apr 2014 18:35:06 +0400 Subject: [PATCH 044/132] node: rename ErrnoException to NodeErrnoException --- node/node.d.ts | 96 +++++++++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/node/node.d.ts b/node/node.d.ts index beeb3775a6..6be669a01a 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -71,7 +71,7 @@ declare var Buffer: { * * ************************************************/ -interface ErrnoException extends Error { +interface NodeErrnoException extends Error { errno?: any; code?: string; path?: string; @@ -789,90 +789,90 @@ declare module "fs" { export interface ReadStream extends ReadableStream { } export interface WriteStream extends WritableStream { } - export function rename(oldPath: string, newPath: string, callback?: (err?: ErrnoException) => void): void; + export function rename(oldPath: string, newPath: string, callback?: (err?: NodeErrnoException) => void): void; export function renameSync(oldPath: string, newPath: string): void; - export function truncate(path: string, callback?: (err?: ErrnoException) => void): void; - export function truncate(path: string, len: number, callback?: (err?: ErrnoException) => void): void; + export function truncate(path: string, callback?: (err?: NodeErrnoException) => void): void; + export function truncate(path: string, len: number, callback?: (err?: NodeErrnoException) => void): void; export function truncateSync(path: string, len?: number): void; - export function ftruncate(fd: number, callback?: (err?: ErrnoException) => void): void; - export function ftruncate(fd: number, len: number, callback?: (err?: ErrnoException) => void): void; + export function ftruncate(fd: number, callback?: (err?: NodeErrnoException) => void): void; + export function ftruncate(fd: number, len: number, callback?: (err?: NodeErrnoException) => void): void; export function ftruncateSync(fd: number, len?: number): void; - export function chown(path: string, uid: number, gid: number, callback?: (err?: ErrnoException) => void): void; + export function chown(path: string, uid: number, gid: number, callback?: (err?: NodeErrnoException) => void): void; export function chownSync(path: string, uid: number, gid: number): void; - export function fchown(fd: number, uid: number, gid: number, callback?: (err?: ErrnoException) => void): void; + export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeErrnoException) => void): void; export function fchownSync(fd: number, uid: number, gid: number): void; - export function lchown(path: string, uid: number, gid: number, callback?: (err?: ErrnoException) => void): void; + export function lchown(path: string, uid: number, gid: number, callback?: (err?: NodeErrnoException) => void): void; export function lchownSync(path: string, uid: number, gid: number): void; - export function chmod(path: string, mode: number, callback?: (err?: ErrnoException) => void): void; - export function chmod(path: string, mode: string, callback?: (err?: ErrnoException) => void): void; + export function chmod(path: string, mode: number, callback?: (err?: NodeErrnoException) => void): void; + export function chmod(path: string, mode: string, callback?: (err?: NodeErrnoException) => void): void; export function chmodSync(path: string, mode: number): void; export function chmodSync(path: string, mode: string): void; - export function fchmod(fd: number, mode: number, callback?: (err?: ErrnoException) => void): void; - export function fchmod(fd: number, mode: string, callback?: (err?: ErrnoException) => void): void; + export function fchmod(fd: number, mode: number, callback?: (err?: NodeErrnoException) => void): void; + export function fchmod(fd: number, mode: string, callback?: (err?: NodeErrnoException) => void): void; export function fchmodSync(fd: number, mode: number): void; export function fchmodSync(fd: number, mode: string): void; - export function lchmod(path: string, mode: number, callback?: (err?: ErrnoException) => void): void; - export function lchmod(path: string, mode: string, callback?: (err?: ErrnoException) => void): void; + export function lchmod(path: string, mode: number, callback?: (err?: NodeErrnoException) => void): void; + export function lchmod(path: string, mode: string, callback?: (err?: NodeErrnoException) => void): void; export function lchmodSync(path: string, mode: number): void; export function lchmodSync(path: string, mode: string): void; - export function stat(path: string, callback?: (err: ErrnoException, stats: Stats) => any): void; - export function lstat(path: string, callback?: (err: ErrnoException, stats: Stats) => any): void; - export function fstat(fd: number, callback?: (err: ErrnoException, stats: Stats) => any): void; + export function stat(path: string, callback?: (err: NodeErrnoException, stats: Stats) => any): void; + export function lstat(path: string, callback?: (err: NodeErrnoException, stats: Stats) => any): void; + export function fstat(fd: number, callback?: (err: NodeErrnoException, stats: Stats) => any): void; export function statSync(path: string): Stats; export function lstatSync(path: string): Stats; export function fstatSync(fd: number): Stats; - export function link(srcpath: string, dstpath: string, callback?: (err?: ErrnoException) => void): void; + export function link(srcpath: string, dstpath: string, callback?: (err?: NodeErrnoException) => void): void; export function linkSync(srcpath: string, dstpath: string): void; - export function symlink(srcpath: string, dstpath: string, type?: string, callback?: (err?: ErrnoException) => void): void; + export function symlink(srcpath: string, dstpath: string, type?: string, callback?: (err?: NodeErrnoException) => void): void; export function symlinkSync(srcpath: string, dstpath: string, type?: string): void; - export function readlink(path: string, callback?: (err: ErrnoException, linkString: string) => any): void; + export function readlink(path: string, callback?: (err: NodeErrnoException, linkString: string) => any): void; export function readlinkSync(path: string): string; - export function realpath(path: string, callback?: (err: ErrnoException, resolvedPath: string) => any): void; - export function realpath(path: string, cache: {[path: string]: string}, callback: (err: ErrnoException, resolvedPath: string) =>any): void; + export function realpath(path: string, callback?: (err: NodeErrnoException, resolvedPath: string) => any): void; + export function realpath(path: string, cache: {[path: string]: string}, callback: (err: NodeErrnoException, resolvedPath: string) =>any): void; export function realpathSync(path: string, cache?: {[path: string]: string}): string; - export function unlink(path: string, callback?: (err?: ErrnoException) => void): void; + export function unlink(path: string, callback?: (err?: NodeErrnoException) => void): void; export function unlinkSync(path: string): void; - export function rmdir(path: string, callback?: (err?: ErrnoException) => void): void; + export function rmdir(path: string, callback?: (err?: NodeErrnoException) => void): void; export function rmdirSync(path: string): void; - export function mkdir(path: string, callback?: (err?: ErrnoException) => void): void; - export function mkdir(path: string, mode: number, callback?: (err?: ErrnoException) => void): void; - export function mkdir(path: string, mode: string, callback?: (err?: ErrnoException) => void): void; + export function mkdir(path: string, callback?: (err?: NodeErrnoException) => void): void; + export function mkdir(path: string, mode: number, callback?: (err?: NodeErrnoException) => void): void; + export function mkdir(path: string, mode: string, callback?: (err?: NodeErrnoException) => void): void; export function mkdirSync(path: string, mode?: number): void; export function mkdirSync(path: string, mode?: string): void; - export function readdir(path: string, callback?: (err: ErrnoException, files: string[]) => void): void; + export function readdir(path: string, callback?: (err: NodeErrnoException, files: string[]) => void): void; export function readdirSync(path: string): string[]; - export function close(fd: number, callback?: (err?: ErrnoException) => void): void; + export function close(fd: number, callback?: (err?: NodeErrnoException) => void): void; export function closeSync(fd: number): void; - export function open(path: string, flags: string, callback?: (err: ErrnoException, fd: number) => any): void; - export function open(path: string, flags: string, mode: number, callback?: (err: ErrnoException, fd: number) => any): void; - export function open(path: string, flags: string, mode: string, callback?: (err: ErrnoException, fd: number) => any): void; + export function open(path: string, flags: string, callback?: (err: NodeErrnoException, fd: number) => any): void; + export function open(path: string, flags: string, mode: number, callback?: (err: NodeErrnoException, fd: number) => any): void; + export function open(path: string, flags: string, mode: string, callback?: (err: NodeErrnoException, fd: number) => any): void; export function openSync(path: string, flags: string, mode?: number): number; export function openSync(path: string, flags: string, mode?: string): number; - export function utimes(path: string, atime: number, mtime: number, callback?: (err?: ErrnoException) => void): void; + export function utimes(path: string, atime: number, mtime: number, callback?: (err?: NodeErrnoException) => void): void; export function utimesSync(path: string, atime: number, mtime: number): void; - export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: ErrnoException) => void): void; + export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeErrnoException) => void): void; export function futimesSync(fd: number, atime: number, mtime: number): void; - export function fsync(fd: number, callback?: (err?: ErrnoException) => void): void; + export function fsync(fd: number, callback?: (err?: NodeErrnoException) => void): void; export function fsyncSync(fd: number): void; - export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: ErrnoException, written: number, buffer: Buffer) => void): void; + export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeErrnoException, written: number, buffer: Buffer) => void): void; export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number; - export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: ErrnoException, bytesRead: number, buffer: Buffer) => void): void; + export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeErrnoException, bytesRead: number, buffer: Buffer) => void): void; export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number; - export function readFile(filename: string, encoding: string, callback: (err: ErrnoException, data: string) => void): void; - export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: ErrnoException, data: string) => void): void; - export function readFile(filename: string, options: { flag?: string; }, callback: (err: ErrnoException, data: Buffer) => void): void; - export function readFile(filename: string, callback: (err: ErrnoException, data: Buffer) => void ): void; + export function readFile(filename: string, encoding: string, callback: (err: NodeErrnoException, data: string) => void): void; + export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeErrnoException, data: string) => void): void; + export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeErrnoException, data: Buffer) => void): void; + export function readFile(filename: string, callback: (err: NodeErrnoException, data: Buffer) => void ): void; export function readFileSync(filename: string, encoding: string): string; export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string; export function readFileSync(filename: string, options?: { flag?: string; }): Buffer; - export function writeFile(filename: string, data: any, callback?: (err: ErrnoException) => void): void; - export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: ErrnoException) => void): void; - export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: ErrnoException) => void): void; + export function writeFile(filename: string, data: any, callback?: (err: NodeErrnoException) => void): void; + export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; + export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void; export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void; - export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: ErrnoException) => void): void; - export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: ErrnoException) => void): void; - export function appendFile(filename: string, data: any, callback?: (err: ErrnoException) => void): void; + export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; + export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; + export function appendFile(filename: string, data: any, callback?: (err: NodeErrnoException) => void): void; export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void; export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void; export function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void; From d100d104c6b01549027c2beac1d742571a13d654 Mon Sep 17 00:00:00 2001 From: Paul Loyd Date: Mon, 7 Apr 2014 18:50:35 +0400 Subject: [PATCH 045/132] node: now modules depend on events.EventEmitter, not NodeEventEmitter --- browser-harness/browser-harness.d.ts | 33 ++++++++++++++-------------- msnodesql/msnodesql.d.ts | 4 +++- node/node.d.ts | 31 +++++++++++++------------- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/browser-harness/browser-harness.d.ts b/browser-harness/browser-harness.d.ts index 68dbf8be51..a960741649 100644 --- a/browser-harness/browser-harness.d.ts +++ b/browser-harness/browser-harness.d.ts @@ -6,27 +6,28 @@ /// declare module "browser-harness" { + import _events = require('events'); - interface HarnessEvents extends NodeEventEmitter { - once(event: string, listener: (driver: Driver) => void): NodeEventEmitter; - once(event: 'ready', listener: (driver: Driver) => void): NodeEventEmitter; + interface HarnessEvents extends _events.EventEmitter { + once(event: string, listener: (driver: Driver) => void): _events.EventEmitter; + once(event: 'ready', listener: (driver: Driver) => void): _events.EventEmitter; - on(event: string, listener: (driver: Driver) => void): NodeEventEmitter; - on(event: 'ready', listener: (driver: Driver) => void): NodeEventEmitter; + on(event: string, listener: (driver: Driver) => void): _events.EventEmitter; + on(event: 'ready', listener: (driver: Driver) => void): _events.EventEmitter; } - interface DriverEvents extends NodeEventEmitter { - once(event: string, listener: (text: string) => void): NodeEventEmitter; - once(event: 'console.log', listener: (text: string) => void): NodeEventEmitter; - once(event: 'console.warn', listener: (text: string) => void): NodeEventEmitter; - once(event: 'console.error', listener: (text: string) => void): NodeEventEmitter; - once(event: 'window.onerror', listener: (text: string) => void): NodeEventEmitter; + interface DriverEvents extends _events.EventEmitter { + once(event: string, listener: (text: string) => void): _events.EventEmitter; + once(event: 'console.log', listener: (text: string) => void): _events.EventEmitter; + once(event: 'console.warn', listener: (text: string) => void): _events.EventEmitter; + once(event: 'console.error', listener: (text: string) => void): _events.EventEmitter; + once(event: 'window.onerror', listener: (text: string) => void): _events.EventEmitter; - on(event: string, listener: (text: string) => void): NodeEventEmitter; - on(event: 'console.log', listener: (text: string) => void): NodeEventEmitter; - on(event: 'console.warn', listener: (text: string) => void): NodeEventEmitter; - on(event: 'console.error', listener: (text: string) => void): NodeEventEmitter; - on(event: 'window.onerror', listener: (text: string) => void): NodeEventEmitter; + on(event: string, listener: (text: string) => void): _events.EventEmitter; + on(event: 'console.log', listener: (text: string) => void): _events.EventEmitter; + on(event: 'console.warn', listener: (text: string) => void): _events.EventEmitter; + on(event: 'console.error', listener: (text: string) => void): _events.EventEmitter; + on(event: 'window.onerror', listener: (text: string) => void): _events.EventEmitter; } export interface Driver { diff --git a/msnodesql/msnodesql.d.ts b/msnodesql/msnodesql.d.ts index cadb323dbc..39bf01fb82 100644 --- a/msnodesql/msnodesql.d.ts +++ b/msnodesql/msnodesql.d.ts @@ -7,6 +7,8 @@ /// declare module "msnodesql" { + import events = require('events'); + export function open(connectionString: string, callback?: OpenCallback): Connection; export function query(connectionString: string, query: string, callback?: QueryCallback): StreamEvents; @@ -55,5 +57,5 @@ declare module "msnodesql" { close(immediately: boolean, callback?: ErrorCallback); } - interface StreamEvents extends NodeEventEmitter { } + interface StreamEvents extends events.EventEmitter {} } \ No newline at end of file diff --git a/node/node.d.ts b/node/node.d.ts index 6be669a01a..8966fa18b9 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -4,7 +4,7 @@ /************************************************ * * -* Node.js v0.10.1 API * +* Node.js v0.10.1 API * * * ************************************************/ @@ -256,7 +256,7 @@ declare module "http" { import net = require("net"); import stream = require("stream"); - export interface Server extends NodeEventEmitter { + export interface Server extends events.EventEmitter { listen(port: number, hostname?: string, backlog?: number, callback?: Function): Server; listen(path: string, callback?: Function): Server; listen(handle: any, listeningListener?: Function): Server; @@ -264,7 +264,7 @@ declare module "http" { address(): { port: number; family: string; address: string; }; maxHeadersCount: number; } - export interface ServerRequest extends NodeEventEmitter, ReadableStream { + export interface ServerRequest extends events.EventEmitter, ReadableStream { method: string; url: string; headers: any; @@ -275,7 +275,7 @@ declare module "http" { resume(): void; connection: net.Socket; } - export interface ServerResponse extends NodeEventEmitter, WritableStream { + export interface ServerResponse extends events.EventEmitter, WritableStream { // Extended base methods write(buffer: Buffer): boolean; write(buffer: Buffer, cb?: Function): boolean; @@ -301,7 +301,7 @@ declare module "http" { end(str: string, encoding?: string, cb?: Function): void; end(data?: any, encoding?: string): void; } - export interface ClientRequest extends NodeEventEmitter, WritableStream { + export interface ClientRequest extends events.EventEmitter, WritableStream { // Extended base methods write(buffer: Buffer): boolean; write(buffer: Buffer, cb?: Function): boolean; @@ -322,7 +322,7 @@ declare module "http" { end(str: string, encoding?: string, cb?: Function): void; end(data?: any, encoding?: string): void; } - export interface ClientResponse extends NodeEventEmitter, ReadableStream { + export interface ClientResponse extends events.EventEmitter, ReadableStream { statusCode: number; httpVersion: string; headers: any; @@ -507,8 +507,8 @@ declare module "https" { }; export interface Server extends tls.Server { } export function createServer(options: ServerOptions, requestListener?: Function): Server; - export function request(options: RequestOptions, callback?: (res: NodeEventEmitter) =>void ): http.ClientRequest; - export function get(options: RequestOptions, callback?: (res: NodeEventEmitter) =>void ): http.ClientRequest; + export function request(options: RequestOptions, callback?: (res: events.EventEmitter) =>void ): http.ClientRequest; + export function get(options: RequestOptions, callback?: (res: events.EventEmitter) =>void ): http.ClientRequest; export var globalAgent: Agent; } @@ -540,14 +540,14 @@ declare module "repl" { ignoreUndefined?: boolean; writer?: Function; } - export function start(options: ReplOptions): NodeEventEmitter; + export function start(options: ReplOptions): events.EventEmitter; } declare module "readline" { import events = require("events"); import stream = require("stream"); - export interface ReadLine extends NodeEventEmitter { + export interface ReadLine extends events.EventEmitter { setPrompt(prompt: string, length: number): void; prompt(preserveCursor?: boolean): void; question(query: string, callback: Function): void; @@ -582,7 +582,7 @@ declare module "child_process" { import events = require("events"); import stream = require("stream"); - export interface ChildProcess extends NodeEventEmitter { + export interface ChildProcess extends events.EventEmitter { stdin: WritableStream; stdout: ReadableStream; stderr: ReadableStream; @@ -743,7 +743,7 @@ declare module "dgram" { export function createSocket(type: string, callback?: Function): Socket; - interface Socket extends NodeEventEmitter { + interface Socket extends events.EventEmitter { send(buf: Buffer, offset: number, length: number, port: number, address: string, callback?: Function): void; bind(port: number, address?: string): void; close(): void; @@ -758,6 +758,7 @@ declare module "dgram" { declare module "fs" { import stream = require("stream"); + import events = require("events"); interface Stats { isFile(): boolean; @@ -782,7 +783,7 @@ declare module "fs" { ctime: Date; } - interface FSWatcher extends NodeEventEmitter { + interface FSWatcher extends events.EventEmitter { close(): void; } @@ -1255,8 +1256,8 @@ declare module "domain" { export class Domain extends events.EventEmitter { run(fn: Function): void; - add(emitter: NodeEventEmitter): void; - remove(emitter: NodeEventEmitter): void; + add(emitter: events.EventEmitter): void; + remove(emitter: events.EventEmitter): void; bind(cb: (err: Error, data: any) => any): any; intercept(cb: (data: any) => any): any; dispose(): void; From c52e7bdf63b7d45f0d551d2534a19a3eea250ba9 Mon Sep 17 00:00:00 2001 From: Paul Loyd Date: Mon, 7 Apr 2014 19:49:19 +0400 Subject: [PATCH 046/132] node: now modules depend on stream.* when possible --- browserify/browserify.d.ts | 2 +- highland/highland-tests.ts | 4 +- highland/highland.d.ts | 6 +-- node/node.d.ts | 83 +++++++++++++++++++------------------- promptly/promptly.d.ts | 5 ++- q-io/Q-io.d.ts | 4 +- superagent/superagent.d.ts | 3 +- through/through.d.ts | 4 +- 8 files changed, 57 insertions(+), 54 deletions(-) diff --git a/browserify/browserify.d.ts b/browserify/browserify.d.ts index e725de98c8..ebed2a4908 100644 --- a/browserify/browserify.d.ts +++ b/browserify/browserify.d.ts @@ -16,7 +16,7 @@ interface BrowserifyObject extends NodeEventEmitter { debug?: boolean; standalone?: string; insertGlobalVars?: any; - }, cb?: (err: any, src: any) => void): ReadableStream; + }, cb?: (err: any, src: any) => void): NodeReadableStream; external(file: string): BrowserifyObject; ignore(file: string): BrowserifyObject; diff --git a/highland/highland-tests.ts b/highland/highland-tests.ts index 3625b3f81a..0a724a7fbf 100644 --- a/highland/highland-tests.ts +++ b/highland/highland-tests.ts @@ -22,8 +22,8 @@ var strArr: string[]; var numArr: string[]; var funcArr: Function[]; -var readable: ReadableStream; -var writable: WritableStream; +var readable: NodeReadableStream; +var writable: NodeWritableStream; var emitter: NodeEventEmitter; // - - - - - - - - - - - - - - - - - diff --git a/highland/highland.d.ts b/highland/highland.d.ts index 8760a5c2d4..3bec0c6eb3 100644 --- a/highland/highland.d.ts +++ b/highland/highland.d.ts @@ -62,7 +62,7 @@ interface HighlandStatic { (xs: (push: (err: Error, x?: R) => void, next: () => void) => void): Highland.Stream; (xs: Highland.Stream): Highland.Stream; - (xs: ReadableStream): Highland.Stream; + (xs: NodeReadableStream): Highland.Stream; (xs: NodeEventEmitter): Highland.Stream; // moar (promise for everything?) @@ -419,8 +419,8 @@ declare module Highland { * @api public */ pipe(dest: Stream): Stream; - pipe(dest: ReadWriteStream): Stream; - pipe(dest: WritableStream): void; + pipe(dest: NodeReadWriteStream): Stream; + pipe(dest: NodeWritableStream): void; /** * Destroys a stream by unlinking it from any consumers and sources. This will diff --git a/node/node.d.ts b/node/node.d.ts index 8966fa18b9..d0a67ffef7 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -55,6 +55,7 @@ declare var SlowBuffer: { byteLength(string: string, encoding?: string): number; concat(list: Buffer[], totalLength?: number): Buffer; }; + declare var Buffer: { new (str: string, encoding?: string): Buffer; new (size: number): Buffer; @@ -89,20 +90,20 @@ interface NodeEventEmitter { emit(event: string, ...args: any[]): boolean; } -interface ReadableStream extends NodeEventEmitter { +interface NodeReadableStream extends NodeEventEmitter { readable: boolean; read(size?: number): any; setEncoding(encoding: string): void; pause(): void; resume(): void; - pipe(destination: T, options?: { end?: boolean; }): T; - unpipe(destination?: T): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; unshift(chunk: string): void; unshift(chunk: Buffer): void; - wrap(oldStream: ReadableStream): ReadableStream; + wrap(oldStream: NodeReadableStream): NodeReadableStream; } -interface WritableStream extends NodeEventEmitter { +interface NodeWritableStream extends NodeEventEmitter { writable: boolean; write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; @@ -113,12 +114,12 @@ interface WritableStream extends NodeEventEmitter { end(str: string, encoding?: string, cb?: Function): void; } -interface ReadWriteStream extends ReadableStream, WritableStream { } +interface NodeReadWriteStream extends NodeReadableStream, NodeWritableStream {} interface NodeProcess extends NodeEventEmitter { - stdout: WritableStream; - stderr: WritableStream; - stdin: ReadableStream; + stdout: NodeWritableStream; + stderr: NodeWritableStream; + stdin: NodeReadableStream; argv: string[]; execPath: string; abort(): void; @@ -264,7 +265,7 @@ declare module "http" { address(): { port: number; family: string; address: string; }; maxHeadersCount: number; } - export interface ServerRequest extends events.EventEmitter, ReadableStream { + export interface ServerRequest extends events.EventEmitter, stream.Readable { method: string; url: string; headers: any; @@ -275,7 +276,7 @@ declare module "http" { resume(): void; connection: net.Socket; } - export interface ServerResponse extends events.EventEmitter, WritableStream { + export interface ServerResponse extends events.EventEmitter, stream.Writable { // Extended base methods write(buffer: Buffer): boolean; write(buffer: Buffer, cb?: Function): boolean; @@ -301,7 +302,7 @@ declare module "http" { end(str: string, encoding?: string, cb?: Function): void; end(data?: any, encoding?: string): void; } - export interface ClientRequest extends events.EventEmitter, WritableStream { + export interface ClientRequest extends events.EventEmitter, stream.Writable { // Extended base methods write(buffer: Buffer): boolean; write(buffer: Buffer, cb?: Function): boolean; @@ -322,7 +323,7 @@ declare module "http" { end(str: string, encoding?: string, cb?: Function): void; end(data?: any, encoding?: string): void; } - export interface ClientResponse extends events.EventEmitter, ReadableStream { + export interface ClientResponse extends events.EventEmitter, stream.Readable { statusCode: number; httpVersion: string; headers: any; @@ -385,13 +386,13 @@ declare module "zlib" { import stream = require("stream"); export interface ZlibOptions { chunkSize?: number; windowBits?: number; level?: number; memLevel?: number; strategy?: number; dictionary?: any; } - export interface Gzip extends ReadWriteStream { } - export interface Gunzip extends ReadWriteStream { } - export interface Deflate extends ReadWriteStream { } - export interface Inflate extends ReadWriteStream { } - export interface DeflateRaw extends ReadWriteStream { } - export interface InflateRaw extends ReadWriteStream { } - export interface Unzip extends ReadWriteStream { } + export interface Gzip extends stream.Transform { } + export interface Gunzip extends stream.Transform { } + export interface Deflate extends stream.Transform { } + export interface Inflate extends stream.Transform { } + export interface DeflateRaw extends stream.Transform { } + export interface InflateRaw extends stream.Transform { } + export interface Unzip extends stream.Transform { } export function createGzip(options?: ZlibOptions): Gzip; export function createGunzip(options?: ZlibOptions): Gunzip; @@ -531,8 +532,8 @@ declare module "repl" { export interface ReplOptions { prompt?: string; - input?: ReadableStream; - output?: WritableStream; + input?: NodeReadableStream; + output?: NodeWritableStream; terminal?: boolean; eval?: Function; useColors?: boolean; @@ -557,8 +558,8 @@ declare module "readline" { write(data: any, key?: any): void; } export interface ReadLineOptions { - input: ReadableStream; - output: WritableStream; + input: NodeReadableStream; + output: NodeWritableStream; completer?: Function; terminal?: boolean; } @@ -583,9 +584,9 @@ declare module "child_process" { import stream = require("stream"); export interface ChildProcess extends events.EventEmitter { - stdin: WritableStream; - stdout: ReadableStream; - stderr: ReadableStream; + stdin: stream.Writable; + stdout: stream.Readable; + stderr: stream.Readable; pid: number; kill(signal?: string): void; send(message: any, sendHandle: any): void; @@ -679,7 +680,7 @@ declare module "dns" { declare module "net" { import stream = require("stream"); - export interface Socket extends ReadWriteStream { + export interface Socket extends stream.Duplex { // Extended base methods write(buffer: Buffer): boolean; write(buffer: Buffer, cb?: Function): boolean; @@ -787,8 +788,8 @@ declare module "fs" { close(): void; } - export interface ReadStream extends ReadableStream { } - export interface WriteStream extends WritableStream { } + export interface ReadStream extends stream.Readable {} + export interface WriteStream extends stream.Writable {} export function rename(oldPath: string, newPath: string, callback?: (err?: NodeErrnoException) => void): void; export function renameSync(oldPath: string, newPath: string): void; @@ -980,7 +981,7 @@ declare module "tls" { connections: number; } - export interface ClearTextStream extends ReadWriteStream { + export interface ClearTextStream extends stream.Duplex { authorized: boolean; authorizationError: Error; getPeerCertificate(): any; @@ -1085,7 +1086,7 @@ declare module "stream" { objectMode?: boolean; } - export class Readable extends events.EventEmitter implements ReadableStream { + export class Readable extends events.EventEmitter implements NodeReadableStream { readable: boolean; constructor(opts?: ReadableOptions); _read(size: number): void; @@ -1093,11 +1094,11 @@ declare module "stream" { setEncoding(encoding: string): void; pause(): void; resume(): void; - pipe(destination: T, options?: { end?: boolean; }): T; - unpipe(destination?: T): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; unshift(chunk: string): void; unshift(chunk: Buffer): void; - wrap(oldStream: ReadableStream): ReadableStream; + wrap(oldStream: NodeReadableStream): NodeReadableStream; push(chunk: any, encoding?: string): boolean; } @@ -1106,7 +1107,7 @@ declare module "stream" { decodeStrings?: boolean; } - export class Writable extends events.EventEmitter implements WritableStream { + export class Writable extends events.EventEmitter implements NodeWritableStream { writable: boolean; constructor(opts?: WritableOptions); _write(data: Buffer, encoding: string, callback: Function): void; @@ -1125,7 +1126,7 @@ declare module "stream" { } // Note: Duplex extends both Readable and Writable. - export class Duplex extends Readable implements ReadWriteStream { + export class Duplex extends Readable implements NodeReadWriteStream { writable: boolean; constructor(opts?: DuplexOptions); _write(data: Buffer, encoding: string, callback: Function): void; @@ -1142,7 +1143,7 @@ declare module "stream" { export interface TransformOptions extends ReadableOptions, WritableOptions {} // Note: Transform lacks the _read and _write methods of Readable/Writable. - export class Transform extends events.EventEmitter implements ReadWriteStream { + export class Transform extends events.EventEmitter implements NodeReadWriteStream { readable: boolean; writable: boolean; constructor(opts?: TransformOptions); @@ -1153,11 +1154,11 @@ declare module "stream" { setEncoding(encoding: string): void; pause(): void; resume(): void; - pipe(destination: T, options?: { end?: boolean; }): T; - unpipe(destination?: T): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; unshift(chunk: string): void; unshift(chunk: Buffer): void; - wrap(oldStream: ReadableStream): ReadableStream; + wrap(oldStream: NodeReadableStream): NodeReadableStream; push(chunk: any, encoding?: string): boolean; write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; diff --git a/promptly/promptly.d.ts b/promptly/promptly.d.ts index 3469ea04ab..8999d1cc4d 100644 --- a/promptly/promptly.d.ts +++ b/promptly/promptly.d.ts @@ -6,6 +6,7 @@ /// declare module "promptly" { + import stream = require('stream'); interface Callback { (err: Error, value: string): void; @@ -17,8 +18,8 @@ declare module "promptly" { validator?: any; retry?: boolean; silent?: boolean; - input?: ReadableStream; - output?: WritableStream; + input?: NodeReadableStream; + output?: NodeWritableStream; } export function prompt(message: string, fn?: Callback):any; diff --git a/q-io/Q-io.d.ts b/q-io/Q-io.d.ts index f9d1c10d14..cc321e24bc 100644 --- a/q-io/Q-io.d.ts +++ b/q-io/Q-io.d.ts @@ -200,7 +200,7 @@ declare module Qio { read(charset:string):Q.Promise; read():Q.Promise; close():void; - node:ReadableStream; + node: NodeReadableStream; } interface Writer { write(content:string):void; @@ -208,7 +208,7 @@ declare module Qio { flush():Q.Promise; close():void; destroy():void; - node:WritableStream; + node: NodeWritableStream; } interface Stream { diff --git a/superagent/superagent.d.ts b/superagent/superagent.d.ts index f416dee814..df0e288e97 100644 --- a/superagent/superagent.d.ts +++ b/superagent/superagent.d.ts @@ -6,6 +6,7 @@ /// declare module "superagent" { + import stream = require('stream'); export interface Response { text: string; body: any; @@ -44,7 +45,7 @@ declare module "superagent" { send(data: Object): Request; write(data: string, encoding: string): boolean; write(data: Buffer, encoding: string): boolean; - pipe(stream: WritableStream, options?: Object): WritableStream; + pipe(stream: NodeWritableStream, options?: Object): stream.Writable; buffer(val: boolean): Request; timeout(ms: number): Request; clearTimeout(): Request; diff --git a/through/through.d.ts b/through/through.d.ts index 8a617c4241..1491085a2f 100644 --- a/through/through.d.ts +++ b/through/through.d.ts @@ -6,7 +6,7 @@ /// declare module "through" { - import Stream = require("stream"); + import stream = require("stream"); function through(write?: (data) => void, end?: () => void, @@ -15,7 +15,7 @@ declare module "through" { }): through.ThroughStream; module through { - export interface ThroughStream extends ReadWriteStream { + export interface ThroughStream extends stream.Transform { autoDestroy: boolean; } } From 25a3c76b4474eb66abe42a84d19525b0237521f7 Mon Sep 17 00:00:00 2001 From: Paul Loyd Date: Thu, 10 Apr 2014 21:57:58 +0400 Subject: [PATCH 047/132] node: move Node* to NodeJS module --- browserify/browserify.d.ts | 4 +- highland/highland-tests.ts | 6 +- highland/highland.d.ts | 10 +- jake/jake.d.ts | 24 +-- node/node.d.ts | 359 +++++++++++++++++++------------------ promptly/promptly.d.ts | 4 +- q-io/Q-io.d.ts | 4 +- superagent/superagent.d.ts | 2 +- 8 files changed, 211 insertions(+), 202 deletions(-) diff --git a/browserify/browserify.d.ts b/browserify/browserify.d.ts index ebed2a4908..5326abaeb5 100644 --- a/browserify/browserify.d.ts +++ b/browserify/browserify.d.ts @@ -5,7 +5,7 @@ /// -interface BrowserifyObject extends NodeEventEmitter { +interface BrowserifyObject extends NodeJS.EventEmitter { add(file: string): BrowserifyObject; require(file: string, opts?: { expose: string; @@ -16,7 +16,7 @@ interface BrowserifyObject extends NodeEventEmitter { debug?: boolean; standalone?: string; insertGlobalVars?: any; - }, cb?: (err: any, src: any) => void): NodeReadableStream; + }, cb?: (err: any, src: any) => void): NodeJS.ReadableStream; external(file: string): BrowserifyObject; ignore(file: string): BrowserifyObject; diff --git a/highland/highland-tests.ts b/highland/highland-tests.ts index 0a724a7fbf..c7e213aa17 100644 --- a/highland/highland-tests.ts +++ b/highland/highland-tests.ts @@ -22,9 +22,9 @@ var strArr: string[]; var numArr: string[]; var funcArr: Function[]; -var readable: NodeReadableStream; -var writable: NodeWritableStream; -var emitter: NodeEventEmitter; +var readable: NodeJS.ReadableStream; +var writable: NodeJS.WritableStream; +var emitter: NodeJS.EventEmitter; // - - - - - - - - - - - - - - - - - diff --git a/highland/highland.d.ts b/highland/highland.d.ts index 3bec0c6eb3..3f98c948ed 100644 --- a/highland/highland.d.ts +++ b/highland/highland.d.ts @@ -62,8 +62,8 @@ interface HighlandStatic { (xs: (push: (err: Error, x?: R) => void, next: () => void) => void): Highland.Stream; (xs: Highland.Stream): Highland.Stream; - (xs: NodeReadableStream): Highland.Stream; - (xs: NodeEventEmitter): Highland.Stream; + (xs: NodeJS.ReadableStream): Highland.Stream; + (xs: NodeJS.EventEmitter): Highland.Stream; // moar (promise for everything?) (xs: Highland.Thenable>): Highland.Stream; @@ -365,7 +365,7 @@ declare module Highland { /** * Actual Stream constructor wrapped the the main exported function */ - interface Stream extends NodeEventEmitter { + interface Stream extends NodeJS.EventEmitter { /** * Pauses the stream. All Highland Streams start in the paused state. @@ -419,8 +419,8 @@ declare module Highland { * @api public */ pipe(dest: Stream): Stream; - pipe(dest: NodeReadWriteStream): Stream; - pipe(dest: NodeWritableStream): void; + pipe(dest: NodeJS.ReadWriteStream): Stream; + pipe(dest: NodeJS.WritableStream): void; /** * Destroys a stream by unlinking it from any consumers and sources. This will diff --git a/jake/jake.d.ts b/jake/jake.d.ts index 330aac3248..904a8084bf 100644 --- a/jake/jake.d.ts +++ b/jake/jake.d.ts @@ -133,7 +133,7 @@ declare module jake{ * @event stderr When the stderr for the child-process recieves data. This streams the stderr data. Passes one arg, the chunk of data. * @event error When a shell-command */ - export interface Exec extends NodeEventEmitter { + export interface Exec extends NodeJS.EventEmitter { append(cmd:string): void; run(): void; } @@ -187,7 +187,7 @@ declare module jake{ * * @event complete */ - export class Task implements NodeEventEmitter { + export class Task implements NodeJS.EventEmitter { /** * @name name The name of the Task * @param prereqs Prerequisites to be run before this task @@ -206,11 +206,11 @@ declare module jake{ */ reenable(): void; - addListener(event: string, listener: Function): NodeEventEmitter; - on(event: string, listener: Function): NodeEventEmitter; - once(event: string, listener: Function): NodeEventEmitter; - removeListener(event: string, listener: Function): NodeEventEmitter; - removeAllListeners(event?: string): NodeEventEmitter; + addListener(event: string, listener: Function): NodeJS.EventEmitter; + on(event: string, listener: Function): NodeJS.EventEmitter; + once(event: string, listener: Function): NodeJS.EventEmitter; + removeListener(event: string, listener: Function): NodeJS.EventEmitter; + removeAllListeners(event?: string): NodeJS.EventEmitter; setMaxListeners(n: number): void; listeners(event: string): Function[]; emit(event: string, ...args: any[]): boolean; @@ -381,11 +381,11 @@ declare module jake{ constructor(name:string, definition?:()=>void); } - export function addListener(event: string, listener: Function): NodeEventEmitter; - export function on(event: string, listener: Function): NodeEventEmitter; - export function once(event: string, listener: Function): NodeEventEmitter; - export function removeListener(event: string, listener: Function): NodeEventEmitter; - export function removeAllListener(event: string): NodeEventEmitter; + export function addListener(event: string, listener: Function): NodeJS.EventEmitter; + export function on(event: string, listener: Function): NodeJS.EventEmitter; + export function once(event: string, listener: Function): NodeJS.EventEmitter; + export function removeListener(event: string, listener: Function): NodeJS.EventEmitter; + export function removeAllListener(event: string): NodeJS.EventEmitter; export function setMaxListeners(n: number): void; export function listeners(event: string): Function[]; export function emit(event: string, ...args: any[]): boolean; diff --git a/node/node.d.ts b/node/node.d.ts index d0a67ffef7..11af9e5b12 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -13,17 +13,17 @@ * GLOBAL * * * ************************************************/ -declare var process: NodeProcess; +declare var process: NodeJS.Process; declare var global: any; declare var __filename: string; declare var __dirname: string; -declare function setTimeout(callback: (...args: any[]) => void , ms: number , ...args: any[]): NodeTimer; -declare function clearTimeout(timeoutId: NodeTimer): void; -declare function setInterval(callback: (...args: any[]) => void , ms: number , ...args: any[]): NodeTimer; -declare function clearInterval(intervalId: NodeTimer): void; -declare function setImmediate(callback: (...args: any[]) => void , ...args: any[]): any; +declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer; +declare function clearTimeout(timeoutId: NodeJS.Timer): void; +declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer; +declare function clearInterval(intervalId: NodeJS.Timer): void; +declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any; declare function clearImmediate(immediateId: any): void; declare var require: { @@ -32,7 +32,7 @@ declare var require: { cache: any; extensions: any; main: any; -} +}; declare var module: { exports: any; @@ -42,7 +42,7 @@ declare var module: { loaded: boolean; parent: any; children: any[]; -} +}; // Same as module.exports declare var exports: any; @@ -56,6 +56,9 @@ declare var SlowBuffer: { concat(list: Buffer[], totalLength?: number): Buffer; }; + +// Buffer class +interface Buffer extends NodeBuffer {} declare var Buffer: { new (str: string, encoding?: string): Buffer; new (size: number): Buffer; @@ -68,112 +71,126 @@ declare var Buffer: { /************************************************ * * -* INTERFACES * +* GLOBAL INTERFACES * * * ************************************************/ +declare module NodeJS { + export interface ErrnoException extends Error { + errno?: any; + code?: string; + path?: string; + syscall?: string; + } -interface NodeErrnoException extends Error { - errno?: any; - code?: string; - path?: string; - syscall?: string; -} + export interface EventEmitter { + addListener(event: string, listener: Function): EventEmitter; + on(event: string, listener: Function): EventEmitter; + once(event: string, listener: Function): EventEmitter; + removeListener(event: string, listener: Function): EventEmitter; + removeAllListeners(event?: string): EventEmitter; + setMaxListeners(n: number): void; + listeners(event: string): Function[]; + emit(event: string, ...args: any[]): boolean; + } -interface NodeEventEmitter { - addListener(event: string, listener: Function): NodeEventEmitter; - on(event: string, listener: Function): NodeEventEmitter; - once(event: string, listener: Function): NodeEventEmitter; - removeListener(event: string, listener: Function): NodeEventEmitter; - removeAllListeners(event?: string): NodeEventEmitter; - setMaxListeners(n: number): void; - listeners(event: string): Function[]; - emit(event: string, ...args: any[]): boolean; -} + export interface ReadableStream extends EventEmitter { + readable: boolean; + read(size?: number): any; + setEncoding(encoding: string): void; + pause(): void; + resume(): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; + unshift(chunk: string): void; + unshift(chunk: Buffer): void; + wrap(oldStream: ReadableStream): ReadableStream; + } -interface NodeReadableStream extends NodeEventEmitter { - readable: boolean; - read(size?: number): any; - setEncoding(encoding: string): void; - pause(): void; - resume(): void; - pipe(destination: T, options?: { end?: boolean; }): T; - unpipe(destination?: T): void; - unshift(chunk: string): void; - unshift(chunk: Buffer): void; - wrap(oldStream: NodeReadableStream): NodeReadableStream; -} + export interface WritableStream extends EventEmitter { + writable: boolean; + write(buffer: Buffer, cb?: Function): boolean; + write(str: string, cb?: Function): boolean; + write(str: string, encoding?: string, cb?: Function): boolean; + end(): void; + end(buffer: Buffer, cb?: Function): void; + end(str: string, cb?: Function): void; + end(str: string, encoding?: string, cb?: Function): void; + } -interface NodeWritableStream extends NodeEventEmitter { - writable: boolean; - write(buffer: Buffer, cb?: Function): boolean; - write(str: string, cb?: Function): boolean; - write(str: string, encoding?: string, cb?: Function): boolean; - end(): void; - end(buffer: Buffer, cb?: Function): void; - end(str: string, cb?: Function): void; - end(str: string, encoding?: string, cb?: Function): void; -} + export interface ReadWriteStream extends ReadableStream, WritableStream {} -interface NodeReadWriteStream extends NodeReadableStream, NodeWritableStream {} - -interface NodeProcess extends NodeEventEmitter { - stdout: NodeWritableStream; - stderr: NodeWritableStream; - stdin: NodeReadableStream; - argv: string[]; - execPath: string; - abort(): void; - chdir(directory: string): void; - cwd(): string; - env: any; - exit(code?: number): void; - getgid(): number; - setgid(id: number): void; - setgid(id: string): void; - getuid(): number; - setuid(id: number): void; - setuid(id: string): void; - version: string; - versions: { http_parser: string; node: string; v8: string; ares: string; uv: string; zlib: string; openssl: string; }; - config: { - target_defaults: { - cflags: any[]; - default_configuration: string; - defines: string[]; - include_dirs: string[]; - libraries: string[]; + export interface Process extends EventEmitter { + stdout: WritableStream; + stderr: WritableStream; + stdin: ReadableStream; + argv: string[]; + execPath: string; + abort(): void; + chdir(directory: string): void; + cwd(): string; + env: any; + exit(code?: number): void; + getgid(): number; + setgid(id: number): void; + setgid(id: string): void; + getuid(): number; + setuid(id: number): void; + setuid(id: string): void; + version: string; + versions: { + http_parser: string; + node: string; + v8: string; + ares: string; + uv: string; + zlib: string; + openssl: string; }; - variables: { - clang: number; - host_arch: string; - node_install_npm: boolean; - node_install_waf: boolean; - node_prefix: string; - node_shared_openssl: boolean; - node_shared_v8: boolean; - node_shared_zlib: boolean; - node_use_dtrace: boolean; - node_use_etw: boolean; - node_use_openssl: boolean; - target_arch: string; - v8_no_strict_aliasing: number; - v8_use_snapshot: boolean; - visibility: string; - }; - }; - kill(pid: number, signal?: string): void; - pid: number; - title: string; - arch: string; - platform: string; - memoryUsage(): { rss: number; heapTotal: number; heapUsed: number; }; - nextTick(callback: Function): void; - umask(mask?: number): number; - uptime(): number; - hrtime(time?:number[]): number[]; + config: { + target_defaults: { + cflags: any[]; + default_configuration: string; + defines: string[]; + include_dirs: string[]; + libraries: string[]; + }; + variables: { + clang: number; + host_arch: string; + node_install_npm: boolean; + node_install_waf: boolean; + node_prefix: string; + node_shared_openssl: boolean; + node_shared_v8: boolean; + node_shared_zlib: boolean; + node_use_dtrace: boolean; + node_use_etw: boolean; + node_use_openssl: boolean; + target_arch: string; + v8_no_strict_aliasing: number; + v8_use_snapshot: boolean; + visibility: string; + }; + }; + kill(pid: number, signal?: string): void; + pid: number; + title: string; + arch: string; + platform: string; + memoryUsage(): { rss: number; heapTotal: number; heapUsed: number; }; + nextTick(callback: Function): void; + umask(mask?: number): number; + uptime(): number; + hrtime(time?:number[]): number[]; - // Worker - send?(message: any, sendHandle?: any): void; + // Worker + send?(message: any, sendHandle?: any): void; + } + + export interface Timer { + ref() : void; + unref() : void; + } } /** @@ -217,14 +234,6 @@ interface NodeBuffer { fill(value: any, offset?: number, end?: number): void; } -// Buffer class -interface Buffer extends NodeBuffer {} - -interface NodeTimer { - ref() : void; - unref() : void; -} - /************************************************ * * * MODULES * @@ -238,7 +247,7 @@ declare module "querystring" { } declare module "events" { - export class EventEmitter implements NodeEventEmitter { + export class EventEmitter implements NodeJS.EventEmitter { static listenerCount(emitter: EventEmitter, event: string): number; addListener(event: string, listener: Function): EventEmitter; @@ -532,8 +541,8 @@ declare module "repl" { export interface ReplOptions { prompt?: string; - input?: NodeReadableStream; - output?: NodeWritableStream; + input?: NodeJS.ReadableStream; + output?: NodeJS.WritableStream; terminal?: boolean; eval?: Function; useColors?: boolean; @@ -558,8 +567,8 @@ declare module "readline" { write(data: any, key?: any): void; } export interface ReadLineOptions { - input: NodeReadableStream; - output: NodeWritableStream; + input: NodeJS.ReadableStream; + output: NodeJS.WritableStream; completer?: Function; terminal?: boolean; } @@ -791,90 +800,90 @@ declare module "fs" { export interface ReadStream extends stream.Readable {} export interface WriteStream extends stream.Writable {} - export function rename(oldPath: string, newPath: string, callback?: (err?: NodeErrnoException) => void): void; + export function rename(oldPath: string, newPath: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function renameSync(oldPath: string, newPath: string): void; - export function truncate(path: string, callback?: (err?: NodeErrnoException) => void): void; - export function truncate(path: string, len: number, callback?: (err?: NodeErrnoException) => void): void; + export function truncate(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function truncate(path: string, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function truncateSync(path: string, len?: number): void; - export function ftruncate(fd: number, callback?: (err?: NodeErrnoException) => void): void; - export function ftruncate(fd: number, len: number, callback?: (err?: NodeErrnoException) => void): void; + export function ftruncate(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function ftruncate(fd: number, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function ftruncateSync(fd: number, len?: number): void; - export function chown(path: string, uid: number, gid: number, callback?: (err?: NodeErrnoException) => void): void; + export function chown(path: string, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function chownSync(path: string, uid: number, gid: number): void; - export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeErrnoException) => void): void; + export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function fchownSync(fd: number, uid: number, gid: number): void; - export function lchown(path: string, uid: number, gid: number, callback?: (err?: NodeErrnoException) => void): void; + export function lchown(path: string, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function lchownSync(path: string, uid: number, gid: number): void; - export function chmod(path: string, mode: number, callback?: (err?: NodeErrnoException) => void): void; - export function chmod(path: string, mode: string, callback?: (err?: NodeErrnoException) => void): void; + export function chmod(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function chmod(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function chmodSync(path: string, mode: number): void; export function chmodSync(path: string, mode: string): void; - export function fchmod(fd: number, mode: number, callback?: (err?: NodeErrnoException) => void): void; - export function fchmod(fd: number, mode: string, callback?: (err?: NodeErrnoException) => void): void; + export function fchmod(fd: number, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function fchmod(fd: number, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function fchmodSync(fd: number, mode: number): void; export function fchmodSync(fd: number, mode: string): void; - export function lchmod(path: string, mode: number, callback?: (err?: NodeErrnoException) => void): void; - export function lchmod(path: string, mode: string, callback?: (err?: NodeErrnoException) => void): void; + export function lchmod(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function lchmod(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function lchmodSync(path: string, mode: number): void; export function lchmodSync(path: string, mode: string): void; - export function stat(path: string, callback?: (err: NodeErrnoException, stats: Stats) => any): void; - export function lstat(path: string, callback?: (err: NodeErrnoException, stats: Stats) => any): void; - export function fstat(fd: number, callback?: (err: NodeErrnoException, stats: Stats) => any): void; + export function stat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void; + export function lstat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void; + export function fstat(fd: number, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void; export function statSync(path: string): Stats; export function lstatSync(path: string): Stats; export function fstatSync(fd: number): Stats; - export function link(srcpath: string, dstpath: string, callback?: (err?: NodeErrnoException) => void): void; + export function link(srcpath: string, dstpath: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function linkSync(srcpath: string, dstpath: string): void; - export function symlink(srcpath: string, dstpath: string, type?: string, callback?: (err?: NodeErrnoException) => void): void; + export function symlink(srcpath: string, dstpath: string, type?: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function symlinkSync(srcpath: string, dstpath: string, type?: string): void; - export function readlink(path: string, callback?: (err: NodeErrnoException, linkString: string) => any): void; + export function readlink(path: string, callback?: (err: NodeJS.ErrnoException, linkString: string) => any): void; export function readlinkSync(path: string): string; - export function realpath(path: string, callback?: (err: NodeErrnoException, resolvedPath: string) => any): void; - export function realpath(path: string, cache: {[path: string]: string}, callback: (err: NodeErrnoException, resolvedPath: string) =>any): void; + export function realpath(path: string, callback?: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void; + export function realpath(path: string, cache: {[path: string]: string}, callback: (err: NodeJS.ErrnoException, resolvedPath: string) =>any): void; export function realpathSync(path: string, cache?: {[path: string]: string}): string; - export function unlink(path: string, callback?: (err?: NodeErrnoException) => void): void; + export function unlink(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function unlinkSync(path: string): void; - export function rmdir(path: string, callback?: (err?: NodeErrnoException) => void): void; + export function rmdir(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function rmdirSync(path: string): void; - export function mkdir(path: string, callback?: (err?: NodeErrnoException) => void): void; - export function mkdir(path: string, mode: number, callback?: (err?: NodeErrnoException) => void): void; - export function mkdir(path: string, mode: string, callback?: (err?: NodeErrnoException) => void): void; + export function mkdir(path: string, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function mkdir(path: string, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void; + export function mkdir(path: string, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void; export function mkdirSync(path: string, mode?: number): void; export function mkdirSync(path: string, mode?: string): void; - export function readdir(path: string, callback?: (err: NodeErrnoException, files: string[]) => void): void; + export function readdir(path: string, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void; export function readdirSync(path: string): string[]; - export function close(fd: number, callback?: (err?: NodeErrnoException) => void): void; + export function close(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function closeSync(fd: number): void; - export function open(path: string, flags: string, callback?: (err: NodeErrnoException, fd: number) => any): void; - export function open(path: string, flags: string, mode: number, callback?: (err: NodeErrnoException, fd: number) => any): void; - export function open(path: string, flags: string, mode: string, callback?: (err: NodeErrnoException, fd: number) => any): void; + export function open(path: string, flags: string, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void; + export function open(path: string, flags: string, mode: number, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void; + export function open(path: string, flags: string, mode: string, callback?: (err: NodeJS.ErrnoException, fd: number) => any): void; export function openSync(path: string, flags: string, mode?: number): number; export function openSync(path: string, flags: string, mode?: string): number; - export function utimes(path: string, atime: number, mtime: number, callback?: (err?: NodeErrnoException) => void): void; + export function utimes(path: string, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function utimesSync(path: string, atime: number, mtime: number): void; - export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeErrnoException) => void): void; + export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function futimesSync(fd: number, atime: number, mtime: number): void; - export function fsync(fd: number, callback?: (err?: NodeErrnoException) => void): void; + export function fsync(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void; export function fsyncSync(fd: number): void; - export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeErrnoException, written: number, buffer: Buffer) => void): void; + export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void; export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number; - export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeErrnoException, bytesRead: number, buffer: Buffer) => void): void; + export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): void; export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number): number; - export function readFile(filename: string, encoding: string, callback: (err: NodeErrnoException, data: string) => void): void; - export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeErrnoException, data: string) => void): void; - export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeErrnoException, data: Buffer) => void): void; - export function readFile(filename: string, callback: (err: NodeErrnoException, data: Buffer) => void ): void; + export function readFile(filename: string, encoding: string, callback: (err: NodeJS.ErrnoException, data: string) => void): void; + export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string) => void): void; + export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void; + export function readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void ): void; export function readFileSync(filename: string, encoding: string): string; export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string; export function readFileSync(filename: string, options?: { flag?: string; }): Buffer; - export function writeFile(filename: string, data: any, callback?: (err: NodeErrnoException) => void): void; - export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; - export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; + export function writeFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void; + export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; + export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void; export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void; - export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; - export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeErrnoException) => void): void; - export function appendFile(filename: string, data: any, callback?: (err: NodeErrnoException) => void): void; + export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; + export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; + export function appendFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void; export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void; export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void; export function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void; @@ -1086,7 +1095,7 @@ declare module "stream" { objectMode?: boolean; } - export class Readable extends events.EventEmitter implements NodeReadableStream { + export class Readable extends events.EventEmitter implements NodeJS.ReadableStream { readable: boolean; constructor(opts?: ReadableOptions); _read(size: number): void; @@ -1094,11 +1103,11 @@ declare module "stream" { setEncoding(encoding: string): void; pause(): void; resume(): void; - pipe(destination: T, options?: { end?: boolean; }): T; - unpipe(destination?: T): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; unshift(chunk: string): void; unshift(chunk: Buffer): void; - wrap(oldStream: NodeReadableStream): NodeReadableStream; + wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream; push(chunk: any, encoding?: string): boolean; } @@ -1107,7 +1116,7 @@ declare module "stream" { decodeStrings?: boolean; } - export class Writable extends events.EventEmitter implements NodeWritableStream { + export class Writable extends events.EventEmitter implements NodeJS.WritableStream { writable: boolean; constructor(opts?: WritableOptions); _write(data: Buffer, encoding: string, callback: Function): void; @@ -1126,7 +1135,7 @@ declare module "stream" { } // Note: Duplex extends both Readable and Writable. - export class Duplex extends Readable implements NodeReadWriteStream { + export class Duplex extends Readable implements NodeJS.ReadWriteStream { writable: boolean; constructor(opts?: DuplexOptions); _write(data: Buffer, encoding: string, callback: Function): void; @@ -1143,7 +1152,7 @@ declare module "stream" { export interface TransformOptions extends ReadableOptions, WritableOptions {} // Note: Transform lacks the _read and _write methods of Readable/Writable. - export class Transform extends events.EventEmitter implements NodeReadWriteStream { + export class Transform extends events.EventEmitter implements NodeJS.ReadWriteStream { readable: boolean; writable: boolean; constructor(opts?: TransformOptions); @@ -1154,11 +1163,11 @@ declare module "stream" { setEncoding(encoding: string): void; pause(): void; resume(): void; - pipe(destination: T, options?: { end?: boolean; }): T; - unpipe(destination?: T): void; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: T): void; unshift(chunk: string): void; unshift(chunk: Buffer): void; - wrap(oldStream: NodeReadableStream): NodeReadableStream; + wrap(oldStream: NodeJS.ReadableStream): NodeJS.ReadableStream; push(chunk: any, encoding?: string): boolean; write(buffer: Buffer, cb?: Function): boolean; write(str: string, cb?: Function): boolean; diff --git a/promptly/promptly.d.ts b/promptly/promptly.d.ts index 8999d1cc4d..beb8319247 100644 --- a/promptly/promptly.d.ts +++ b/promptly/promptly.d.ts @@ -18,8 +18,8 @@ declare module "promptly" { validator?: any; retry?: boolean; silent?: boolean; - input?: NodeReadableStream; - output?: NodeWritableStream; + input?: NodeJS.ReadableStream; + output?: NodeJS.WritableStream; } export function prompt(message: string, fn?: Callback):any; diff --git a/q-io/Q-io.d.ts b/q-io/Q-io.d.ts index cc321e24bc..9c39633767 100644 --- a/q-io/Q-io.d.ts +++ b/q-io/Q-io.d.ts @@ -200,7 +200,7 @@ declare module Qio { read(charset:string):Q.Promise; read():Q.Promise; close():void; - node: NodeReadableStream; + node: NodeJS.ReadableStream; } interface Writer { write(content:string):void; @@ -208,7 +208,7 @@ declare module Qio { flush():Q.Promise; close():void; destroy():void; - node: NodeWritableStream; + node: NodeJS.WritableStream; } interface Stream { diff --git a/superagent/superagent.d.ts b/superagent/superagent.d.ts index df0e288e97..9e6f9c4b5b 100644 --- a/superagent/superagent.d.ts +++ b/superagent/superagent.d.ts @@ -45,7 +45,7 @@ declare module "superagent" { send(data: Object): Request; write(data: string, encoding: string): boolean; write(data: Buffer, encoding: string): boolean; - pipe(stream: NodeWritableStream, options?: Object): stream.Writable; + pipe(stream: NodeJS.WritableStream, options?: Object): stream.Writable; buffer(val: boolean): Request; timeout(ms: number): Request; clearTimeout(): Request; From 088f8056b138e7249c3ec28b22c4ba5ae5e42e5e Mon Sep 17 00:00:00 2001 From: SkyKnight Date: Mon, 28 Apr 2014 21:22:58 +0200 Subject: [PATCH 048/132] missing optional parameter in EM.exportEntities http://www.breezejs.com/documentation/exportimport --- breeze/breeze.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/breeze/breeze.d.ts b/breeze/breeze.d.ts index 3614e34461..4ecb9bca64 100644 --- a/breeze/breeze.d.ts +++ b/breeze/breeze.d.ts @@ -382,7 +382,7 @@ declare module breeze { executeQuery(query: EntityQuery, callback?: ExecuteQuerySuccessCallback, errorCallback?: ExecuteQueryErrorCallback): Q.Promise; executeQueryLocally(query: EntityQuery): Entity[]; - exportEntities(entities?: Entity[]): string; + exportEntities(entities?: Entity[], includeMetadata?: boolean): string; fetchEntityByKey(typeName: string, keyValue: any, checkLocalCacheFirst?: boolean): Q.Promise; fetchEntityByKey(typeName: string, keyValues: any[], checkLocalCacheFirst?: boolean): Q.Promise; fetchEntityByKey(entityKey: EntityKey, checkLocalCacheFirst?: boolean): Q.Promise; From 77329c13e49aa8471fd4fb1ec11757af0115e85b Mon Sep 17 00:00:00 2001 From: SkyKnight Date: Mon, 28 Apr 2014 21:25:51 +0200 Subject: [PATCH 049/132] optional second parameter of getAdapterInstance according to description on page http://www.breezejs.com/documentation/customizing-ajax adapterName is not required --- breeze/breeze.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/breeze/breeze.d.ts b/breeze/breeze.d.ts index 4ecb9bca64..fab5dd0772 100644 --- a/breeze/breeze.d.ts +++ b/breeze/breeze.d.ts @@ -877,7 +877,7 @@ declare module breeze.config { var dataService: string; var functionRegistry: Object; export function getAdapter(interfaceName: string, adapterName: string): Object; - export function getAdapterInstance(interfaceName: string, adapterName: string): Object; + export function getAdapterInstance(interfaceName: string, adapterName?: string): Object; export function initializeAdapterInstance(interfaceName: string, adapterName: string, isDefault: boolean): void; export function initializeAdapterInstances(config: Object): void; var interfaceInitialized: Event; From e17cda940289318200654fc9ced181c85bfb25f1 Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Mon, 28 Apr 2014 22:00:50 +0200 Subject: [PATCH 050/132] node fix for mu2 --- mu2/mu2-tests.ts | 2 +- mu2/mu2.d.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mu2/mu2-tests.ts b/mu2/mu2-tests.ts index e8172b800e..24b85ec4df 100644 --- a/mu2/mu2-tests.ts +++ b/mu2/mu2-tests.ts @@ -6,7 +6,7 @@ import stream = require('stream'); var str: string; var value: any; -var read: ReadableStream; +var read: NodeJS.ReadableStream; var parsed: mu2.IParsed; str = mu2.root; diff --git a/mu2/mu2.d.ts b/mu2/mu2.d.ts index cbc46d6fb7..714703934c 100644 --- a/mu2/mu2.d.ts +++ b/mu2/mu2.d.ts @@ -10,7 +10,7 @@ declare module "mu2" { export var root: string; - export function compileAndRender(templateName: string, view: any): ReadableStream; + export function compileAndRender(templateName: string, view: any): NodeJS.ReadableStream; export function compile(filename: string, callback: (err: Error, parsed: IParsed) => void): void; @@ -18,10 +18,10 @@ declare module "mu2" { export function compileText(name: string, template: string): IParsed; export function compileText(template: string): IParsed; - export function render(filenameOrParsed: string, view: any): ReadableStream; - export function render(filenameOrParsed: IParsed, view: any): ReadableStream; + export function render(filenameOrParsed: string, view: any): NodeJS.ReadableStream; + export function render(filenameOrParsed: IParsed, view: any): NodeJS.ReadableStream; - export function renderText(template: string, view: any, partials?: any): ReadableStream; + export function renderText(template: string, view: any, partials?: any): NodeJS.ReadableStream; export function clearCache(templateName?: string): void; From fb6da7e0ab86520969b145c3c51a174bd59fd660 Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Mon, 28 Apr 2014 22:37:39 +0200 Subject: [PATCH 051/132] external module for uuid, removed var with global interfaces for existing users --- node-uuid/node-uuid.d.ts | 13 ++++++++----- node-uuid/node-uuid.tests.ts | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/node-uuid/node-uuid.d.ts b/node-uuid/node-uuid.d.ts index 8c287bb2e7..48a3422049 100644 --- a/node-uuid/node-uuid.d.ts +++ b/node-uuid/node-uuid.d.ts @@ -34,16 +34,19 @@ interface UUIDOptions { interface UUID { v1(options?: UUIDOptions, buffer?: number[], offset?: number): string - v1(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string + v1(options?: UUIDOptions, buffer?: Buffer, offset?: number): string v2(options?: UUIDOptions, buffer?: number[], offset?: number): string - v2(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string + v2(options?: UUIDOptions, buffer?: Buffer, offset?: number): string v3(options?: UUIDOptions, buffer?: number[], offset?: number): string - v3(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string + v3(options?: UUIDOptions, buffer?: Buffer, offset?: number): string v4(options?: UUIDOptions, buffer?: number[], offset?: number): string - v4(options?: UUIDOptions, buffer?: NodeBuffer, offset?: number): string + v4(options?: UUIDOptions, buffer?: Buffer, offset?: number): string } -declare var uuid: UUID; +declare module 'uuid' { + var uuid: UUID; + export = uuid; +} diff --git a/node-uuid/node-uuid.tests.ts b/node-uuid/node-uuid.tests.ts index 6e1d7bd8c1..49c8f165a5 100644 --- a/node-uuid/node-uuid.tests.ts +++ b/node-uuid/node-uuid.tests.ts @@ -1,5 +1,7 @@ /// +import uuid = require('node-uuid'); + var uid1: string = uuid.v1() var uid2: string = uuid.v2() var uid3: string = uuid.v3() From 9ecabb04af17c7e09a15257999000269b08fa3b7 Mon Sep 17 00:00:00 2001 From: AdaskoTheBeAsT Date: Mon, 28 Apr 2014 23:37:13 +0200 Subject: [PATCH 052/132] jstree definition file jstree definition file after rework --- CONTRIBUTORS.md | 1 + jstree/jstree-test.ts | 67 ++++++++++ .../jquery.jstree.d.ts => jstree/jstree.d.ts | 119 ++++++++++++++++-- 3 files changed, 175 insertions(+), 12 deletions(-) create mode 100644 jstree/jstree-test.ts rename jquery.jstree/jquery.jstree.d.ts => jstree/jstree.d.ts (86%) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index a3f729ca96..faf480ebb0 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -168,6 +168,7 @@ All definitions files include a header with the author and editors, so at some p * [JSON-Pointer](https://www.npmjs.org/package/json-pointer) (by [Bart van der Schoor](https://github.com/Bartvds)) * [JsRender](http://www.jsviews.com/#jsrender) (by [Kensuke MATSUZAKI](https://github.com/zakki)) * [jStorage](http://www.jstorage.info/) (by [Danil Flores](https://github.com/dflor003/)) +* [jsTree](http://www.jstree.com/) (by [Adam PluciÅ„ski](https://github.com/adaskothebeast)) * [JWPlayer](http://developer.longtailvideo.com/trac/) (by [Martin Duparc](https://github.com/martinduparc/)) * [KeyboardJS](https://github.com/RobertWHurst/KeyboardJS) (by [Vincent Bortone](https://github.com/vbortone/)) * [KineticJS](http://kineticjs.com/) (by [Basarat Ali Syed](https://github.com/basarat)) diff --git a/jstree/jstree-test.ts b/jstree/jstree-test.ts new file mode 100644 index 0000000000..ddd1c60ddd --- /dev/null +++ b/jstree/jstree-test.ts @@ -0,0 +1,67 @@ +/// + +// gets version of lib +var version: string = $.jstree.version; + +// create new instance +var instance1: JSTree = $('div').jstree(); + +// get existing reference +var existingReference: JSTree = $.jstree.reference('sds'); + +// advanced tree creation +var advancedTree = $("#briefcasetree").jstree({ + plugins: ['contextmenu', 'dnd', 'state', 'types', 'unique'], + core: { + check_callback: true, + data: { + cache: false, + url: 'Briefcase/GetProjectTree', + async: true, + type: 'GET', + dataType: 'json' + } + }, + types: { + max_depth: -2, + max_children: -2, + valid_children: ['root_folder_all', 'root_folder'], + types: { + root_folder_all: { + valid_children: ['sub_folder_all'], + start_drag: false, + move_node: false, + delete_node: false, + remove: false + }, + sub_folder_all: { + valid_children: ['sub_folder_all', 'saved_all'], + start_drag: false, + move_node: false, + delete_node: false, + remove: false + }, + saved_all: { + valid_children: [], + start_drag: false, + move_node: false, + delete_node: false, + remove: false + }, + root_folder: { + valid_children: ['sub_folder'], + start_drag: false, + move_node: false, + delete_node: false, + remove: false + }, + sub_folder: { + valid_children: ['sub_folder', 'saved_single'] + }, + saved_single: { + valid_children: 'none' + } + } + } + }); + diff --git a/jquery.jstree/jquery.jstree.d.ts b/jstree/jstree.d.ts similarity index 86% rename from jquery.jstree/jquery.jstree.d.ts rename to jstree/jstree.d.ts index 55e3c6f418..161ad5618f 100644 --- a/jquery.jstree/jquery.jstree.d.ts +++ b/jstree/jstree.d.ts @@ -1,3 +1,8 @@ +// Type definitions for jsTree v3.0.0 +// Project: http://www.jstree.com/ +// Definitions by: Adam Pluciñski +// Definitions: https://github.com/borisyankov/DefinitelyTyped + /// interface JQueryStatic { @@ -48,10 +53,44 @@ interface JSTreeStatic { /** * get a reference to an existing instance - * @param needle - * @returns {JSTree} the instance or `null` if not found + * + * __Examples__ + * + * $.jstree.reference('tree'); + * $.jstree.reference('#tree'); + * $.jstree.reference('branch'); + * $.jstree.reference('#branch'); + * + * @param {String} selector + * @returns {JSTree|null} the instance or `null` if not found */ - reference(needle: any): JSTree; + reference(selector: string): JSTree; + + /** + * get a reference to an existing instance + * + * __Examples__ + * + * $.jstree.reference(document.getElementByID('tree')); + * $.jstree.reference(document.getElementByID('branch')); + * + * @param {HTMLElement} element + * @returns {JSTree|null} the instance or `null` if not found + */ + reference(element: HTMLElement): JSTree; + + /** + * get a reference to an existing instance + * + * __Examples__ + * + * $.jstree.reference($('#tree')); + * $.jstree.reference($('#branch')); + * + * @param {JQuery} object + * @returns {JSTree|null} the instance or `null` if not found + */ + reference(object: JQuery): JSTree; } interface JSTreeStaticDefaults { @@ -121,10 +160,18 @@ interface JSTreeStaticDefaultsCore { * configure the various strings used throughout the tree */ strings?: any; + /** - * + * */ - check_callback?: (operation: string, node: any, node_parent: any, node_position: any) => void; + check_callback?: (operation: string, node: any, node_parent: any, node_position: any) => boolean; + + /** + * a callback called with a single object parameter in the instance's scope + * when something goes wrong (operation prevented, ajax failed, etc) + */ + error: () => any; + /** * the open / close animation duration in milliseconds * set this to false to disable the animation (default is 200) @@ -137,7 +184,12 @@ interface JSTreeStaticDefaultsCore { /** * theme configuration object */ - themes?:JSTreeStaticDefaultsCoreThemes; + themes?: JSTreeStaticDefaultsCoreThemes; + /** + * if left as true all parents of all selected nodes will be opened + * once the tree loads (so that all selected nodes are visible to the user) + */ + expand_selected_onload?: boolean; } interface JSTreeStaticDefaultsCoreThemes { @@ -177,11 +229,6 @@ interface JSTreeStaticDefaultsCoreThemes { * in on smaller screens (if the theme supports it). Defaults to true. */ responsive?: boolean; - /** - * if left as true all parents of all selected nodes will be opened - * once the tree loads (so that all selected nodes are visible to the user) - */ - expand_selected_onload?:boolean; } @@ -236,7 +283,7 @@ interface JSTreeStaticDefaultsContextMenu { interface JSTreeStaticDefaultsDragNDrop { /** * a boolean indicating if a copy should be possible - * while dragging (by pressint the meta key or Ctrl). Defaults to true. + * while dragging (by pressint the meta key or Ctrl). Defaults to 'true'. */ copy: boolean; /** @@ -244,6 +291,26 @@ interface JSTreeStaticDefaultsDragNDrop { * while dragging to be opened. Defaults to 500. */ open_timeout: number; + + /** + * a function invoked each time a node is about to be dragged, + * invoked in the tree's scope and receives the nodes about to be dragged + * as an argument (array) - return `false` to prevent dragging + */ + is_draggable: boolean; + + /** + * a boolean indicating if checks should constantly be made + * while the user is dragging the node (as opposed to checking only on drop), + * default is `true` + */ + check_while_dragging: boolean; + + /** + * a boolean indicating if nodes from this tree should only be copied + * with dnd (as opposed to moved), default is `false` + */ + always_copy: boolean; } interface JSTreeStaticDefaultsSearch { @@ -274,6 +341,11 @@ interface JSTreeStaticDefaultsSearch { * should be closed when the search is cleared or a new search is performed. Default is true. */ close_opened_onclear: boolean; + + /** + * Indicates if only leaf nodes should be included in search results. Default is `false`. + */ + search_leaves_only: boolean; } interface JSTreeStaticDefaultsState { @@ -287,6 +359,20 @@ interface JSTreeStaticDefaultsState { * Defaults to changed.jstree open_node.jstree close_node.jstree. */ events: string; + + /** + * Time in milliseconds after which the state will expire. + * Defaults to 'false' meaning - no expire. + */ + ttl: any; + + /** + * A function that will be executed prior to restoring state + * with one argument - the state object. Can be used + * to clear unwanted parts of the state. + */ + filter: any; + } interface JQuery { @@ -612,6 +698,11 @@ interface JSTree extends JQuery { * show the icon on an individual node */ show_icon: (obj: any) => void; + /** + */ + redraw_node: (obj: any, deep:boolean, is_callback:boolean) => any; + activate_node: (obj: any, e: any) => any; + /* * checkbox plugin: show the node checkbox icons */ @@ -625,6 +716,10 @@ interface JSTree extends JQuery { */ toggle_checkboxes: () => void; /** + * context menu plugin + */ + teardown: () => void; + /** * context menu plugin: show the context menu for a node * @param obj the node * @param x the x-coordinate relative to the document to show the menu at From ac79fdd11b4240a36b75a378a7e7ebb5f4c5b92a Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Mon, 28 Apr 2014 23:42:21 +0200 Subject: [PATCH 053/132] added definitions for lockfile --- lockfile/lockfile-tests.ts | 31 +++++++++++++++++++++++++++++++ lockfile/lockfile.d.ts | 24 ++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 lockfile/lockfile-tests.ts create mode 100644 lockfile/lockfile.d.ts diff --git a/lockfile/lockfile-tests.ts b/lockfile/lockfile-tests.ts new file mode 100644 index 0000000000..49aa423d94 --- /dev/null +++ b/lockfile/lockfile-tests.ts @@ -0,0 +1,31 @@ +/// + +import lockfile = require('lockfile'); + +var bool: boolean; +var num: number; +var path: string; + +var opts: lockfile.Options; +var callback: (err: Error) => { + +}; + +opts = { + wait: num, + stale: num, + retries: num, + retryWait: num +}; + +lockfile.lock(path, opts, callback); +lockfile.lock(path, callback); +lockfile.lockSync(path, opts); + +lockfile.unlock(path, callback);; +lockfile.unlockSync(path); + +lockfile.check(path, opts, callback); +lockfile.check(path, callback); + +bool = lockfile.checkSync(path, opts); diff --git a/lockfile/lockfile.d.ts b/lockfile/lockfile.d.ts new file mode 100644 index 0000000000..99dfbe28d9 --- /dev/null +++ b/lockfile/lockfile.d.ts @@ -0,0 +1,24 @@ +// Type definitions for lockfile v0.4.2 +// Project: https://github.com/isaacs/lockfile +// Definitions by: Bart van der Schoor +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module 'lockfile' { + export interface Options { + wait?: number; + stale?: number; + retries?: number; + retryWait?: number; + } + + export function lock(path: string, opts: Options, callback: (err: Error) => void): void; + export function lock(path: string, callback: (err: Error) => void): void; + export function lockSync(path: string, opts: Options):void; + + export function unlock(path: string, callback: (err: Error) => void): void; + export function unlockSync(path: string):void; + + export function check(path: string, opts: Options, callback: (err: Error) => void): void; + export function check(path: string, callback: (err: Error) => void): void; + export function checkSync(path: string, opts: Options): boolean; +} From 9259180be85f4e7dfdbefda8a0078502650ff927 Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Mon, 28 Apr 2014 23:19:28 +0200 Subject: [PATCH 054/132] added definitions for tape --- tape/tape-tests.ts | 106 +++++++++++++++++++++++++++++ tape/tape.d.ts | 161 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 267 insertions(+) create mode 100644 tape/tape-tests.ts create mode 100644 tape/tape.d.ts diff --git a/tape/tape-tests.ts b/tape/tape-tests.ts new file mode 100644 index 0000000000..2c4e4ec1bb --- /dev/null +++ b/tape/tape-tests.ts @@ -0,0 +1,106 @@ +/// + +/// + +import tape = require('tape'); + +var x: any; +var value: any; +var err: any; +var a: any; +var b: any; +var err: any; +var num: number; +var name: string; +var msg: string; +var rs: NodeJS.ReadableStream; + +var cb: tape.TestCase; +var t: tape.Test; + +tape(name, cb); +tape(name, (test: tape.Test) => { + t = test; +}); + +tape.skip(name, cb); +tape.only(name, cb); + +rs = tape.createStream(); +rs = tape.createStream(x); + +var tx = tape.createHarness(); +tx(name, cb); +tape.skip(name, cb); +tape.only(name, cb); + +tape(name, (test: tape.Test) => { + + test.plan(num); + test.end(); + + test.fail(msg); + test.pass(msg); + test.skip(msg); + + test.ok(value, msg); + test.true(value, msg); + test.assert(value, msg); + + test.notOk(value, msg); + test.false(value, msg); + test.notok(value, msg); + + test.error(err, msg); + test.ifError(err, msg); + test.ifErr(err, msg); + test.iferror(err, msg); + + test.equal(a, b, msg); + test.equals(a, b, msg); + test.isEqual(a, b, msg); + test.is(a, b, msg); + test.strictEqual(a, b, msg); + test.strictEquals(a, b, msg); + + test.notEqual(a, b, msg); + test.notEquals(a, b, msg); + test.notStrictEqual(a, b, msg); + test.notStrictEquals(a, b, msg); + test.isNotEqual(a, b, msg); + test.isNot(a, b, msg); + test.not(a, b, msg); + test.doesNotEqual(a, b, msg); + test.notEqual(a, b, msg); + test.isInequal(a, b, msg); + + test.deepEqual(a, b, msg); + test.deepEquals(a, b, msg); + test.isEquivalent(a, b, msg); + test.same(a, b, msg); + + test.notDeepEqual(a, b, msg); + test.notEquivalent(a, b, msg); + test.notDeeply(a, b, msg); + test.notSame(a, b, msg); + test.isNotDeepEqual(a, b, msg); + test.isNotDeeply(a, b, msg); + test.isNotEquivalent(a, b, msg); + test.isInequivalent(a, b, msg); + + test.deepLooseEqual(a, b, msg); + test.looseEqual(a, b, msg); + test.looseEquals(a, b, msg); + + test.notDeepLooseEqual(a, b, msg); + test.notLooseEqual(a, b, msg); + test.notLooseEquals(a, b, msg); + + test.throws(() => { + + }, value, msg); + + test.doesNotThrow(() => { + + }, value, msg); +}); diff --git a/tape/tape.d.ts b/tape/tape.d.ts new file mode 100644 index 0000000000..4746e148a0 --- /dev/null +++ b/tape/tape.d.ts @@ -0,0 +1,161 @@ +// Type definitions for tape v2.12.3 +// Project: https://github.com/substack/tape +// Definitions by: Bart van der Schoor +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module 'tape' { + export = tape; + + /** + * Create a new test with an optional name string. cb(t) fires with the new test object t once all preceeding tests have finished. Tests execute serially. + */ + function tape(name: string, cb: tape.TestCase): void; + module tape { + + interface TestCase { + (test: Test): void; + } + + /** + * Generate a new test that will be skipped over. + */ + export function skip(name: string, cb: tape.TestCase): void; + + /** + * Like test(name, cb) except if you use .only this is the only test case that will run for the entire process, all other test cases using tape will be ignored + */ + export function only(name: string, cb: tape.TestCase): void; + + /** + * Create a new test harness instance, which is a function like test(), but with a new pending stack and test state. + */ + export function createHarness(): typeof tape; + /** + * Create a stream of output, bypassing the default output stream that writes messages to console.log(). + */ + export function createStream(opts?: any): NodeJS.ReadableStream; + + interface Test { + /** + * Create a subtest with a new test handle st from cb(st) inside the current test cb(st) will only fire when t finishes. Additional tests queued up after t will not be run until all subtests finish. + */ + test(name: string, cb: tape.TestCase): void; + + /** + * Declare that n assertions should be run. end() will be called automatically after the nth assertion. If there are any more assertions after the nth, or after end() is called, they will generate errors. + */ + plan(n: number): void; + + /** + * Declare the end of a test explicitly. + */ + end(): void; + + /** + * Generate a failing assertion with a message msg. + */ + fail(msg?: string): void; + + /** + * Generate a passing assertion with a message msg. + */ + pass(msg?: string): void; + + /** + * Generate an assertion that will be skipped over. + */ + skip(msg?: string): void; + + /** + * Assert that value is truthy with an optional description message msg. + */ + ok(value: any, msg?: string): void; + true(value: any, msg?: string): void; + assert(value: any, msg?: string): void; + + /** + * Assert that value is falsy with an optional description message msg. + */ + notOk(value: any, msg?: string): void; + false(value: any, msg?: string): void; + notok(value: any, msg?: string): void; + + /** + * Assert that err is falsy. If err is non-falsy, use its err.message as the description message. + */ + error(err: any, msg?: string): void; + ifError(err: any, msg?: string): void; + ifErr(err: any, msg?: string): void; + iferror(err: any, msg?: string): void; + + /** + * Assert that a === b with an optional description msg. + */ + equal(a: any, b: any, msg?: string): void; + equals(a: any, b: any, msg?: string): void; + isEqual(a: any, b: any, msg?: string): void; + is(a: any, b: any, msg?: string): void; + strictEqual(a: any, b: any, msg?: string): void; + strictEquals(a: any, b: any, msg?: string): void; + + /** + * Assert that a !== b with an optional description msg. + */ + notEqual(a: any, b: any, msg?: string): void; + notEquals(a: any, b: any, msg?: string): void; + notStrictEqual(a: any, b: any, msg?: string): void; + notStrictEquals(a: any, b: any, msg?: string): void; + isNotEqual(a: any, b: any, msg?: string): void; + isNot(a: any, b: any, msg?: string): void; + not(a: any, b: any, msg?: string): void; + doesNotEqual(a: any, b: any, msg?: string): void; + isInequal(a: any, b: any, msg?: string): void; + + /** + * Assert that a and b have the same structure and nested values using node's deepEqual() algorithm with strict comparisons (===) on leaf nodes and an optional description msg. + */ + deepEqual(a: any, b: any, msg?: string): void; + deepEquals(a: any, b: any, msg?: string): void; + isEquivalent(a: any, b: any, msg?: string): void; + same(a: any, b: any, msg?: string): void; + + /** + * Assert that a and b do not have the same structure and nested values using node's deepEqual() algorithm with strict comparisons (===) on leaf nodes and an optional description msg. + */ + notDeepEqual(a: any, b: any, msg?: string): void; + notEquivalent(a: any, b: any, msg?: string): void; + notDeeply(a: any, b: any, msg?: string): void; + notSame(a: any, b: any, msg?: string): void; + isNotDeepEqual(a: any, b: any, msg?: string): void; + isNotDeeply(a: any, b: any, msg?: string): void; + isNotEquivalent(a: any, b: any, msg?: string): void; + isInequivalent(a: any, b: any, msg?: string): void; + + /** + * Assert that a and b have the same structure and nested values using node's deepEqual() algorithm with loose comparisons (==) on leaf nodes and an optional description msg. + */ + deepLooseEqual(a: any, b: any, msg?: string): void; + looseEqual(a: any, b: any, msg?: string): void; + looseEquals(a: any, b: any, msg?: string): void; + + /** + * Assert that a and b do not have the same structure and nested values using node's deepEqual() algorithm with loose comparisons (==) on leaf nodes and an optional description msg. + */ + notDeepLooseEqual(a: any, b: any, msg?: string): void; + notLooseEqual(a: any, b: any, msg?: string): void; + notLooseEquals(a: any, b: any, msg?: string): void; + + /** + * Assert that the function call fn() throws an exception. + */ + throws(fn: () => void, expected: any, msg?: string): void; + + /** + * Assert that the function call fn() does not throw an exception. + */ + doesNotThrow(fn: () => void, expected: any, msg?: string): void; + } + } +} From 01b7049c180f3e283dad69ce88fba78baf67bc21 Mon Sep 17 00:00:00 2001 From: Bart van der Schoor Date: Mon, 28 Apr 2014 23:35:04 +0200 Subject: [PATCH 055/132] added definitions for lru-cache --- lru-cache/lru-cache-tests.ts | 56 ++++++++++++++++++++++++++++++++++++ lru-cache/lru-cache.d.ts | 34 ++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 lru-cache/lru-cache-tests.ts create mode 100644 lru-cache/lru-cache.d.ts diff --git a/lru-cache/lru-cache-tests.ts b/lru-cache/lru-cache-tests.ts new file mode 100644 index 0000000000..9121ca7914 --- /dev/null +++ b/lru-cache/lru-cache-tests.ts @@ -0,0 +1,56 @@ +/// + +import lru = require('lru-cache'); + +var x: any; +var num: number; +var bool: boolean; +var key: string; +var strArr: string[]; + +interface Foo { + foo(): void; +} + +var foo: Foo; +var fooArr: Foo[]; + +var opts: lru.Options; +opts = { + max: num, + maxAge: num, + stale: bool +}; +var cache: lru.Cache = lru({ + max: num, + maxAge: num, + length: (value: Foo) => { + return num + }, + dispose: (key: string, value: Foo) => { + + }, + stale: bool +}); + +cache = lru(num); + +cache.set(key, foo); +foo = cache.get(key); +foo = cache.peek(key); +bool = cache.has(key); +cache.del(key); +cache.reset(); + +cache.forEach((value: Foo, key: string, cache: lru.Cache) => { + +}); +cache.forEach((value: Foo, key: string, cache: lru.Cache) => { + +}, x); +cache.forEach((value, key, cache) => { + foo = cache.peek(key); +}); + +strArr = cache.keys(); +fooArr = cache.values(); diff --git a/lru-cache/lru-cache.d.ts b/lru-cache/lru-cache.d.ts new file mode 100644 index 0000000000..ae028a553e --- /dev/null +++ b/lru-cache/lru-cache.d.ts @@ -0,0 +1,34 @@ +// Type definitions for lru-cache v2.5.0 +// Project: https://github.com/isaacs/node-lru-cache +// Definitions by: Bart van der Schoor +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module 'lru-cache' { + function LRU(opts: LRU.Options): LRU.Cache; + function LRU(max: number): LRU.Cache; + + module LRU { + interface Options { + max?: number; + maxAge?: number; + length?: (value: T) => number; + dispose?: (key: string, value: T) => void; + stale?: boolean; + } + + interface Cache { + set(key: string, value: T): void; + get(key: string): T; + peek(key: string): T; + has(key: string): boolean + del(key: string): void; + reset(): void; + forEach(iter: (value: T, key: string, cache: Cache) => void, thisp?: any): void; + + keys(): string[]; + values(): T[]; + } + } + + export = LRU; +} From d5c287f16a080bdb18a92025cc47975b41834369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?De=CC=81nes=20Harmath?= Date: Tue, 29 Apr 2014 00:03:57 +0200 Subject: [PATCH 056/132] Add type definition for Elm --- CONTRIBUTORS.md | 1 + elm/elm-tests.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ elm/elm.d.ts | 28 ++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 elm/elm-tests.ts create mode 100644 elm/elm.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index a3f729ca96..74c0363b02 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -58,6 +58,7 @@ All definitions files include a header with the author and editors, so at some p * [dust](http://linkedin.github.com/dustjs) (by [Marcelo Dezem](https://github.com/mdezem)) * [EaselJS](http://www.createjs.com/#!/EaselJS) (by [Pedro Ferreira](https://bitbucket.org/drk4)) * [EasyStar](http://easystarjs.com/) (by [Magnus Gustafsson](https://github.com/Borundin)) +* [Elm](http://elm-lang.org) (by [Dénes Harmath](https://github.com/thSoft)) * [ember.js](http://emberjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) * [emissary](https://github.com/atom/emissary) (by [vvakame](https://github.com/vvakame)) * [EpicEditor](http://epiceditor.com/) (by [Boris Yankov](https://github.com/borisyankov)) diff --git a/elm/elm-tests.ts b/elm/elm-tests.ts new file mode 100644 index 0000000000..dd0c601975 --- /dev/null +++ b/elm/elm-tests.ts @@ -0,0 +1,42 @@ +/// + +// Based on https://gist.github.com/evancz/8521339 + +interface Elm { + Shanghai: ElmModule; +} + +interface ShanghaiPorts { + coordinates: PortToElm>; + incomingShip: PortToElm; + outgoingShip: PortToElm; + totalCapacity: PortFromElm; +} + +interface Ship { + name: string; + capacity: number; +} + +// initialize the Shanghai component which keeps track of +// shipping data in and out of the Port of Shanghai. +var shanghai = Elm.worker(Elm.Shanghai, { + coordinates: [0, 0], + incomingShip: { name: "", capacity: 0 }, + outgoingShip: "" +}); + +function logger(x: any) { console.log(x) } +shanghai.ports.totalCapacity.subscribe(logger); +// send some ships to the port of Shanghai +shanghai.ports.incomingShip.send({ + name: "Mary Mærsk", + capacity: 18270 +}); +shanghai.ports.incomingShip.send({ + name: "Emma Mærsk", + capacity: 15500 +}); +// have those ships leave the port of Shanghai +shanghai.ports.outgoingShip.send("Mary Mærsk"); +shanghai.ports.outgoingShip.send("Emma Mærsk"); \ No newline at end of file diff --git a/elm/elm.d.ts b/elm/elm.d.ts new file mode 100644 index 0000000000..1185394be8 --- /dev/null +++ b/elm/elm.d.ts @@ -0,0 +1,28 @@ +// Type definitions for Elm 0.12 +// Project: http://elm-lang.org +// Definitions by: Dénes Harmath +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare var Elm: Elm; + +interface Elm { + embed

(elmModule: ElmModule

, element: Node, initialValues?: Object): ElmComponent

; + fullscreen

(elmModule: ElmModule

, initialValues?: Object): ElmComponent

; + worker

(elmModule: ElmModule

, initialValues?: Object): ElmComponent

; +} + +interface ElmModule

{ +} + +interface ElmComponent

{ + ports: P; +} + +interface PortToElm { + send(value: V): void; +} + +interface PortFromElm { + subscribe(handler: (value: V) => void): void; + unsubscribe(handler: (value: V) => void): void; +} \ No newline at end of file From ab899ff5c4eb8ae26bbbd230854543e1769540e9 Mon Sep 17 00:00:00 2001 From: Steve Taylor Date: Tue, 29 Apr 2014 11:07:42 +0930 Subject: [PATCH 057/132] Updated fullCalendar to 1.6.4. Fixed typos, cleaned up comment formatting and added some documentation links in comments. --- fullCalendar/fullCalendar.d.ts | 257 ++++++++++++++++++++++----------- 1 file changed, 172 insertions(+), 85 deletions(-) diff --git a/fullCalendar/fullCalendar.d.ts b/fullCalendar/fullCalendar.d.ts index fd1303f69e..84e6ee6cc1 100644 --- a/fullCalendar/fullCalendar.d.ts +++ b/fullCalendar/fullCalendar.d.ts @@ -7,29 +7,37 @@ declare module FullCalendar { export interface Calendar { + /** - * Formats a Date object into a string. - */ + * Formats a Date object into a string. + */ formatDate(date: Date, format: string, options?: Options): string; + /** - * Formats a date range (two Date objects) into a string. - */ + * Formats a date range (two Date objects) into a string. + */ formatDates(date1: Date, date2: Date, format: string, options?: Options): string; + /** - * Parses a string into a Date object. - */ + * Parses a string into a Date object. + */ parseDate(dateString: string, ignoreTimezone?: boolean): Date; + /** - * Parses an ISO8601 string into a Date object. - */ + * Parses an ISO8601 string into a Date object. + */ parseISO8601(dateString: string, ignoreTimezone?: boolean): Date; + /** - * Gets the version of Fullcalendar - */ + * Gets the version of Fullcalendar + */ version: string; } export interface Options { + + // General display - http://arshaw.com/fullcalendar/docs/display/ + header?: { left: string; center: string; @@ -43,22 +51,31 @@ declare module FullCalendar { firstDay?: number; isRTL?: boolean; weekends?: boolean; + hiddenDays?: number[]; weekMode?: string; weekNumbers?: boolean; weekNumberCalculation?: any; // String/Function height?: number; contentHeight?: number; - aspectRation?: number; - viewDisplay?: (view: View) => void; - windowResize?: (view: View) => void; + aspectRatio?: number; + handleWindowResize?: boolean; + viewRender?: (view: View, element: JQuery) => void; + viewDestroy?: (view: View, element: JQuery) => void; dayRender?: (date: Date, cell: HTMLTableDataCellElement) => void; + windowResize?: (view: View) => void; + + // Views - http://arshaw.com/fullcalendar/docs/views/ defaultView?: string; + // Current Date - http://arshaw.com/fullcalendar/docs/current_date/ + year?: number; month?: number; date?: number; + // Text/Time Customization - http://arshaw.com/fullcalendar/docs/text/ + timeFormat?: any; // String/ViewOptionHash columnFormat?: any; // String/ViewOptionHash titleFormat?: any; // String/ViewOptionHash @@ -69,11 +86,15 @@ declare module FullCalendar { dayNamesShort?: Array; weekNumberTitle?: number; + // Clicking & Hovering - http://arshaw.com/fullcalendar/docs/mouse/ + dayClick?: (date: Date, allDay: boolean, jsEvent: MouseEvent, view: View) => void; eventClick?: (event: EventObject, jsEvent: MouseEvent, view: View) => any; // return type boolean or void eventMouseover?: (event: EventObject, jsEvent: MouseEvent, view: View) => void; eventMouseout?: (event: EventObject, jsEvent: MouseEvent, view: View) => void; + // Selection - http://arshaw.com/fullcalendar/docs/selection/ + selectable?: any; // Boolean/ViewOptionHash selectHelper?: any; // Boolean/Function unselectAuto?: boolean; @@ -81,26 +102,51 @@ declare module FullCalendar { select?: (startDate: Date, endDate: Date, allDay: boolean, jsEvent: MouseEvent, view: View) => void; unselect?: (view: View, jsEvent: Event) => void; - eventSources?: Array; + // Event Data - http://arshaw.com/fullcalendar/docs/event_data/ + + /** + * This has one of the following types: + * + * - EventObject[] + * - string (JSON feed) + * - (start: Date, end: Date, callback: {(events: EventObject[]) => void;}) => void; + */ + events?: any; + + /** + * An array, each element being one of the following types: + * + * - EventSource + * - EventObject[] + * - string (JSON feed) + * - (start: Date, end: Date, callback: {(events: EventObject[]) => void;}) => void; + */ + eventSources?: any[]; + allDayDefault?: boolean; ignoreTimezone?: boolean; - eventDataTransform?: (eventData: any) => EventObject; startParam?: string; endParam?: string lazyFetching?: boolean; + eventDataTransform?: (eventData: any) => EventObject; loading?: (isLoading: boolean, view: View) => void; + // Event Rendering - http://arshaw.com/fullcalendar/docs/event_rendering/ + eventColor?: string; eventBackgroundColor?: string; eventBorderColor?: string; eventTextColor?: string; eventRender?: (event: EventObject, element: HTMLDivElement, view: View) => void; eventAfterRender?: (event: EventObject, element: HTMLDivElement, view: View) => void; - eventAllAfterRender?: (view: View) => void; + eventAfterAllRender?: (view: View) => void; + eventDestroy?: (event: EventObject, element: JQuery, view: View) => void; + + // Event Dragging & Resizing editable?: boolean; - disableDragging?: boolean; - disableResizing?: boolean; + eventStartEditable?: boolean; + eventDurationEditable?: boolean; dragRevertDuration?: number; dragOpacity?: any; // Float/ViewOptionHash eventDragStart?: (event: EventObject, jsEvent: MouseEvent, ui: any, view: View) => void; @@ -119,7 +165,7 @@ declare module FullCalendar { name: string; title: string; start: Date; - End: Date; + end: Date; visStart: Date; visEnd: Date; } @@ -137,6 +183,9 @@ declare module FullCalendar { ''?: any; } + /** + * Agenda Options - http://arshaw.com/fullcalendar/docs/agenda/ + */ export interface AgendaOptions { allDaySlot?: boolean; allDayText?: string; @@ -147,6 +196,7 @@ declare module FullCalendar { firstHour?: number; minTime?: any; // Integer/String maxTime?: any; // Integer/String + slotEventOverlap?: boolean; } export interface ButtonTextObject { @@ -177,7 +227,16 @@ declare module FullCalendar { } export interface EventSource extends JQueryAjaxSettings { + + /** + * This has one of the following types: + * + * - EventObject[] + * - string (JSON feed) + * - (start: Date, end: Date, callback: {(events: EventObject[]) => void;}) => void; + */ events?: any; + color?: string; backgroundColor?: string; borderColor?: string; @@ -194,117 +253,145 @@ declare module FullCalendar { } interface JQuery { + /** - * Get/Set option value - */ + * Get/Set option value + */ fullCalendar(method: 'option', option: string, value?: any): void; + /** - * Immediately forces the calendar to render and/or readjusts its size. - */ + * Immediately forces the calendar to render and/or readjusts its size. + */ fullCalendar(method: 'render'): void; + /** - * Restores the element to the state before FullCalendar was initialized. - */ + * Restores the element to the state before FullCalendar was initialized. + */ fullCalendar(method: 'destroy'): void; + /** - * Moves the calendar one step back (either by a month, week, or day). - */ - fullCalendar(method: 'prev'): void; - /** - * Moves the calendar one step forward (either by a month, week, or day). - */ - fullCalendar(method: 'next'): void; - /** - * Moves the calendar back one year. - */ - fullCalendar(method: 'prevYear'): void; - /** - * Moves the calendar forward one year. - */ - fullCalendar(method: 'nextYear'): void; - /** - * Moves the calendar to the current date. - */ - fullCalendar(method: 'today'): void; - /** - * Returns the View Object for the current view. - */ + * Returns the View Object for the current view. + */ fullCalendar(method: 'getView'): FullCalendar.View; + /** - * Immediately switches to a different view. - */ + * Immediately switches to a different view. + */ fullCalendar(method: 'changeView', viewName: string): void; + /** - * Moves the calendar to an arbitrary year/month/date. - */ + * Moves the calendar one step back (either by a month, week, or day). + */ + fullCalendar(method: 'prev'): void; + + /** + * Moves the calendar one step forward (either by a month, week, or day). + */ + fullCalendar(method: 'next'): void; + + /** + * Moves the calendar back one year. + */ + fullCalendar(method: 'prevYear'): void; + + /** + * Moves the calendar forward one year. + */ + fullCalendar(method: 'nextYear'): void; + + /** + * Moves the calendar to the current date. + */ + fullCalendar(method: 'today'): void; + + /** + * Moves the calendar to an arbitrary year/month/date. + */ fullCalendar(method: 'gotoDate', year: number, month?: number, date?: number): void; + /** - * Moves the calendar to an arbitrary date. - */ + * Moves the calendar to an arbitrary date. + */ fullCalendar(method: 'gotoDate', date: Date): void; + /** - * Moves the calendar forward/backward an arbitrary amount of time. - */ + * Moves the calendar forward/backward an arbitrary amount of time. + */ fullCalendar(method: 'incrementDate', year: number, month?: number, date?: number): void; + /** - * Returns a Date object for the current date of the calendar. - */ + * Returns a Date object for the current date of the calendar. + */ fullCalendar(method: 'getDate'): Date; + /** - * A method for programmatically selecting a period of time. - */ + * A method for programmatically selecting a period of time. + */ fullCalendar(method: 'select', startDate: Date, endDate: Date, allDay: boolean): void; + /** - * A method for programmatically clearing the current selection. - */ + * A method for programmatically clearing the current selection. + */ fullCalendar(method: 'unselect'): void; + /** - * Reports changes to an event and renders them on the calendar. - */ + * Reports changes to an event and renders them on the calendar. + */ fullCalendar(method: 'updateEvent', event: FullCalendar.EventObject): void; + /** - * Retrieves events that FullCalendar has in memory. - */ + * Retrieves events that FullCalendar has in memory. + */ fullCalendar(method: 'clientEvents', idOrfilter?: any): Array; + /** - * Retrieves events that FullCalendar has in memory. - */ + * Retrieves events that FullCalendar has in memory. + */ fullCalendar(method: 'clientEvents', idOrfilter?: (e: FullCalendar.EventObject) => boolean): Array; + /** - * Removes events from the calendar. - */ + * Removes events from the calendar. + */ fullCalendar(method: 'removeEvents', idOrfilter?: any): void; + /** - * Removes events from the calendar. - */ + * Removes events from the calendar. + */ fullCalendar(method: 'removeEvents', idOrfilter?: (e: FullCalendar.EventObject) => boolean): void; + /** - * Refetches events from all sources and rerenders them on the screen. - */ + * Refetches events from all sources and rerenders them on the screen. + */ fullCalendar(method: 'refetchEvents'): void; + /** - * Dynamically adds an event source. - */ + * Dynamically adds an event source. + */ fullCalendar(method: 'addEventSource', source: any): void; + /** - * Dynamically removes an event source. - */ + * Dynamically removes an event source. + */ fullCalendar(method: 'removeEventSource', source: any): void; + /** - * Renders a new event on the calendar. - */ + * Renders a new event on the calendar. + */ fullCalendar(method: 'renderEvent', event: FullCalendar.EventObject, stick?: boolean): void; + /** - * Rerenders all events on the calendar. - */ + * Rerenders all events on the calendar. + */ fullCalendar(method: 'rerenderEvents'): void; + /** - * Create calendar object - */ + * Create calendar object + */ fullCalendar(options: FullCalendar.Options): JQuery; + /** - * Generic method function - */ + * Generic method function + */ fullCalendar(method: string, arg1: any, arg2: any, arg3: any): void; } From 47c26a46641dfd6d3c794b1e5fd3697e714ce825 Mon Sep 17 00:00:00 2001 From: Utkarsh Upadhyay Date: Tue, 29 Apr 2014 10:37:33 +0200 Subject: [PATCH 058/132] Allow setting of styles/properties via objects. Additionally: 1. Make the type for setting attributes via objects slightly stricter. 2. Add tests for style/property setting via object maps. --- d3/d3-tests.ts | 15 +++++++++++++++ d3/d3.d.ts | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/d3/d3-tests.ts b/d3/d3-tests.ts index aab65c06c0..5bee2b84ae 100644 --- a/d3/d3-tests.ts +++ b/d3/d3-tests.ts @@ -2286,6 +2286,21 @@ function attrObjTest () { .attr({"xlink:href": function(d, i) { return d + "-" + i + ".png"; }}); } +// Test for setting styles as an object +// From https://github.com/mbostock/d3/blob/master/test/selection/style-test.js +function styleObjTest () { + d3.select('body') + .style({"background-color": "white", opacity: .42}); +} + +// Test for setting styles as an object +// From https://github.com/mbostock/d3/blob/master/test/selection/property-test.js +function propertyObjTest () { + d3.select('body') + .property({bgcolor: "purple", opacity: .41}); +} + + // Test for brushes // This triggers a bug (shown below) in the 0.9.0 compiler, but works with // 0.9.1 compiler. diff --git a/d3/d3.d.ts b/d3/d3.d.ts index 5f68f6f362..0b049726bc 100644 --- a/d3/d3.d.ts +++ b/d3/d3.d.ts @@ -710,7 +710,7 @@ declare module D3 { (name: string): string; (name: string, value: any): Selection; (name: string, valueFunction: (data: any, index: number) => any): Selection; - (attrValueMap : any): Selection; + (attrValueMap : Object): Selection; }; classed: { @@ -723,12 +723,14 @@ declare module D3 { (name: string): string; (name: string, value: any, priority?: string): Selection; (name: string, valueFunction: (data: any, index: number) => any, priority?: string): Selection; + (styleValueMap : Object): Selection; }; property: { (name: string): void; (name: string, value: any): Selection; (name: string, valueFunction: (data: any, index: number) => any): Selection; + (propertyValueMap : Object): Selection; }; text: { From e113f195f3b60e76b2c1079621c510fbe37e3a36 Mon Sep 17 00:00:00 2001 From: Utkarsh Upadhyay Date: Tue, 29 Apr 2014 10:38:44 +0200 Subject: [PATCH 059/132] Re-enable the test for brush() This was failing with 0.9.0. Now the test no longer crashes the compiler. --- d3/d3-tests.ts | 86 +++++++++++++++++++------------------------------- 1 file changed, 33 insertions(+), 53 deletions(-) diff --git a/d3/d3-tests.ts b/d3/d3-tests.ts index 5bee2b84ae..1a1acc3240 100644 --- a/d3/d3-tests.ts +++ b/d3/d3-tests.ts @@ -2302,61 +2302,41 @@ function propertyObjTest () { // Test for brushes -// This triggers a bug (shown below) in the 0.9.0 compiler, but works with -// 0.9.1 compiler. +function brushTest() { + var xScale = d3.scale.linear(), + yScale = d3.scale.linear(); -// Stack trace: -// /usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:38215 -// return (type === this.semanticInfoChain.anyTypeSymbol) || type.isError(); -// ^ -// TypeError: Cannot call method 'isError' of null -// at PullTypeResolver.isAnyOrEquivalent (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:38215:76) -// at PullTypeResolver.resolveNameExpression (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:39953:39) -// at PullTypeResolver.resolveAST (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:39758:37) -// at PullTypeResolver.computeIndexExpressionSymbol (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:40933:37) -// at PullTypeResolver.resolveIndexExpression (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:40925:45) -// at PullTypeResolver.resolveAST (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:39870:33) -// at PullTypeResolver.resolveOverloads (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:42917:43) -// at PullTypeResolver.computeCallExpressionSymbol (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:41373:34) -// at PullTypeResolver.resolveCallExpression (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:41175:29) -// at PullTypeChecker.typeCheckCallExpression (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:45111:58) -// at PullTypeChecker.typeCheckAST (/usr/local/share/npm/lib/node_modules/typescript/bin/tsc.js:43786:33) + var xMin = 0, xMax = 1, + yMin = 0, yMax = 1; -// function brushTest() { -// var xScale = d3.scale.linear(), -// yScale = d3.scale.linear(); -// -// var xMin = 0, xMax = 1, -// yMin = 0, yMax = 1; -// -// // Setting only x scale. -// var brush1 = d3.svg.brush() -// .x(xScale) -// .on('brush', function () { -// var extent = brush1.extent(); -// xMin = Math.max(extent[0], 0); -// xMax = Math.min(extent[1], 1); -// brush1.extent([xMin, xMax]); -// }); -// -// // Setting both the x and y scale -// var brush2 = d3.svg.brush() -// .x(xScale) -// .y(yScale) -// .on('brush', function () { -// var extent = brush2.extent(); -// var xExtent = extent[0], -// yExtent = extent[1]; -// -// xMin = Math.max(xExtent[0], 0); -// xMax = Math.min(xExtent[1], 1); -// -// yMin = Math.max(yExtent[0], 0); -// yMax = Math.min(yExtent[1], 1); -// -// brush1.extent([[xMin, xMax], [yMin, yMax]]); -// }); -// } + // Setting only x scale. + var brush1 = d3.svg.brush() + .x(xScale) + .on('brush', function () { + var extent = brush1.extent(); + xMin = Math.max(extent[0], 0); + xMax = Math.min(extent[1], 1); + brush1.extent([xMin, xMax]); + }); + + // Setting both the x and y scale + var brush2 = d3.svg.brush() + .x(xScale) + .y(yScale) + .on('brush', function () { + var extent = brush2.extent(); + var xExtent = extent[0], + yExtent = extent[1]; + + xMin = Math.max(xExtent[0], 0); + xMax = Math.min(xExtent[1], 1); + + yMin = Math.max(yExtent[0], 0); + yMax = Math.min(yExtent[1], 1); + + brush1.extent([[xMin, xMax], [yMin, yMax]]); + }); +} // Tests for area From 7c8a67a4026c233af5eb8d81e38890999cd0f5ff Mon Sep 17 00:00:00 2001 From: John Reilly Date: Tue, 29 Apr 2014 13:48:00 +0100 Subject: [PATCH 060/132] jQuery: Add more specific val setters --- jquery/jquery.d.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/jquery/jquery.d.ts b/jquery/jquery.d.ts index 8f1bf2527b..6d8551f44b 100644 --- a/jquery/jquery.d.ts +++ b/jquery/jquery.d.ts @@ -1512,7 +1512,19 @@ interface JQuery { * * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. */ - val(func: (index: number, value: any) => any): JQuery; + val(func: (index: number, value: string) => any): JQuery; + /** + * Set the value of each element in the set of matched elements. + * + * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. + */ + val(func: (index: number, value: string[]) => any): JQuery; + /** + * Set the value of each element in the set of matched elements. + * + * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. + */ + val(func: (index: number, value: number) => any): JQuery; /** * Get the value of style properties for the first element in the set of matched elements. From c259dba094121a389b41c573d5000dda7bdf2092 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Tue, 29 Apr 2014 13:52:47 +0100 Subject: [PATCH 061/132] jQuery: Add even more specific val setters --- jquery/jquery.d.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/jquery/jquery.d.ts b/jquery/jquery.d.ts index 6d8551f44b..b378dfd0ac 100644 --- a/jquery/jquery.d.ts +++ b/jquery/jquery.d.ts @@ -1512,19 +1512,37 @@ interface JQuery { * * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. */ - val(func: (index: number, value: string) => any): JQuery; + val(func: (index: number, value: string) => string): JQuery; /** * Set the value of each element in the set of matched elements. * * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. */ - val(func: (index: number, value: string[]) => any): JQuery; + val(func: (index: number, value: string[]) => string): JQuery; /** * Set the value of each element in the set of matched elements. * * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. */ - val(func: (index: number, value: number) => any): JQuery; + val(func: (index: number, value: number) => string): JQuery; + /** + * Set the value of each element in the set of matched elements. + * + * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. + */ + val(func: (index: number, value: string) => string[]): JQuery; + /** + * Set the value of each element in the set of matched elements. + * + * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. + */ + val(func: (index: number, value: string[]) => string[]): JQuery; + /** + * Set the value of each element in the set of matched elements. + * + * @param func A function returning the value to set. this is the current element. Receives the index position of the element in the set and the old value as arguments. + */ + val(func: (index: number, value: number) => string[]): JQuery; /** * Get the value of style properties for the first element in the set of matched elements. From 7b8666ad0e9c74d2bf0b38ff47ed65cf265cd4fe Mon Sep 17 00:00:00 2001 From: nktpro Date: Tue, 29 Apr 2014 06:09:02 -0700 Subject: [PATCH 062/132] Add less.tree.Attribute typing --- less/less.d.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/less/less.d.ts b/less/less.d.ts index 1ab9293c47..1b063e39c3 100644 --- a/less/less.d.ts +++ b/less/less.d.ts @@ -497,6 +497,16 @@ declare module "less" { toCSS(env?: Options): string; eval(): UnicodeDescriptor; } + + export class Attribute implements IInjectable { + constructor(value: string); + + value: string; + + toCSS(env?: Options): string; + genCSS(env?: Options, output): string; + eval(): Attribute; + } export var debugInfo: DebugInfoFunction; export function find(obj: any[], fun: Function): any; @@ -539,4 +549,4 @@ declare module "less" { export function writeError(ctx, options: { color: boolean; }): void; export var version: number[]; -} \ No newline at end of file +} From 9ca5d2fbca5a8efa1740f847c4c924cbe736b86a Mon Sep 17 00:00:00 2001 From: nktpro Date: Tue, 29 Apr 2014 06:12:02 -0700 Subject: [PATCH 063/132] Fixed optional argument --- less/less.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/less/less.d.ts b/less/less.d.ts index 1b063e39c3..d5787913b9 100644 --- a/less/less.d.ts +++ b/less/less.d.ts @@ -504,7 +504,7 @@ declare module "less" { value: string; toCSS(env?: Options): string; - genCSS(env?: Options, output): string; + genCSS(env: Options, output): string; eval(): Attribute; } From cc3aeaae755173cfb0e0ab4cf84d424e40503876 Mon Sep 17 00:00:00 2001 From: Jared Reynolds Date: Tue, 29 Apr 2014 14:05:14 -0700 Subject: [PATCH 064/132] Added definitions for chai-datetime - Added explicit "any" types to chai definitions --- chai-datetime/chai-datetime-tests.ts | 47 ++++++++++++++++++++++++++++ chai-datetime/chai-datetime.d.ts | 33 +++++++++++++++++++ chai/chai.d.ts | 32 +++++++++---------- 3 files changed, 96 insertions(+), 16 deletions(-) create mode 100644 chai-datetime/chai-datetime-tests.ts create mode 100644 chai-datetime/chai-datetime.d.ts diff --git a/chai-datetime/chai-datetime-tests.ts b/chai-datetime/chai-datetime-tests.ts new file mode 100644 index 0000000000..0b7ff729ff --- /dev/null +++ b/chai-datetime/chai-datetime-tests.ts @@ -0,0 +1,47 @@ +/// +/// +/// + +var expect = chai.expect; + +function test_equalTime(){ + var date: Date = new Date(2014, 1, 1); + expect(date).to.be.equalTime(date); + date.should.be.equalTime(date); + assert.equalTime(date, date); +} + +function test_beforeTime(){ + var date: Date = new Date(2014, 1, 1); + expect(date).to.be.beforeTime(date); + date.should.be.beforeTime(date); + assert.beforeTime(date, date); +} + +function test_afterTime(){ + var date: Date = new Date(2014, 1, 1); + expect(date).to.be.afterTime(date); + date.should.be.afterTime(date); + assert.afterTime(date, date); +} + +function test_equalDate(){ + var date: Date = new Date(2014, 1, 1); + expect(date).to.equalDate(date); + date.should.equalDate(date); + assert.equalDate(date, date); +} + +function test_beforeDate(){ + var date: Date = new Date(2014, 1, 1); + expect(date).to.beforeDate(date); + date.should.beforeDate(date); + assert.beforeDate(date, date); +} + +function test_afterDate(){ + var date: Date = new Date(2014, 1, 1); + expect(date).to.afterDate(date); + date.should.afterDate(date); + assert.afterDate(date, date); +} \ No newline at end of file diff --git a/chai-datetime/chai-datetime.d.ts b/chai-datetime/chai-datetime.d.ts new file mode 100644 index 0000000000..432f6bb247 --- /dev/null +++ b/chai-datetime/chai-datetime.d.ts @@ -0,0 +1,33 @@ +// Type definitions for chai-datetime +// Project: https://github.com/gaslight/chai-datetime.git +// Definitions by: Cliff Burger +// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module chai { + + interface Expect { + afterDate(date: Date): boolean; + beforeDate(date: Date): boolean; + equalDate(date: Date): boolean; + + afterTime(date: Date): boolean; + beforeTime(date: Date): boolean; + equalTime(date: Date): boolean; + } + + interface Assert { + afterDate(leftDate: Date, rightDate: Date): boolean; + beforeDate(leftDate: Date, rightDate: Date): boolean; + equalDate(leftDate: Date, rightDate: Date): boolean; + + afterTime(leftDate: Date, rightDate: Date): boolean; + beforeTime(leftDate: Date, rightDate: Date): boolean; + equalTime(leftDate: Date, rightDate: Date): boolean; + } +} + +interface Date { + should: chai.Expect; +} diff --git a/chai/chai.d.ts b/chai/chai.d.ts index 7318744012..d840aba964 100644 --- a/chai/chai.d.ts +++ b/chai/chai.d.ts @@ -9,28 +9,28 @@ declare module chai { function expect(target: any, message?: string): Expect; // Provides a way to extend the internals of Chai - function use(fn: (chai: any, utils: any) => void); + function use(fn: (chai: any, utils: any) => void): any; interface ExpectStatic { (target: any): Expect; } interface Assertions { - attr(name, value?); - css(name, value?); - data(name, value?); - class(className); - id(id); - html(html); - text(text); - value(value); - visible; - hidden; - selected; - checked; - disabled; - empty; - exist; + attr(name: string, value?: string): any; + css(name: string, value?: string): any; + data(name: string, value?: string): any; + class(className: string): any; + id(id: string): any; + html(html: string): any; + text(text: string): any; + value(value: string): any; + visible: any; + hidden: any; + selected: any; + checked: any; + disabled: any; + empty: any; + exist: any; } interface Expect extends LanguageChains, NumericComparison, TypeComparison, Assertions { From b7d67743e7d6aacdc8313164d9fcc9455a332aac Mon Sep 17 00:00:00 2001 From: Roland Zwaga Date: Wed, 30 Apr 2014 10:28:02 +0200 Subject: [PATCH 065/132] added definitions for missing ngGrid interfaces and created tests for them --- ng-grid/ng-grid-tests.ts | 277 +++++++++++++++++++++++++- ng-grid/ng-grid.d.ts | 418 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 689 insertions(+), 6 deletions(-) diff --git a/ng-grid/ng-grid-tests.ts b/ng-grid/ng-grid-tests.ts index 53763b1a51..d636753ba0 100644 --- a/ng-grid/ng-grid-tests.ts +++ b/ng-grid/ng-grid-tests.ts @@ -1,4 +1,5 @@ -/// +/// +/// var options1: ngGrid.IGridOptions = { data: [{ 'Name': 'Bob' }, { 'Name': 'Jane' }] @@ -25,3 +26,277 @@ var options4: ngGrid.IGridOptions = { currentPage: 1 } }; + +var columnDef: ngGrid.IColumnDef = { + width:{}, + minWidth:{}, + visible:false, + field:'', + displayName:'', + sortable:false, + resizable:false, + groupable:false, + pinnable:false, + editableCellTemplate:'', + enableCellEdit:false, + cellEditableCondition:'', + sortFn:(a:any, b:any):number=> { return 0 }, + cellTemplate:'', + cellClass:'', + headerClass:'', + headerCellTemplate:'', + cellFilter:'', + aggLabelFilter:'', + pinned:false +} + +var searchProvider: ngGrid.ISearchProvider = {}; +searchProvider.fieldMap = {}; +searchProvider.extFilter = false; +searchProvider.evalFilter(); + +var nr:number; + +var selectionProvider: ngGrid.ISelectionProvider = {}; +selectionProvider.multi = false; +selectionProvider.selectedItems = []; +selectionProvider.selectedIndex = 1; +selectionProvider.lastClickedRow = {}; +selectionProvider.ignoreSelectedItemChanges = false; +selectionProvider.pKeyParser = {}; +selectionProvider.ChangeSelection({}, {}); +nr = selectionProvider.getSelection({}); +nr = selectionProvider.getSelectionIndex({}); +selectionProvider.setSelection({}, false); +selectionProvider.toggleSelectAll(true, false, false); + +var eventProvider: ngGrid.IEventProvider = {}; +eventProvider.colToMove = {}; +eventProvider.groupToMove = {}; +eventProvider.assignEvents(); +eventProvider.assignGridEventHandlers(); +eventProvider.dragStart({}); +eventProvider.dragOver({}); +eventProvider.setDraggables(); +eventProvider.onGroupMouseDown({}); +eventProvider.onGroupDrop({}); +eventProvider.onHeaderMouseDown({}); +eventProvider.onHeaderDrop({}); + +var aggregate: ngGrid.IAggregate = {}; +aggregate.rowIndex = 0; +aggregate.offsetTop = 0; +aggregate.entity = {}; +aggregate.label = ''; +aggregate.field = ''; +aggregate.depth = 0; +aggregate.parent = {}; +aggregate.children = []; +aggregate.aggChildren = []; +aggregate.aggIndex = 0; +aggregate.collapsed = false; +aggregate.groupInitState = false; +aggregate.rowFactory = {}; +aggregate.rowHeight = 0; +aggregate.isAggRow = false; +aggregate.offsetLeft = 0; +aggregate.aggLabelFilter = {}; + +var rowConfig: ngGrid.IRowConfig = {}; +rowConfig.enableCellSelection = false; +rowConfig.enableRowSelection = false; +rowConfig.jqueryUITheme = false; +rowConfig.rowClasses = ['']; +rowConfig.rowHeight = 0; +rowConfig.selectWithCheckboxOnly = false; +rowConfig.selectedItems = []; +rowConfig.afterSelectionChangeCallback(); +rowConfig.beforeSelectionChangeCallback(); + +var renderedRange: ngGrid.IRenderedRange = {}; +renderedRange.bottomRow = 0; +renderedRange.topRow = 0; + +var rowFactory: ngGrid.IRowFactory = {}; +rowFactory.aggCache= null; +rowFactory.dataChanged= false; +rowFactory.groupedData= null; +rowFactory.numberOfAggregates = 0; +rowFactory.parentCache= []; +rowFactory.parsedData= []; +rowFactory.renderedRange = {}; +rowFactory.rowConfig = {}; +rowFactory.rowHeight = 0; +rowFactory.selectionProvider = {}; +rowFactory.UpdateViewableRange({}); +aggregate = rowFactory.buildAggregateRow({}, 0); +var row:ngGrid.IRow = rowFactory.buildEntityRow({}, 0); +rowFactory.filteredRowsChanged(); +rowFactory.fixRowCache(); +rowFactory.getGrouping({}); +rowFactory.parseGroupData({}); +rowFactory.renderedChange(); +rowFactory.renderedChangeNoGroups(); + +var dimension: ngGrid.IDimension = {}; +dimension.outerHeight = 0; +dimension.outerWidth = 0; +dimension.autoFitHeight = false; + +var elmDimension: ngGrid.IElementDimension = {}; +elmDimension.rootMaxH = 0; +elmDimension.rootMaxW = 0; +elmDimension.rowIndexCellW = 0; +elmDimension.rowSelectedCellW = 0; +elmDimension.scrollH = 0; +elmDimension.scrollW = 0; + +var row: ngGrid.IRow = {}; +row.entity= {}; +row.config = {}; +row.selectionProvider = {}; +row.rowIndex = 0; +row.utils= {}; +row.selected = false; +row.cursor = ''; +row.offsetTop = 0; +row.rowDisplayIndex = 0; +row.afterSelectionChange(); +row.beforeSelectionChange(); +row.setSelection(false); +row.continueSelection({}); +row.ensureEntity({}); +var b:boolean = row.toggleSelected({}); +row.alternatingRowClass(); +var a:any = row.getProperty(''); +var r:ngGrid.IRow = row.copy(); +row.setVars({}); + +var column: ngGrid.IColumn = {}; +column.colDef = {}; +column.width = 0; +column.groupIndex = 0; +column.isGroupedBy = false; +column.minWidth = 0; +column.maxWidth = 0; +column.enableCellEdit = false; +column.cellEditableCondition = {}; +column.headerRowHeight = 0; +column.displayName = ''; +column.index = 0; +column.isAggCol = false; +column.cellClass = ''; +column.sortPriority = 0; +column.cellFilter = {}; +column.field = ''; +column.aggLabelFilter = {}; +column.visible = false; +column.sortable = false; +column.resizable = false; +column.pinnable = false; +column.pinned = false; +column.originalIndex = 0; +column.groupable = false; +column.sortDirection = ''; +column.sortingAlgorithm = ()=>{}; +column.headerClass = ''; +column.cursor = ''; +column.headerCellTemplate = ''; +column.cellTemplate = ''; +var s:string = column.groupedByClass(); +column.toggleVisible(); +b = column.showSortButtonUp(); +b = column.showSortButtonDown(); +b = column.noSortVisible(); +b = column.sort({}); +a = column.gripClick(); +a = column.gripOnMouseDown({}); +column.onMouseMove({}); +column.gripOnMouseUp({}); +var c:ngGrid.IColumn = column.copy(); +column.setVars(c); + +var gridScope: ngGrid.IGridScope = {}; +gridScope.elementsNeedMeasuring = false; +gridScope.columns = []; +gridScope.renderedRows = []; +gridScope.renderedColumns = []; +gridScope.headerRow = {}; +gridScope.rowHeight = 0; +gridScope.jqueryUITheme = {}; +gridScope.showSelectionCheckbox = false; +gridScope.enableCellSelection = false; +gridScope.enableCellEditOnFocus = false; +gridScope.footer = {}; +gridScope.selectedItems = []; +gridScope.multiSelect = false; +gridScope.showFooter = false; +gridScope.footerRowHeight = 0; +gridScope.showColumnMenu = false; +gridScope.forceSyncScrolling = false; +gridScope.showMenu = false; +gridScope.configGroups = []; +gridScope.gridId = ''; +gridScope.enablePaging = false; +gridScope.pagingOptions = {}; +gridScope.i18n = {}; +gridScope.selectionProvider = {}; +gridScope.adjustScrollLeft(0); +gridScope.adjustScrollTop(0, true); +gridScope.toggleShowMenu(); +gridScope.toggleSelectAll(); +nr = gridScope.totalFilteredItemsLength(); +a = gridScope.showGroupPanel(); +nr = gridScope.topPanelHeight(); +nr = gridScope.viewportDimHeight(); +gridScope.groupBy({}); +gridScope.removeGroup(0); +gridScope.togglePin({}); +nr = gridScope.totalRowWidth(); +a = gridScope.headerScrollerDim(); + +var gridInstance: ngGrid.IGridInstance = {}; +gridInstance.$canvas = {}; +gridInstance.$viewport = {}; +gridInstance.$groupPanel = {}; +gridInstance.$footerPanel = {}; +gridInstance.$headerScroller = {}; +gridInstance.$headerContainer = {}; +gridInstance.$headers = {}; +gridInstance.$topPanel = {}; +gridInstance.$root = {}; +gridInstance.config = {}; +gridInstance.data = {}; +gridInstance.elementDims = {}; +gridInstance.eventProvider = {}; +gridInstance.filteredRows = [{}]; +gridInstance.footerController = {}; +gridInstance.gridId = ''; +gridInstance.lastSortedColumns = [{}]; +gridInstance.lateBindColumns = false; +gridInstance.maxCanvasHt = 0; +gridInstance.prevScrollIndex = 0; +gridInstance.prevScrollTop = 0; +gridInstance.rootDim = {}; +gridInstance.rowCache = [{}]; +gridInstance.rowFactory = {}; +gridInstance.rowMap = [{}]; +gridInstance.searchProvider = {}; +gridInstance.styleProvider = {}; +gridInstance.buildColumnDefsFromData(); +gridInstance.buildColumns(); +gridInstance.calcMaxCanvasHeight(); +gridInstance.clearSortingData(); +gridInstance.configureColumnWidths(); +gridInstance.fixColumnIndexes(); +gridInstance.fixGroupIndexes(); +var p:ng.IPromise = gridInstance.getTemplate(''); +p = gridInstance.init(); +p = gridInstance.initTemplates(); +gridInstance.minRowsToRender(); +gridInstance.refreshDomSizes(); +gridInstance.resizeOnData({}); +gridInstance.setRenderedRows([{}]); +gridInstance.sortActual(); +gridInstance.sortColumnsInit(); +gridInstance.sortData({}, {}); \ No newline at end of file diff --git a/ng-grid/ng-grid.d.ts b/ng-grid/ng-grid.d.ts index 70f4f569f8..dbf3666b4e 100644 --- a/ng-grid/ng-grid.d.ts +++ b/ng-grid/ng-grid.d.ts @@ -1,23 +1,318 @@ // Type definitions for ng-grid // Project: http://angular-ui.github.io/ng-grid/ -// Definitions by: Ken Smith +// Definitions by: Ken Smith and Roland Zwaga and Kent Cooper // DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped // These are very definitely preliminary. Please feel free to improve. +// Changelog: +// 25/4/2014: Added interfaces for all classes and services + +/// + declare class ngGridReorderable { constructor(); } declare module ngGrid { + export interface IDomAccessProvider { + previousColumn:IColumn; + grid:IGridInstance; + changeUserSelect(elm:ng.IAugmentedJQuery, value:string):void; + focusCellElement($scope:IGridScope, index:number):void; + selectionHandlers($scope:IGridScope, elm:ng.IAugmentedJQuery):void; + } + + export interface IStyleProvider { + new($scope:IGridScope, grid:IGridInstance):IStyleProvider; + } + + export interface ISearchProvider { + new($scope:IGridScope, grid:IGridInstance, $filter:ng.IFilterService):ISearchProvider; + fieldMap:any; + extFilter:boolean; + evalFilter():void; + } + + export interface ISelectionProvider { + new(grid:IGridInstance, $scope:IGridScope, $parse:ng.IParseService):ISelectionProvider; + multi:boolean; + selectedItems:any[]; + selectedIndex:number; + lastClickedRow:any; + ignoreSelectedItemChanges:boolean; + pKeyParser:ng.ICompiledExpression; + ChangeSelection(rowItem:any, event:any):void; + getSelection(entity:any):number; + getSelectionIndex(entity:any):number; + setSelection(rowItem:IRow, isSelected:boolean):void; + toggleSelectAll(checkAll:boolean, bypass:boolean, selectFiltered:boolean):void; + } + + export interface IEventProvider { + new(grid:IGridInstance, $scope:IGridScope, domUtilityService:any, $timeout:ng.ITimeoutService):IEventProvider; + colToMove:IColumn; + groupToMove:any; + assignEvents():void; + assignGridEventHandlers():void; + dragStart(event:any):void; + dragOver(event:any):void; + setDraggables():void; + onGroupMouseDown(event:any):void; + onGroupDrop(event:any):void; + onHeaderMouseDown(event:any):void; + onHeaderDrop(event:any):void; + } + + + export interface IAggregate { + new(aggEntity:any, rowFactory:IRowFactory, rowHeight:number, groupInitState:boolean):IAggregate; + rowIndex:number; + offsetTop:number; + entity:any; + label:string; + field:string; + depth:number; + parent:any; + children:any[]; + aggChildren:any[]; + aggIndex:number; + collapsed:boolean; + groupInitState:boolean; + rowFactory:IRowFactory; + rowHeight:number; + isAggRow:boolean; + offsetLeft:number; + aggLabelFilter:any; + } + + export interface IRowConfig { + enableCellSelection:boolean; + enableRowSelection:boolean; + jqueryUITheme:boolean; + rowClasses:string[]; + rowHeight:number; + selectWithCheckboxOnly:boolean; + selectedItems:any[]; + + afterSelectionChangeCallback():void; + beforeSelectionChangeCallback():void; + } + + export interface IRenderedRange { + new(top:number, bottom:number):IRenderedRange; + bottomRow:number; + topRow:number; + } + + export interface IRowFactory { + aggCache:any; + dataChanged:boolean; + groupedData:any; + numberOfAggregates:number; + parentCache:any[]; + parsedData:any[]; + renderedRange:IRenderedRange; + rowConfig:IRowConfig; + rowHeight:number; + selectionProvider:ISelectionProvider; + + UpdateViewableRange(newRange:IRenderedRange):void; + buildAggregateRow(aggEntity:any, rowIndex:number):IAggregate; + buildEntityRow(entity:any, rowIndex:number):IRow; + filteredRowsChanged():void; + fixRowCache():void; + getGrouping(groups:any):void; + parseGroupData(groupData:any):void; + renderedChange():void; + renderedChangeNoGroups():void; + } + + export interface IDimension { + new(options:any):IDimension; + outerHeight?:number; + outerWidth?:number; + autoFitHeight?:boolean; + } + + export interface IElementDimension { + rootMaxH?:number; + rootMaxW?:number; + rowIndexCellW?:number; + rowSelectedCellW?:number; + scrollH?:number; + scrollW?:number; + } + + export interface IRow { + new(entity:any, config:IRowConfig, selectionProvider:ISelectionProvider, rowIndex:number, $utils:any):IRow; + entity:any; + config:IRowConfig; + selectionProvider:ISelectionProvider; + rowIndex:number; + utils:any; + selected:boolean; + cursor:string; + offsetTop:number; + rowDisplayIndex:number; + afterSelectionChange():void; + beforeSelectionChange():void; + setSelection(isSelected:boolean):void; + continueSelection(event:any):void; + ensureEntity(expected:any):void; + toggleSelected(event:any):boolean; + alternatingRowClass():void; + getProperty(path:string):any; + copy():IRow; + setVars(fromRow:IRow):void; + } + + export interface IColumn { + new(config:IGridOptions, $scope:IGridScope, grid:IGridInstance, domUtilityService:any, $templateCache:ng.ITemplateCacheService, $utils:any):IColumn; + colDef:IColumnDef; + width:number; + groupIndex:number; + isGroupedBy:boolean; + minWidth:number; + maxWidth:number; + enableCellEdit:boolean; + cellEditableCondition:any; + headerRowHeight:number; + displayName:string; + index:number; + isAggCol:boolean; + cellClass:string; + sortPriority:number; + cellFilter:any; + field:string; + aggLabelFilter:any; + visible:boolean; + sortable:boolean; + resizable:boolean; + pinnable:boolean; + pinned:boolean; + originalIndex:number; + groupable:boolean; + sortDirection:string; + sortingAlgorithm:Function; + headerClass:string; + cursor:string; + headerCellTemplate:string; + cellTemplate:string; + groupedByClass():string; + toggleVisible():void; + showSortButtonUp():boolean; + showSortButtonDown():boolean; + noSortVisible():boolean; + sort(event:any):boolean; + gripClick():any; + gripOnMouseDown(event:any):any; + onMouseMove(event:any):void; + gripOnMouseUp(event:any):void; + copy():IColumn; + setVars(fromCol:IColumn):void; + } + + export interface IGridScope extends ng.IScope { + elementsNeedMeasuring:boolean; + columns:any[]; + renderedRows:any[]; + renderedColumns:any[]; + headerRow:any; + rowHeight:number; + jqueryUITheme:any; + showSelectionCheckbox:boolean; + enableCellSelection:boolean; + enableCellEditOnFocus:boolean; + footer:IFooter; + selectedItems:any[]; + multiSelect:boolean; + showFooter:boolean; + footerRowHeight:number; + showColumnMenu:boolean; + forceSyncScrolling:boolean; + showMenu:boolean; + configGroups:any[]; + gridId:string; + enablePaging:boolean; + pagingOptions:IPagingOptions; + i18n:any; + selectionProvider:ISelectionProvider; + adjustScrollLeft(scrollLeft:number):void; + adjustScrollTop(scrollTop:number, force:boolean):void; + toggleShowMenu():void; + toggleSelectAll():void; + totalFilteredItemsLength():number; + showGroupPanel():any; + topPanelHeight():number; + viewportDimHeight():number; + groupBy(col:IColumn):void; + removeGroup(index:number):void; + togglePin(col:IColumn):void; + totalRowWidth():number; + headerScrollerDim():any; + } + + export interface IGridInstance { + $canvas:ng.IAugmentedJQuery; + $viewport:ng.IAugmentedJQuery; + $groupPanel:ng.IAugmentedJQuery; + $footerPanel:ng.IAugmentedJQuery; + $headerScroller:ng.IAugmentedJQuery; + $headerContainer:ng.IAugmentedJQuery; + $headers:ng.IAugmentedJQuery; + $topPanel:ng.IAugmentedJQuery; + $root:ng.IAugmentedJQuery; + config:IGridOptions; + data:any; + elementDims:IElementDimension; + eventProvider:IEventProvider; + filteredRows:IRow[]; + footerController:any; + gridId:string; + lastSortedColumns:IColumn[]; + lateBindColumns:boolean; + maxCanvasHt:number; + prevScrollIndex:number; + prevScrollTop:number; + rootDim:IDimension; + rowCache:IRow[]; + rowFactory:IRowFactory; + rowMap:IRow[]; + searchProvider:ISearchProvider; + styleProvider:IStyleProvider; + + buildColumnDefsFromData():void; + buildColumns():void; + calcMaxCanvasHeight():void; + clearSortingData():void; + configureColumnWidths():void; + fixColumnIndexes():void; + fixGroupIndexes():void; + getTemplate(key:string):ng.IPromise; + init():ng.IPromise; + initTemplates():ng.IPromise; + minRowsToRender():void; + refreshDomSizes():void; + resizeOnData(col:IColumn):void; + setRenderedRows(newRows:IRow[]):void; + sortActual():void; + sortColumnsInit():void; + sortData(col:IColumn, event:any):void; + } + + export interface IFooter { + new($scope:IGridScope, grid:IGridInstance):IFooter; + } + export interface IGridOptions { /** Define an aggregate template to customize the rows when grouped. See github wiki for more details. */ aggregateTemplate?: string; /** Callback for when you want to validate something after selection. */ - afterSelectionChange?: (rowItem?: any, event?: any) => void ; + afterSelectionChange?: (rowItem?: IRow, event?: any) => void ; /** Callback if you want to inspect something before selection, return false if you want to cancel the selection. return true otherwise. @@ -25,7 +320,7 @@ declare module ngGrid { use rowItem.changeSelection(event) method after returning false initially. Note: when shift+ Selecting multiple items in the grid this will only get called once and the rowItem will be an array of items that are queued to be selected. */ - beforeSelectionChange?: (rowItem?: any, event?: any) => boolean ; + beforeSelectionChange?: (rowItem?: IRow, event?: any) => boolean ; /** checkbox templates. */ checkboxCellTemplate?: string; @@ -176,11 +471,68 @@ declare module ngGrid { } export interface IColumnDef { + /** + * This can be an absolute numberor it can also be defined in percentages (20%, 30%), + * in weighted *s, or "auto" (which sizes the column based on data length) + * (much like WPF/Silverlight)/ note: "auto" only works in single page apps currently because the re-size + * happens on "document.ready + */ + width?: any; + + /** The minum width the column is allowed to be. See width for the different options */ + minWidth?: any; + + /** Set the default visiblity of the column */ + visible?: boolean; + + /** Can also be a property path on your data model. "foo.bar.myField", "Name.First", etc..*/ field?: string; - width?: any; //**this can be a string containing a relatively, absolute size units or a number: '30%','54px',45 /* + + /** What to display in the column header */ displayName?: string; - cellTemplate?: string; + + /** Restrict or allow the column to be sorted */ + sortable?: boolean; + + /** Restrict or allow the column to be resized */ + resizable?: boolean; + + /** Allows the column to be grouped with drag and drop, but has no effect on gridOptions.groups */ + groupable?: boolean; + + /** Allows the column to be pinned when enablePinning is set to true */ + pinnable?: boolean; + + /** The template to use while editing */ + editableCellTemplate?: string; + + /** Allows the cell to use an edit template when focused (grid option enableCellSelection must be enabled)*/ enableCellEdit?: boolean; + + /** Controls when to use the edit template on per-row basis using an angular expression (enableCellEdit must also be true for editing)*/ + cellEditableCondition?: string; + + /** The funtion to use when filtering values in this column */ + sortFn?: (a: any, b: any) => number; + + /** Html template used to render the cell */ + cellTemplate?: string; + + /** User defined CSS class name */ + cellClass?: string; + + /** User defined CSS class name for the header cell */ + headerClass?: string; + + /** Html template used to render the header cell */ + headerCellTemplate?: string; + + /** string name for filter to use on the cell ('currency', 'date', etc..) */ + cellFilter?: string; + + /** String name for filter to use on the aggregate label ('currency', 'date', etc..) defaults to cellFilter if not set. */ + aggLabelFilter?: string; + pinned?: boolean; } @@ -199,4 +551,60 @@ declare module ngGrid { /** currentPage: the uhm... current page. */ currentPage?: number; } + + export interface IPlugin { + init(childScope:IGridScope, gridInstance:IGridInstance, services:any):void; + } + + export module service { + + export interface IDomUtilityService { + eventStorage:any; + numberOfGrids:number; + immediate:number; + AssignGridContainers($scope:IGridScope, rootel:ng.IAugmentedJQuery, grid:IGridInstance):void; + getRealWidth(obj:IDimension):number; + UpdateGridLayout($scope:IGridScope, grid:IGridInstance):void; + setStyleText(grid:IGridInstance, css:string):void; + BuildStyles($scope:IGridScope, grid:IGridInstance, digest:boolean):void; + setColLeft(col:IColumn, colLeft:number, grid:IGridInstance):void; + RebuildGrid($scope:IGridScope, grid:IGridInstance):void; + digest($scope:IGridScope):void; + ScrollH:number; + ScrollW:number; + LetterW:number; + } + + export interface ISortInfo { + fields:string[]; + } + + export interface ISortService { + colSortFnCache:any; + isCustomSort:boolean; + isSorting:boolean; + guessSortFn(item:any):(a:any, b:any)=>number; + basicSort(a:any, b:any):number; + sortNumber(a:number, b:number):number; + sortNumberStr(a:string, b:string):number; + sortAlpha(a:string, b:string):number; + sortDate(a:Date, b:Date):number; + sortBool(a:boolean, b:boolean):number; + sortData(sortInfo:ISortInfo, data:any):void; + Sort(sortInfo:ISortInfo, data:any):void; + getSortFn(col:IColumn, data:any):(a:any, b:any)=>number; + } + + export interface IUtilityService { + visualLength(node:any):number; + forIn(obj:any, action:(value:any, property:string)=>{}):void; + evalProperty(entity:any, path:string):any; + endsWith(str:string, suffix:string):boolean; + isNullOrUndefined(obj:any):boolean; + getElementsByClassName(cl:string):any[]; + newId():string; + seti18n($scope:IGridScope, language:string):void; + getInstanceType(o:any):string; + } + } } From 0a86e768900ecc778df194303167266d28e08e56 Mon Sep 17 00:00:00 2001 From: Horiuchi_H Date: Thu, 1 May 2014 19:41:46 +0900 Subject: [PATCH 066/132] add mongoose type file --- mongoose/mongoose-tests.ts | 366 ++++++++++++++++++++++++++++++ mongoose/mongoose.d.ts | 453 +++++++++++++++++++++++++++++++++++++ 2 files changed, 819 insertions(+) create mode 100644 mongoose/mongoose-tests.ts create mode 100644 mongoose/mongoose.d.ts diff --git a/mongoose/mongoose-tests.ts b/mongoose/mongoose-tests.ts new file mode 100644 index 0000000000..38c469ca15 --- /dev/null +++ b/mongoose/mongoose-tests.ts @@ -0,0 +1,366 @@ +/// + +var fs = require('fs'); +import mongoose = require('mongoose'); + +var createInstance = new mongoose.Mongoose(); + +var Schema = mongoose.Schema; +var CreateSchema = new Schema({}); + +mongoose.connect('mongodb://user:pass@localhost:port/database'); +mongoose.connect('mongodb://hostA:27501,hostB:27501', { mongos: true }); + +var conn: mongoose.Connection = mongoose.createConnection('mongodb://user:pass@localhost:port/database'); +conn = mongoose.createConnection('mongodb://user:pass@localhost:port/database,mongodb://anotherhost:port,mongodb://yetanother:port', { replset: { strategy: 'ping', rs_name: 'testSet' }}); +conn = mongoose.createConnection('localhost', 'database', 27014); +conn = mongoose.createConnection('localhost', 'database', 27014, { server: { auto_reconnect: false }, user: 'username', pass: 'mypassword' }); +conn = mongoose.createConnection(); +conn.open('localhost', 'database', 27014, {}); + +var db = mongoose.createConnection(); +db.openSet("mongodb://user:pwd@localhost:27020/testing,mongodb://example.com:27020,mongodb://localhost:27019"); +db.openSet('mongodb://mongosA:27501,mongosB:27501', 'db', { mongos: true }, (err: any) => {}); +db.close(); + +var collection = db.collection('collection1'); + +mongoose.connection.on('error', (err: any) => {}); +mongoose.disconnect(); + +mongoose.set('test', 1234567890); +var value = mongoose.get('test'); +mongoose.set('debug', true); + +interface IActor extends mongoose.Document { + name: string; +} +mongoose.model('Actor', new Schema({ name: String })); +db.model('Actor', new Schema({ name: String })); +var schema: mongoose.Schema = new Schema({ name: String }, { collection: 'actor' }); +schema.set('collection', 'actor'); +var Model = mongoose.model('Actor', schema, 'actor'); + +var names: string[] = mongoose.modelNames(); +var names: string[] = db.modelNames(); +mongoose.plugin((schema: mongoose.Schema) => { +}, { index: true }); + + +var aggregate = new mongoose.Aggregate(); +var aggregate = new mongoose.Aggregate({ $project: { a: 1, b: 1 } }); +var aggregate = new mongoose.Aggregate({ $project: { a: 1, b: 1 } }, { $skip: 5 }); +var aggregate = new mongoose.Aggregate([{ $project: { a: 1, b: 1 } }, { $skip: 5 }]); +aggregate.append({ $project: { field: 1 }}, { $limit: 2 }); +aggregate.append([{ $match: { daw: 'Logic Audio X' }} ]); +aggregate.group({ _id: "$department" }); +aggregate.skip(10); +aggregate.limit(10); +aggregate.match({ department: { $in: [ "sales", "engineering" ] } }); +aggregate.near({ + near: [40.724, -73.997], + distanceField: "dist.calculated", // required + maxDistance: 0.008, + query: { type: "public" }, + includeLocs: "dist.location", + uniqueDocs: true, + num: 5 +}); +aggregate.project("a b -_id"); +aggregate.project({a: 1, b: 1, _id: 0}); +aggregate.project({ + newField: '$b.nested', + plusTen: { $add: ['$val', 10]}, + sub: { + name: '$a' + } +}); +aggregate.project({ salary_k: { $divide: [ "$salary", 1000 ] } }); +aggregate.sort({ field: 'asc', test: -1 }); +aggregate.sort('field -test'); +aggregate.unwind("tags"); +aggregate.unwind("a", "b", "c"); +var p = aggregate.exec(); +aggregate.read('primaryPreferred').exec((err: any, result: {}) => {}); + + +var p = new mongoose.Promise; +var p2 = p.then(function() { throw new Error('shucks') }).end(); +setTimeout(function() { + p.fulfill({}); +}, 10); +var promise = new mongoose.Promise(); +promise.then(function (meetups: number) { + return new mongoose.Promise(); +}).then(function (people: string[]) { + if (people.length < 10000) { + throw new Error('Too few people!!!'); + } else { + throw new Error('Still need more people!!!'); + } +}).then(null, function (err: Error) { +}).end(); + + +Model.findOne({ name: 'john' }, (err: any, doc: mongoose.Document) => { + doc.invalidate('size', 'must be less than 20', 14); + doc.validate((err: any) => { }); + + doc.set('documents.0.title', 'changed'); + doc.get('documents.0'); + doc.set({ + 'path' : 1, + 'path2' : { + 'path' : 2 + } + }); + doc.set('path', 'value', { strict: false }); + doc.set('path3', '1', Number); + doc.get('path3', Number); + doc.id; + doc._id; + + doc.isModified(); + doc.isModified('documents'); + doc.isModified('documents.0.title'); + doc.isDirectModified('documents.0.title'); + doc.isDirectModified('documents'); + doc.isSelected('name'); + + doc.markModified('mixed.type'); + doc.populate('user'); + doc.populate('other', (err: any, doc: mongoose.Document) => {}); + doc.populated('author'); + doc.save(); + + doc.toJSON({ getters: true, virtuals: false }); + var data: any = doc.toObject(); + delete data['age']; + delete data['weight']; + data['isAwesome'] = true; +}); + +Model.model('User').findById('id', (err: any, res: IActor) => {}); +Model.count({ type: 'jungle' }, (err: any, count: number) => {}); +Model.remove((err: any, res: IActor[]) => {}); +Model.save((err: any, res: IActor, numberAffected: number) => {}); +Model.create({ type: 'jelly bean' }, { type: 'snickers' }, (err: any, res1: IActor, res2: IActor) => {}); +Model.create({ type: 'jawbreaker' }); +Model.distinct('url', { clicks: {$gt: 100}}, (err: any, result: IActor[]) => {}); +Model.distinct('url'); + +Model.aggregate( + { $group: { _id: null, maxBalance: { $max: '$balance' }}}, + { $project: { _id: 0, maxBalance: 1 }}, + (err: any, res: IActor[]) => {}); +Model.aggregate() + .group({ _id: null, maxBalance: { $max: '$balance' } }) + .select('-id maxBalance') + .exec((err: any, res: IActor[]) => {}); +Model.ensureIndexes((err) => {}); + +Model.find({ name: 'john', age: { $gte: 18 }}); +Model.find({ name: 'john', age: { $gte: 18 }}, (err: any, docs: IActor[]) => {}); +Model.find({ name: /john/i }, 'name friends', (err: any, docs: IActor[]) => {}); +Model.find({ name: /john/i }, null, { skip: 10 }); +Model.find({ name: /john/i }, null, { skip: 10 }, (err: any, docs: IActor[]) => {}); +Model.find({ name: /john/i }, null, { skip: 10 }).exec((err: any, docs: IActor[]) => {}); +var query = Model.find({ name: /john/i }, null, { skip: 10 }); +var promise1 = query.exec(); +promise1.addBack((err: any, docs: IActor[]) => {}); + +Model.findById('id', (err: any, res: IActor) => {}); +Model.findById('id').exec((err: any, res: IActor) => {}); +Model.findById('id', 'name length', (err: any, res: IActor) => {}); +Model.findById('id', '-length').exec((err: any, res: IActor) => {}); +Model.findById('id', 'name', { lean: true }, (err: any, res: IActor) => {}); +Model.findById('id', 'name').lean().exec((err: any, res: IActor) => {}); +Model.findByIdAndRemove('id1', { select: 'name' }, (err: any, res: IActor) => {}); +Model.findByIdAndRemove('id1', { select: 'name' }).exec((err: any, res: IActor) => {}); +Model.findByIdAndRemove('id1', (err: any, res: IActor) => {}); +Model.findByIdAndRemove('id1').exec((err: any, res: IActor) => {}); +Model.findByIdAndUpdate('id2', { $set: { name: 'jason borne' }}, { upsert: true }, (err: any, res: IActor) => {}); + +Model.findOne({ type: 'iphone' }, (err: any, res: IActor) => {}); +Model.findOne({ type: 'iphone' }).exec((err: any, res: IActor) => {}); +Model.findOne({ type: 'iphone' }, 'name', (err: any, res: IActor) => {}); +Model.findOne({ type: 'iphone' }, 'name').exec((err: any, res: IActor) => {}); +Model.findOne({ type: 'iphone' }, 'name', { lean: true }, (err: any, res: IActor) => {}); +Model.findOne({ type: 'iphone' }, 'name', { lean: true }).exec((err: any, res: IActor) => {}); +Model.findOne({ type: 'iphone' }).select('name').lean().exec((err: any, res: IActor) => {}); +Model.findOneAndRemove({ type: 'iphone' }, { select: 'name' }, (err: any, res: IActor) => {}); +Model.findOneAndRemove({ type: 'iphone' }, { select: 'name' }).exec((err: any, res: IActor) => {}); +Model.findOneAndUpdate({ type: 'iphone' }, { $set: { name: 'jason borne' }}, { upsert: true }, (err: any, res: IActor) => {}); + +Model.geoNear([1, 3], { maxDistance : 5, spherical : true }, (err: any, res: IActor[]) => {}); +Model.geoNear({ type : "Point", coordinates : [9,9] }, { maxDistance : 5, spherical : true }, (err: any, res: IActor[]) => {}); +Model.geoSearch({ type : "house" }, { near: [10, 10], maxDistance: 5 }, (err: any, res: IActor[]) => {}); + +var o = { + map: function () { this.emit(this.name, 1) }, + reduce: function (k: string, vals: IActor[]) { return vals.length }, +}; +Model.mapReduce(o, (err: any, res: any[]) => {}); + +Model.findById('id', (err: any, res: IActor) => { + var opts = [ + { path: 'company', match: { x: 1 }, select: 'name' }, + { path: 'notes', options: { limit: 10 }, model: 'override' } + ]; + Model.populate(res, opts, (err: any, res: IActor) => {}); +}); +Model.find({ type: 'iphone' }, (err: any, res: IActor[]) => { + var opts = [{ path: 'company', match: { x: 1 }, select: 'name' }]; + var promise = Model.populate(res, opts); + promise.then(console.log).end(); +}); +Model.populate({ name: 'Test A' }, { path: 'weapon', model: 'Weapon' }, (err: any, user: IActor) => {}); +Model.populate([ + { name: 'User hoge' }, + { name: 'User fuga' }, +], { path: 'weapon' }, (err: any, users: IActor[]) => {}); + +Model.remove({ title: 'baby born from alien father' }, (err: any) => {}); +var query2 = Model.remove({ _id: 'id' }); +query2.exec(); +Model.update({ age: { $gt: 18 } }, { oldEnough: true }, (err: any, numberAffected: number, raw: any) => {}); +Model.update({ name: 'Tobi' }, { ferret: true }, { multi: true }, (err: any, numberAffected: number, raw: any) => {}); +Model.update({ _id: 'id' }, { $set: { text: 'changed' }}).exec(); + +Model.where('age').gte(21).lte(65).exec((err: any, res: IActor[]) => {}); +var query3 =Model + .where('age').gt(21).lt(65) + .where('name', /^b/i).all('type', 1); +query3.all(25); +query3.and([{ color: 'green' }, { status: 'ok' }]); +query3.batchSize(100); +query3.where('loc').within().box([40.73083, -73.99756], [40.741404, -73.988135]); +query3.where('loc').within().circle({ center: [50, 50], radius: 10, unique: true }); +query3.circle('loc', { center: [50, 50], radius: 10, unique: true }); +query3.comment('login query'); +query3.where({ 'color': 'black' }).count(); +query3.count({ color: 'black' }).count((err: any, count: number) => {}); +query3.count({ color: 'black' }, (err: any, count: number) => {}); +query3.where({ color: 'black' }).count((err: any, count: number) => {}); +query3.elemMatch('comment', { author: 'autobot', votes: {$gte: 5}}); +query3.where('comment').elemMatch({ author: 'autobot', votes: {$gte: 5}}); +query.elemMatch('comment', (elem: mongoose.Query) => { + elem.where('author').equals('autobot'); + elem.where('votes').gte(5); +}); +query3.where('age').equals(49); +query3.where('age', 49); +query3.exec(); +query3.exec('update'); +query3.where('name').exists(); +query3.where('name').exists(true); +query3.find().exists('name'); +query3.where('name').exists(false); +query3.find().exists('name', false); +query3.find({ name: 'Los Pollos Hermanos' }).find((err: any, res: IActor[]) => {}); +query3.where('loc').within().geometry({ type: 'Polygon', coordinates: [[[ 10, 20 ], [ 10, 40 ], [ 30, 40 ], [ 30, 20 ]]] }); +query3.find().where('age').gt(21); +query3.find().gt('age', 21); +query3.hint({ indexA: 1, indexB: -1}); +query3.where('path').intersects().geometry({ type: 'LineString', coordinates: [[180.0, 11.0], [180, 9.0]] }); +query3.where('path').intersects({ type: 'LineString', coordinates: [[180.0, 11.0], [180, 9.0]] }); +query3.maxScan(100); +query3.where('loc').near({ center: [10, 10] }); +query3.where('loc').near({ center: [10, 10], maxDistance: 5 }); +query3.where('loc').near({ center: [10, 10], maxDistance: 5, spherical: true }); +query3.near('loc', { center: [10, 10], maxDistance: 5 }); +query3.where('loc').nearSphere({ center: [10, 10], maxDistance: 5 }); +query3.nor([{ color: 'green' }, { status: 'ok' }]); +query3.or([{ color: 'red' }, { status: 'emergency' }]); +query3.where('loc').within().polygon([10,20], [13, 25], [7,15]); +query3.polygon('loc', [10,20], [13, 25], [7,15]); + +query3.findOne().populate('owner').exec((err: any, res: IActor[]) => {}); +query3.find().populate({ + path: 'owner', + select: 'name', + match: { color: 'black' }, + options: { sort: { name: -1 }} +}).exec((err: any, res: IActor[]) => {}); +query3.find().populate('owner', 'name', null, {sort: { name: -1 }}).exec((err: any, res: IActor[]) => {}); + +query3.read('primary'); +query3.read('p'); +query3.read('primaryPreferred'); +query3.read('pp'); +query3.read('secondary'); +query3.read('s'); +query3.read('secondaryPreferred'); +query3.read('sp'); +query3.read('nearest'); +query3.read('n'); +query3.read('s', [{ dc:'sf', s: 1 },{ dc:'ma', s: 2 }]); +query3.remove({ artist: 'Anne Murray' }, (err: any, res: IActor[]) => {}); +query3.select('a b -c'); +query3.select({a: 1, b: 1, c: 0}); +query3.select('+path'); +query3.where('tags').size(0); +query3.skip(100).limit(20); +query3.slaveOk(); +query3.slaveOk(true); +query3.slaveOk(false); +query3.slice('comments', -5); +query3.slice('comments', [10, 5]) +query3.where('comments').slice(5); +query3.where('comments').slice([-10, 5]); +query3.snapshot(); +query3.snapshot(true); +query3.snapshot(false); +query3.sort({ field: 'asc', test: -1 }); +query3.sort('field -test'); +Model.find({ name: /^hello/ }).stream({ transform: JSON.stringify }).pipe(fs.createWriteStream('./test.json')); +var stream = Model.find({ name: /^hello/ }).stream(); +stream + .on('data', (doc: IActor) => {}) + .on('error', (err: any) => {}) + .on('close', () => {}); + +query3.tailable(); +query3.tailable(false); +var AdvQuery = query3.toConstructor(); +query3.update({ title: 'words' }); +query3.update({ $set: { title: 'words' }}); +query3.update({ name: /^match/ }, { $set: { arr: [] }}, { multi: true }, (err: any, row: number, raw: any) => {}); + +query3.where('loc').within({ center: [50,50], radius: 10, unique: true, spherical: true }); +query3.where('loc').within({ box: [[40.73, -73.9], [40.7, -73.988]] }); +query3.where('loc').within({ polygon: [[],[],[],[]] }); +query3.where('loc').within([], [], []); // polygon +query3.where('loc').within([], []); // box +query3.where('loc').within({ type: 'LineString', coordinates: [] }); // geometry + +mongoose.Query.use$geoWithin = false; + + +var ToySchema = new Schema({}); +ToySchema.add({ name: 'string', color: 'string', price: 'number' }); +schema.eachPath(function(path: string, value: any) {}); +schema.index({ first: 1, last: -1 }); +schema.indexes(); +schema.method('meow', function() { + console.log('meeeeeoooooooooooow'); +}); +var Kitty = mongoose.model('Kitty', schema); +var fizz: any = new Kitty({ name: 'kitty' }); +fizz.meow(); +schema.method({ + purr: function() {}, + scratch: function() {}, +}); +schema.path('name'); +schema.path('name', Number); +schema.pathType('name'); +schema.plugin(function() {}); +schema.post('save', function(doc: IActor) {}); +schema.pre('save', function(next: () => void) {}); +schema.requiredPaths(); +schema.static('findByName', function(name: string, callback: () => void) {}); +schema.virtual('display_name') + .get(function(): string { return this.name; }) + .set((value: string): void => {}); + diff --git a/mongoose/mongoose.d.ts b/mongoose/mongoose.d.ts new file mode 100644 index 0000000000..e9057abc7a --- /dev/null +++ b/mongoose/mongoose.d.ts @@ -0,0 +1,453 @@ +// Type definitions for Mongoose 3.8.5 +// Project: http://mongoosejs.com/ +// Definitions by: horiuchi +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "mongoose" { + function connect(uri: string, options?: ConnectionOption, callback?: (err: any) => void): Mongoose; + function createConnection(): Connection; + function createConnection(uri: string, options?: ConnectionOption): Connection; + function createConnection(host: string, database_name: string, port?: number, options?: ConnectionOption): Connection; + function disconnect(callback?: (err?: any) => void): Mongoose; + + function model(name: string, schema: Schema, collection?: string, skipInit?: boolean): Model; + function modelNames(): string[]; + function plugin(plugin: (schema: Schema, options?: Object) => void, options?: Object): Mongoose; + + function get(key: string): any; + function set(key: string, value: any): void; + + var mongo: any; + var mquery: any; + var version: string; + var connection: Connection; + + export class Mongoose { + connect(uri: string, options?: ConnectionOption, callback?: (err: any) => void): Mongoose; + createConnection(): Connection; + createConnection(uri: string, options?: Object): Connection; + createConnection(host: string, database_name: string, port?: number, options?: ConnectionOption): Connection; + disconnect(callback?: (err?: any) => void): Mongoose; + get(key: string): any; + model(name: string, schema: Schema, collection?: string, skipInit?: boolean): Model; + modelNames(): string[]; + plugin(plugin: (schema: Schema, options?: Object) => void, options?: Object): Mongoose; + set(key: string, value: any): void; + + mongo: any; + mquery: any; + version: string; + connection: Connection; + } + + export interface Connection extends NodeJS.EventEmitter { + constructor(base: Mongoose): Connection; + + close(callback?: (err: any) => void): Connection; + collection(name: string, options?: Object): Collection; + model(name: string, schema: Schema, collection?: string): Model; + modelNames(): string[]; + open(host: string, database?: string, port?: number, options?: ConnectionOption, callback?: (err: any) => void): Connection; + openSet(uris: string, database?: string, options?: ConnectionSetOption, callback?: (err: any) => void): Connection; + + db: any; + collections: {[index: string]: Collection}; + readyState: number; + } + export interface ConnectionOption { + db?: any; + server?: any; + replset?: any; + user?: string; + pass?: string; + auth?: any; + } + export interface ConnectionSetOption extends ConnectionOption { + mongos?: boolean; + } + + export interface Collection { + } + + + export class SchemaType { } + export class VirtualType { + get(fn: Function): VirtualType; + set(fn: Function): VirtualType; + } + export module Types { + export class ObjectId {} + } + + export class Schema { + static Types: { + String: String; + ObjectId: Types.ObjectId; + OId: Types.ObjectId; + Mixed: any; + }; + constructor(schema?: Object, options?: Object); + + add(obj: Object, prefix?: string): void; + eachPath(fn: (path: string, type: any) => void): Schema; + get(key: string): any; + index(fields: Object, options?: Object): Schema; + indexes(): void; + method(name: string, fn: Function): Schema; + method(method: Object): Schema; + path(path: string): any; + path(path: string, constructor: any): Schema; + pathType(path: string): string; + plugin(plugin: (schema: Schema, options?: Object) => void, options?: Object): Schema; + post(method: string, fn: Function): Schema; + pre(method: string, callback: Function): Schema; + requiredPaths(): string[]; + set(key: string, value: any): void; + static(name: string, fn: Function): Schema; + virtual(name: string, options?: Object): VirtualType; + virtualpath(name: string): VirtualType; + } + export interface SchemaOption { + autoIndex?: boolean; + bufferCommands?: boolean; + capped?: boolean; + collection?: string; + id?: boolean; + _id?: boolean; + minimize?: boolean; + read?: string; + safe?: boolean; + shardKey?: boolean; + strict?: boolean; + toJSON?: Object; + toObject?: Object; + versionKey?: boolean; + } + + export interface Model { + new(doc: Object): T; + + aggregate(...aggregations: Object[]): Aggregate; + aggregate(aggregation: Object, callback: (err: any, res: T[]) => void): Promise; + aggregate(aggregation1: Object, aggregation2: Object, callback: (err: any, res: T[]) => void): Promise; + aggregate(aggregation1: Object, aggregation2: Object, aggregation3: Object, callback: (err: any, res: T[]) => void): Promise; + count(conditions: Object, callback?: (err: any, count: number) => void): Query; + + create(doc: Object, fn?: (err: any, res: T) => void): Promise; + create(doc1: Object, doc2: Object, fn?: (err: any, res1: T, res2: T) => void): Promise; + create(doc1: Object, doc2: Object, doc3: Object, fn?: (err: any, res1: T, res2: T, res3: T) => void): Promise; + discriminator(name: string, schema: Schema): Model; + distinct(field: string, callback?: (err: any, res: T[]) => void): Query; + distinct(field: string, conditions: Object, callback?: (err: any, res: T[]) => void): Query; + ensureIndexes(callback: (err: any) => void): Promise; + + find(cond: Object, callback?: (err: any, res: T[]) => void): Query; + find(cond: Object, fields: Object, callback?: (err: any, res: T[]) => void): Query; + find(cond: Object, fields: Object, options: Object, callback?: (err: any, res: T[]) => void): Query; + findById(id: string, callback?: (err: any, res: T) => void): Query; + findById(id: string, fields: Object, callback?: (err: any, res: T) => void): Query; + findById(id: string, fields: Object, options: Object, callback?: (err: any, res: T) => void): Query; + findByIdAndRemove(id: string, callback?: (err: any, res: T) => void): Query; + findByIdAndRemove(id: string, options: Object, callback?: (err: any, res: T) => void): Query; + findByIdAndUpdate(id: string, update: Object, callback?: (err: any, res: T) => void): Query; + findByIdAndUpdate(id: string, update: Object, options: FindAndUpdateOption, callback?: (err: any, res: T) => void): Query; + findOne(cond: Object, callback?: (err: any, res: T) => void): Query; + findOne(cond: Object, fields: Object, callback?: (err: any, res: T) => void): Query; + findOne(cond: Object, fields: Object, options: Object, callback?: (err: any, res: T) => void): Query; + findOneAndRemove(cond: Object, callback?: (err: any, res: T) => void): Query; + findOneAndRemove(cond: Object, options: Object, callback?: (err: any, res: T) => void): Query; + findOneAndUpdate(cond: Object, update: Object, callback?: (err: any, res: T) => void): Query; + findOneAndUpdate(cond: Object, update: Object, options: FindAndUpdateOption, callback?: (err: any, res: T) => void): Query; + + geoNear(point: { type: string; coordinates: number[] }, options: Object, callback?: (err: any, res: T[]) => void): Query; + geoNear(point: number[], options: Object, callback?: (err: any, res: T[]) => void): Query; + geoSearch(cond: Object, options: GeoSearchOption, callback?: (err: any, res: T[]) => void): Query; + increment(): T; + mapReduce(options: MapReduceOption, callback?: (err: any, res: MapReduceResult[]) => void): Promise[]>; + mapReduce(options: MapReduceOption2, callback?: (err: any, res: MapReduceResult[]) => void): Promise[]>; + model(name: string): Model; + + populate(doc: U, options: Object, callback?: (err: any, res: U) => void): Promise; + populate(doc: U[], options: Object, callback?: (err: any, res: U[]) => void): Promise; + update(cond: Object, update: Object, callback?: (err: any, affectedRows: number, raw: any) => void): Query; + update(cond: Object, update: Object, options: Object, callback?: (err: any, affectedRows: number, raw: any) => void): Query; + remove(cond: Object, callback?: (err: any) => void): Query<{}>; + save(callback?: (err: any, result: T, numberAffected: number) => void): Query; + where(path: string, val?: Object): Query; + + $where(argument: string): Query; + $where(argument: Function): Query; + + base: Mongoose; + collection: Collection; + db: any; + discriminators: any; + modelName: string; + schema: Schema; + } + export interface FindAndUpdateOption { + new?: boolean; + upsert?: boolean; + sort?: Object; + select?: Object; + } + export interface GeoSearchOption { + near: number[]; + maxDistance: number; + limit?: number; + lean?: boolean; + } + export interface MapReduceOption { + map: () => void; + reduce: (key: Key, vals: T[]) => Val; + query?: Object; + limit?: number; + keeptemp?: boolean; + finalize?: (key: Key, val: Val) => Val; + scope?: Object; + jsMode?: boolean; + verbose?: boolean; + out?: { + inline?: number; + replace?: string; + reduce?: string; + merge?: string; + }; + } + export interface MapReduceOption2 { + map: string; + reduce: (key: Key, vals: T[]) => Val; + query?: Object; + limit?: number; + keeptemp?: boolean; + finalize?: (key: Key, val: Val) => Val; + scope?: Object; + jsMode?: boolean; + verbose?: boolean; + out?: { + inline?: number; + replace?: string; + reduce?: string; + merge?: string; + }; + } + export interface MapReduceResult { + _id: Key; + value: Val; + } + + export class Query { + exec(callback?: (err: any, res: T) => void): Promise; + exec(operation: string, callback?: (err: any, res: T) => void): Promise; + exec(operation: Function, callback?: (err: any, res: T) => void): Promise; + + all(val: number): Query; + all(path: string, val: number): Query; + and(array: Object[]): Query; + box(val: Object): Query; + box(a: number[], b: number[]): Query; + batchSize(val: number): Query; + cast(model: Model, obj: Object): U; + //center(): Query; + //centerSphere(path: string, val: Object): Query; + circle(area: Object): Query; + circle(path: string, area: Object): Query; + comment(val: any): Query; + count(callback?: (err: any, count: number) => void): Query; + count(criteria: Object, callback?: (err: any, count: number) => void): Query; + distinct(callback?: (err: any, res: T) => void): Query; + distinct(field: string, callback?: (err: any, res: T) => void): Query; + distinct(criteria: Object, field: string, callback?: (err: any, res: T) => void): Query; + distinct(criteria: Query, field: string, callback?: (err: any, res: T) => void): Query; + elemMatch(criteria: Object): Query; + elemMatch(criteria: (elem: Query) => void): Query; + elemMatch(path: string, criteria: Object): Query; + elemMatch(path: string, criteria: (elem: Query) => void): Query; + equals(val: Object): Query; + exists(val?: boolean): Query; + exists(path: string, val?: boolean): Query; + find(callback?: (err: any, res: T) => void): Query; + find(criteria: Object, callback?: (err: any, res: T) => void): Query; + findOne(callback?: (err: any, res: T) => void): Query; + findOne(criteria: Object, callback?: (err: any, res: T) => void): Query; + findOneAndRemove(callback?: (err: any, res: T) => void): Query; + findOneAndRemove(cond: Object, callback?: (err: any, res: T) => void): Query; + findOneAndRemove(cond: Object, options: Object, callback?: (err: any, res: T) => void): Query; + findOneAndUpdate(callback?: (err: any, res: T) => void): Query; + findOneAndUpdate(update: Object, callback?: (err: any, res: T) => void): Query; + findOneAndUpdate(cond: Object, update: Object, callback?: (err: any, res: T) => void): Query; + findOneAndUpdate(cond: Object, update: Object, options: FindAndUpdateOption, callback?: (err: any, res: T) => void): Query; + geometry(object: Object): Query; + gt(val: number): Query; + gt(path: string, val: number): Query; + gte(val: number): Query; + gte(path: string, val: number): Query; + hint(val: Object): Query; + in(val: any[]): Query; + in(path: string, val: any[]): Query; + intersects(arg?: Object): Query; + lean(bool?: boolean): Query; + limit(val: number): Query; + lt(val: number): Query; + lt(path: string, val: number): Query; + lte(val: number): Query; + lte(path: string, val: number): Query; + maxDistance(val: number): Query; + maxDistance(path: string, val: number): Query; + maxScan(val: number): Query; + merge(source: Query): Query; + merge(source: Object): Query; + mod(val: number[]): Query; + mod(path: string, val: number[]): Query; + ne(val: any): Query; + ne(path: string, val: any): Query; + near(val: Object): Query; + near(path: string, val: Object): Query; + nearSphere(val: Object): Query; + nearSphere(path: string, val: Object): Query; + nin(val: any[]): Query; + nin(path: string, val: any[]): Query; + nor(array: Object[]): Query; + or(array: Object[]): Query; + polygon(...coordinatePairs: number[][]): Query; + polygon(path: string, ...coordinatePairs: number[][]): Query; + populate(path: string, select?: string, match?: Object, options?: Object): Query; + populate(path: string, select: string, model: string, match?: Object, options?: Object): Query; + populate(opt: PopulateOption): Query; + read(pref: string, tags?: Object[]): Query; + regex(val: RegExp): Query; + regex(path: string, val: RegExp): Query; + remove(callback?: (err: any, res: T) => void): Query; + remove(criteria: Object, callback?: (err: any, res: T) => void): Query; + select(arg: string): Query; + select(arg: Object): Query; + setOptions(options: Object): Query; + size(val: number): Query; + size(path: string, val: number): Query; + skip(val: number): Query; + slaveOk(v?: boolean): Query; + slice(val: number): Query; + slice(val: number[]): Query; + slice(path: string, val: number): Query; + slice(path: string, val: number[]): Query; + snapshot(v?: boolean): Query; + sort(arg: Object): Query; + sort(arg: string): Query; + stream(options?: { transform?: Function; }): QueryStream; + tailable(v?: boolean): Query; + toConstructor(): Query; + update(callback?: (err: any, affectedRows: number, doc: T) => void): Query; + update(doc: Object, callback?: (err: any, affectedRows: number, doc: T) => void): Query; + update(criteria: Object, doc: Object, callback?: (err: any, affectedRows: number, doc: T) => void): Query; + update(criteria: Object, doc: Object, options: Object, callback?: (err: any, affectedRows: number, doc: T) => void): Query; + where(path?: string, val?: any): Query; + where(path?: Object, val?: any): Query; + within(val?: Object): Query; + within(coordinate: number[], ...coordinatePairs: number[][]): Query; + + $where(argument: string): Query; + $where(argument: Function): Query; + + static use$geoWithin: boolean; + } + + export interface PopulateOption { + path: string; + select?: string; + model?: string; + match?: Object; + options?: Object; + } + + export interface QueryStream extends NodeJS.EventEmitter { + destory(err?: any): void; + pause(): void; + resume(): void; + pipe(destination: T, options?: { end?: boolean; }): T; + paused: number; + readable: boolean; + } + + export interface Document { + id?: string; + _id: string; + + equals(doc: Document): boolean; + get(path: string, type?: new(...args: any[]) => any): any; + inspect(options?: Object): string; + invalidate(path: string, errorMsg: string, value: any): void; + invalidate(path: string, error: Error, value: any): void; + isDirectModified(path: string): boolean; + isInit(path: string): boolean; + isModified(path?: string): boolean; + isSelected(path: string): boolean; + markModified(path: string): void; + modifiedPaths(): string[]; + populate(callback?: (err: any, res: T) => void): Document; + populate(path?: string, callback?: (err: any, res: T) => void): Document; + populate(opt: PopulateOption, callback?: (err: any, res: T) => void): Document; + populated(path: string): any; + remove(callback?: (err: any) => void): Query; + save(callback?: (err: any, res: T) => void): void; + set(path: string, val: any, type?: new(...args: any[]) => any, options?: Object): void; + set(path: string, val: any, options?: Object): void; + set(value: Object): void; + toJSON(options?: Object): Object; + toObject(options?: Object): Object; + toString(): string; + update(doc: Object, options: Object, callback: (err: any, affectedRows: number, raw: any) => void): Query; + validate(cb: (err: any) => void): void; + + isNew: boolean; + errors: Object; + schema: Object; + } + + + export class Aggregate { + constructor(...options: Object[]); + + append(...options: Object[]): Aggregate; + group(arg: Object): Aggregate; + limit(num: number): Aggregate; + match(arg: Object): Aggregate; + near(parameters: Object): Aggregate; + project(arg: string): Aggregate; + project(arg: Object): Aggregate; + select(filter: string): Aggregate; + skip(num: number): Aggregate; + sort(arg: string): Aggregate; + sort(arg: Object): Aggregate; + unwind(fiels: string, ...rest: string[]): Aggregate; + + exec(callback?: (err: any, result: T) => void): Promise; + read(pref: string, ...tags: Object[]): Aggregate; + } + + export class Promise { + constructor(fn?: (err: any, result: T) => void); + + then(onFulFill: (result: T) => void, onReject?: (err: any) => void): Promise; + end(): void; + + fulfill(result: T): Promise; + reject(err: any): Promise; + resolve(err: any, result: T): Promise; + + onFulfill(listener: (result: T) => void): Promise; + onReject(listener: (err: any) => void): Promise; + onResolve(listener: (err: any, result: T) => void): Promise; + on(event: string, listener: Function): Promise; + + // Deprecated methods. + addBack(listener: (err: any, result: T) => void): Promise; + addCallback(listener: (result: T) => void): Promise; + addErrback(listener: (err: any) => void): Promise; + complete(result: T): Promise; + error(err: any): Promise; + } + +} + From 3d92fa2caf870c60d50956762845e3a6abe79826 Mon Sep 17 00:00:00 2001 From: Horiuchi_H Date: Thu, 1 May 2014 19:42:33 +0900 Subject: [PATCH 067/132] add mongoose in CONTRIBUTORS.md --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 01b5025d20..c8368f022b 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -205,6 +205,7 @@ All definitions files include a header with the author and editors, so at some p * [Modernizr](http://modernizr.com/) (by [Boris Yankov](https://github.com/borisyankov) and [Theodore Brown](https://github.com/theodorejb/)) * [Moment.js](https://github.com/timrwood/moment) (by [Michael Lakerveld](https://github.com/Lakerfield)) * [MongoDB](http://mongodb.github.io/node-mongodb-native/) (from TypeScript samples, updated by [Niklas Mollenhauer](https://github.com/nikeee)) +* [mongoose](http://mongoosejs.com/) (by [Hiroki Horiuchi](https://github.com/horiuchi/)) * [Mousetrap](http://craig.is/killing/mice) (by [Dániel Tar](https://github.com/qcz)) * [msgpack.js](https://github.com/uupaa/msgpack.js) (by [Shinya Mochizuki](https://github.com/enrapt-mochizuki)) * [Mustache.js](https://github.com/janl/mustache.js) (by [Boris Yankov](https://github.com/borisyankov)) From 648511f6c4ba6036fd8ec0462291bc6fd2c7446b Mon Sep 17 00:00:00 2001 From: teppeis Date: Thu, 1 May 2014 22:19:36 +0900 Subject: [PATCH 068/132] Add Esprima --- CONTRIBUTORS.md | 1 + esprima/esprima-tests.ts | 163 +++++++++++++++++++++++ esprima/esprima.d.ts | 274 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 438 insertions(+) create mode 100644 esprima/esprima-tests.ts create mode 100644 esprima/esprima.d.ts diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 01b5025d20..f3fcff1ea1 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -63,6 +63,7 @@ All definitions files include a header with the author and editors, so at some p * [emissary](https://github.com/atom/emissary) (by [vvakame](https://github.com/vvakame)) * [EpicEditor](http://epiceditor.com/) (by [Boris Yankov](https://github.com/borisyankov)) * [ES6-Promises](https://github.com/jakearchibald/ES6-Promises) (by [François de Campredon](https://github.com/fdecampredon/)) +* [Esprima](http://esprima.org/) (by [Teppei Sato](https://github.com/teppeis)) * [expect.js](https://github.com/LearnBoost/expect.js) (by [Teppei Sato](https://github.com/teppeis)) * [expectations](https://github.com/spmason/expectations) (by [vvakame](https://github.com/vvakame)) * [Express](http://expressjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) diff --git a/esprima/esprima-tests.ts b/esprima/esprima-tests.ts new file mode 100644 index 0000000000..9451e077d2 --- /dev/null +++ b/esprima/esprima-tests.ts @@ -0,0 +1,163 @@ +/// + +import esprima = require('esprima'); +import Syntax = esprima.Syntax; + +var token: esprima.Token; +var options: esprima.Options; +var comment: Syntax.Comment; +var program: Syntax.Program; +var statement: Syntax.SomeStatement; +var blockStatement: Syntax.BlockStatement; +var expression: Syntax.SomeExpression; +var property: Syntax.Property; +var identifier: Syntax.Identifier; +var literal: Syntax.Literal; +var switchCase: Syntax.SwitchCase; +var catchClause: Syntax.CatchClause; +var variableDeclaratorOrExpression: Syntax.VariableDeclaratorOrExpression; +var literalOrIdentifier: Syntax.LiteralOrIdentifier; +var blockStatementOrExpression: Syntax.BlockStatementOrExpression; +var identifierOrExpression: Syntax.IdentifierOrExpression; +var any: any; +var string: string; +var boolean: boolean; +var number: number; + +// esprima +string = esprima.version; +program = esprima.parse('code'); +program = esprima.parse('code', {range: true}); +token = esprima.tokenize('code')[0]; +token = esprima.tokenize('code', {range: true})[0]; + +// Token +string = token.type; +string = token.value; + +// Program +string = program.type; +statement = program.body[0]; +comment = program.comments[0] + +// Location +number = program.loc.start.line; +number = program.loc.start.column; +number = program.loc.end.line; +number = program.loc.end.column; +number = program.range[0]; + +// Comment +string = comment.value; + +// Statement +// BlockStatement +string = statement.type; +statement = statement.body[0]; +comment = statement.leadingComments[0] +comment = statement.trailingComments[0] + +// ExpressionStatement +expression = statement.expression; + +// IfStatement +expression = statement.test; +statement = statement.consequent; +statement = statement.alternate; + +// LabeledStatement +identifier = statement.label; +statement = statement.body; + +// WithStatement +expression = statement.object; + +// SwitchStatement +expression = statement.discriminant; +switchCase = statement.cases[0]; +boolean = statement.lexical; + +// ReturnStatement +expression = statement.argument; + +// TryStatement +blockStatement = statement.block; +catchClause = statement.handler; +catchClause = statement.guardedHandlers[0]; +blockStatement = statement.finalizer; + +// ForStatement +variableDeclaratorOrExpression = statement.init; +expression = statement.update; + +// ForInStatement +variableDeclaratorOrExpression = statement.left; +expression = statement.right; +boolean = statement.each; + +// Expression +// ArrayExpression +string = expression.type; +expression = expression.elements[0]; + +// ObjectExpression +property = expression.properties[0]; +string = property.type; +literalOrIdentifier = property.key; +expression = property.value; +string = property.kind; + +// FunctionExpression +identifier = expression.id; +identifier = expression.params[0]; +expression = expression.defaults[0]; +identifier = expression.rest; +blockStatementOrExpression = expression.body; +boolean = expression.generator; +boolean = expression.expression; + +// SequenceExpression +expression = expression.expressions[0] + +// UnaryExpression +string = expression.operator; +boolean = expression.prefix; + +// BinaryExpression +expression = expression.left; +expression = expression.right; + +// ConditionalExpression +expression = expression.test; +expression = expression.alternate; +expression = expression.consequent; + +// ConditionalExpression +expression = expression.callee; +expression = expression.arguments[0]; + +// MemberExpression +expression = expression.object; +identifierOrExpression = expression.property; +boolean = expression.computed; + +// Clauses +// SwitchCase +string = switchCase.type; +expression = switchCase.test; +statement = switchCase.consequent[0]; + +// CatchClause +string = catchClause.type; +identifier = catchClause.param; +expression = catchClause.guard; +blockStatement = catchClause.body; + +// Misc +// Identifier +string = identifier.type; +string = identifier.name; + +// Literal +string = literal.type; +any = literal.value; diff --git a/esprima/esprima.d.ts b/esprima/esprima.d.ts new file mode 100644 index 0000000000..2b09e895ce --- /dev/null +++ b/esprima/esprima.d.ts @@ -0,0 +1,274 @@ +// Type definitions for Esprima v1.2.0 +// Project: http://esprima.org +// Definitions by: teppeis +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module esprima { + var version: string; + function parse(code: string, options?: Options): Syntax.Program; + function tokenize(code: string, options?: Options): Array; + + interface Token { + type: string + value: string + } + + interface Options { + loc?: boolean + range?: boolean + raw?: boolean + tokens?: boolean + comment?: boolean + attachComment?: boolean + tolerant?: boolean + source?: boolean + } + + module Syntax { + // Node + interface Node { + type: string + loc?: LineLocation + range?: number[] + leadingComments?: Comment[] + trailingComments?: Comment[] + } + interface LineLocation { + start: Position + end: Position + } + interface Position { + line: number + column: number + } + + // Comment + interface Comment extends Node { + value: string + } + + // Program + interface Program extends Node { + body: SomeStatement[] + comments?: Comment[] + } + + // Function + interface Function extends Node { + id: Identifier // | null + params: Identifier[] + defaults: SomeExpression[] + rest: Identifier // | null + body: BlockStatementOrExpression + generator: boolean + expression: boolean + } + interface BlockStatementOrExpression extends Array, BlockStatement, SomeExpression { + body: BlockStatementOrExpression + } + + // Statement + interface Statement extends Node { + } + interface EmptyStatement extends Statement { + } + interface BlockStatement extends Statement { + body: SomeStatement[] + } + interface ExpressionStatement extends Statement { + expression: SomeExpression + } + interface IfStatement extends Statement { + test: SomeExpression + consequent: SomeStatement + alternate: SomeStatement + } + interface LabeledStatement extends Statement { + label: Identifier + body: SomeStatement + } + interface BreakStatement extends Statement { + label: Identifier // | null + } + interface ContinueStatement extends Statement { + label: Identifier // | null + } + interface WithStatement extends Statement { + object: SomeExpression + body: SomeStatement + } + interface SwitchStatement extends Statement { + discriminant: SomeExpression + cases: SwitchCase[] + lexical: boolean + } + interface ReturnStatement extends Statement { + argument: SomeExpression // | null + } + interface ThrowStatement extends Statement { + argument: SomeExpression + } + interface TryStatement extends Statement { + block: BlockStatement + handler: CatchClause // | null + guardedHandlers: CatchClause[] + finalizer: BlockStatement // | null + } + interface WhileStatement extends Statement { + test: SomeExpression + body: SomeStatement + } + interface DoWhileStatement extends Statement { + body: SomeStatement + test: SomeExpression + } + interface ForStatement extends Statement { + init: VariableDeclaratorOrExpression // | null + test: SomeExpression // | null + update: SomeExpression // | null + body: SomeStatement + } + interface ForInStatement extends Statement { + left: VariableDeclaratorOrExpression + right: SomeExpression + body: SomeStatement + each: boolean + } + interface VariableDeclaratorOrExpression extends VariableDeclarator, SomeExpression { + } + interface DebuggerStatement extends Statement { + } + interface SomeStatement extends + EmptyStatement, ExpressionStatement, BlockStatement, IfStatement, + LabeledStatement, BreakStatement, ContinueStatement, WithStatement, + SwitchStatement, ReturnStatement, ThrowStatement, TryStatement, + WhileStatement, DoWhileStatement, ForStatement, ForInStatement, DebuggerStatement { + body: SomeStatementOrList + } + interface SomeStatementOrList extends Array, SomeStatement { + } + + // Declration + interface Declration extends Statement { + } + interface FunctionDeclration extends Declration { + id: Identifier + params: Identifier[] // Pattern + defaults: SomeExpression[] + rest: Identifier + body: BlockStatementOrExpression + generator: boolean + expression: boolean + } + interface VariableDeclaration extends Declration { + declarations: VariableDeclarator[] + kind: string // "var" | "let" | "const" + } + interface VariableDeclarator extends Node { + id: Identifier // Pattern + init: SomeExpression + } + + // Expression + interface Expression extends Node { // | Pattern + } + interface SomeExpression extends + ThisExpression, ArrayExpression, ObjectExpression, FunctionExpression, + ArrowFunctionExpression, SequenceExpression, UnaryExpression, BinaryExpression, + AssignmentExpression, UpdateExpression, LogicalExpression, ConditionalExpression, + NewExpression, CallExpression, MemberExpression { + } + interface ThisExpression extends Expression { + } + interface ArrayExpression extends Expression { + elements: SomeExpression[] // [ Expression | null ] + } + interface ObjectExpression extends Expression { + properties: Property[] + } + interface Property extends Node { + key: LiteralOrIdentifier // Literal | Identifier + value: SomeExpression + kind: string // "init" | "get" | "set" + } + interface LiteralOrIdentifier extends Literal, Identifier { + } + interface FunctionExpression extends Function, Expression { + } + interface ArrowFunctionExpression extends Function, Expression { + } + interface SequenceExpression extends Expression { + expressions: SomeExpression[] + } + interface UnaryExpression extends Expression { + operator: string // UnaryOperator + prefix: boolean + argument: SomeExpression + } + interface BinaryExpression extends Expression { + operator: string // BinaryOperator + left: SomeExpression + right: SomeExpression + } + interface AssignmentExpression extends Expression { + operator: string // AssignmentOperator + left: SomeExpression + right: SomeExpression + } + interface UpdateExpression extends Expression { + operator: string // UpdateOperator + argument: SomeExpression + prefix: boolean + } + interface LogicalExpression extends Expression { + operator: string // LogicalOperator + left: SomeExpression + right: SomeExpression + } + interface ConditionalExpression extends Expression { + test: SomeExpression + alternate: SomeExpression + consequent: SomeExpression + } + interface NewExpression extends Expression { + callee: SomeExpression + arguments: SomeExpression[] + } + interface CallExpression extends Expression { + callee: SomeExpression + arguments: SomeExpression[] + } + interface MemberExpression extends Expression { + object: SomeExpression + property: IdentifierOrExpression // Identifier | Expression + computed: boolean + } + interface IdentifierOrExpression extends Identifier, SomeExpression { + } + + // Pattern + // interface Pattern extends Node { + // } + + // Clauses + interface SwitchCase extends Node { + test: SomeExpression + consequent: SomeStatement[] + } + interface CatchClause extends Node { + param: Identifier // Pattern + guard: SomeExpression + body: BlockStatement + } + + // Misc + interface Identifier extends Node, Expression { // | Pattern + name: string + } + interface Literal extends Node, Expression { + value: any // string | boolean | null | number | RegExp + } + } +} + +export = esprima From 7fc10a1c7c2010899b5812e520abfbd5e0a20f9c Mon Sep 17 00:00:00 2001 From: teppeis Date: Fri, 2 May 2014 20:28:45 +0900 Subject: [PATCH 069/132] Wrap "export = esprima" up in an external module --- esprima/esprima.d.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/esprima/esprima.d.ts b/esprima/esprima.d.ts index 2b09e895ce..1e603ee255 100644 --- a/esprima/esprima.d.ts +++ b/esprima/esprima.d.ts @@ -271,4 +271,6 @@ declare module esprima { } } -export = esprima +declare module "esprima" { + export = esprima +} From edd089a240ebb16958587940b47880de73276d3d Mon Sep 17 00:00:00 2001 From: Basarat Ali Syed Date: Fri, 2 May 2014 23:00:30 +1000 Subject: [PATCH 070/132] Update chai-datetime.d.ts --- chai-datetime/chai-datetime.d.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/chai-datetime/chai-datetime.d.ts b/chai-datetime/chai-datetime.d.ts index 432f6bb247..263034361f 100644 --- a/chai-datetime/chai-datetime.d.ts +++ b/chai-datetime/chai-datetime.d.ts @@ -18,13 +18,19 @@ declare module chai { } interface Assert { - afterDate(leftDate: Date, rightDate: Date): boolean; - beforeDate(leftDate: Date, rightDate: Date): boolean; - equalDate(leftDate: Date, rightDate: Date): boolean; - - afterTime(leftDate: Date, rightDate: Date): boolean; - beforeTime(leftDate: Date, rightDate: Date): boolean; - equalTime(leftDate: Date, rightDate: Date): boolean; + equalTime(val: Date, exp: Date, msg?: string): boolean; + notEqualTime(val: Date, exp: Date, msg?: string): boolean; + beforeTime(val: Date, exp: Date, msg?: string): boolean; + notBeforeTime(val: Date, exp: Date, msg?: string): boolean; + afterTime(val: Date, exp: Date, msg?: string): boolean; + notAfterTime(val: Date, exp: Date, msg?: string): boolean; + + equalDate(val: Date, exp: Date, msg?: string): boolean; + notEqualDate(val: Date, exp: Date, msg?: string): boolean; + beforeDate(val: Date, exp: Date, msg?: string): boolean; + notBeforeDate(val: Date, exp: Date, msg?: string): boolean; + afterDate(val: Date, exp: Date, msg?: string): boolean; + notAfterDate(val: Date, exp: Date, msg?: string): boolean; } } From 3ceb61d01e4c39d7de1df4241b0c0b7c5939996f Mon Sep 17 00:00:00 2001 From: Seon-Wook Park Date: Fri, 2 May 2014 16:45:24 +0200 Subject: [PATCH 071/132] node-uuid: Let require("node-uuid") work in nodejs --- node-uuid/node-uuid.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node-uuid/node-uuid.d.ts b/node-uuid/node-uuid.d.ts index 48a3422049..d4857cf310 100644 --- a/node-uuid/node-uuid.d.ts +++ b/node-uuid/node-uuid.d.ts @@ -46,7 +46,7 @@ interface UUID { v4(options?: UUIDOptions, buffer?: Buffer, offset?: number): string } -declare module 'uuid' { +declare module "node-uuid" { var uuid: UUID; export = uuid; } From fe6c5d8ef7fb818b6102f3f70925614bb154b272 Mon Sep 17 00:00:00 2001 From: vvakame Date: Sun, 4 May 2014 01:47:48 +0900 Subject: [PATCH 072/132] added EditorView declaration to atom/atom.d.ts --- atom/atom.d.ts | 644 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 478 insertions(+), 166 deletions(-) diff --git a/atom/atom.d.ts b/atom/atom.d.ts index 14a8dbebae..3791a11cf8 100644 --- a/atom/atom.d.ts +++ b/atom/atom.d.ts @@ -4,6 +4,7 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped /// +/// /// /// @@ -108,214 +109,214 @@ declare module AtomCore { getLongTitle():string; setVisible(visible:boolean):void; setScrollTop(scrollTop:any):void; - getScrollTop():any; + getScrollTop():number; setScrollLeft(scrollLeft:any):void; - getScrollLeft():any; + getScrollLeft():number; setEditorWidthInChars(editorWidthInChars:any):void; - getSoftWrapColumn():any; + getSoftWrapColumn():number; getSoftTabs():boolean; setSoftTabs(softTabs:boolean):void; - getSoftWrap():any; + getSoftWrap():boolean; setSoftWrap(softWrap:any):void; - getTabText():any; - getTabLength():any; + getTabText():string; + getTabLength():number; setTabLength(tabLength:any):void; clipBufferPosition(bufferPosition:any):void; clipBufferRange(range:any):void; indentationForBufferRow(bufferRow:any):void; setIndentationForBufferRow(bufferRow:any, newLevel:any, _arg:any):void; indentLevelForLine(line:any):number; - buildIndentString(number:any):any; + buildIndentString(number:any):string; save():void; saveAs(filePath:any):void; - getPath():any; - getText():any; + getPath():string; + getText():string; setText(text:any):void; getTextInRange(range:any):any; - getLineCount():any; - getBuffer():any; - getUri():any; - isBufferRowBlank(bufferRow:any):void; + getLineCount():number; + getBuffer():ITextBuffer; + getUri():string; + isBufferRowBlank(bufferRow:any):boolean; isBufferRowCommented(bufferRow:any):void; nextNonBlankBufferRow(bufferRow:any):void; - getEofBufferPosition():any; - getLastBufferRow():any; - bufferRangeForBufferRow(row:any, options:any):any; - lineForBufferRow(row:any):any; - lineLengthForBufferRow(row:any):any; + getEofBufferPosition():IPoint; + getLastBufferRow():number; + bufferRangeForBufferRow(row:any, options:any):IRange; + lineForBufferRow(row:number):string; + lineLengthForBufferRow(row:number):number; scan():any; scanInBufferRange():any; backwardsScanInBufferRange():any; - isModified():any; - shouldPromptToSave():any; - screenPositionForBufferPosition(bufferPosition:any, options:any):any; - bufferPositionForScreenPosition(screenPosition:any, options:any):any; - screenRangeForBufferRange(bufferRange:any):any; - bufferRangeForScreenRange(screenRange:any):any; - clipScreenPosition(screenPosition:any, options:any):any; - lineForScreenRow(row:any):any; - linesForScreenRows(start:any, end:any):any; - getScreenLineCount():any; - getMaxScreenLineLength():any; - getLastScreenRow():any; - bufferRowsForScreenRows(startRow:any, endRow:any):any; - bufferRowForScreenRow(row:any):any; - scopesForBufferPosition(bufferPosition:any):any; - bufferRangeForScopeAtCursor(selector:any):any; - tokenForBufferPosition(bufferPosition:any):any; - getCursorScopes():any; - insertText(text:any, options:any):any; - insertNewline():any; - insertNewlineBelow():any; + isModified():boolean; + shouldPromptToSave():boolean; + screenPositionForBufferPosition(bufferPosition:any, options?:any):IPoint; + bufferPositionForScreenPosition(screenPosition:any, options?:any):IPoint; + screenRangeForBufferRange(bufferRange:any):IRange; + bufferRangeForScreenRange(screenRange:any):IRange; + clipScreenPosition(screenPosition:any, options:any):IRange; + lineForScreenRow(row:any):ITokenizedLine; + linesForScreenRows(start?:any, end?:any):ITokenizedLine[]; + getScreenLineCount():number; + getMaxScreenLineLength():number; + getLastScreenRow():number; + bufferRowsForScreenRows(startRow:any, endRow:any):any[]; + bufferRowForScreenRow(row:any):number; + scopesForBufferPosition(bufferPosition:any):string[]; + bufferRangeForScopeAtCursor(selector:string):any; + tokenForBufferPosition(bufferPosition:any):IToken; + getCursorScopes():string[]; + insertText(text:string, options?:any):IRange[]; + insertNewline():IRange[]; + insertNewlineBelow():IRange[]; insertNewlineAbove():any; indent(options?:any):any; - backspace():any; - backspaceToBeginningOfWord():any; - backspaceToBeginningOfLine():any; - delete():any; - deleteToEndOfWord():any; - deleteLine():any; - indentSelectedRows():any; - outdentSelectedRows():any; - toggleLineCommentsInSelection():any; - autoIndentSelectedRows():any; + backspace():any[]; + backspaceToBeginningOfWord():any[]; + backspaceToBeginningOfLine():any[]; + delete():any[]; + deleteToEndOfWord():any[]; + deleteLine():IRange[]; + indentSelectedRows():IRange[][]; + outdentSelectedRows():IRange[][]; + toggleLineCommentsInSelection():IRange[]; + autoIndentSelectedRows():IRange[][]; normalizeTabsInBufferRange(bufferRange:any):any; - cutToEndOfLine():any; - cutSelectedText():any; - copySelectedText():any; - pasteText(options?:any):any; - undo():any; - redo():any; + cutToEndOfLine():boolean[]; + cutSelectedText():boolean[]; + copySelectedText():boolean[]; + pasteText(options?:any):IRange[]; + undo():any[]; + redo():any[]; foldCurrentRow():any; - unfoldCurrentRow():any; - foldSelectedLines():any; - foldAll():any; - unfoldAll():any; + unfoldCurrentRow():any[]; + foldSelectedLines():any[]; + foldAll():any[]; + unfoldAll():any[]; foldAllAtIndentLevel(level:any):any; foldBufferRow(bufferRow:any):any; unfoldBufferRow(bufferRow:any):any; - isFoldableAtBufferRow(bufferRow:any):any; - createFold(startRow:any, endRow:any):any; + isFoldableAtBufferRow(bufferRow:any):boolean; + createFold(startRow:any, endRow:any):IFold; destroyFoldWithId(id:any):any; destroyFoldsIntersectingBufferRange(bufferRange:any):any; toggleFoldAtBufferRow(bufferRow:any):any; - isFoldedAtCursorRow():any; - isFoldedAtBufferRow(bufferRow:any):any; - isFoldedAtScreenRow(screenRow:any):any; - largestFoldContainingBufferRow(bufferRow:any):any; + isFoldedAtCursorRow():boolean; + isFoldedAtBufferRow(bufferRow:any):boolean; + isFoldedAtScreenRow(screenRow:any):boolean; + largestFoldContainingBufferRow(bufferRow:any):boolean; largestFoldStartingAtScreenRow(screenRow:any):any; - outermostFoldsInBufferRowRange(startRow:any, endRow:any):any; - moveLineUp():any; - moveLineDown():any; - duplicateLines():any; - duplicateLine():any; - mutateSelectedText(fn:Function):any; - replaceSelectedText(options:any, fn:Function):any; - getMarker(id:any):any; - getMarkers():any; - findMarkers(properties:any):any; - markScreenRange():any; - markBufferRange():any; - markScreenPosition():any; - markBufferPosition():any; - destroyMarker():any; - getMarkerCount():any; - hasMultipleCursors():any; - getCursors():any; - getCursor():any; - addCursorAtScreenPosition(screenPosition:any):any; - addCursorAtBufferPosition(bufferPosition:any):any; - addCursor(marker:any):any; - removeCursor(cursor:any):any; - addSelection(marker:any, options:any):any; - addSelectionForBufferRange(bufferRange:any, options:any):any; + outermostFoldsInBufferRowRange(startRow:any, endRow:any):any[]; + moveLineUp():ISelection[]; + moveLineDown():ISelection[]; + duplicateLines():any[][]; + duplicateLine():any[][]; + mutateSelectedText(fn:(selection:ISelection)=>any):any; + replaceSelectedText(options:any, fn:(selection:string)=>any):any; + getMarker(id:number):IDisplayBufferMarker; + getMarkers():IDisplayBufferMarker[]; + findMarkers(properties:any):IDisplayBufferMarker[]; + markScreenRange(value:number):IDisplayBufferMarker; + markBufferRange(value:number):IDisplayBufferMarker; + markScreenPosition(value:number):IDisplayBufferMarker; + markBufferPosition():IDisplayBufferMarker; + destroyMarker():boolean; + getMarkerCount():number; + hasMultipleCursors():boolean; + getCursors():ICursor[]; + getCursor():ICursor; + addCursorAtScreenPosition(screenPosition:any):ICursor; + addCursorAtBufferPosition(bufferPosition:any):ICursor; + addCursor(marker:any):ICursor; + removeCursor(cursor:any):ICursor[]; + addSelection(marker:any, options:any):ISelection; + addSelectionForBufferRange(bufferRange:any, options:any):ISelection; setSelectedBufferRange(bufferRange:any, options:any):any; setSelectedBufferRanges(bufferRanges:any, options:any):any; - removeSelection(selection:any):any; - clearSelections():any; - consolidateSelections():any; - getSelections():any; - getSelection(index:any):any; - getLastSelection():any; - getSelectionsOrderedByBufferPosition():any; - getLastSelectionInBuffer():any; + removeSelection(selection:ISelection):any; + clearSelections():boolean; + consolidateSelections():boolean; + getSelections():ISelection[]; + getSelection(index?:number):ISelection; + getLastSelection():ISelection; + getSelectionsOrderedByBufferPosition():ISelection[]; + getLastSelectionInBuffer():ISelection; selectionIntersectsBufferRange(bufferRange:any):any; setCursorScreenPosition(position:any, options:any):any; - getCursorScreenPosition():any; - getCursorScreenRow():any; + getCursorScreenPosition():IPoint; + getCursorScreenRow():number; setCursorBufferPosition(position:any, options:any):any; - getCursorBufferPosition():any; - getSelectedScreenRange():any; - getSelectedBufferRange():any; - getSelectedBufferRanges():any; - getSelectedText():any; - getTextInBufferRange(range:any):any; - setTextInBufferRange(range:any, text:any):any; - getCurrentParagraphBufferRange():any; - getWordUnderCursor(options:any):any; - moveCursorUp(lineCount:any):any; - moveCursorDown(lineCount:any):any; - moveCursorLeft():any; - moveCursorRight():any; - moveCursorToTop():any; - moveCursorToBottom():any; - moveCursorToBeginningOfScreenLine():any; - moveCursorToBeginningOfLine():any; - moveCursorToFirstCharacterOfLine():any; - moveCursorToEndOfScreenLine():any; - moveCursorToEndOfLine():any; - moveCursorToBeginningOfWord():any; - moveCursorToEndOfWord():any; - moveCursorToBeginningOfNextWord():any; - moveCursorToPreviousWordBoundary():any; - moveCursorToNextWordBoundary():any; - moveCursors(fn:Function):any; - selectToScreenPosition(position:any):any; - selectRight():any; - selectLeft():any; - selectUp(rowCount:any):any; - selectDown(rowCount:any):any; - selectToTop():any; - selectAll():any; - selectToBottom():any; - selectToBeginningOfLine():any; - selectToFirstCharacterOfLine():any; - selectToEndOfLine():any; - selectToPreviousWordBoundary():any; - selectToNextWordBoundary():any; - selectLine():any; - addSelectionBelow():any; - addSelectionAbove():any; - splitSelectionsIntoLines():any; - transpose():any; - upperCase():any; - lowerCase():any; - joinLines():any; - selectToBeginningOfWord():any; - selectToEndOfWord():any; - selectToBeginningOfNextWord():any; - selectWord():any; + getCursorBufferPosition():IPoint; + getSelectedScreenRange():IRange; + getSelectedBufferRange():IRange; + getSelectedBufferRanges():IRange[]; + getSelectedText():string; + getTextInBufferRange(range:IRange):string; + setTextInBufferRange(range:IRange, text:string):any; + getCurrentParagraphBufferRange():IRange; + getWordUnderCursor(options?:any):string; + moveCursorUp(lineCount?:number):void; + moveCursorDown(lineCount?:number):void; + moveCursorLeft():void; + moveCursorRight():void; + moveCursorToTop():void; + moveCursorToBottom():void; + moveCursorToBeginningOfScreenLine():void; + moveCursorToBeginningOfLine():void; + moveCursorToFirstCharacterOfLine():void; + moveCursorToEndOfScreenLine():void; + moveCursorToEndOfLine():void; + moveCursorToBeginningOfWord():void; + moveCursorToEndOfWord():void; + moveCursorToBeginningOfNextWord():void; + moveCursorToPreviousWordBoundary():void; + moveCursorToNextWordBoundary():void; + moveCursors(fn:(cursor:ICursor)=>any):any; + selectToScreenPosition(position:IPoint):any; + selectRight():ISelection[]; + selectLeft():ISelection[]; + selectUp(rowCount?:number):ISelection[]; + selectDown(rowCount?:number):ISelection[]; + selectToTop():ISelection[]; + selectAll():ISelection[]; + selectToBottom():ISelection[]; + selectToBeginningOfLine():ISelection[]; + selectToFirstCharacterOfLine():ISelection[]; + selectToEndOfLine():ISelection[]; + selectToPreviousWordBoundary():ISelection[]; + selectToNextWordBoundary():ISelection[]; + selectLine():ISelection[]; + addSelectionBelow():ISelection[]; + addSelectionAbove():ISelection[]; + splitSelectionsIntoLines():any[]; + transpose():IRange[]; + upperCase():boolean[]; + lowerCase():boolean[]; + joinLines():any[]; + selectToBeginningOfWord():ISelection[]; + selectToEndOfWord():ISelection[]; + selectToBeginningOfNextWord():ISelection[]; + selectWord():ISelection[]; selectMarker(marker:any):any; - mergeCursors():any; + mergeCursors():number[]; expandSelectionsForward():any; - expandSelectionsBackward(fn:Function):any; - finalizeSelections():any; + expandSelectionsBackward(fn:(selection:ISelection)=>any):ISelection[]; + finalizeSelections():boolean[]; mergeIntersectingSelections():any; - preserveCursorPositionOnBufferReload():any; + preserveCursorPositionOnBufferReload():ISubscription; getGrammar(): IGrammar; setGrammar(grammer:IGrammar):void; reloadGrammar():any; - shouldAutoIndent():any; + shouldAutoIndent():boolean; transact(fn:Function):any; - beginTransaction():any; + beginTransaction():ITransaction; commitTransaction():any; - abortTransaction():any; - inspect():any; - logScreenLines(start:any, end:any):any; - handleGrammarChange():any; + abortTransaction():any[]; + inspect():string; + logScreenLines(start:number, end:number):any[]; + handleGrammarChange():void; handleMarkerCreated(marker:any):any; - getSelectionMarkerAttributes():any; - joinLine():any; + getSelectionMarkerAttributes():{type: string; editorId: number; invalidate: string; }; + // joinLine():any; // deprecated } interface IGrammar { @@ -686,6 +687,26 @@ declare module AtomCore { // TBD } + interface ITokenizedLine { + // TBD + } + + interface IToken { + // TBD + } + + interface IFold { + // TBD + } + + interface IDisplayBufferMarker { + // TBD + } + + interface ITransaction { + // TBD + } + interface ITaskStatic { new(taskPath:any):ITask; } @@ -705,7 +726,6 @@ declare module "atom" { var BufferedNodeProcess:AtomCore.IBufferedNodeProcessStatic; var BufferedProcess:AtomCore.IBufferedProcessStatic; - var EditorView:any; var Git:AtomCore.IGitStatic; var Point:AtomCore.IPointStatic; var Range:AtomCore.IRangeStatic; @@ -725,12 +745,304 @@ declare module "atom" { unsubscribe(object?:any):any; } + class EditorView extends View { + static characterWidthCache:any; + static configDefaults:any; + static nextEditorId:number; + + static content(params:any):void; + + static classes(_arg?:{mini?:any}):string; + + vScrollMargin:number; + hScrollMargin:number; + lineHeight:any; + charWidth:any; + charHeight:any; + cursorViews:any[]; + selectionViews:any[]; + lineCache:any[]; + isFocused:any; + editor:AtomCore.IEditor; + attached:any; + lineOverdraw:number; + pendingChanges:any[]; + newCursors:any[]; + newSelections:any[]; + redrawOnReattach:any; + bottomPaddingInLines:number; + + id:number; + + + initialize(editorOrOptions:AtomCore.IEditor):void; // return type are same as editor method. + initialize(editorOrOptions?:{editor: AtomCore.IEditor; mini:any; placeholderText:any}):void; + + initialize(editorOrOptions:{}):void; // compatible for spacePen.View + + bindKeys():void; + + getEditor():AtomCore.IEditor; + + getText():string; + + setText(text:string):void; + + insertText(text:string, options?:any):AtomCore.IRange[]; + + setHeightInLines(heightInLines:number):number; + + setWidthInChars(widthInChars:number):number; + + pageDown():void; + + pageUp():void; + + getPageRows():number; + + setShowInvisibles(showInvisibles:boolean):void; + + setInvisibles(invisibles:{ eol:string; space: string; tab: string; cr: string; }):void; + + setShowIndentGuide(showIndentGuide:boolean):void; + + setPlaceholderText(placeholderText:string):void; + + getPlaceholderText():string; + + checkoutHead():boolean; + + configure():AtomCore.ISubscription; + + handleEvents():void; + + handleInputEvents():void; + + bringHiddenInputIntoView():JQuery; + + selectOnMousemoveUntilMouseup():any; + + afterAttach(onDom:any):any; + + edit(editor:AtomCore.IEditor):any; + + getModel():AtomCore.IEditor; + + setModel(editor:AtomCore.IEditor):any; + + showBufferConflictAlert(editor:AtomCore.IEditor):any; + + scrollTop(scrollTop:number, options?:any):any; + + scrollBottom(scrollBottom?:number):any; + + scrollLeft(scrollLeft?:number):number; + + scrollRight(scrollRight?:number):any; + + scrollToBottom():any; + + scrollToCursorPosition():any; + + scrollToBufferPosition(bufferPosition:any, options:any):any; + + scrollToScreenPosition(screenPosition:any, options:any):any; + + scrollToPixelPosition(pixelPosition:any, options:any):any; + + highlightFoldsContainingBufferRange(bufferRange:any):any; + + saveScrollPositionForEditor():any; + + toggleSoftTabs():any; + + toggleSoftWrap():any; + + calculateWidthInChars():number; + + calculateHeightInLines():number; + + getScrollbarWidth():number; + + setSoftWrap(softWrap:boolean):any; + + setFontSize(fontSize:number):any; + + getFontSize():number; + + setFontFamily(fontFamily?:string):any; + + getFontFamily():string; + + setLineHeight(lineHeight:number):any; + + redraw():any; + + splitLeft():any; + + splitRight():any; + + splitUp():any; + + splitDown():any; + + getPane():any; // return type are PaneView + + remove(selector:any, keepData:any):any; + + beforeRemove():any; + + getCursorView(index?:number):any; // return type are CursorView + + getCursorViews():any[]; // return type are CursorView[] + + addCursorView(cursor:any, options:any):any; // return type are CursorView + + removeCursorView(cursorView:any):any; + + getSelectionView(index?:number):any; // return type are SelectionView + + getSelectionViews():any[]; // return type are SelectionView[] + + addSelectionView(selection:any):any; + + removeSelectionView(selectionView:any):any; + + removeAllCursorAndSelectionViews():any[]; + + appendToLinesView(view:any):any; + + scrollVertically(pixelPosition:any, _arg:any):any; + + scrollHorizontally(pixelPosition:any):any; + + calculateDimensions():number; + + recalculateDimensions():any; + + updateLayerDimensions():any; + + isHidden():boolean; + + clearRenderedLines():void; + + resetDisplay():any; + + requestDisplayUpdate():any; + + updateDisplay(options?:any):any; + + updateCursorViews():any; + + shouldUpdateCursor(cursorView:any):any; + + updateSelectionViews():any[]; + + shouldUpdateSelection(selectionView:any):any; + + syncCursorAnimations():any[]; + + autoscroll(suppressAutoscroll?:any):any[]; + + updatePlaceholderText():any; + + updateRenderedLines(scrollViewWidth:any):any; + + computeSurroundingEmptyLineChanges(change:any):any; + + computeIntactRanges(renderFrom:any, renderTo:any):any; + + truncateIntactRanges(intactRanges:any, renderFrom:any, renderTo:any):any; + + clearDirtyRanges(intactRanges:any):any; + + clearLine(lineElement:any):any; + + fillDirtyRanges(intactRanges:any, renderFrom:any, renderTo:any):any; + + updatePaddingOfRenderedLines():any; + + getFirstVisibleScreenRow():number; + + getLastVisibleScreenRow():number; + + isScreenRowVisible():boolean; + + handleScreenLinesChange(change:any):any; + + buildLineElementForScreenRow(screenRow:any):any; + + buildLineElementsForScreenRows(startRow:any, endRow:any):any; + + htmlForScreenRows(startRow:any, endRow:any):any; + + htmlForScreenLine(screenLine:any, screenRow:any):any; + + buildIndentation(screenRow:any, editor:any):any; + + buildHtmlEndOfLineInvisibles(screenLine:any):any; + + getEndOfLineInvisibles(screenLine:any):any; + + lineElementForScreenRow(screenRow:any):any; + + toggleLineCommentsInSelection():any; + + pixelPositionForBufferPosition(position:any):any; + + pixelPositionForScreenPosition(position:any):any; + + positionLeftForLineAndColumn(lineElement:any, screenRow:any, screenColumn:any):any; + + measureToColumn(lineElement:any, tokenizedLine:any, screenColumn:any):any; + + getCharacterWidthCache(scopes:any, char:any):any; + + setCharacterWidthCache(scopes:any, char:any, val:any):any; + + clearCharacterWidthCache():any; + + pixelOffsetForScreenPosition(position:any):any; + + screenPositionFromMouseEvent(e:any):any; + + highlightCursorLine():any; + + copyPathToClipboard():any; + + buildLineHtml(_arg:any):any; + + updateScopeStack(line:any, scopeStack:any, desiredScopes:any):any; + + pushScope(line:any, scopeStack:any, scope:any):any; + + popScope(line:any, scopeStack:any):any; + + buildEmptyLineHtml(showIndentGuide:any, eolInvisibles:any, htmlEolInvisibles:any, indentation:any, editor:any, mini:any):any; + + replaceSelectedText(replaceFn:(str:string)=>string):any; + + consolidateSelections(e:any):any; + + logCursorScope():any; + + logScreenLines(start:any, end:any):any; + + logRenderedLines():any; + } + class ScrollView extends View { // TBD } - var SelectListView:any; + class SelectListView extends View { + // TBD + } + + class WorkspaceView extends View { + // TBD + } + var Task:AtomCore.ITaskStatic; var Workspace:AtomCore.IWorkspaceStatic; - var WorkspaceView:any; // WorkspaceView extends View } From 9a8241a51e391b789e8949a26e1388aaf15e9597 Mon Sep 17 00:00:00 2001 From: vvakame Date: Sun, 4 May 2014 02:11:16 +0900 Subject: [PATCH 073/132] improve AtomCore.ISelection definition in atom/atom.d.ts --- atom/atom.d.ts | 80 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/atom/atom.d.ts b/atom/atom.d.ts index 3791a11cf8..e976116d1a 100644 --- a/atom/atom.d.ts +++ b/atom/atom.d.ts @@ -40,7 +40,7 @@ declare module AtomCore { // TBD } - interface TreeView { + interface ITreeView { // TBD } @@ -65,8 +65,82 @@ declare module AtomCore { // TBD } - interface ISelection { - // TBD + interface ISelection /* extends Theorist.Model */ { + cursor:ICursor; + marker:IDisplayBufferMarker; + editor:IEditor; + initialScreenRange:any; + wordwise:boolean; + needsAutoscroll:boolean; + retainSelection:boolean; + subscriptionCounts:any; + + destroy():any; + finalize():any; + clearAutoscroll():any; + isEmpty():boolean; + isReversed():boolean; + isSingleScreenLine():boolean; + getScreenRange():IRange; + setScreenRange(screenRange:any, options:any):any; + getBufferRange():IRange; + setBufferRange(bufferRange:any, options:any):any; + getBufferRowRange():number[]; + autoscroll():void; + getText():string; + clear():boolean; + selectWord():IRange; + expandOverWord():any; + selectLine(row?:any):IRange; + expandOverLine():boolean; + selectToScreenPosition(position:any):any; + selectToBufferPosition(position:any):any; + selectRight():boolean; + selectLeft():boolean; + selectUp(rowCount?:any):boolean; + selectDown(rowCount?:any):boolean; + selectToTop():any; + selectToBottom():any; + selectAll():any; + selectToBeginningOfLine():any; + selectToFirstCharacterOfLine():any; + selectToEndOfLine():any; + selectToBeginningOfWord():any; + selectToEndOfWord():any; + selectToBeginningOfNextWord():any; + selectToPreviousWordBoundary():any; + selectToNextWordBoundary():any; + addSelectionBelow():any; + getGoalBufferRange():any; + addSelectionAbove():any[]; + insertText(text:string, options?:any):any; + normalizeIndents(text:string, indentBasis:number):any; + indent(_arg?:any):any; + indentSelectedRows():IRange[]; + setIndentationForLine(line:string, indentLevel:number):any; + backspace():any; + backspaceToBeginningOfWord():any; + backspaceToBeginningOfLine():any; + delete():any; + deleteToEndOfWord():any; + deleteSelectedText():any; + deleteLine():any; + joinLines():any; + outdentSelectedRows():any[]; + autoIndentSelectedRows():any; + toggleLineComments():any; + cutToEndOfLine(maintainClipboard:any):any; + cut(maintainClipboard:any):any; + copy(maintainClipboard:any):any; + fold():any; + modifySelection(fn:()=>any):any; + plantTail():any; + intersectsBufferRange(bufferRange:any):any; + intersectsWith(otherSelection:any):any; + merge(otherSelection:any, options:any):any; + compare(otherSelection:any):any; + getRegionRects():any[]; + screenRangeChanged():any; } interface ISubscription { From 3cdedd857ab258793f81d8715c062d387dc1991d Mon Sep 17 00:00:00 2001 From: vvakame Date: Sun, 4 May 2014 02:23:32 +0900 Subject: [PATCH 074/132] improve AtomCore.IPointStatic and AtomCore.IPoint definition in atom/atom.d.ts --- atom/atom.d.ts | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/atom/atom.d.ts b/atom/atom.d.ts index e976116d1a..42f1860063 100644 --- a/atom/atom.d.ts +++ b/atom/atom.d.ts @@ -746,11 +746,49 @@ declare module AtomCore { } interface IPointStatic { - new(row:any, column:any):IPoint; + new (row?:number, column?:number):IPoint; + + fromObject(point:IPoint, copy?:boolean):IPoint; + fromObject(object:number[]):IPoint; + fromObject(object:{row:number; col:number;}):IPoint; + + min(point1:IPoint, point2:IPoint):IPoint; + min(point1:number[], point2:IPoint):IPoint; + min(point1:{row:number; col:number;}, point2:IPoint):IPoint; + + min(point1:IPoint, point2:number[]):IPoint; + min(point1:number[], point2:number[]):IPoint; + min(point1:{row:number; col:number;}, point2:number[]):IPoint; + + min(point1:IPoint, point2:{row:number; col:number;}):IPoint; + min(point1:number[], point2:{row:number; col:number;}):IPoint; + min(point1:{row:number; col:number;}, point2:{row:number; col:number;}):IPoint; } interface IPoint { - // TBD + row:number; + column:number; + + copy():IPoint; + freeze():IPoint; + + translate(delta:IPoint):IPoint; + translate(delta:number[]):IPoint; + translate(delta:{row:number; col:number;}):IPoint; + + add(other:IPoint):IPoint; + add(other:number[]):IPoint; + add(other:{row:number; col:number;}):IPoint; + + splitAt(column:number):IPoint[]; + compare(other:IPoint):number; + isEqual(other:IPoint):boolean; + isLessThan(other:IPoint):boolean; + isLessThanOrEqual(other:IPoint):boolean; + isGreaterThan(other:IPoint):boolean; + isGreaterThanOrEqual(other:IPoint):boolean; + toArray():number[]; + serialize():number[]; } interface IRangeStatic { From 5801fa46c24fcb37036c83d639189dfd769f55fb Mon Sep 17 00:00:00 2001 From: vvakame Date: Sun, 4 May 2014 02:47:59 +0900 Subject: [PATCH 075/132] improve AtomCore.IRangeStatic and AtomCore.IRange in atom/atom.d.ts --- atom/atom.d.ts | 101 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/atom/atom.d.ts b/atom/atom.d.ts index 42f1860063..106c6f318e 100644 --- a/atom/atom.d.ts +++ b/atom/atom.d.ts @@ -766,6 +766,8 @@ declare module AtomCore { } interface IPoint { + constructor: IPointStatic; + row:number; column:number; @@ -792,11 +794,106 @@ declare module AtomCore { } interface IRangeStatic { - new(pointA:IPoint, pointB:IPoint):IRange; + deserialize(array:IPoint[]):IRange; + + fromObject(object:IPoint[]):IRange; + + fromObject(object:IRange, copy?:boolean):IRange; + + fromObject(object:{start: IPoint; end: IPoint}):IRange; + fromObject(object:{start: number[]; end: IPoint}):IRange; + fromObject(object:{start: {row:number; col:number;}; end: IPoint}):IRange; + + fromObject(object:{start: IPoint; end: number[]}):IRange; + fromObject(object:{start: number[]; end: number[]}):IRange; + fromObject(object:{start: {row:number; col:number;}; end: number[]}):IRange; + + fromObject(object:{start: IPoint; end: {row:number; col:number;}}):IRange; + fromObject(object:{start: number[]; end: {row:number; col:number;}}):IRange; + fromObject(object:{start: {row:number; col:number;}; end: {row:number; col:number;}}):IRange; + + fromText(point:IPoint, text:string):IRange; + fromText(point:number[], text:string):IRange; + fromText(point:{row:number; col:number;}, text:string):IRange; + fromText(text:string):IRange; + + fromPointWithDelta(startPoint:IPoint, rowDelta:number, columnDelta:number):IRange; + fromPointWithDelta(startPoint:number[], rowDelta:number, columnDelta:number):IRange; + fromPointWithDelta(startPoint:{row:number; col:number;}, rowDelta:number, columnDelta:number):IRange; + + new(point1:IPoint, point2:IPoint):IRange; + new(point1:number[], point2:IPoint):IRange; + new(point1:{row:number; col:number;}, point2:IPoint):IRange; + + new(point1:IPoint, point2:number[]):IRange; + new(point1:number[], point2:number[]):IRange; + new(point1:{row:number; col:number;}, point2:number[]):IRange; + + new(point1:IPoint, point2:{row:number; col:number;}):IRange; + new(point1:number[], point2:{row:number; col:number;}):IRange; + new(point1:{row:number; col:number;}, point2:{row:number; col:number;}):IRange; } interface IRange { - // TBD + constructor:IRangeStatic; + + start: IPoint; + end: IPoint; + + serialize():number[][]; + copy():IRange; + freeze():IRange; + isEqual(other:IRange):boolean; + isEqual(other:IPoint[]):boolean; + + compare(object:IPoint[]):number; + + compare(object:{start: IPoint; end: IPoint}):number; + compare(object:{start: number[]; end: IPoint}):number; + compare(object:{start: {row:number; col:number;}; end: IPoint}):number; + + compare(object:{start: IPoint; end: number[]}):number; + compare(object:{start: number[]; end: number[]}):number; + compare(object:{start: {row:number; col:number;}; end: number[]}):number; + + compare(object:{start: IPoint; end: {row:number; col:number;}}):number; + compare(object:{start: number[]; end: {row:number; col:number;}}):number; + compare(object:{start: {row:number; col:number;}; end: {row:number; col:number;}}):number; + + isSingleLine():boolean; + coversSameRows(other:IRange):boolean; + + add(object:IPoint[]):IRange; + + add(object:{start: IPoint; end: IPoint}):IRange; + add(object:{start: number[]; end: IPoint}):IRange; + add(object:{start: {row:number; col:number;}; end: IPoint}):IRange; + + add(object:{start: IPoint; end: number[]}):IRange; + add(object:{start: number[]; end: number[]}):IRange; + add(object:{start: {row:number; col:number;}; end: number[]}):IRange; + + add(object:{start: IPoint; end: {row:number; col:number;}}):IRange; + add(object:{start: number[]; end: {row:number; col:number;}}):IRange; + add(object:{start: {row:number; col:number;}; end: {row:number; col:number;}}):IRange; + + translate(startPoint:IPoint, endPoint:IPoint):IRange; + translate(startPoint:IPoint):IRange; + + intersectsWith(otherRange:IRange):boolean; + containsRange(otherRange:IRange, exclusive:boolean):boolean; + + containsPoint(point:IPoint, exclusive:boolean):boolean; + containsPoint(point:number[], exclusive:boolean):boolean; + containsPoint(point:{row:number; col:number;}, exclusive:boolean):boolean; + + intersectsRow(row:number):boolean; + intersectsRowRange(startRow:number, endRow:number):boolean; + union(otherRange:IRange):IRange; + isEmpty():boolean; + toDelta():IPoint; + getRowCount():number; + getRows():number[]; } interface ITokenizedLine { From f8b43ffd5c92a1e269f4ffa322eec247dc11608c Mon Sep 17 00:00:00 2001 From: vvakame Date: Sun, 4 May 2014 03:03:27 +0900 Subject: [PATCH 076/132] improve AtomCore.IDisplayBufferMarkerStatic and AtomCore.IDisplayBufferMarker in atom/atom.d.ts --- atom/atom.d.ts | 59 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/atom/atom.d.ts b/atom/atom.d.ts index 106c6f318e..cef13f81c6 100644 --- a/atom/atom.d.ts +++ b/atom/atom.d.ts @@ -908,14 +908,69 @@ declare module AtomCore { // TBD } - interface IDisplayBufferMarker { - // TBD + interface IDisplayBufferMarkerStatic { + new (_arg:{bufferMarker:IMarker; displayBuffer: IDisplayBuffer}):IDisplayBufferMarker; + } + + interface IDisplayBufferMarker extends Emissary.IEmitter, Emissary.ISubscriber { + constructor:IDisplayBufferMarkerStatic; + + id: number; + + bufferMarkerSubscription:any; + oldHeadBufferPosition:IPoint; + oldHeadScreenPosition:IPoint; + oldTailBufferPosition:IPoint; + oldTailScreenPosition:IPoint; + wasValid:boolean; + + bufferMarker: IMarker; + displayBuffer: IDisplayBuffer; + globalPauseCount:number; + globalQueuedEvents:any; + + subscriptions:ISubscription[]; + subscriptionsByObject:any; // WeakMap + + copy(attributes?:any /* maybe IMarker */):IDisplayBufferMarker; + getScreenRange():IRange; + setScreenRange(screenRange:any, options:any):any; + getBufferRange():IRange; + setBufferRange(bufferRange:any, options:any):any; + getPixelRange():any; + getHeadScreenPosition():IPoint; + setHeadScreenPosition(screenPosition:any, options:any):any; + getHeadBufferPosition():IPoint; + setHeadBufferPosition(bufferPosition:any):any; + getTailScreenPosition():IPoint; + setTailScreenPosition(screenPosition:any, options:any):any; + getTailBufferPosition():IPoint; + setTailBufferPosition(bufferPosition:any):any; + plantTail():boolean; + clearTail():boolean; + hasTail():boolean; + isReversed():boolean; + isValid():boolean; + isDestroyed():boolean; + getAttributes():any; + setAttributes(attributes:any):any; + matchesAttributes(attributes:any):any; + destroy():any; + isEqual(other:IDisplayBufferMarker):boolean; + compare(other:IDisplayBufferMarker):boolean; + inspect():string; + destroyed():any; + notifyObservers(_arg:any):any; } interface ITransaction { // TBD } + interface IMarker { + // TBD + } + interface ITaskStatic { new(taskPath:any):ITask; } From 8433ce18732b6627a85145592612433d81ab3d54 Mon Sep 17 00:00:00 2001 From: vvakame Date: Sun, 4 May 2014 04:11:02 +0900 Subject: [PATCH 077/132] improve AtomCore.IDisplayBufferStatic and AtomCore.IDisplayBuffer in atom/atom.d.ts --- atom/atom.d.ts | 214 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 3 deletions(-) diff --git a/atom/atom.d.ts b/atom/atom.d.ts index cef13f81c6..1dd2694df3 100644 --- a/atom/atom.d.ts +++ b/atom/atom.d.ts @@ -52,9 +52,201 @@ declare module AtomCore { // TBD } - interface IDisplayBuffer { + interface IDisplayBufferStatic { + new(_arg?:any):IDisplayBuffer; + } + + interface IDisplayBuffer /* extends Theorist.Model */ { + // Serializable.includeInto(Editor); + + constructor:IDisplayBufferStatic; + + verticalScrollMargin:number; + horizontalScrollMargin:number; + + declaredPropertyValues:any; + tokenizedBuffer: ITokenizedBuffer; buffer: ITextBuffer; - // TBD + charWidthsByScope:any; + markers:{ [index:number]:IDisplayBufferMarker; }; + foldsByMarkerId:any; + maxLineLength:number; + screenLines:ITokenizedLine[]; + rowMap:any; // return type are RowMap + longestScreenRow:number; + subscriptions:ISubscription[]; + subscriptionsByObject:any; // return type are WeakMap + behaviors:any; + subscriptionCounts:any; + eventHandlersByEventName:any; + pendingChangeEvent:any; + + softWrap:boolean; + + serializeParams():{id:number; softWrap:boolean; editorWidthInChars: number; scrollTop: number; scrollLeft: number; tokenizedBuffer: any; }; + deserializeParams(params:any):any; + copy():IDisplayBuffer; + updateAllScreenLines():any; + emitChanged(eventProperties:any, refreshMarkers?:boolean):any; + updateWrappedScreenLines():any; + setVisible(visible:any):any; + getVerticalScrollMargin():number; + setVerticalScrollMargin(verticalScrollMargin:number):number; + getHorizontalScrollMargin():number; + setHorizontalScrollMargin(horizontalScrollMargin:number):number; + getHeight():any; + setHeight(height:any):any; + getWidth():any; + setWidth(newWidth:any):any; + getScrollTop():number; + setScrollTop(scrollTop:number):number; + getScrollBottom():number; + setScrollBottom(scrollBottom:number):number; + getScrollLeft():number; + setScrollLeft(scrollLeft:number):number; + getScrollRight():number; + setScrollRight(scrollRight:number):number; + getLineHeight():any; + setLineHeight(lineHeight:any):any; + getDefaultCharWidth():any; + setDefaultCharWidth(defaultCharWidth:any):any; + getScopedCharWidth(scopeNames:any, char:any):any; + getScopedCharWidths(scopeNames:any):any; + setScopedCharWidth(scopeNames:any, char:any, width:any):any; + setScopedCharWidths(scopeNames:any, charWidths:any):any; + clearScopedCharWidths():any; + getScrollHeight():number; + getScrollWidth():number; + getVisibleRowRange():number[]; + intersectsVisibleRowRange(startRow:any, endRow:any):any; + selectionIntersectsVisibleRowRange(selection:any):any; + scrollToScreenRange(screenRange:any):any; + scrollToScreenPosition(screenPosition:any):any; + scrollToBufferPosition(bufferPosition:any):any; + pixelRectForScreenRange(screenRange:IRange):any; + getTabLength():number; + setTabLength(tabLength:number):any; + setSoftWrap(softWrap:boolean):boolean; + getSoftWrap():boolean; + setEditorWidthInChars(editorWidthInChars:number):any; + getEditorWidthInChars():number; + getSoftWrapColumn():number; + lineForRow(row:number):any; + linesForRows(startRow:number, endRow:number):any; + getLines():any[]; + indentLevelForLine(line:any):any; + bufferRowsForScreenRows(startScreenRow:any, endScreenRow:any):any; + createFold(startRow:number, endRow:number):IFold; + isFoldedAtBufferRow(bufferRow:number):boolean; + isFoldedAtScreenRow(screenRow:number):boolean; + destroyFoldWithId(id:number):any; + unfoldBufferRow(bufferRow:number):any[]; + largestFoldStartingAtBufferRow(bufferRow:number):any; + foldsStartingAtBufferRow(bufferRow:number):any; + largestFoldStartingAtScreenRow(screenRow:any):any; + largestFoldContainingBufferRow(bufferRow:any):any; + outermostFoldsInBufferRowRange(startRow:any, endRow:any):any[]; + foldsContainingBufferRow(bufferRow:any):any[]; + screenRowForBufferRow(bufferRow:number):number; + lastScreenRowForBufferRow(bufferRow:number):number; + bufferRowForScreenRow(screenRow:number):number; + + screenRangeForBufferRange(bufferRange:IPoint[]):IRange; + + screenRangeForBufferRange(bufferRange:IRange):IRange; + + screenRangeForBufferRange(bufferRange:{start: IPoint; end: IPoint}):IRange; + screenRangeForBufferRange(bufferRange:{start: number[]; end: IPoint}):IRange; + screenRangeForBufferRange(bufferRange:{start: {row:number; col:number;}; end: IPoint}):IRange; + + screenRangeForBufferRange(bufferRange:{start: IPoint; end: number[]}):IRange; + screenRangeForBufferRange(bufferRange:{start: number[]; end: number[]}):IRange; + screenRangeForBufferRange(bufferRange:{start: {row:number; col:number;}; end: number[]}):IRange; + + screenRangeForBufferRange(bufferRange:{start: IPoint; end: {row:number; col:number;}}):IRange; + screenRangeForBufferRange(bufferRange:{start: number[]; end: {row:number; col:number;}}):IRange; + screenRangeForBufferRange(bufferRange:{start: {row:number; col:number;}; end: {row:number; col:number;}}):IRange; + + bufferRangeForScreenRange(screenRange:IPoint[]):IRange; + + bufferRangeForScreenRange(screenRange:IRange):IRange; + + bufferRangeForScreenRange(screenRange:{start: IPoint; end: IPoint}):IRange; + bufferRangeForScreenRange(screenRange:{start: number[]; end: IPoint}):IRange; + bufferRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: IPoint}):IRange; + + bufferRangeForScreenRange(screenRange:{start: IPoint; end: number[]}):IRange; + bufferRangeForScreenRange(screenRange:{start: number[]; end: number[]}):IRange; + bufferRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: number[]}):IRange; + + bufferRangeForScreenRange(screenRange:{start: IPoint; end: {row:number; col:number;}}):IRange; + bufferRangeForScreenRange(screenRange:{start: number[]; end: {row:number; col:number;}}):IRange; + bufferRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: {row:number; col:number;}}):IRange; + + pixelRangeForScreenRange(screenRange:IPoint[], clip?:boolean):IRange; + + pixelRangeForScreenRange(screenRange:IRange, clip?:boolean):IRange; + + pixelRangeForScreenRange(screenRange:{start: IPoint; end: IPoint}, clip?:boolean):IRange; + pixelRangeForScreenRange(screenRange:{start: number[]; end: IPoint}, clip?:boolean):IRange; + pixelRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: IPoint}, clip?:boolean):IRange; + + pixelRangeForScreenRange(screenRange:{start: IPoint; end: number[]}, clip?:boolean):IRange; + pixelRangeForScreenRange(screenRange:{start: number[]; end: number[]}, clip?:boolean):IRange; + pixelRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: number[]}, clip?:boolean):IRange; + + pixelRangeForScreenRange(screenRange:{start: IPoint; end: {row:number; col:number;}}, clip?:boolean):IRange; + pixelRangeForScreenRange(screenRange:{start: number[]; end: {row:number; col:number;}}, clip?:boolean):IRange; + pixelRangeForScreenRange(screenRange:{start: {row:number; col:number;}; end: {row:number; col:number;}}, clip?:boolean):IRange; + + pixelPositionForScreenPosition(screenPosition:IPoint, clip?:boolean):IPoint; + pixelPositionForScreenPosition(screenPosition:number[], clip?:boolean):IPoint; + pixelPositionForScreenPosition(screenPosition:{row:number; col:number;}, clip?:boolean):IPoint; + + screenPositionForPixelPosition(pixelPosition:any):IPoint; + + pixelPositionForBufferPosition(bufferPosition:any):any; + getLineCount():number; + getLastRow():number; + getMaxLineLength():number; + screenPositionForBufferPosition(bufferPosition:any, options:any):any; + bufferPositionForScreenPosition(bufferPosition:any, options:any):any; + scopesForBufferPosition(bufferPosition:any):any; + bufferRangeForScopeAtPosition(selector:any, position:any):any; + tokenForBufferPosition(bufferPosition:any):any; + getGrammar():IGrammar; + setGrammar(grammar:IGrammar):any; + reloadGrammar():any; + clipScreenPosition(screenPosition:any, options:any):any; + findWrapColumn(line:any, softWrapColumn:any):any; + rangeForAllLines():IRange; + getMarker(id:number):IDisplayBufferMarker; + getMarkers():IDisplayBufferMarker[]; + getMarkerCount():number; + markScreenRange(range:IRange, ...args:any[]):IDisplayBufferMarker; + markBufferRange(range:IRange, options?:any):IDisplayBufferMarker; + markScreenPosition(screenPosition:IPoint, options?:any):IDisplayBufferMarker; + markBufferPosition(bufferPosition:IPoint, options?:any):IDisplayBufferMarker; + destroyMarker(id:number):any; + findMarker(params?:any):IDisplayBufferMarker; + findMarkers(params?:any):IDisplayBufferMarker[]; + translateToBufferMarkerParams(params?:any):any; + findFoldMarker(attributes:any):IMarker; + findFoldMarkers(attributes:any):IMarker[]; + getFoldMarkerAttributes(attributes?:any):any; + pauseMarkerObservers():any; + resumeMarkerObservers():any; + refreshMarkerScreenPositions():any; + destroy():any; + logLines(start:number, end:number):any[]; + handleTokenizedBufferChange(tokenizedBufferChange:any):any; + updateScreenLines(startBufferRow:any, endBufferRow:any, bufferDelta?:number, options?:any):any; + buildScreenLines(startBufferRow:any, endBufferRow:any):any; + findMaxLineLength(startScreenRow:any, endScreenRow:any, newScreenLines:any):any; + handleBufferMarkersUpdated():any; + handleBufferMarkerCreated(marker:any):any; + createFoldForMarker(maker:any):IFold; + foldForMarker(marker:any):any; } interface ICursor { @@ -896,6 +1088,10 @@ declare module AtomCore { getRows():number[]; } + interface ITokenizedBuffer { + // TBD + } + interface ITokenizedLine { // TBD } @@ -904,7 +1100,16 @@ declare module AtomCore { // TBD } + interface IFoldStatic { + new (displayBuffer:IDisplayBuffer, marker:IMarker):IFold; + // TBD + } + interface IFold { + id:number; + displayBuffer:IDisplayBuffer; + marker:IMarker; + // TBD } @@ -967,7 +1172,10 @@ declare module AtomCore { // TBD } - interface IMarker { + interface IMarker extends Emissary.IEmitter { + // Serializable.includeInto(Editor); + // Delegator.includeInto(Editor); + // TBD } From 657277a43c05d721641f880b646354eb452394c5 Mon Sep 17 00:00:00 2001 From: David Driscoll Date: Sun, 4 May 2014 20:16:10 -0400 Subject: [PATCH 078/132] Renamed tests file. Fixed remaining tests. --- ...dash-tests.disabled.ts => lodash-tests.ts} | 1963 ++- lodash/lodash.d.ts | 11432 ++++++++-------- 2 files changed, 6697 insertions(+), 6698 deletions(-) rename lodash/{lodash-tests.disabled.ts => lodash-tests.ts} (56%) diff --git a/lodash/lodash-tests.disabled.ts b/lodash/lodash-tests.ts similarity index 56% rename from lodash/lodash-tests.disabled.ts rename to lodash/lodash-tests.ts index de96b3d978..953d32d379 100644 --- a/lodash/lodash-tests.disabled.ts +++ b/lodash/lodash-tests.ts @@ -1,982 +1,981 @@ -/// - -declare var $: any, jQuery: any; - -interface IFoodOrganic { - name: string; - organic: boolean; -} - -interface IFoodType { - name: string; - type: string; -} - -interface IFoodCombined { - name: string; - organic: boolean; - type: string; -} - -interface IStoogesQuote { - name: string; - quotes: string[]; -} - -interface IStoogesAge { - name: string; - age: number; -} - -interface IStoogesCombined { - name: string; - age: number; - quotes: string[]; -} - -interface IKey { - dir: string; - code: number; -} - -var foodsOrganic: IFoodOrganic[] = [ - { name: 'banana', organic: true }, - { name: 'beet', organic: false }, -]; -var foodsType: IFoodType[] = [ - { name: 'apple', type: 'fruit' }, - { name: 'banana', type: 'fruit' }, - { name: 'beet', type: 'vegetable' } -]; -var foodsCombined: IFoodCombined[] = [ - { 'name': 'apple', 'organic': false, 'type': 'fruit' }, - { 'name': 'carrot', 'organic': true, 'type': 'vegetable' } -]; - -var stoogesQuotes: IStoogesQuote[] = [ - { 'name': 'curly', 'quotes': ['Oh, a wise guy, eh?', 'Poifect!'] }, - { 'name': 'moe', 'quotes': ['Spread out!', 'You knucklehead!'] } -]; -var stoogesAges: IStoogesAge[] = [ - { 'name': 'moe', 'age': 40 }, - { 'name': 'larry', 'age': 50 } -]; - -var stoogesCombined: IStoogesCombined[] = [ - { 'name': 'curly', 'age': 30, 'quotes': ['Oh, a wise guy, eh?', 'Poifect!'] }, - { 'name': 'moe', 'age': 40, 'quotes': ['Spread out!', 'You knucklehead!'] } -]; - -var keys: IKey[] = [ - { 'dir': 'left', 'code': 97 }, - { 'dir': 'right', 'code': 100 } -]; - -class Dog { - constructor(public name: string) {} - - public bark() { - console.log('Woof, woof!'); - } -} - -var result : any; - -/************* - * Chaining * - *************/ -result = <_.LoDashWrapper>_('test'); -result = <_.LoDashWrapper>_(1); -result = <_.LoDashWrapper>_(true); -result = <_.LoDashArrayWrapper>_(['test1', 'test2']); -// Appears to be a change in the compiler, if the type explicity implements the object indexer. -// Looking at: https://typescript.codeplex.com/wikipage?title=Known%20breaking%20changes%20between%200.8%20and%200.9&referringTitle=Documentation -// "The ‘noimplicitany’ option now warns on the use of the hidden default indexer" -result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }); - -result = <_.LoDashWrapper>_.chain('test'); -result = <_.LoDashWrapper>_('test').chain(); -result = <_.LoDashWrapper>_.chain(1); -result = <_.LoDashWrapper>_(1).chain(); -result = <_.LoDashWrapper>_.chain(true); -result = <_.LoDashWrapper>_(true).chain(); -result = <_.LoDashArrayWrapper>_.chain(['test1', 'test2']); -result = <_.LoDashArrayWrapper>_(['test1', 'test2']).chain(); -result = <_.LoDashObjectWrapper<_.Dictionary>>_.chain(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).chain(); - -//Wrapped array shortcut methods -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).concat(5, 6); -result = <_.LoDashWrapper>_([1, 2, 3, 4]).join(','); -result = <_.LoDashWrapper>_([1, 2, 3, 4]).pop(); -_([1, 2, 3, 4]).push(5, 6, 7); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).reverse(); -result = <_.LoDashWrapper>_([1, 2, 3, 4]).shift(); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).slice(1, 2); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).slice(2); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).sort((a, b) => 1); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).splice(1); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).splice(1, 2, 5, 6); -result = <_.LoDashWrapper>_([1, 2, 3, 4]).unshift(5, 6); - -result = _.tap([1, 2, 3, 4], function(array) { console.log(array); }); -result = <_.LoDashWrapper>_('test').tap(function(value) { console.log(value); }); -result = <_.LoDashArrayWrapper>_([1, 2, 3, 4]).tap(function(array) { console.log(array); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).tap(function (array) { console.log(array); }); - -result = _('test').toString(); -result = _([1, 2, 3]).toString(); -result = _({'key1': 'test1', 'key2': 'test2'}).toString(); - -result = _('test').valueOf(); -result = _([1, 2, 3]).valueOf(); -result = <_.Dictionary>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).valueOf(); - -result = _('test').value(); -result = _([1, 2, 3]).value(); -result = <_.Dictionary>_(<{ [index: string]: string; }>{ 'key1': 'test1', 'key2': 'test2' }).value(); - -// /************* -// * Arrays * -// *************/ -result = _.compact([0, 1, false, 2, '', 3]); - result = <_.LoDashArrayWrapper>_([0, 1, false, 2, '', 3]).compact(); - -result = _.difference([1, 2, 3, 4, 5], [5, 2, 10]); - result = <_.LoDashArrayWrapper>_([1, 2, 3, 4, 5]).difference([5, 2, 10]); - -result = _.rest([1, 2, 3]); -result = _.rest([1, 2, 3], 2); -result = _.rest([1, 2, 3], (num) => num < 3) -result = _.rest(foodsOrganic, 'test'); -result = _.rest(foodsType, { 'type': 'value' }); - -result = _.drop([1, 2, 3]); -result = _.drop([1, 2, 3], 2); -result = _.drop([1, 2, 3], (num) => num < 3) -result = _.drop(foodsOrganic, 'test'); -result = _.drop(foodsType, { 'type': 'value' }); - -result = _.tail([1, 2, 3]) -result = _.tail([1, 2, 3], 2) -result = _.tail([1, 2, 3], (num) => num < 3) -result = _.tail(foodsOrganic, 'test') -result = _.tail(foodsType, { 'type': 'value' }) - -result = _.findIndex(['apple', 'banana', 'beet'], function(f) { - return /^b/.test(f); -}); -result = _.findIndex(['apple', 'banana', 'beet'], 'apple'); -result = _.findIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple'}); - -result = _.findLastIndex(['apple', 'banana', 'beet'], function(f: string) { - return /^b/.test(f); -}); -result = _.findLastIndex(['apple', 'banana', 'beet'], 'apple'); -result = _.findLastIndex([{ food: 'apple' }, { food: 'banana' }, { food: 'beet' }], { food: 'apple'}); - -result = _.first([1, 2, 3]); -result = _.first([1, 2, 3], 2); -result = _.first([1, 2, 3], function(num) { - return num < 3; -}); -result = _.first(foodsOrganic, 'organic'); -result = _.first(foodsType, { 'type': 'fruit' }); - - result = _.head([1, 2, 3]); - result = _.head([1, 2, 3], 2); - result = _.head([1, 2, 3], function(num) { - return num < 3; - }); - result = _.head(foodsOrganic, 'organic'); - result = _.head(foodsType, { 'type': 'fruit' }); - - result = _.take([1, 2, 3]); - result = _.take([1, 2, 3], 2); - result = _.take([1, 2, 3], (num) => num < 3); - result = _.take(foodsOrganic, 'organic'); - result = _.take(foodsType, { 'type': 'fruit' }); - -result = _.flatten([1, [2], [3, [[4]]]]); -result = _.flatten([1, [2], [3, [[4]]]], true); -var result: any -result = _.flatten(stoogesQuotes, 'quotes'); - - result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(); - result = <_.LoDashArrayWrapper>_([1, [2], [3, [[4]]]]).flatten(true); - result = <_.LoDashArrayWrapper>_(stoogesQuotes).flatten('quotes'); - -result = _.indexOf([1, 2, 3, 1, 2, 3], 2); -result = _.indexOf([1, 2, 3, 1, 2, 3], 2, 3); -result = _.indexOf([1, 1, 2, 2, 3, 3], 2, true); - -result = _.initial([1, 2, 3]); -result = _.initial([1, 2, 3], 2); -result = _.initial([1, 2, 3], function(num) { - return num > 1; -}); -result = _.initial(foodsOrganic, 'organic'); -result = _.initial(foodsType, { 'type': 'vegetable' }); - -result = _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); - -result = _.last([1, 2, 3]); -result = _.last([1, 2, 3], 2); -result = _.last([1, 2, 3], function(num) { - return num > 1; -}); -result = _.last(foodsOrganic, 'organic'); -result = _.last(foodsType, { 'type': 'vegetable' }); - -result = _.lastIndexOf([1, 2, 3, 1, 2, 3], 2); -result = _.lastIndexOf([1, 2, 3, 1, 2, 3], 2, 3); - -result = <{[key: string]: any}>_.zipObject(['moe', 'larry'], [30, 40]); -result = <{[key: string]: any}>_.object(['moe', 'larry'], [30, 40]); - -result = _.pull([1, 2, 3, 1, 2, 3], 2, 3); - -result = _.range(10); -result = _.range(1, 11); -result = _.range(0, 30, 5); -result = _.range(0, -10, -1); -result = _.range(1, 4, 0); -result = _.range(0); - -result = _.remove([1, 2, 3, 4, 5, 6], function(num: number) { return num % 2 == 0; }); -result = _.remove(foodsOrganic, 'organic'); -result = _.remove(foodsType, { 'type': 'vegetable'}); - -result = _.sortedIndex([20, 30, 50], 40); -result = _.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x'); -var sortedIndexDict = { - 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 } -}; -result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { - return sortedIndexDict.wordToNumber[word]; -}); -result = _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { - return this.wordToNumber[word]; -}, sortedIndexDict); - -result = _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); - -result = _.uniq([1, 2, 1, 3, 1]); -result = _.uniq([1, 1, 2, 2, 3], true); -result = _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { - return letter.toLowerCase(); -}); -result = _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); -result = <{x: number;}[]>_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - - result = _.unique([1, 2, 1, 3, 1]); - result = _.unique([1, 1, 2, 2, 3], true); - result = _.unique(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { - return letter.toLowerCase(); - }); - result = _.unique([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); - result = <{x: number;}[]>_.unique([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - -result = _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); - -result = _.zip(['moe', 'larry'], [30, 40], [true, false]); -result = _.unzip(['moe', 'larry'], [30, 40], [true, false]); - -// /* ************* -// * Collections * -// ************* */ - -result = _.at(['a', 'b', 'c', 'd', 'e'], [0, 2, 4]); -result = _.at(['moe', 'larry', 'curly'], 0, 2); - -result = _.contains([1, 2, 3], 1); -result = _.contains([1, 2, 3], 1, 2); -result = _.contains({ 'name': 'moe', 'age': 40 }, 'moe'); -result = _.contains('curly', 'ur'); - - result = _.include([1, 2, 3], 1); - result = _.include([1, 2, 3], 1, 2); - result = _.include({ 'name': 'moe', 'age': 40 }, 'moe'); - result = _.include('curly', 'ur'); - -result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function(num) { return Math.floor(num); }); -result = <_.Dictionary>_.countBy([4.3, 6.1, 6.4], function(num) { return this.floor(num); }, Math); -result = <_.Dictionary>_.countBy(['one', 'two', 'three'], 'length'); - -result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.3, 6.1, 6.4]).countBy(function (num) { return Math.floor(num); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.3, 6.1, 6.4]).countBy(function (num) { return this.floor(num); }, Math); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).countBy('length'); - -result = _.every([true, 1, null, 'yes'], Boolean); -result = _.every(stoogesAges, 'age'); -result = _.every(stoogesAges, { 'age': 50 }); - - result = _.all([true, 1, null, 'yes'], Boolean); - result = _.all(stoogesAges, 'age'); - result = _.all(stoogesAges, { 'age': 50 }); - -result = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); -result = _.filter(foodsCombined, 'organic'); -result = _.filter(foodsCombined, { 'type': 'fruit' }); - - result = _([1, 2, 3, 4, 5, 6]).filter(function(num) { return num % 2 == 0; }).value(); - result = _(foodsCombined).filter('organic').value(); - result = _(foodsCombined).filter({ 'type': 'fruit' }).value(); - - result = _.select([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); - result = _.select(foodsCombined, 'organic'); - result = _.select(foodsCombined, { 'type': 'fruit' }); - - result = _([1, 2, 3, 4, 5, 6]).select(function(num) { return num % 2 == 0; }).value(); - result = _(foodsCombined).select('organic').value(); - result = _(foodsCombined).select({ 'type': 'fruit' }).value(); - -result = _.find([1, 2, 3, 4], function(num) { - return num % 2 == 0; -}); -result = _.find(foodsCombined, { 'type': 'vegetable' }); -result = _.find(foodsCombined, 'organic'); - - result = _.detect([1, 2, 3, 4], function(num) { - return num % 2 == 0; - }); - result = _.detect(foodsCombined, { 'type': 'vegetable' }); - result = _.detect(foodsCombined, 'organic'); - - result = _.findWhere([1, 2, 3, 4], function(num) { - return num % 2 == 0; - }); - result = _.findWhere(foodsCombined, { 'type': 'vegetable' }); - result = _.findWhere(foodsCombined, 'organic'); - -result = _.findLast([1, 2, 3, 4], function(num) { - return num % 2 == 0; -}); -result = _.findLast(foodsCombined, { 'type': 'vegetable' }); -result = _.findLast(foodsCombined, 'organic'); - -result = _.forEach([1, 2, 3], function(num) { console.log(num); }); -result = <_.Dictionary>_.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); - - result = _.each([1, 2, 3], function(num) { console.log(num); }); - result = <_.Dictionary>_.each({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); - -result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEach(function (num) { console.log(num); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).forEach(function (num) { console.log(num); }); - -result = <_.LoDashArrayWrapper>_([1, 2, 3]).each(function (num) { console.log(num); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).each(function (num) { console.log(num); }); - -result = _.forEachRight([1, 2, 3], function(num) { console.log(num); }); -result = <_.Dictionary>_.forEachRight({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); - - result = _.eachRight([1, 2, 3], function(num) { console.log(num); }); - result = <_.Dictionary>_.eachRight({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); - -result = <_.LoDashArrayWrapper>_([1, 2, 3]).forEachRight(function (num) { console.log(num); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).forEachRight(function (num) { console.log(num); }); - -result = <_.LoDashArrayWrapper>_([1, 2, 3]).eachRight(function (num) { console.log(num); }); -result = <_.LoDashObjectWrapper<_.Dictionary>>_(<{ [index: string]: number; }>{ 'one': 1, 'two': 2, 'three': 3 }).eachRight(function (num) { console.log(num); }); - -result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); }); -result = <_.Dictionary>_.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math); -result = <_.Dictionary>_.groupBy(['one', 'two', 'three'], 'length'); - - result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function(num) { return Math.floor(num); }); - result = <_.LoDashObjectWrapper<_.Dictionary>>_([4.2, 6.1, 6.4]).groupBy(function(num) { return this.floor(num); }, Math); - result = <_.LoDashObjectWrapper<_.Dictionary>>_(['one', 'two', 'three']).groupBy('length'); - -result = <_.Dictionary>_.indexBy(keys, 'dir'); -result = <_.Dictionary>_.indexBy(keys, function(key) { return String.fromCharCode(key.code); }); -result = <_.Dictionary>_.indexBy(keys, function(key) { this.fromCharCode(key.code); }, String); - -result = _.invoke([[5, 1, 7], [3, 2, 1]], 'sort'); -result = _.invoke([123, 456], String.prototype.split, ''); - -result = _.map([1, 2, 3], function(num) { return num * 3; }); -result = _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); -result = _.map(stoogesAges, 'name'); - - result = _([1, 2, 3]).map(function(num) { return num * 3; }).value(); - result = _({ 'one': 1, 'two': 2, 'three': 3 }).map(function(num) { return num * 3; }).value(); - result = _(stoogesAges).map('name').value(); - -result = _.collect([1, 2, 3], function(num) { return num * 3; }); -result = _.collect({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); -result = _.collect(stoogesAges, 'name'); - - result = _([1, 2, 3]).collect(function(num) { return num * 3; }).value(); - result = _({ 'one': 1, 'two': 2, 'three': 3 }).collect(function(num) { return num * 3; }).value(); - result = _(stoogesAges).collect('name').value(); - -result = _.max([4, 2, 8, 6]); -result = _.max(stoogesAges, function(stooge) { return stooge.age; }); -result = _.max(stoogesAges, 'age'); - -result = _.min([4, 2, 8, 6]); -result = _.min(stoogesAges, function(stooge) { return stooge.age; }); -result = _.min(stoogesAges, 'age'); - -result = _.pluck(stoogesAges, 'name'); - -result = _.reduce([1, 2, 3], function(sum: number, num: number) { - return sum + num; -}); -interface ABC { - a: number; - b: number; - c: number; -} -result = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { - r[key] = num * 3; - return r; -}, {}); - -result = _.foldl([1, 2, 3], function(sum, num) { - return sum + num; -}); -result = _.foldl({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { - r[key] = num * 3; - return r; -}, {}); - -result = _.inject([1, 2, 3], function(sum, num) { - return sum + num; -}); -result = _.inject({ 'a': 1, 'b': 2, 'c': 3 }, function(r: ABC, num, key) { - r[key] = num * 3; - return r; -}, {}); - -result = _.reduceRight([[0, 1], [2, 3], [4, 5]], function(a: number[], b: number[]) { return a.concat(b); }, []); -result = _.foldr([[0, 1], [2, 3], [4, 5]], function(a: number[], b: number[]) { return a.concat(b); }, []); - -result = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); -result = _.reject(foodsCombined, 'organic'); -result = _.reject(foodsCombined, { 'type': 'fruit' }); - -result = _.sample([1, 2, 3, 4]); -result = _.sample([1, 2, 3, 4], 2); - -result = _.shuffle([1, 2, 3, 4, 5, 6]); - -result = _.size([1, 2]); -result = _.size({ 'one': 1, 'two': 2, 'three': 3 }); -result = _.size('curly'); - -result = _.some([null, 0, 'yes', false], Boolean); -result = _.some(foodsCombined, 'organic'); -result = _.some(foodsCombined, { 'type': 'meat' }); - -result = _.any([null, 0, 'yes', false], Boolean); -result = _.any(foodsCombined, 'organic'); -result = _.any(foodsCombined, { 'type': 'meat' }); - -result = _.sortBy([1, 2, 3], function(num) { return Math.sin(num); }); -result = _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math); -result = _.sortBy(['banana', 'strawberry', 'apple'], 'length'); - -(function(a: number, b: number, c: number, d: number){ return _.toArray(arguments).slice(1); })(1, 2, 3, 4); - -result = _.where(stoogesCombined, { 'age': 40 }); -result = _.where(stoogesCombined, { 'quotes': ['Poifect!'] }); - -/************* - * Functions * - *************/ -var saves = ['profile', 'settings']; -var asyncSave = (obj: any) => obj.done(); -var done: Function; - -done = _.after(saves.length, function() { - console.log('Done saving!'); -}); - -_.forEach(saves, function(type) { - asyncSave({ 'type': type, 'complete': done }); -}); - -done = _(saves.length).after(function() { - console.log('Done saving!'); -}).value(); - -_.forEach(saves, function(type) { - asyncSave({ 'type': type, 'complete': done }); -}); - -var funcBind = function (greeting: string) { return greeting + ' ' + this.name }; -var funcBind2: () => any = _.bind(funcBind, { 'name': 'moe' }, 'hi'); -funcBind2(); - -var funcBind3: () => any = _(funcBind).bind({ 'name': 'moe' }, 'hi').value(); -funcBind3(); - -var view = { - 'label': 'docs', - 'onClick': function() { console.log('clicked ' + this.label); } -}; - -view = _.bindAll(view); -jQuery('#docs').on('click', view.onClick); - -view = _(view).bindAll().value(); -jQuery('#docs').on('click', view.onClick); - -var objectBindKey = { - 'name': 'moe', - 'greet': function(greeting: string) { - return greeting + ' ' + this.name; - } -}; - -var funcBindKey: Function = _.bindKey(objectBindKey, 'greet', 'hi'); -funcBindKey(); - -objectBindKey.greet = function(greeting) { - return greeting + ', ' + this.name + '!'; -}; - -funcBindKey(); - -funcBindKey = _(objectBindKey).bindKey('greet', 'hi').value(); -funcBindKey(); - -var realNameMap = { - 'curly': 'jerome' -}; - -var format = function(name: string) { - name = realNameMap[name.toLowerCase()] || name; - return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase(); -}; - -var greet = function(formatted: string) { - return 'Hiya ' + formatted + '!'; -}; - -result = _.compose(greet, format); -result = <_.LoDashObjectWrapper>_(greet).compose(format); - -var createCallbackObj: { [index: string]: string; } = { name: 'Joe' }; -result = <() => any>_.createCallback('name'); -result = <() => boolean>_.createCallback(createCallbackObj); -result = <_.LoDashObjectWrapper<() => any>>_('name').createCallback(); -result = <_.LoDashObjectWrapper<() => boolean>>_(createCallbackObj).createCallback(); - -result = _.curry(function(a, b, c) { - console.log(a + b + c); -}); - -result = <_.LoDashObjectWrapper>_(function(a, b, c) { - console.log(a + b + c); -}).curry(); - -declare var source: any; -result = _.debounce(function() {}, 150); - -jQuery('#postbox').on('click', _.debounce(function() {}, 300, { - 'leading': true, - 'trailing': false -})); - -source.addEventListener('message', _.debounce(function() {}, 250, { - 'maxWait': 1000 -}), false); - -result = <_.LoDashObjectWrapper>_(function() {}).debounce(150); - -jQuery('#postbox').on('click', <_.LoDashObjectWrapper>_(function() {}).debounce(300, { - 'leading': true, - 'trailing': false -})); - -source.addEventListener('message', <_.LoDashObjectWrapper>_(function() {}).debounce(250, { - 'maxWait': 1000 -}), false); - -var returnedDebounce = _.throttle(function (a) { return a * 5; }, 5); -returnedThrottled(4); - -result = _.defer(function() { console.log('deferred'); }); -result = <_.LoDashWrapper>_(function() { console.log('deferred'); }).defer(); - -var log = _.bind(console.log, console); -result = _.delay(log, 1000, 'logged later'); -result = <_.LoDashWrapper>_(log).delay(1000, 'logged later'); - -var fibonacci = _.memoize(function(n) { - return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); -}); - -var data = { - 'moe': { 'name': 'moe', 'age': 40 }, - 'curly': { 'name': 'curly', 'age': 60 } -}; - -var stooge = _.memoize(function(name: string) { return data[name]; }, _.identity); -stooge('curly'); - -stooge['cache']['curly'].name = 'jerome'; -stooge('curly'); - -var returnedMemoize = _.throttle(function (a) { return a * 5; }, 5); -returnedMemoize(4); - -var initialize = _.once(function(){ }); -initialize(); -initialize();'' -var returnedOnce = _.throttle(function (a) { return a * 5; }, 5); -returnedOnce(4); - -var greetPartial = function(greeting: string, name: string) { return greeting + ' ' + name; }; -var hi = _.partial(greetPartial, 'hi'); -hi('moe'); - -var defaultsDeep = _.partialRight(_.merge, _.defaults); - -var optionsPartialRight = { - 'variable': 'data', - 'imports': { 'jq': $ } -}; - -defaultsDeep(optionsPartialRight, _.templateSettings); - -var throttled = _.throttle(function () { }, 100); -jQuery(window).on('scroll', throttled); - -jQuery('.interactive').on('click', _.throttle(function() { }, 300000, { - 'trailing': false -})); - -var returnedThrottled = _.throttle(function (a) { return a*5; }, 5); -returnedThrottled(4); - -var helloWrap = function(name: string) { return 'hello ' + name; }; -var helloWrap2 = _.wrap(helloWrap, function(func) { - return 'before, ' + func('moe') + ', after'; -}); -helloWrap2(); - -/********** -* Objects * -***********/ -interface NameAge { - name: string; - age: number; -} -result = _.assign({ 'name': 'moe' }, { 'age': 40 }); -result = _.assign({ 'name': 'moe' }, { 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; -}); - -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }); -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).assign({ 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; -}); - -result = _.extend({ 'name': 'moe' }, { 'age': 40 }); -result = _.extend({ 'name': 'moe' }, { 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; -}); - -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }); -result = <_.LoDashObjectWrapper>_({ 'name': 'moe' }).extend({ 'age': 40 }, function(a, b) { - return typeof a == 'undefined' ? b : a; -}); - -result = _.clone(stoogesAges); -result = _.clone(stoogesAges, true); -result = _.clone(stoogesAges, true, function(value) { - return _.isElement(value) ? value.cloneNode(false) : undefined; -}); - -result = _.cloneDeep(stoogesAges); -result = _.cloneDeep(stoogesAges, function(value) { - return _.isElement(value) ? value.cloneNode(false) : undefined; -}); - -interface Food { - name: string; - type: string; -} -var foodDefaults = { 'name': 'apple' }; -result = _.defaults(foodDefaults, { 'name': 'banana', 'type': 'fruit' }); - result = <_.LoDashObjectWrapper>_(foodDefaults).defaults({ 'name': 'banana', 'type': 'fruit' }); - -result = _.findKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function(num) { - return num % 2 == 0; -}); - -result = _.findLastKey({ 'a': 1, 'b': 2, 'c': 3, 'd': 4 }, function(num) { - return num % 2 == 1; -}); - -result = _.forIn(new Dog('Dagny'), function(value, key) { - console.log(key); -}); - -result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forIn(function(value, key) { - console.log(key); -}); - -result = _.forInRight(new Dog('Dagny'), function(value, key) { - console.log(key); -}); - -result = <_.LoDashObjectWrapper>_(new Dog('Dagny')).forInRight(function(value, key) { - console.log(key); -}); - -interface ZeroOne { - 0: string; - 1: string; - one: string; -} - -result = _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { - console.log(key); -}); - - result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwn(function(num, key) { - console.log(key); - }); - -result = _.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { - console.log(key); -}); - - result = <_.LoDashObjectWrapper>_({ '0': 'zero', '1': 'one', 'length': 2 }).forOwnRight(function(num, key) { - console.log(key); - }); - -result = _.functions(_); -result = _.methods(_); - -result = <_.LoDashArrayWrapper>_(_).functions(); -result = <_.LoDashArrayWrapper>_(_).methods(); - -result = _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b'); - -interface FirstSecond { - first: string; - second: string; -} -result = _.invert({ 'first': 'moe', 'second': 'larry' }); - -(function(...args: any[]) { return _.isArguments(arguments); })(1, 2, 3); - -(function () { return _.isArray(arguments); })(); -result = _.isArray([1, 2, 3]); - -result = _.isBoolean(null); - -result = _.isDate(new Date()); - -result = _.isElement(document.body); - -result = _.isEmpty([1, 2, 3]); -result = _.isEmpty({}); -result = _.isEmpty(''); - -var moe = { 'name': 'moe', 'age': 40 }; -var copy = { 'name': 'moe', 'age': 40 }; - -result = _.isEqual(moe, copy); - -var words = ['hello', 'goodbye']; -var otherWords = ['hi', 'goodbye']; - -result = _.isEqual(words, otherWords, function(a, b) { - var reGreet = /^(?:hello|hi)$/i, - aGreet = _.isString(a) && reGreet.test(a), - bGreet = _.isString(b) && reGreet.test(b); - - return (aGreet || bGreet) ? (aGreet == bGreet) : undefined; -}); - -result = _.isFinite(-101); -result = _.isFinite('10'); -result = _.isFinite(true); -result = _.isFinite(''); -result = _.isFinite(Infinity); - -result = _.isFunction(_); - -result = _.isNaN(NaN); -result = _.isNaN(new Number(NaN)); -result = _.isNaN(undefined); - -result = _.isNull(null); -result = _.isNull(undefined); - -result = _.isNumber(8.4 * 5); - -result = _.isObject({}); -result = _.isObject([1, 2, 3]); -result = _.isObject(1); - -class Stooge { - constructor( - public name: string, - public age: number - ) {} -} - -result = _.isPlainObject(new Stooge('moe', 40)); -result = _.isPlainObject([1, 2, 3]); -result = _.isPlainObject({ 'name': 'moe', 'age': 40 }); - -result = _.isRegExp(/moe/); - -result = _.isString('moe'); - -result = _.isUndefined(void 0); - -result = _.keys({ 'one': 1, 'two': 2, 'three': 3 }); - -var mergeNames = { - 'stooges': [ - { 'name': 'moe' }, - { 'name': 'larry' } - ] -}; - -var mergeAges = { - 'stooges': [ - { 'age': 40 }, - { 'age': 50 } - ] -}; - -result = _.merge(mergeNames, mergeAges); - -var mergeFood = { - 'fruits': ['apple'], - 'vegetables': ['beet'] -}; - -var mergeOtherFood = { - 'fruits': ['banana'], - 'vegetables': ['carrot'] -}; - -interface FruitVeg { - fruits: string[]; - vegetables: string[] -}; - -result = _.merge(mergeFood, mergeOtherFood, function(a, b) { - return _.isArray(a) ? a.concat(b) : undefined; -}); - -interface HasName { - name: string; -} -result = _.omit({ 'name': 'moe', 'age': 40 }, 'age'); -result = _.omit({ 'name': 'moe', 'age': 40 }, ['age']); -result = _.omit({ 'name': 'moe', 'age': 40 }, function(value) { - return typeof value == 'number'; -}); - -result = _.pairs({ 'moe': 30, 'larry': 40 }); - -result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, 'name'); -result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, ['name']); -result = _.pick({ 'name': 'moe', '_userid': 'moe1' }, function(value, key) { - return key.charAt(0) != '_'; -}); - -result = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(r, num) { - num *= num; - if (num % 2) { - return r.push(num) < 3; - } -}); -// → [1, 9, 25] - -result = <{a:number;b:number;c:number;}>_.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(r, num, key) { - r[key] = num * 3; -}); - -result = _.values({ 'one': 1, 'two': 2, 'three': 3 }); - -/********** -* Utilities * -***********/ - -result = _.escape('Moe, Larry & Curly'); - -result = <{ name: string }>_.identity({ 'name': 'moe' }); - -_.mixin({ - 'capitalize': function(string) { - return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); - } -}); - -var lodash = _.noConflict(); - -result = _.parseInt('08'); - -result = _.random(0, 5); -result = _.random(5); -result = _.random(5, true); -result = _.random(1.2, 5.2); -result = _.random(0, 5, true); - -var object = { - 'cheese': 'crumpets', - 'stuff': function() { - return 'nonsense'; - } -}; - -result = _.result(object, 'cheese'); -result = _.result(object, 'stuff'); - -var tempObject = {}; -result = _.runInContext(tempObject); - -result = <_.TemplateExecutor>_.template('hello <%= name %>'); -result = _.template('<%- value %>', { 'value': '