From 39ef126a9f10e7c9bac17b230e00158dc17bbaf5 Mon Sep 17 00:00:00 2001 From: Mohsen Azimi Date: Sat, 24 Jun 2017 09:51:56 -0700 Subject: [PATCH 1/7] Upgrade to TypeScript 2.4 as well as other dependencies --- package.json | 18 +++++++++--------- src/compiler.ts | 6 ++++-- .../react-js-make-props-and-state-transform.ts | 4 ++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 17d8438..b957a88 100644 --- a/package.json +++ b/package.json @@ -30,20 +30,20 @@ "license": "Apache-2.0", "dependencies": { "chalk": "^1.1.3", - "commander": "^2.9.0", + "commander": "^2.10.0", "glob": "^7.1.2", - "typescript": "^2.3.2" + "typescript": "^2.4.0" }, "devDependencies": { "@types/chalk": "^0.4.31", - "@types/commander": "^2.9.0", + "@types/commander": "^2.9.1", "@types/glob": "^5.0.30", - "@types/jest": "^19.2.3", - "@types/node": "^7.0.12", - "@types/react": "^15.0.21", - "jest": "^20.0.0", - "ts-jest": "^20.0.1", - "ts-node": "^3.0.2", + "@types/jest": "^20.0.2", + "@types/node": "^8.0.2", + "@types/react": "^15.0.31", + "jest": "^20.0.4", + "ts-jest": "^20.0.6", + "ts-node": "^3.1.0", "tslint": "^5.2.0" } } diff --git a/src/compiler.ts b/src/compiler.ts index 0762e58..6b5b0d9 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -28,8 +28,10 @@ export function compile(filePath: string, factoryFactories: TransformFactoryFact ======================= Diagnostics for ${filePath} ======================= `)); for (const diag of result.diagnostics) { - const pos = diag.file.getLineAndCharacterOfPosition(diag.start); - console.log(`(${pos.line}, ${pos.character}) ${diag.messageText}`) + if (diag.file && diag.start) { + const pos = diag.file.getLineAndCharacterOfPosition(diag.start); + console.log(`(${pos.line}, ${pos.character}) ${diag.messageText}`) + } } } diff --git a/src/transforms/react-js-make-props-and-state-transform.ts b/src/transforms/react-js-make-props-and-state-transform.ts index bc82317..6aa9d1d 100644 --- a/src/transforms/react-js-make-props-and-state-transform.ts +++ b/src/transforms/react-js-make-props-and-state-transform.ts @@ -222,8 +222,8 @@ export function reactJSMakePropsAndStateInterfaceTransformFactoryFactory(typeChe console.warn('Bad value for propType', name, 'at', propertyAssignment.getStart()); return result; } - const typeValue = getTypeFromReactPropTypeExpression(propertyAssignment.initializer) - const propertySignature = ts.createPropertySignature(name, undefined, typeValue, undefined); + const typeValue = getTypeFromReactPropTypeExpression(propertyAssignment.initializer); + const propertySignature = ts.createPropertySignature([], name, undefined, typeValue, undefined); result.members.push(propertySignature) return result; }, ts.createTypeLiteralNode([])); From fee87efd7e075bcab155ba509b49f2dc14b6f9c1 Mon Sep 17 00:00:00 2001 From: Mohsen Azimi Date: Sat, 24 Jun 2017 10:02:23 -0700 Subject: [PATCH 2/7] Update test according to the new printer --- .../empty-empty/output.tsx | 4 +--- test/end-to-end/basic/output.tsx | 6 ++---- .../propless-stateless/output.tsx | 4 +--- .../propless-stateless/output.tsx | 4 +--- .../set-state-advanced/output.tsx | 18 ++---------------- .../set-state-only/output.tsx | 9 ++------- .../state-in-class-member/output.tsx | 7 ++----- .../state-in-constructor/output.tsx | 8 ++------ .../static-proptypes-many-props/output.tsx | 6 +++--- 9 files changed, 16 insertions(+), 50 deletions(-) diff --git a/test/collapse-intersection-interfaces-transform/empty-empty/output.tsx b/test/collapse-intersection-interfaces-transform/empty-empty/output.tsx index c2049e0..579668f 100644 --- a/test/collapse-intersection-interfaces-transform/empty-empty/output.tsx +++ b/test/collapse-intersection-interfaces-transform/empty-empty/output.tsx @@ -1,3 +1 @@ -type Foo = { - -}; \ No newline at end of file +type Foo = {}; diff --git a/test/end-to-end/basic/output.tsx b/test/end-to-end/basic/output.tsx index bd07c26..02e67d4 100644 --- a/test/end-to-end/basic/output.tsx +++ b/test/end-to-end/basic/output.tsx @@ -1,12 +1,10 @@ import * as React from 'react'; -type IMyComponentProps = { - -}; +type IMyComponentProps = {}; type IMyComponentState = void; export default class MyComponent extends React.Component { render() { return
; } -} \ No newline at end of file +} diff --git a/test/react-hoist-generics-transform/propless-stateless/output.tsx b/test/react-hoist-generics-transform/propless-stateless/output.tsx index a6b24f3..9ee56a0 100644 --- a/test/react-hoist-generics-transform/propless-stateless/output.tsx +++ b/test/react-hoist-generics-transform/propless-stateless/output.tsx @@ -1,8 +1,6 @@ import * as React from 'react'; -type IMyComponentProps = { - -}; +type IMyComponentProps = {}; type IMyComponentState = void; export default class MyComponent extends React.Component { render() { diff --git a/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx b/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx index 3eae241..d61f77b 100644 --- a/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx +++ b/test/react-js-make-props-and-state-transform/propless-stateless/output.tsx @@ -1,8 +1,6 @@ import * as React from 'react'; -export default class MyComponent extends React.Component<{ - - }, void> { +export default class MyComponent extends React.Component<{}, void> { render() { return
; } diff --git a/test/react-js-make-props-and-state-transform/set-state-advanced/output.tsx b/test/react-js-make-props-and-state-transform/set-state-advanced/output.tsx index 66b9845..a254578 100644 --- a/test/react-js-make-props-and-state-transform/set-state-advanced/output.tsx +++ b/test/react-js-make-props-and-state-transform/set-state-advanced/output.tsx @@ -1,20 +1,6 @@ import * as React from 'react'; -export default class MyComponent extends React.Component<{ - }, { - foo: number; - bar: number; - } & { - baz: number; - } & { - something: { - big: number; - here: string; - of: { - a: number; - }[]; - }; - }> { +export default class MyComponent extends React.Component<{}, { foo: number; bar: number; } & { baz: number; } & { something: { big: number; here: string; of: { a: number; }[]; }; }> { render() { return