diff --git a/gruntfile.js b/gruntfile.js index ed422ad1d..f282220bb 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -90,7 +90,7 @@ module.exports = function(grunt) src: 'dist/test', options: { mask: '*.js', - timeout: 4000 + timeout: 10000 } } } @@ -120,7 +120,13 @@ module.exports = function(grunt) target: 'ES5', module: 'CommonJS', experimentalDecorators: true, - jsx: 'react' + jsx: 'react', + lib: [ + "lib.dom.d.ts", + "lib.es5.d.ts", + "lib.es2015.iterable.d.ts", + "lib.es2015.collection.d.ts" + ], }); FS.readdirSync(Path.join(base)).forEach(function(directory) { diff --git a/package.json b/package.json index 5bc8c3658..b634d5b82 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "progress": "^2.0.0", "shelljs": "^0.7.0", "typedoc-default-themes": "^0.5.0", - "typescript": "2.3.4" + "typescript": "2.4.1" }, "devDependencies": { "@types/mocha": "^2.2.39", @@ -71,7 +71,7 @@ "LICENSE" ], "scripts": { - "test": "mocha -t 4000 dist/test", + "test": "mocha -t 10000 dist/test", "build": "grunt build_and_test", "prepublish": "npm run build" }, diff --git a/src/lib/converter/converter.ts b/src/lib/converter/converter.ts index 847a6ce0d..6eb114d2d 100644 --- a/src/lib/converter/converter.ts +++ b/src/lib/converter/converter.ts @@ -184,12 +184,12 @@ export class Converter extends ChildableComponent): ConverterComponent { + addComponent(name: string, componentClass: T | ComponentClass): T { const component = super.addComponent(name, componentClass); if (component instanceof ConverterNodeComponent) { this.addNodeConverter(component); } else if (component instanceof ConverterTypeComponent) { - this.addTypeConverter(|TypeNodeConverter> component); + this.addTypeConverter(component); } return component; @@ -201,7 +201,7 @@ export class Converter extends ChildableComponent|TypeNodeConverter) { + private addTypeConverter(converter: ConverterTypeComponent) { if ('supportsNode' in converter && 'convertNode' in converter) { this.typeNodeConverters.push(> converter); this.typeNodeConverters.sort((a, b) => (b.priority || 0) - (a.priority || 0)); diff --git a/src/lib/converter/types/string-literal.ts b/src/lib/converter/types/string-literal.ts index 4a18c4dfe..94301d69a 100644 --- a/src/lib/converter/types/string-literal.ts +++ b/src/lib/converter/types/string-literal.ts @@ -49,6 +49,6 @@ export class StringLiteralConverter extends ConverterTypeComponent implements Ty * @returns The type reflection representing the given string literal type. */ convertType(context: Context, type: ts.LiteralType): Type { - return new StringLiteralType(type.text); + return new StringLiteralType( type.value); } } diff --git a/src/lib/utils/component.ts b/src/lib/utils/component.ts index d5f46a001..982a608c9 100644 --- a/src/lib/utils/component.ts +++ b/src/lib/utils/component.ts @@ -25,7 +25,7 @@ export interface ComponentOptions { const childMappings: {host: any, child: Function}[] = []; export function Component(options: ComponentOptions): ClassDecorator { - return (target: ComponentClass) => { + return (target: Function) => { const proto = target.prototype; if (!(proto instanceof AbstractComponent)) { throw new Error('The `Component` decorator can only be used with a subclass of `AbstractComponent`.'); diff --git a/src/test/converter/decorators/decorators.ts b/src/test/converter/decorators/decorators.ts index 432064088..4c6c43abc 100644 --- a/src/test/converter/decorators/decorators.ts +++ b/src/test/converter/decorators/decorators.ts @@ -41,8 +41,8 @@ function decoratorWithParam(value:boolean):MethodDecorator { * @param options The options object of this decorator. * @param options.name A property on the options object of this decorator. */ -function decoratorWithOptions(options:{name:string}):ClassDecorator { +function decoratorWithOptions(options:{name:string}): ClassDecorator { return function (target) { - target.options = options; - } + (target as any).options = options; + }; } diff --git a/src/test/converter/react/react.d.ts b/src/test/converter/react/react.d.ts index 1d29e4fe0..5bf24b31d 100644 --- a/src/test/converter/react/react.d.ts +++ b/src/test/converter/react/react.d.ts @@ -131,7 +131,7 @@ declare namespace __React { // ---------------------------------------------------------------------- // Base component for plain JS classes - class Component implements ComponentLifecycle { + class Component { constructor(props?: P, context?: any); setState(f: (prevState: S, props: P) => S, callback?: () => any): void; setState(state: S, callback?: () => any): void; @@ -932,7 +932,7 @@ declare module "react/addons" { // ---------------------------------------------------------------------- // Base component for plain JS classes - class Component implements ComponentLifecycle { + class Component { constructor(props?: P, context?: any); setState(f: (prevState: S, props: P) => S, callback?: () => any): void; setState(state: S, callback?: () => any): void; diff --git a/src/test/converter/react/specs.json b/src/test/converter/react/specs.json index b9b9cf795..2eaddf5cb 100644 --- a/src/test/converter/react/specs.json +++ b/src/test/converter/react/specs.json @@ -603,23 +603,6 @@ } ] } - ], - "implementedTypes": [ - { - "type": "reference", - "name": "ComponentLifecycle", - "typeArguments": [ - { - "type": "reference", - "name": "DemoProps", - "id": 2 - }, - { - "type": "intrinsic", - "name": "any" - } - ] - } ] }, { diff --git a/tsconfig.json b/tsconfig.json index a4dc524e3..7067e0c6d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "es2015.collection", "es2015.iterable" ], - "target": "ES5", + "target": "es5", "noImplicitAny": false, "removeComments": true, "noUnusedLocals": true,