Merge branch 'master' of github.com:borisyankov/DefinitelyTyped into angular-1.3

This commit is contained in:
Paulo Cesar
2014-08-22 06:12:22 -03:00
26 changed files with 2146 additions and 80 deletions
+2
View File
@@ -46,6 +46,7 @@ All definitions files include a header with the author and editors, so at some p
* [CasperJS](http://casperjs.org) (by [Jed Hunsaker](https://github.com/jedhunsaker))
* [Cheerio](https://github.com/MatthewMueller/cheerio) (by [Bret Little](https://github.com/blittle))
* [Chosen](http://harvesthq.github.com/chosen/) (by [Boris Yankov](https://github.com/borisyankov))
* [Chroma.js](https://github.com/gka/chroma.js) (by [Sebastian Brückner](https://github.com/invliD))
* [Chrome](http://developer.chrome.com/extensions/) (by [Matthew Kimber](https://github.com/matthewkimber) and [otiai10](https://github.com/otiai10))
* [Chrome App](http://developer.chrome.com/apps/) (by [Adam Lay](https://github.com/AdamLay))
* [CKEditor](https://github.com/ckeditor/ckeditor-dev) (by [Ondrej Sevcik](https://github.com/ondrejsevcik))
@@ -325,6 +326,7 @@ All definitions files include a header with the author and editors, so at some p
* [SockJS](https://github.com/sockjs/sockjs-client) (by [Emil Ivanov](https://github.com/vladev))
* [sockjs-node](https://github.com/sockjs/sockjs-node) (by [Phil McCloghry-Laing](https://github.com/pmccloghrylaing))
* [SoundJS](http://www.createjs.com/#!/SoundJS) (by [Pedro Ferreira](https://bitbucket.org/drk4))
* [source-map](https://github.com/mozilla/source-map) (by [Morten Houston Ludvigsen](https://github.com/MortenHoustonLudvigsen))
* [Spin](http://fgnass.github.com/spin.js/) (by [Boris Yankov](https://github.com/borisyankov))
* [sqlite3](https://github.com/mapbox/node-sqlite3) (by [Nick Malaguti](https://github.com/nmalaguti))
* [status-bar](https://github.com/atom/status-bar) (by [vvakame](https://github.com/vvakame))
+1 -1
View File
@@ -11,7 +11,7 @@ declare module ng.ui {
name?: string;
template?: any;
templateUrl?: any;
templateProvider?: () => string;
templateProvider?: any;
controller?: any;
controllerAs?: string;
controllerProvider?: any;
+120
View File
@@ -0,0 +1,120 @@
/// <reference path="chroma-js.d.ts" />
function test_chroma() {
chroma("red");
chroma("#ff0000");
chroma("#f00");
chroma("FF0000");
chroma(255, 0, 0);
chroma([255, 0, 0]);
chroma(0, 1, 0.5, 'hsl');
chroma([0, 1, 0.5], 'hsl');
chroma(0, 1, 1, 'hsv');
chroma("rgb(255,0,0)");
chroma("rgb(100%,0%,0%)");
chroma("hsl(0,100%,50%)");
chroma(53.24, 80.09, 67.20, 'lab');
chroma(53.24, 104.55, 40, 'lch');
chroma(1, 0, 0, 'gl');
chroma.hex("#ff0000");
chroma.hex("red");
chroma.hex("rgb(255, 0, 0)");
chroma.rgb(255, 0, 0);
chroma.hsl(0, 1, 0.5);
chroma.hsv(120, 0.5, 0.5);
chroma.lab(53.24, 80.09, 67.20);
chroma.lch(53.24, 104.55, 40);
chroma.gl(1, 0, 0);
chroma.interpolate('white', 'black', 0) // #ffffff
chroma.interpolate('white', 'black', 1) // #000000
chroma.interpolate('white', 'black', 0.5) // #7f7f7f
chroma.interpolate('white', 'black', 0.5, 'hsv') // #808080
chroma.interpolate('white', 'black', 0.5, 'lab') // #777777
chroma.interpolate('rgba(0,0,0,0)', 'rgba(255,0,0,1)', 0.5).css() //"rgba(127.5,0,0,0.5)"
var bezInterpolator = chroma.interpolate.bezier(['white', 'yellow', 'red', 'black']);
bezInterpolator(0).hex() // #ffffff
bezInterpolator(0.33).hex() // #ffcc67
bezInterpolator(0.66).hex() // #b65f1a
bezInterpolator(1).hex() // #000000
chroma.luminance('black') // 0
chroma.luminance('white') // 1
chroma.luminance('#ff0000') // 0.2126
chroma.contrast('white', 'navy') // 16.00 ok
chroma.contrast('white', 'yellow') // 1.07 not ok!
}
function test_color() {
chroma('red').hex() // "#FF0000""
chroma('red').rgb() // [255, 0, 0]
chroma('red').hsv() // [0, 1, 1]
chroma('red').hsl() // [0, 1, 0.5]
chroma('red').lab() // [53.2407, 80.0924, 67.2031]
chroma('red').lch() // [53.2407, 104.5517, 39.9990]
chroma('red').rgba() // [255, 0, 0, 1]
chroma('red').css() // "rgb(255,0,0)"
chroma('red').alpha(0.7).css() // "rgba(255,0,0,0.7)"
chroma('red').css('hsl') // "hsl(0,100%,50%)"
chroma('red').alpha(0.7).css('hsl') // "hsla(0,100%,50%,0.7)"
chroma('blue').css('hsla') // "hsla(240,100%,50%,1)"
var red = chroma('red');
red.alpha(0.5);
red.css(); // rgba(255,0,0,0.5);
chroma('red').darken().hex() // #BC0000
chroma('red').brighten().hex() // #FF603B
chroma('#eecc99').saturate().hex() // #fcc973
chroma('red').desaturate().hex() // #ec3d23
chroma('black').luminance() // 0
chroma('white').luminance() // 1
chroma('red').luminance() // 0.2126
}
function test_scale() {
var scale = chroma.scale(['lightyellow', 'navy']);
scale(0.5); // #7F7FB0
chroma.scale('RdYlBu');
var col = scale(0.5);
col.hex(); // #7F7FB0
col.rgb(); // [127.5, 127.5, 176]
scale = chroma.scale(['lightyellow', 'navy']).out('hex');
scale(0.5); // "#7F7FB0"
var scale = chroma.scale(['lightyellow', 'navy']);
scale.mode('hsv')(0.5); // #54C08A
scale.mode('hsl')(0.5); // #31FF98
scale.mode('lab')(0.5); // #967CB2
scale.mode('lch')(0.5); // #D26662
var scale = chroma.scale(['lightyellow', 'navy']).domain([0, 400]);
scale(200); // #7F7FB0
var scale = chroma.scale(['lightyellow', 'navy']).domain([0, 100, 200, 300, 400]);
scale(98); // #7F7FB0
scale(99); // #7F7FB0
scale(100); // #AAAAC0
scale(101); // #AAAAC0
chroma.scale(['#eee', '#900']).domain([0, 400], 7);
chroma.scale(['#eee', '#900']).domain([1, 1000000], 7, 'log');
chroma.scale(['#eee', '#900']).domain([1, 1000000], 5, 'quantiles');
chroma.scale(['#eee', '#900']).domain([1, 1000000], 5, 'k-means');
chroma.scale(['white', 'red']).domain([0, 100], 4).domain() // [0, 25, 50, 75, 100]
chroma.scale().range(['lightyellow', 'navy']);
chroma.scale(['lightyellow', 'navy']).correctLightness(true);
chroma.scale('RdYlGn').domain([0,1], 5).colors()
}
+317
View File
@@ -0,0 +1,317 @@
// Type definitions for Chroma.js v0.5.6
// Project: https://github.com/gka/chroma.js
// Definitions by: Sebastian Brückner <https://github.com/invliD>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/**
* Chroma.js is a tiny library for all kinds of color conversions and color scales.
*/
declare module Chroma {
export interface ChromaStatic {
/**
* Creates a color from a string representation (as supported in CSS).
*
* @param color The string to convert to a color.
* @return the color object.
*/
(color: string): Color;
/**
* Create a color in the specified color space using a, b and c as values.
*
* @param a
* @param b
* @param c
* @param colorSpace The color space to use (one of "rgb", "hsl", "hsv", "lab", "lch", "gl"). Defaults to "rgb".
* @return the color object.
*/
(a: number, b: number, c: number, colorSpace?: string): Color;
/**
* Create a color in the specified color space using values.
*
* @param values An array of values (e.g. [r, g, b, a?]).
* @param colorSpace The color space to use (one of "rgb", "hsl", "hsv", "lab", "lch", "gl"). Defaults to "rgb".
* @return the color object.
*/
(values: number[], colorSpace?: string): Color;
/**
* Create a color in the specified color space using a, b and c as values.
*
* @param a
* @param b
* @param c
* @param colorSpace The color space to use (one of "rgb", "hsl", "hsv", "lab", "lch", "gl"). Defaults to "rgb".
* @return the color object.
*/
color(a: number, b: number, c: number, colorSpace?: string): Color;
/**
* Calculate the contrast ratio of two colors.
*
* @param color1 The first color.
* @param color2 The second color.
* @return the contrast ratio.
*/
contrast(color1: Color, color2: Color): number;
/**
* Calculate the contrast ratio of two colors.
*
* @param color1 The first color.
* @param color2 The second color.
* @return the contrast ratio.
*/
contrast(color1: Color, color2: string): number;
/**
* Calculate the contrast ratio of two colors.
*
* @param color1 The first color.
* @param color2 The second color.
* @return the contrast ratio.
*/
contrast(color1: string, color2: Color): number;
/**
* Calculate the contrast ratio of two colors.
*
* @param color1 The first color.
* @param color2 The second color.
* @return the contrast ratio.
*/
contrast(color1: string, color2: string): number;
/**
* Create a color from a hex or string representation (as supported in CSS).
*
* This is an alias of chroma.hex().
*
* @param color The string to convert to a color.
* @return the color object.
*/
css(color: string): Color;
/**
* Create a color from a hex or string representation (as supported in CSS).
*
* This is an alias of chroma.css().
*
* @param color The string to convert to a color.
* @return the color object.
*/
hex(color: string): Color;
rgb(red: number, green: number, blue: number, alpha?: number): Color;
hsl(hue: number, saturation: number, lightness: number, alpha?: number): Color;
hsv(hue: number, saturation: number, value: number, alpha?: number): Color;
lab(lightness: number, a: number, b: number, alpha?: number): Color;
lch(lightness: number, chroma: number, hue: number, alpha?: number): Color;
gl(red: number, green: number, blue: number, alpha?: number): Color;
interpolate: InterpolateFunction;
mix: InterpolateFunction;
luminance(color: Color): number;
luminance(color: string): number;
/**
* Creates a color scale using a pre-defined color scale.
*
* @param name The name of the color scale.
* @return the resulting color scale.
*/
scale(name: string): Scale;
/**
* Creates a color scale function from the given set of colors.
*
* @param colors An Array of at least two color names or hex values.
* @return the resulting color scale.
*/
scale(colors?: string[]): Scale;
scales: PredefinedScales;
}
interface InterpolateFunction {
(color1: Color, color2: Color, f: number, mode?: string): Color;
(color1: Color, color2: string, f: number, mode?: string): Color;
(color1: string, color2: Color, f: number, mode?: string): Color;
(color1: string, color2: string, f: number, mode?: string): Color;
bezier(colors: any[]): (t: number) => Color;
}
interface PredefinedScales {
[key: string]: Scale;
cool: Scale;
hot: Scale;
}
export interface Color {
/**
* Creates a color from a string representation (as supported in CSS).
*
* @param color The string to convert to a color.
*/
new(color: string): Color;
/**
* Create a color in the specified color space using a, b and c as values.
*
* @param a
* @param b
* @param c
* @param colorSpace The color space to use (one of "rgb", "hsl", "hsv", "lab", "lch", "gl"). Defaults to "rgb".
*/
new(a: number, b: number, c: number, colorSpace?: string): Color;
/**
* Create a color in the specified color space using a, b and c as color values and alpha as the alpha value.
*
* @param a
* @param b
* @param c
* @param alpha The alpha value of the color.
* @param colorSpace The color space to use (one of "rgb", "hsl", "hsv", "lab", "lch", "gl"). Defaults to "rgb".
*/
new(a: number, b: number, c: number, alpha: number, colorSpace?: string): Color;
/**
* Create a color in the specified color space using values.
*
* @param values An array of values (e.g. [r, g, b, a?]).
* @param colorSpace The color space to use (one of "rgb", "hsl", "hsv", "lab", "lch", "gl"). Defaults to "rgb".
*/
new(values: number[], colorSpace: string): Color;
/**
* Convert this color to CSS hex representation.
*
* @return this color's hex representation.
*/
hex(): string;
/**
* @return the relative luminance of the color, which is a value between 0 (black) and 1 (white).
*/
luminance(): number;
/**
* @return the X11 name of this color or its hex value if it does not have a name.
*/
name(): string;
/**
* @return the alpha value of the color.
*/
alpha(): number;
/**
* Set the alpha value.
*
* @param alpha The alpha value.
* @return this
*/
alpha(alpha: number): Color;
css(mode?: string): string;
interpolate(color: Color, f: number, mode?: string): Color;
interpolate(color: string, f: number, mode?: string): Color;
premultiply(): Color;
rgb(): number[];
rgba(): number[];
hsl(): number[];
hsv(): number[];
lab(): number[];
lch(): number[];
hsi(): number[];
gl(): number[];
darken(amount?: number): Color;
darker(amount: number): Color;
brighten(amount?: number): Color;
brighter(amount: number): Color;
saturate(amount?: number): Color;
desaturate(amount?: number): Color;
toString(): string;
}
export interface Scale {
/**
* Interpolate a color using the currently set range and domain.
*
* @param value The value to use for interpolation.
* @return the interpolated hex color OR a Color object (depending on the mode set on this Scale).
*/
(value: number): any;
/**
* Retreive all possible colors generated by this scale if it has distinct classes.
*
* @param mode The output mode to use. Must be one of Color's getters. Defaults to "hex".
* @return an array of colors in the type specified by mode.
*/
colors(mode?: string): any[];
correctLightness(): boolean;
/**
* Enable or disable automatic lightness correction of this scale.
*
* @param Whether to enable or disable automatic lightness correction.
* @return this
*/
correctLightness(enable: boolean): Scale;
/**
* Get the current domain.
*
* @return The current domain.
*/
domain(): number[];
/**
* Set the domain.
*
* @param domain An Array of at least two numbers (min and max).
* @param classes The number of fixed classes to create between min and max.
* @param mode The scale to use. Examples: log, quantiles, k-means.
* @return this
*/
domain(domain: number[], classes?: number, mode?: string): Scale;
/**
* Specify in which color space the colors should be interpolated. Defaults to "rgb".
* You can use any of the following spaces: rgb, hsv, hsl, lab, lch
*
* @param colorSpace The color space to use for interpolation.
* @return this
*/
mode(colorSpace: string): Scale;
/**
* Set the output mode of this Scale.
*
* @param mode The output mode to use. Must be one of Color's getters.
* @return this
*/
out(mode: string): Scale;
/**
* Set the color range after initialization.
*
* @param colors An Array of at least two color names or hex values.
* @return this
*/
range(colors: string[]): Scale;
}
}
declare var chroma: Chroma.ChromaStatic;
+30
View File
@@ -0,0 +1,30 @@
// Type definitions for csurf
// Project: https://www.npmjs.org/package/csurf
// Definitions by: Hiroki Horiuchi <https://github.com/horiuchi/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../express/express.d.ts" />
declare module Express {
export interface Request {
csrfToken(): string;
}
}
declare module "csurf" {
import express = require('express');
function csurf(options?: {
value?: (req: express.Request) => string;
cookie?: csurf.CookieOptions;
}): express.RequestHandler;
module csurf {
export interface CookieOptions extends express.CookieOptions {
key: string;
}
}
export = csurf;
}
Vendored
+1 -1
View File
@@ -1132,7 +1132,7 @@ declare module D3 {
/**
* Runs the tree layout
*/
nodes(root: GraphNode): TreeLayout;
nodes(root: GraphNode): Array<GraphNode>;
/**
* Given the specified array of nodes, such as those returned by nodes, returns an array of objects representing the links from parent to child for each node
*/
+9 -4
View File
@@ -490,9 +490,9 @@ declare module "express" {
*
* Examples:
*
* The following example illustrates how `res.sendfile()` may
* The following example illustrates how `res.sendFile()` may
* be used as an alternative for the `static()` middleware for
* dynamic situations. The code backing `res.sendfile()` is actually
* dynamic situations. The code backing `res.sendFile()` is actually
* the same code, so HTTP cache support etc is identical.
*
* app.get('/user/:uid/photos/:file', function(req, res){
@@ -501,13 +501,18 @@ declare module "express" {
*
* req.user.mayViewFilesFrom(uid, function(yes){
* if (yes) {
* res.sendfile('/uploads/' + uid + '/' + file);
* res.sendFile('/uploads/' + uid + '/' + file);
* } else {
* res.send(403, 'Sorry! you cant see that.');
* }
* });
* });
*/
sendFile(path: string): void;
sendFile(path: string, options: any): void;
sendFile(path: string, fn: Errback): void;
sendFile(path: string, options: any, fn: Errback): void;
sendfile(path: string): void;
sendfile(path: string, options: any): void;
sendfile(path: string, fn: Errback): void;
@@ -821,7 +826,7 @@ declare module "express" {
(name: string): string; // Getter
(name: string, ...handlers: RequestHandler[]): Application;
(name: RegExp, ...handlers: RequestHandler[]): Application;
}
};
/**
* Return the app's absolute pathname
+17
View File
@@ -141,6 +141,23 @@ declare module gapi.client {
statusText: string;
}
) => any):void;
/**
* HttpRequest supports promises.
*/
then(success:(response:{
result:T;
body:string;
headers?: any[];
status?: number;
statusText?: string
})=>void,
failure:(response:{
result:T;
body:string;
headers?: any[];
status?: number;
statusText?: string
})=>void): void;
}
/**
* Represents an HTTP Batch operation. Individual HTTP requests are added with the add method and the batch is executed using execute.
-21
View File
@@ -300,15 +300,6 @@ declare module Kinetic {
setData(SVG: string): any;
}
var Polygon: {
new (config: PolygonConfig): IPolygon;
}
interface IPolygon extends IShape {
getPoints(): any;
setPoints(points: any): any;
}
var RegularPolygon: {
new (config: RegularPolygonConfig): IRegularPolygon;
}
@@ -405,14 +396,6 @@ declare module Kinetic {
setTextStrokeWidth(textStrokeWidth: number): any;
}
var Transition: {
new (node: Node, config: any): ITransition;
}
interface ITransition {
start(): any;
stop(): any;
}
var Animation: {
new (...args: any[]): IAnimation;
}
@@ -485,10 +468,6 @@ declare module Kinetic {
dash?: number[];
}
interface PolygonConfig extends DrawOptionsConfig, ObjectOptionsConfig {
points: any;
}
interface RegularPolygonConfig extends DrawOptionsConfig, ObjectOptionsConfig {
sides: number;
radius: number;
+1 -1
View File
@@ -118,7 +118,7 @@ interface KnockoutBindingContext {
$parents: any[];
$root: any;
$data: any;
$index?: number;
$index?: KnockoutObservable<number>;
$parentContext?: KnockoutBindingContext;
extend(properties: any): any;
+10
View File
@@ -6210,6 +6210,16 @@ declare module _ {
noop(): void;
}
//_.create
interface LoDashStatic {
/**
* Creates an object that inherits from the given prototype object. If a properties object is provided its own enumerable properties are assigned to the created object.
* @param prototype The object to inherit from.
* @param properties The properties to assign to the object.
*/
create<T>(prototype: Object, properties?: Object): Object;
}
interface ListIterator<T, TResult> {
(value: T, index: number, list: T[]): TResult;
}
+1 -1
View File
@@ -25,7 +25,7 @@ interface MomentInput {
interface Duration {
humanize(): string;
humanize(withSuffix?: boolean): string;
milliseconds(): number;
asMilliseconds(): number;
+5 -1
View File
@@ -1110,7 +1110,7 @@ declare module "crypto" {
setPrivateKey(public_key: string, encoding?: string): void;
}
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 pbkdf2(password: string, salt: string, iterations: number, keylen: number, callback: (err: Error, derivedKey: Buffer) => any): 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;
@@ -1121,6 +1121,10 @@ declare module "crypto" {
declare module "stream" {
import events = require("events");
export interface Stream extends events.EventEmitter {
pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean; }): T;
}
export interface ReadableOptions {
highWaterMark?: number;
encoding?: string;
+13 -17
View File
@@ -8,6 +8,19 @@
declare module Express {
export interface Request {
session?: any;
authInfo?: any;
// These declarations are merged into express's Request type
login(user: any, done: (err: any) => void): void;
login(user: any, options: Object, done: (err: any) => void): void;
logIn(user: any, done: (err: any) => void): void;
logIn(user: any, options: Object, done: (err: any) => void): void;
logout(): void;
logOut(): void;
isAuthenticated(): boolean;
isUnauthenticated(): boolean;
}
}
@@ -68,20 +81,3 @@ declare module 'passport' {
}
}
declare module Express {
export interface Request {
// These declarations are merged into express's Request type
login(user: any, done: (err: any) => void): void;
login(user: any, options: Object, done: (err: any) => void): void;
logIn(user: any, done: (err: any) => void): void;
logIn(user: any, options: Object, done: (err: any) => void): void;
logout(): void;
logOut(): void;
isAuthenticated(): boolean;
isUnauthenticated(): boolean;
}
}
+2 -1
View File
@@ -114,7 +114,8 @@ req = req.oauth(oauth);
req = req.jar(jar);
write = req.pipe(write);
write = req.pipe(write, value);
req.write();
req.pipe(req);
req.write(value);
req.end(str);
req.end(buffer);
req.pause();
+12 -5
View File
@@ -91,7 +91,10 @@ declare module 'request' {
body: any;
}
export interface Request {
export interface Request extends stream.Stream {
readable: boolean;
writable: boolean;
getAgent(): http.Agent;
//start(): void;
//abort(): void;
@@ -107,10 +110,14 @@ declare module '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;
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;
end(): void;
end(chunk: Buffer, cb?: Function): void;
end(chunk: string, cb?: Function): void;
end(chunk: string, encoding: string, cb?: Function): void;
pause(): void;
resume(): void;
abort(): void;
+4 -4
View File
@@ -38,10 +38,10 @@ declare class Scroller {
finishPullToRefresh(): void;
getValues(): ScrollValuesWithZoom;
getScrollMax(): ScrollValues;
zoomTo(level: number, animate?: boolean, originLeft?: boolean, originTop?: boolean): void;
zoomBy(factor: number, animate?: boolean, originLeft?: boolean, originTop?: boolean): void;
scrollTo(left?: number, top?: number, animate?: number, zoom?: number): void;
scrollBy(left?: number, top?: number, animate?: number): void;
zoomTo(level: number, animate?: boolean, originLeft?: number, originTop?: number, callback?: Function): void;
zoomBy(factor: number, animate?: boolean, originLeft?: number, originTop?: number, callback?: Function): void;
scrollTo(left?: number, top?: number, animate?: boolean, zoom?: number): void;
scrollBy(left?: number, top?: number, animate?: boolean): void;
doMouseZoom(wheelDelta: number, timeStamp: number, pageX: number, pageY: number): void;
doTouchStart(touches: any[], timeStamp: number): void;
+1
View File
@@ -37,6 +37,7 @@ interface SignalR {
messageId: string;
url: string;
qs: any;
state: number;
(url: string, queryString?: any, logging?: boolean): SignalR;
hubConnection(url?: string): SignalR;
+165
View File
@@ -0,0 +1,165 @@
import SourceMap = require('source-map');
function testSourceMapConsumer() {
function testConstructor() {
var scm: SourceMap.SourceMapConsumer;
// create with full RawSourceMap
scm = new SourceMap.SourceMapConsumer({
version: 'foo',
sources: ['foo', 'bar'],
names: ['foo', 'bar'],
sourcesContent: 'foo',
mappings: 'foo'
});
// create with partial RawSourceMap
scm = new SourceMap.SourceMapConsumer({
version: 'foo',
sources: ['foo', 'bar'],
names: ['foo', 'bar'],
mappings: 'foo'
});
}
function testOriginalPositionFor(scm: SourceMap.SourceMapConsumer) {
var origPos: SourceMap.MappedPosition;
origPos = scm.originalPositionFor({ line: 42, column: 42 });
}
function testGeneratedPositionFor(scm: SourceMap.SourceMapConsumer) {
var genPos: SourceMap.Position;
genPos = scm.generatedPositionFor({ line: 42, column: 42, source: 'foo' });
genPos = scm.generatedPositionFor({ line: 42, column: 42, source: 'foo', name: 'bar' });
}
function testSourceContentFor(scm: SourceMap.SourceMapConsumer) {
var content: string;
content = scm.sourceContentFor('foo');
}
function testEachMapping(scm: SourceMap.SourceMapConsumer) {
var x: SourceMap.MappingItem;
var context: {};
scm.eachMapping(mapping => { x = mapping; });
scm.eachMapping(mapping => { x = mapping; }, context);
scm.eachMapping(mapping => { x = mapping; }, context, SourceMap.SourceMapConsumer.GENERATED_ORDER);
scm.eachMapping(mapping => { x = mapping; }, context, SourceMap.SourceMapConsumer.ORIGINAL_ORDER);
}
}
function testSourceMapGenerator() {
function testConstructor() {
var generator: SourceMap.SourceMapGenerator;
generator = new SourceMap.SourceMapGenerator();
generator = new SourceMap.SourceMapGenerator({
file: 'foo'
});
generator = new SourceMap.SourceMapGenerator({
sourceRoot: 'foo'
});
generator = new SourceMap.SourceMapGenerator({
file: 'foo',
sourceRoot: 'bar'
});
}
function testFromSourceMap(generator: SourceMap.SourceMapGenerator, scm: SourceMap.SourceMapConsumer) {
generator = SourceMap.SourceMapGenerator.fromSourceMap(scm);
}
function testAddMapping(generator: SourceMap.SourceMapGenerator) {
generator.addMapping({
generated: { line: 42, column: 42 },
original: { line: 42, column: 42 },
source: 'foo',
name: 'foo'
});
generator.addMapping({
generated: { line: 42, column: 42 },
original: { line: 42, column: 42 },
source: 'foo'
});
}
function testSetSourceContent(generator: SourceMap.SourceMapGenerator) {
generator.setSourceContent('foo', 'bar');
}
function testApplySourceMap(generator: SourceMap.SourceMapGenerator, scm: SourceMap.SourceMapConsumer) {
generator.applySourceMap(scm);
generator.applySourceMap(scm, 'foo');
generator.applySourceMap(scm, 'foo', 'bar');
}
function testToString(generator: SourceMap.SourceMapGenerator) {
var str: string;
str = generator.toString();
}
}
function testSourceNode() {
function testConstructor() {
var node: SourceMap.SourceNode;
node = new SourceMap.SourceNode();
node = new SourceMap.SourceNode(42, 42, 'foo');
node = new SourceMap.SourceNode(42, 42, 'foo', 'bar');
node = new SourceMap.SourceNode(42, 42, 'foo', 'bar', 'slam');
}
function testFromStringWithSourceMap(scm: SourceMap.SourceMapConsumer) {
var node: SourceMap.SourceNode;
node = SourceMap.SourceNode.fromStringWithSourceMap('foo', scm);
node = SourceMap.SourceNode.fromStringWithSourceMap('foo', scm, 'bar');
}
function testAdd(node: SourceMap.SourceNode) {
node.add('foo');
}
function testPrepend(node: SourceMap.SourceNode) {
node.prepend('foo');
}
function testSetSourceContent(node: SourceMap.SourceNode) {
node.setSourceContent('foo', 'bar');
}
function testWalk(node: SourceMap.SourceNode) {
var chunk: string;
var mapping: SourceMap.MappedPosition;
node.walk((c, m) => { chunk = c; mapping = m; });
}
function testWalkSourceContents(node: SourceMap.SourceNode) {
var file: string;
var content: string;
node.walkSourceContents((f, c) => { file = f; content = c; });
}
function testJoin(node: SourceMap.SourceNode) {
node = node.join('foo');
}
function testReplaceRight(node: SourceMap.SourceNode) {
node = node.replaceRight('foo', 'bar');
}
function testToString(node: SourceMap.SourceNode) {
var str: string;
str = node.toString();
}
function testToStringWithSourceMap(node: SourceMap.SourceNode, sos: SourceMap.StartOfSourceMap) {
var result: SourceMap.CodeWithSourceMap;
result = node.toStringWithSourceMap();
result = node.toStringWithSourceMap(sos);
}
}
+90
View File
@@ -0,0 +1,90 @@
// Type definitions for source-map v0.1.38
// Project: https://github.com/mozilla/source-map
// Definitions by: Morten Houston Ludvigsen <https://github.com/MortenHoustonLudvigsen>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module SourceMap {
interface StartOfSourceMap {
file?: string;
sourceRoot?: string;
}
interface RawSourceMap extends StartOfSourceMap {
version: string;
sources: Array<string>;
names: Array<string>;
sourcesContent?: string;
mappings: string;
}
interface Position {
line: number;
column: number;
}
interface MappedPosition extends Position {
source: string;
name?: string;
}
interface MappingItem {
source: string;
generatedLine: number;
generatedColumn: number;
originalLine: number;
originalColumn: number;
name: string;
}
interface Mapping {
generated: Position;
original: Position;
source: string;
name?: string;
}
interface CodeWithSourceMap {
code: string;
map: SourceMapGenerator;
}
class SourceMapConsumer {
public static GENERATED_ORDER: number;
public static ORIGINAL_ORDER: number;
constructor(rawSourceMap: RawSourceMap);
public originalPositionFor(generatedPosition: Position): MappedPosition;
public generatedPositionFor(originalPosition: MappedPosition): Position;
public sourceContentFor(source: string): string;
public eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void;
}
class SourceMapGenerator {
constructor(startOfSourceMap?: StartOfSourceMap);
public static fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator;
public addMapping(mapping: Mapping): void;
public setSourceContent(sourceFile: string, sourceContent: string): void;
public applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void;
public toString(): string;
}
class SourceNode {
constructor();
constructor(line: number, column: number, source: string);
constructor(line: number, column: number, source: string, chunk?: string, name?: string);
public static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode;
public add(chunk: string): void;
public prepend(chunk: string): void;
public setSourceContent(sourceFile: string, sourceContent: string): void;
public walk(fn: (chunk: string, mapping: MappedPosition) => void): void;
public walkSourceContents(fn: (file: string, content: string) => void): void;
public join(sep: string): SourceNode;
public replaceRight(pattern: string, replacement: string): SourceNode;
public toString(): string;
public toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap;
}
}
declare module 'source-map' {
export = SourceMap;
}
@@ -0,0 +1,183 @@
/// <reference path="timezonecomplete-1.4.6.d.ts" />
import tc = require("timezonecomplete-1.4.6");
var b: boolean;
var n: number;
var s: string;
var w: tc.WeekDay;
b = tc.isLeapYear(2014);
n = tc.daysInMonth(2014, 10);
n = tc.daysInYear(2014);
n = tc.dayOfYear(2014, 1, 2);
w = tc.lastWeekDayOfMonth(2014, 1, tc.WeekDay.Sunday);
n = tc.weekDayOnOrAfter(2014, 1, 14, tc.WeekDay.Monday);
n = tc.weekDayOnOrBefore(2014, 1, 14, tc.WeekDay.Monday);
// DURATION
var d: tc.Duration;
var d1: tc.Duration = tc.Duration.hours(24);
var d2: tc.Duration = tc.Duration.minutes(24);
var d3: tc.Duration = tc.Duration.seconds(24);
var d4: tc.Duration = tc.Duration.milliseconds(24);
var d5: tc.Duration = new tc.Duration(24);
var d6: tc.Duration = new tc.Duration("00:01");
var d7: tc.Duration = d6.clone();
n = d7.wholeHours();
n = d7.hours();
n = d7.minutes();
n = d7.minute();
n = d7.seconds();
n = d7.second();
n = d7.milliseconds();
n = d7.millisecond();
s = d7.sign();
b = d7.lessThan(d6);
b = d7.greaterThan(d6);
d = d7.min(d6);
d = d7.max(d6);
d = d7.multiply(3);
d = d7.divide(0.3);
d = d7.add(d6);
d = d7.sub(d6);
s = d7.toString();
// TIMEZONE
var t: tc.TimeZone;
var k: tc.TimeZoneKind;
t = tc.TimeZone.local();
t = tc.TimeZone.utc();
t = tc.TimeZone.zone(2);
t = tc.TimeZone.zone("+01:00");
s = t.name();
k = t.kind();
b = t.equals(t);
b = t.isUtc();
n = t.offsetForUtc(2014, 1, 1, 13, 0, 5, 123);
n = t.offsetForZone(2014, 1, 1, 13, 0, 5, 123);
n = t.offsetForUtcDate(new Date(2014, 1, 1, 13, 0, 5, 123), tc.DateFunctions.Get);
n = t.offsetForZoneDate(new Date(2014, 1, 1, 13, 0, 5, 123), tc.DateFunctions.GetUTC);
s = t.toString();
s = tc.TimeZone.offsetToString(2);
n = tc.TimeZone.stringToOffset("+00:01");
// REALTIMESOURCE
var date: Date = (new tc.RealTimeSource()).now();
// DATETIME
var dt: tc.DateTime;
var ts: tc.TimeSource = tc.DateTime.timeSource;
dt = tc.DateTime.nowLocal();
dt = tc.DateTime.nowUtc();
dt = tc.DateTime.now(tc.TimeZone.local());
dt = new tc.DateTime();
dt = new tc.DateTime("2014-01-01T13:05:01.123 UTC");
dt = new tc.DateTime("2014-01-01T13:05:01.123", tc.TimeZone.utc());
dt = new tc.DateTime(date, tc.DateFunctions.Get);
dt = new tc.DateTime(date, tc.DateFunctions.Get, tc.TimeZone.utc());
dt = new tc.DateTime(2014, 1, 1, 13, 5, 1, 123);
dt = new tc.DateTime(2014, 1, 1, 13, 5, 1, 123, tc.TimeZone.utc());
dt = new tc.DateTime(89949284);
dt = new tc.DateTime(89949284, tc.TimeZone.utc());
dt = dt.clone();
t = dt.zone();
n = dt.offset();
n = dt.year();
n = dt.month();
n = dt.day();
n = dt.hour();
n = dt.minute();
n = dt.second();
n = dt.millisecond();
n = dt.unixUtcMillis();
n = dt.utcYear();
n = dt.utcMonth();
n = dt.utcDay();
n = dt.utcHour();
n = dt.utcMinute();
n = dt.utcSecond();
n = dt.utcMillisecond();
dt.convert(tc.TimeZone.local());
dt = dt.toZone(tc.TimeZone.utc());
date = dt.toDate();
dt = dt.add(tc.Duration.seconds(2));
dt = dt.add(2, tc.TimeUnit.Year);
dt = dt.add(2, tc.TimeUnit.Month);
dt = dt.add(2, tc.TimeUnit.Week);
dt = dt.add(2, tc.TimeUnit.Day);
dt = dt.add(2, tc.TimeUnit.Hour);
dt = dt.add(2, tc.TimeUnit.Minute);
dt = dt.add(2, tc.TimeUnit.Second);
dt = dt.addLocal(2, tc.TimeUnit.Second);
dt = dt.sub(tc.Duration.seconds(2));
dt = dt.sub(2, tc.TimeUnit.Year);
dt = dt.sub(2, tc.TimeUnit.Month);
dt = dt.sub(2, tc.TimeUnit.Week);
dt = dt.sub(2, tc.TimeUnit.Day);
dt = dt.sub(2, tc.TimeUnit.Hour);
dt = dt.sub(2, tc.TimeUnit.Minute);
dt = dt.sub(2, tc.TimeUnit.Second);
dt = dt.subLocal(2, tc.TimeUnit.Second);
d = dt.diff(new tc.DateTime(9289234, tc.TimeZone.local()));
b = dt.lessThan(new tc.DateTime(9289234, tc.TimeZone.local()));
b = dt.lessEqual(new tc.DateTime(9289234, tc.TimeZone.local()));
b = dt.greaterThan(new tc.DateTime(9289234, tc.TimeZone.local()));
b = dt.greaterEqual(new tc.DateTime(9289234, tc.TimeZone.local()));
s = dt.toIsoString();
s = dt.toString();
s = dt.toUtcString();
var wd: tc.WeekDay;
wd = dt.weekDay();
wd = dt.utcWeekDay();
// PERIOD
s = tc.periodDstToString(tc.PeriodDst.RegularIntervals);
s = tc.periodDstToString(tc.PeriodDst.RegularLocalTime);
var p: tc.Period;
p = new tc.Period(tc.DateTime.nowLocal(), 1, tc.TimeUnit.Hour, tc.PeriodDst.RegularLocalTime);
dt = p.start();
n = p.amount();
var tu: tc.TimeUnit = p.unit();
var pd: tc.PeriodDst = p.dst();
dt = p.findFirst(tc.DateTime.nowLocal());
dt = p.findNext(dt);
s = p.toIsoString();
s = p.toString();
File diff suppressed because it is too large Load Diff
@@ -11,9 +11,12 @@ b = tc.isLeapYear(2014);
n = tc.daysInMonth(2014, 10);
n = tc.daysInYear(2014);
n = tc.dayOfYear(2014, 1, 2);
w = tc.firstWeekDayOfMonth(2014, 1, tc.WeekDay.Sunday);
w = tc.lastWeekDayOfMonth(2014, 1, tc.WeekDay.Sunday);
n = tc.weekDayOnOrAfter(2014, 1, 14, tc.WeekDay.Monday);
n = tc.weekDayOnOrBefore(2014, 1, 14, tc.WeekDay.Monday);
n = tc.secondOfDay(13, 59, 59);
n = tc.weekOfMonth(2014, 1, 1);
// DURATION
@@ -97,6 +100,10 @@ n = dt.day();
n = dt.hour();
n = dt.minute();
n = dt.second();
n = dt.weekNumber();
n = dt.weekOfMonth();
n = dt.secondOfDay();
n = dt.dayOfYear();
n = dt.millisecond();
n = dt.unixUtcMillis();
n = dt.utcYear();
@@ -106,6 +113,11 @@ n = dt.utcHour();
n = dt.utcMinute();
n = dt.utcSecond();
n = dt.utcMillisecond();
n = dt.utcWeekNumber();
n = dt.utcWeekOfMonth();
n = dt.utcSecondOfDay();
n = dt.utcDayOfYear();
s = dt.format("%Y-%m-%d");
dt.convert(tc.TimeZone.local());
dt = dt.toZone(tc.TimeZone.utc());
date = dt.toDate();
+132 -9
View File
@@ -1,4 +1,4 @@
// Type definitions for timezonecomplete 1.4.6
// Type definitions for timezonecomplete 1.5.1
// Project: https://github.com/SpiritIT/timezonecomplete
// Definitions by: Rogier Schouten <https://github.com/rogierschouten>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
@@ -11,10 +11,14 @@ declare module 'timezonecomplete' {
export import isLeapYear = basics.isLeapYear;
export import daysInMonth = basics.daysInMonth;
export import daysInYear = basics.daysInYear;
export import dayOfYear = basics.dayOfYear;
export import firstWeekDayOfMonth = basics.firstWeekDayOfMonth;
export import lastWeekDayOfMonth = basics.lastWeekDayOfMonth;
export import weekDayOnOrAfter = basics.weekDayOnOrAfter;
export import weekDayOnOrBefore = basics.weekDayOnOrBefore;
export import weekNumber = basics.weekNumber;
export import weekOfMonth = basics.weekOfMonth;
export import dayOfYear = basics.dayOfYear;
export import secondOfDay = basics.secondOfDay;
import datetime = require("__timezonecomplete/datetime");
export import DateTime = datetime.DateTime;
import duration = require("__timezonecomplete/duration");
@@ -93,6 +97,16 @@ declare module '__timezonecomplete/basics' {
* @return the last occurrence of the week day in the month
*/
export function lastWeekDayOfMonth(year: number, month: number, weekDay: WeekDay): number;
/**
* Returns the first instance of the given weekday in the given month
*
* @param year The year
* @param month the month 1-12
* @param weekDay the desired week day
*
* @return the first occurrence of the week day in the month
*/
export function firstWeekDayOfMonth(year: number, month: number, weekDay: WeekDay): number;
/**
* Returns the day-of-month that is on the given weekday and which is >= the given day.
* Throws if the month has no such day.
@@ -103,6 +117,19 @@ declare module '__timezonecomplete/basics' {
* Throws if the month has no such day.
*/
export function weekDayOnOrBefore(year: number, month: number, day: number, weekDay: WeekDay): number;
export function weekOfMonth(year: number, month: number, day: number): number;
/**
* The ISO 8601 week number for the given date. Week 1 is the week
* that has January 4th in it, and it starts on Monday.
* See https://en.wikipedia.org/wiki/ISO_week_date
*
* @param year Year e.g. 1988
* @param month Month 1-12
* @param day Day of month 1-31
*
* @return Week number 1-53
*/
export function weekNumber(year: number, month: number, day: number): number;
/**
* Convert a unix milli timestamp into a TimeT structure.
* This does NOT take leap seconds into account.
@@ -131,6 +158,10 @@ declare module '__timezonecomplete/basics' {
* This does NOT take leap seconds into account.
*/
export function weekDayNoLeapSecs(unixMillis: number): WeekDay;
/**
* N-th second in the day, counting from 0
*/
export function secondOfDay(hour: number, minute: number, second: number): number;
/**
* Basic representation of a date and time
*/
@@ -332,6 +363,12 @@ declare module '__timezonecomplete/datetime' {
* @return The time zone that the date is in. May be null for unaware dates.
*/
zone(): timezone.TimeZone;
/**
* Zone name abbreviation at this time
* @param dstDependent (default true) set to false for a DST-agnostic abbreviation
* @return The abbreviation
*/
zoneAbbreviation(dstDependent?: boolean): string;
/**
* @return the offset w.r.t. UTC in minutes. Returns 0 for unaware dates and for UTC dates.
*/
@@ -369,6 +406,36 @@ declare module '__timezonecomplete/datetime' {
* week day numbers)
*/
weekDay(): basics.WeekDay;
/**
* Returns the day number within the year: Jan 1st has number 0,
* Jan 2nd has number 1 etc.
*
* @return the day-of-year [0-366]
*/
dayOfYear(): number;
/**
* The ISO 8601 week number. Week 1 is the week
* that has January 4th in it, and it starts on Monday.
* See https://en.wikipedia.org/wiki/ISO_week_date
*
* @return Week number [1-53]
*/
weekNumber(): number;
/**
* The week of this month. There is no official standard for this,
* but we assume the same rules for the weekNumber (i.e.
* week 1 is the week that has the 4th day of the month in it)
*
* @return Week number [1-5]
*/
weekOfMonth(): number;
/**
* Returns the number of seconds that have passed on the current day
* Does not consider leap seconds
*
* @return seconds [0-86399]
*/
secondOfDay(): number;
/**
* @return Milliseconds since 1970-01-01T00:00:00.000Z
*/
@@ -397,6 +464,13 @@ declare module '__timezonecomplete/datetime' {
* @return The UTC seconds 0-59
*/
utcSecond(): number;
/**
* Returns the UTC day number within the year: Jan 1st has number 0,
* Jan 2nd has number 1 etc.
*
* @return the day-of-year [0-366]
*/
utcDayOfYear(): number;
/**
* @return The UTC milliseconds 0-999
*/
@@ -406,6 +480,29 @@ declare module '__timezonecomplete/datetime' {
* week day numbers)
*/
utcWeekDay(): basics.WeekDay;
/**
* The ISO 8601 UTC week number. Week 1 is the week
* that has January 4th in it, and it starts on Monday.
* See https://en.wikipedia.org/wiki/ISO_week_date
*
* @return Week number [1-53]
*/
utcWeekNumber(): number;
/**
* The week of this month. There is no official standard for this,
* but we assume the same rules for the weekNumber (i.e.
* week 1 is the week that has the 4th day of the month in it)
*
* @return Week number [1-5]
*/
utcWeekOfMonth(): number;
/**
* Returns the number of seconds that have passed on the current day
* Does not consider leap seconds
*
* @return seconds [0-86399]
*/
utcSecondOfDay(): number;
/**
* Convert this date to the given time zone (in-place).
* Throws if this date does not have a time zone.
@@ -514,6 +611,7 @@ declare module '__timezonecomplete/datetime' {
* E.g. "2014-01-01T23:15:33+01:00" for Europe/Amsterdam
*/
toIsoString(): string;
format(formatString: string): string;
/**
* Modified ISO 8601 format string with IANA name if applicable.
* E.g. "2014-01-01T23:15:33.000 Europe/Amsterdam"
@@ -523,6 +621,10 @@ declare module '__timezonecomplete/datetime' {
* Used by util.inspect()
*/
inspect(): string;
/**
* The valueOf() method returns the primitive value of the specified object.
*/
valueOf(): any;
/**
* Modified ISO 8601 format string in UTC without time zone info
*/
@@ -678,6 +780,10 @@ declare module '__timezonecomplete/duration' {
* Used by util.inspect()
*/
inspect(): string;
/**
* The valueOf() method returns the primitive value of the specified object.
*/
valueOf(): any;
}
}
@@ -923,13 +1029,15 @@ declare module '__timezonecomplete/timezone' {
hasDst(): boolean;
/**
* Calculate timezone offset from a UTC time.
* @param year local full year
* @param month local month 1-12 (note this deviates from JavaScript date)
* @param day local day of month 1-31
* @param hour local hour 0-23
* @param minute local minute 0-59
* @param second local second 0-59
* @param millisecond local millisecond 0-999
*
* @param year Full year
* @param month Month 1-12 (note this deviates from JavaScript date)
* @param day Day of month 1-31
* @param hour Hour 0-23
* @param minute Minute 0-59
* @param second Second 0-59
* @param millisecond Millisecond 0-999
*
* @return the offset of this time zone with respect to UTC at the given time, in minutes.
*/
offsetForUtc(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number): number;
@@ -965,6 +1073,21 @@ declare module '__timezonecomplete/timezone' {
* @param funcs: the set of functions to use: get() or getUTC()
*/
offsetForZoneDate(date: Date, funcs: javascript.DateFunctions): number;
/**
* Zone abbreviation at given UTC timestamp e.g. CEST for Central European Summer Time.
*
* @param year Full year
* @param month Month 1-12 (note this deviates from JavaScript date)
* @param day Day of month 1-31
* @param hour Hour 0-23
* @param minute Minute 0-59
* @param second Second 0-59
* @param millisecond Millisecond 0-999
* @param dstDependent (default true) set to false for a DST-agnostic abbreviation
*
* @return "local" for local timezone, the offset for an offset zone, or the abbreviation for a proper zone.
*/
abbreviationForUtc(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number, dstDependent?: boolean): string;
/**
* Normalizes non-existing local times by adding a forward offset change.
* During a forward standard offset change or DST offset change, some amount of
+5 -5
View File
@@ -140,18 +140,18 @@ _.delay(log, 1000, 'logged later');
_.defer(function () { alert('deferred'); });
var updatePosition = () => alert('updating position...');
var updatePosition = (param:string) => alert('updating position... Param: ' + param);
var throttled = _.throttle(updatePosition, 100);
$(window).scroll(throttled);
var calculateLayout = () => alert('calculating layout...');
var calculateLayout = (param:string) => alert('calculating layout... Param: ' + param);
var lazyLayout = _.debounce(calculateLayout, 300);
$(window).resize(lazyLayout);
var createApplication = () => alert('creating application...');
var createApplication = (param:string) => alert('creating application... Param: ' + param);
var initialize = _.once(createApplication);
initialize();
initialize();
initialize("me");
initialize("me");
var notes: any[];
var render = () => alert("rendering...");
+9 -9
View File
@@ -1045,10 +1045,10 @@ interface UnderscoreStatic {
* @param options Allows for disabling execution of the throttled function on either the leading or trailing edge.
* @return `fn` with a throttle of `wait`.
**/
throttle(
func: any,
throttle<T extends Function>(
func: T,
wait: number,
options?: _.ThrottleSettings): Function;
options?: _.ThrottleSettings): T;
/**
* Creates and returns a new debounced version of the passed function that will postpone its execution
@@ -1064,10 +1064,10 @@ interface UnderscoreStatic {
* @param immediate True if `fn` should be invoked on the leading edge of `waitMS` instead of the trailing edge.
* @return Debounced version of `fn` that waits `wait` ms when invoked.
**/
debounce(
fn: Function,
debounce<T extends Function>(
fn: T,
wait: number,
immediate?: boolean): Function;
immediate?: boolean): T;
/**
* Creates a version of the function that can only be called one time. Repeated calls to the modified
@@ -1076,7 +1076,7 @@ interface UnderscoreStatic {
* @param fn Function to only execute once.
* @return Copy of `fn` that can only be invoked once.
**/
once(fn: Function): Function;
once<T extends Function>(fn: T): T;
/**
* Creates a version of the function that will only be run after first being called count times. Useful
@@ -1086,9 +1086,9 @@ interface UnderscoreStatic {
* @fn The function to defer execution `count` times.
* @return Copy of `fn` that will not execute until it is invoked `count` times.
**/
after(
after<T extends Function>(
count: number,
fn: Function): Function;
fn: T): T;
/**
* Wraps the first function inside of the wrapper function, passing it as the first argument. This allows