Skip to content
This repository was archived by the owner on Oct 15, 2018. It is now read-only.

Commit 3c79695

Browse files
committed
#185 - Add documentation about includeTsNodes. Change includeCompilerNodes -> includeTsNodes.
1 parent 1c3e114 commit 3c79695

21 files changed

+46
-28
lines changed

readme.md

+18-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Uses the [TypeScript Compiler API](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API) to get information about TypeScript code in an easy to use format.
1010

11-
* [Version 6.0 information](https://github.com/dsherret/ts-type-info/wiki/What%27s-New) - TypeScript 2.0 support
11+
* [Version 6.1 information](https://github.com/dsherret/ts-type-info/wiki/What%27s-New)
1212

1313
```
1414
npm install ts-type-info --save-dev
@@ -123,3 +123,20 @@ abstract class MyClass {
123123

124124
* [Server Bridge](https://github.com/dsherret/server-bridge) - Automatically generates client side code to communicate with the server from the server side code.
125125
* [TsObjectCreate](https://github.com/dsherret/ts-object-create) - Code generation that writes functions for creating objects with their types.
126+
127+
## Include tsNodes
128+
129+
In case there's something you need from the compiler that's not implemented in this library, set the `includeTsNodes` option to true.
130+
This will include the TypeScript compiler nodes in the `tsNode` property of most objects.
131+
132+
```typescript
133+
import * as ts from "typescript";
134+
import * as TsTypeInfo from "ts-type-info";
135+
136+
const result = TsTypeInfo.getInfoFromFiles(["V:\\TestFile.ts"], { includeTsNodes: true });
137+
const typeChecker = result.getTypeChecker(); // ts.TypeChecker in case you need it
138+
const myMethod = result.getFile("TestFile.ts").getClass("MyClass").getMethod("myMethod");
139+
const myMethodNode = myMethod.tsNode as ts.MethodDeclaration;
140+
141+
console.log(myMethodNode.body.statements[0].getText()); // "return `Test: ${myParameter}`;"
142+
```

src/binders/ts/base/TsNodedBinder.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ export class TsNodedBinder extends NodedBinder {
88
}
99

1010
getTsNode() {
11-
return this.factory.getShouldIncludeCompilerNodes() ? this.node.getUnderlyingNode() : undefined;
11+
return this.factory.getShouldincludeTsNodes() ? this.node.getUnderlyingNode() : undefined;
1212
}
1313
}

src/factories/TsFactory.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ export class TsFactory {
1414
private readonly deferredBindings: { binder: binders.IBaseBinder; definition: definitions.BaseDefinition; }[] = [];
1515
private readonly createdTypesWithDefinition: { type: TsType; definition: definitions.BaseTypeDefinition; }[] = [];
1616

17-
constructor(private readonly settings: { includeCompilerNodes: boolean; }) {
17+
constructor(private readonly settings: { includeTsNodes: boolean; }) {
1818
}
1919

20-
getShouldIncludeCompilerNodes() {
21-
return this.settings.includeCompilerNodes;
20+
getShouldincludeTsNodes() {
21+
return this.settings.includeTsNodes;
2222
}
2323

2424
getCallSignatureFromNode(node: TsNode) {

src/main.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ export function getInfoFromFiles(fileNames: string[], options?: Options): Global
2020
}
2121

2222
options = options || {};
23-
const {includeCompilerNodes = false, showDebugMessages = false} = options;
23+
const {includeTsNodes = false, showDebugMessages = false} = options;
2424

2525
Logger.toggleEnabled(showDebugMessages);
2626

2727
const tsMain = new TsMain(fileNames, options);
28-
const tsFactory = new TsFactory({ includeCompilerNodes });
28+
const tsFactory = new TsFactory({ includeTsNodes });
2929

3030
const fileDefinitions = tsMain.getSourceFiles().map(sourceFile => tsFactory.getFileDefinition(sourceFile));
3131

@@ -34,7 +34,7 @@ export function getInfoFromFiles(fileNames: string[], options?: Options): Global
3434

3535
const globalDef = new GlobalDefinition();
3636
globalDef.files = fileDefinitions;
37-
if (includeCompilerNodes)
37+
if (includeTsNodes)
3838
globalDef.typeChecker = tsMain.getTypeScriptTypeChecker();
3939
return globalDef;
4040
}

src/options.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export interface Options {
22
compilerOptions?: CompilerOptions;
33
showDebugMessages?: boolean;
4-
includeCompilerNodes?: boolean;
4+
includeTsNodes?: boolean;
55
}
66

77
// options copied from typescript.d.ts

src/tests/definitions/globalDefinitionTests.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -208,13 +208,13 @@ describe("GlobalDefinition", () => {
208208
describe("typeChecker", () => {
209209
const fileName = path.join(__dirname, "../../../src/tests/testFiles/nonTsFile.js");
210210

211-
describe("includeCompilerNodes true", () => {
212-
const result = getInfoFromFiles([fileName], { includeCompilerNodes: true });
211+
describe("includeTsNodes true", () => {
212+
const result = getInfoFromFiles([fileName], { includeTsNodes: true });
213213
assert.equal(typeof result.typeChecker !== "undefined", true);
214214
});
215215

216-
describe("includeCompilerNodes false", () => {
217-
const result = getInfoFromFiles([fileName], { includeCompilerNodes: false });
216+
describe("includeTsNodes false", () => {
217+
const result = getInfoFromFiles([fileName], { includeTsNodes: false });
218218
assert.equal(typeof result.typeChecker === "undefined", true);
219219
});
220220
});

src/tests/issues/184/184.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {getInfoFromFiles} from "./../../../main";
55

66
describe("Issue #184", () => {
77
const fileName = path.join(__dirname, "../../../../src/tests/issues/184/testFile.ts");
8-
const result = getInfoFromFiles([fileName], { includeCompilerNodes: true });
8+
const result = getInfoFromFiles([fileName], { includeTsNodes: true });
99
const classDef = result.getFile("testFile.ts")!.getClass("MyClass")!;
1010

1111
classDef.methods.forEach(methodDef => {

src/tests/languageTests/class/classNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class MyClass {
1515
}`;
1616

1717
const def = getInfoFromString(code, {
18-
includeCompilerNodes: true
18+
includeTsNodes: true
1919
});
2020

2121
runNodedDefinitionTests(def.classes[0]);

src/tests/languageTests/enum/enumNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ enum MyEnum {
88
}`;
99

1010
const def = getInfoFromString(code, {
11-
includeCompilerNodes: true
11+
includeTsNodes: true
1212
});
1313

1414
runNodedDefinitionTests(def.enums[0]);

src/tests/languageTests/expression/typeNodeNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe("type node noded tests", () => {
55
const code = `var test: string;`;
66

77
const def = getInfoFromString(code, {
8-
includeCompilerNodes: true
8+
includeTsNodes: true
99
});
1010

1111
runNodedDefinitionTestsForNonNamed(def.variables[0].type.node!);

src/tests/languageTests/file/fileNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export * from "./file";
1010
`;
1111

1212
const def = getInfoFromString(code, {
13-
includeCompilerNodes: true
13+
includeTsNodes: true
1414
});
1515

1616
runNodedDefinitionTestsForNonNamed(def);

src/tests/languageTests/function/functionNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function myFunction(param: string): void;
77
function myFunction(param: any) { }`;
88

99
const def = getInfoFromString(code, {
10-
includeCompilerNodes: true
10+
includeTsNodes: true
1111
});
1212

1313
runNodedDefinitionTests(def.functions[0]);

src/tests/languageTests/general/decoratorNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class MyClass1 {
1111
}`;
1212

1313
const def = getInfoFromString(code, {
14-
includeCompilerNodes: true
14+
includeTsNodes: true
1515
});
1616

1717
runNodedDefinitionTests(def.classes[0].decorators[0]);

src/tests/languageTests/general/objectPropertyNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe("object property noded tests", () => {
55
const code = `function myFunc({ t = 4 }: { t: number; }) {}`;
66

77
const def = getInfoFromString(code, {
8-
includeCompilerNodes: true
8+
includeTsNodes: true
99
});
1010

1111
runNodedDefinitionTests(def.functions[0].parameters[0].destructuringProperties[0]);

src/tests/languageTests/general/typeAliasNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe("type alias noded tests", () => {
55
const code = `type MyType = "string";`;
66

77
const def = getInfoFromString(code, {
8-
includeCompilerNodes: true
8+
includeTsNodes: true
99
});
1010

1111
runNodedDefinitionTests(def.typeAliases[0]);

src/tests/languageTests/general/typeParameterNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe("type parameter noded tests", () => {
55
const code = `interface MyInterface<T> {}`;
66

77
const def = getInfoFromString(code, {
8-
includeCompilerNodes: true
8+
includeTsNodes: true
99
});
1010

1111
runNodedDefinitionTests(def.interfaces[0].typeParameters[0]);

src/tests/languageTests/general/userDefinedTypeGuardNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe("user defined type guard noded tests", () => {
55
const code = `function myFunction(obj: MyClass): obj is MyOtherClass {}`;
66

77
const def = getInfoFromString(code, {
8-
includeCompilerNodes: true
8+
includeTsNodes: true
99
});
1010

1111
runNodedDefinitionTestsForNonNamed(def.functions[0].userDefinedTypeGuard!);

src/tests/languageTests/interface/interfaceNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ interface MyInterface {
1212
`;
1313

1414
const def = getInfoFromString(code, {
15-
includeCompilerNodes: true
15+
includeTsNodes: true
1616
});
1717

1818
runNodedDefinitionTests(def.interfaces[0]);

src/tests/languageTests/namespace/namespaceNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe("namespace noded tests", () => {
55
const code = `namespace MyNamespace{}`;
66

77
const def = getInfoFromString(code, {
8-
includeCompilerNodes: true
8+
includeTsNodes: true
99
});
1010

1111
runNodedDefinitionTests(def.namespaces[0]);

src/tests/languageTests/variable/variableNodedTests.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ describe("variable noded tests", () => {
55
const code = `var myVar: any;`;
66

77
const def = getInfoFromString(code, {
8-
includeCompilerNodes: true
8+
includeTsNodes: true
99
});
1010

1111
runNodedDefinitionTests(def.variables[0]);

ts-type-info.d.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export function getInfoFromString(code: string, options?: Options | undefined):
88
export interface Options {
99
compilerOptions?: CompilerOptions | undefined;
1010
showDebugMessages?: boolean | undefined;
11-
includeCompilerNodes?: boolean | undefined;
11+
includeTsNodes?: boolean | undefined;
1212
}
1313

1414
export interface CompilerOptions {
@@ -720,6 +720,7 @@ export const VariableDeclarationType: { Var: VariableDeclarationType; Let: Varia
720720

721721
export class GlobalDefinition {
722722
files: FileDefinition[];
723+
typeChecker?: ts.TypeChecker | undefined;
723724

724725
addDefinitionAsImportToFile(opts: { definition: ExportableDefinitions; file: FileDefinition; alias?: string | undefined; }): void;
725726
addFile(structure: FileStructure): FileDefinition;

0 commit comments

Comments
 (0)