UNPKG

ts-morph

Version:

TypeScript compiler wrapper for static analysis and code manipulation.

869 lines (471 loc) 151 kB
# Change Log All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. <a name="10.0.1"></a> ## [10.0.1](https://github.com/dsherret/ts-morph/compare/10.0.0...10.0.1) (2021-02-24) ### Bug Fixes * Fix ts-morph declaration file. ([e51eb0a](https://github.com/dsherret/ts-morph/commit/e51eb0a)) <a name="10.0.0"></a> # [10.0.0](https://github.com/dsherret/ts-morph/compare/9.1.0...10.0.0) (2021-02-24) ### Bug Fixes * [#889](https://github.com/dsherret/ts-morph/issues/889) - Fix internal root directory check to work on windows. ([6b2963c](https://github.com/dsherret/ts-morph/commit/6b2963c)) * [#926](https://github.com/dsherret/ts-morph/issues/926) - `ExportedDeclarations` should include `SourceFile` and fixed handling of namespace exports. ([b6bda27](https://github.com/dsherret/ts-morph/commit/b6bda27)) ### Features * [#916](https://github.com/dsherret/ts-morph/issues/916) - Type - Add literal related helper properties. ([fd0acc8](https://github.com/dsherret/ts-morph/commit/fd0acc8)) * [#924](https://github.com/dsherret/ts-morph/issues/924) - NamespaceDeclaration -> ModuleDeclaration ([3dd5c72](https://github.com/dsherret/ts-morph/commit/3dd5c72)) * Add `Node#getFlags()`. ([b9769c2](https://github.com/dsherret/ts-morph/commit/b9769c2)) * Add isKnownTypesPackageName option ([#909](https://github.com/dsherret/ts-morph/issues/909)) ([398d946](https://github.com/dsherret/ts-morph/commit/398d946)) * Bundle typescript package in ts-morph/common ([#934](https://github.com/dsherret/ts-morph/issues/934)) ([1cccd02](https://github.com/dsherret/ts-morph/commit/1cccd02)) * Upgrade to TS 4.2 ([8dacc4f](https://github.com/dsherret/ts-morph/commit/8dacc4f)) ### BREAKING CHANGES * Upgraded to TS 4.2 (see TypeScript blog for breaking changes). * ts-morph did not properly support some ambient and all shorthand ambient module declarations. Now `NamespaceDeclaration` is `ModuleDeclaration`. You will need to rename anything that references "Namespace" and change it to "Module". * The `ExportedDeclarations` union type now properly includes `SourceFile`. It previously could have done that anyway and your code might not have handled it. * TypeScript is now bundled with ts-morph. You may still access TypeScript via `import { ts } from "ts-morph"` as you should have been doing anyway. * The lib files/lib.d.ts files are now served from memory regardless of the file system host. If you want the old behaviour, specify a `libFolderPath` in the `Project` constructor's options. <a name="9.1.0"></a> # [9.1.0](https://github.com/dsherret/ts-morph/compare/9.0.0...9.1.0) (2020-11-26) ### Features * Add Directory#getProject() ([bef39b8](https://github.com/dsherret/ts-morph/commit/bef39b8)) * Support providing file paths to `getRelativePathTo` and `getRelativePathToAsModuleSpecifier`. ([df43d12](https://github.com/dsherret/ts-morph/commit/df43d12)) <a name="9.0.0"></a> # [9.0.0](https://github.com/dsherret/ts-morph/compare/8.2.0...9.0.0) (2020-11-21) ### Bug Fixes * [#878](https://github.com/dsherret/ts-morph/issues/878) - Fix tsconfig file resolution ([#883](https://github.com/dsherret/ts-morph/issues/883)) ([23ab8f5](https://github.com/dsherret/ts-morph/commit/23ab8f5), [8c7e8ba](https://github.com/dsherret/ts-morph/commit/8c7e8ba)) - Thanks [@Zzzen](https://github.com/Zzzen)! Previously ts-morph was incorrectly resolving files based on `rootDir` and `rootDirs`, but according to the nicely updated tsconfig documentation, these options have nothing to do with file resolution ([read more](https://www.typescriptlang.org/tsconfig#rootDir)). If you run into any trouble, try using `"include": ["./your-source-dir"]` at the top level of the config file instead of `"rootDir": ["./your-source-dir"]` in compiler options or please open an issue. ### Code Refactoring * [#838](https://github.com/dsherret/ts-morph/issues/838) - `addFilesFromTsConfig` is now inverted to `skipAddingFilesFromTsConfig`. Default behaviour is the same. ([1fda310](https://github.com/dsherret/ts-morph/commit/1fda310)) ### Features * [#858](https://github.com/dsherret/ts-morph/issues/858) - Remove `BooleanLiteral` and replace with `TrueLiteral` and `FalseLiteral`. ([97f0873](https://github.com/dsherret/ts-morph/commit/97f0873)) * [#885](https://github.com/dsherret/ts-morph/issues/885) - Upgrade to TS 4.1 ([d5395f6](https://github.com/dsherret/ts-morph/commit/d5395f6)) ### Performance Improvements * [#881](https://github.com/dsherret/ts-morph/issues/881) - Implement `getProjectVersion` on `LanguageServiceHost` ([#884](https://github.com/dsherret/ts-morph/issues/884)) ([916ffb4](https://github.com/dsherret/ts-morph/commit/916ffb4), [646f797](https://github.com/dsherret/ts-morph/commit/646f797)) - Thanks [@geremih](https://github.com/geremih)! ### BREAKING CHANGES * Upgraded to TS 4.1. * `addFilesFromTsConfig` is now inverted to `skipAddingFilesFromTsConfig`. Default behaviour is the same. This was done to make the option align with the other options. * `BooleanLiteral` is now a type alias of `TrueLiteral` and `FalseLiteral`. This was done to match the same change made in the compiler API. <a name="8.2.0"></a> # [8.2.0](https://github.com/dsherret/ts-morph/compare/8.1.2...8.2.0) (2020-11-12) ### Features * Add `Project#getConfigFileParsingDiagnostics`. ([3f9f252](https://github.com/dsherret/ts-morph/commit/3f9f252)) <a name="8.1.2"></a> ## [8.1.2](https://github.com/dsherret/ts-morph/compare/8.1.1...8.1.2) (2020-10-12) ### Bug Fixes * Fixed adding const modifier to exported enum ([#875](https://github.com/dsherret/ts-morph/issues/875)) ([b539a07](https://github.com/dsherret/ts-morph/commit/b539a07)) - Thanks [@IKatsuba](https://github.com/IKatsuba)! <a name="8.1.1"></a> ## [8.1.1](https://github.com/dsherret/ts-morph/compare/8.1.0...8.1.1) (2020-09-21) ### Bug Fixes * [#867](https://github.com/dsherret/ts-morph/issues/867) - Inspecting and manipulating new expressions without parenthesis would throw. ([1e5c9c0](https://github.com/dsherret/ts-morph/commit/1e5c9c0)) <a name="8.1.0"></a> # [8.1.0](https://github.com/dsherret/ts-morph/compare/0.8.0...8.1.0) (2020-08-25) ### Features * [#803](https://github.com/dsherret/ts-morph/issues/803) - Standardize nodes with `getExpression()` method to be `ExpressionedNode`s. ([3550cbf](https://github.com/dsherret/ts-morph/commit/3550cbf)) * Add JSDocDeprecatedTag. ([d73c480](https://github.com/dsherret/ts-morph/commit/d73c480)) <a name="8.0.0"></a> # [8.0.0](https://github.com/dsherret/ts-morph/compare/7.3.0...8.0.0) (2020-08-20) ### Bug Fixes * [#853](https://github.com/dsherret/ts-morph/issues/853) - Fix nested sibling transformations ([59b31b1](https://github.com/dsherret/ts-morph/commit/59b31b1)) - Thanks [@vsiao](https://github.com/vsiao)! ### Features * [#855](https://github.com/dsherret/ts-morph/issues/855) - Add Author, Callback, Enum, Implements JSDoc tags ([f5b4bc9](https://github.com/dsherret/ts-morph/commit/f5b4bc9)) - Thanks [@ilyaulyanov](https://github.com/ilyaulyanov)! * [#857](https://github.com/dsherret/ts-morph/issues/857) - Upgrade to TypeScript 4.0 ([67017f9](https://github.com/dsherret/ts-morph/commit/67017f9)) ### BREAKING CHANGES * Upgraded to TypeScript 4.0 * `TupleTypeNode#getElementTypeNodes()` is now `getElements()` to match the change in the compiler API. <a name="7.3.0"></a> # [7.3.0](https://github.com/dsherret/ts-morph/compare/7.2.0...7.3.0) (2020-08-11) ### Features * [#842](https://github.com/dsherret/ts-morph/issues/842) - Allow calling Node.is** functions with undefined value ([fff2cf8](https://github.com/dsherret/ts-morph/commit/fff2cf8)) - Thanks [@sisisin](https://github.com/sisisin)! <a name="7.2.0"></a> # [7.2.0](https://github.com/dsherret/ts-morph/compare/7.1.3...7.2.0) (2020-08-09) ### Bug Fixes * [#840](https://github.com/dsherret/ts-morph/issues/840) - Correctly add name to class without name and with extends or implements. ([ed764a7](https://github.com/dsherret/ts-morph/commit/ed764a7)) ### Features * Add quotations around enum members with invalid names ([#839](https://github.com/dsherret/ts-morph/issues/839)) ([affc253](https://github.com/dsherret/ts-morph/commit/affc253)) Thanks [@jeswr](https://github.com/jeswr)! * Implement JSDocReadonlyTag and others ([abbf208](https://github.com/dsherret/ts-morph/commit/abbf208)) <a name="7.1.3"></a> ## [7.1.3](https://github.com/dsherret/ts-morph/compare/7.1.2...7.1.3) (2020-07-20) ### Bug Fixes * [#835](https://github.com/dsherret/ts-morph/issues/835) - Do not create a parent directory when checking if it exists. ([698a169](https://github.com/dsherret/ts-morph/commit/698a169)) <a name="7.1.2"></a> ## [7.1.2](https://github.com/dsherret/ts-morph/compare/7.1.1...7.1.2) (2020-06-18) ### Bug Fixes * [#827](https://github.com/dsherret/ts-morph/issues/827) - `realpathSync` should not throw ([f427e57](https://github.com/dsherret/ts-morph/commit/f427e57)) <a name="7.1.1"></a> ## [7.1.1](https://github.com/dsherret/ts-morph/compare/7.1.0...7.1.1) (2020-06-04) ### Bug Fixes * [#823](https://github.com/dsherret/ts-morph/issues/823) - SourceFile#replaceWithText would sometimes throw when previous code had syntax errors. ([cc66fc0](https://github.com/dsherret/ts-morph/commit/cc66fc0)) <a name="7.1.0"></a> # [7.1.0](https://github.com/dsherret/ts-morph/compare/7.0.2...7.1.0) (2020-05-16) ### Bug Fixes * [#817](https://github.com/dsherret/ts-morph/issues/817) - Fix addJsDoc failing when there's no non-whitespace/asterisk characters in the jsdoc. ([6ba8f5a](https://github.com/dsherret/ts-morph/commit/6ba8f5a)) ### Features * [#816](https://github.com/dsherret/ts-morph/issues/816) - Update Typescript 3.9.2 ([ce8ac9c](https://github.com/dsherret/ts-morph/commit/ce8ac9c)) <a name="7.0.3"></a> ## [7.0.3](https://github.com/dsherret/ts-morph/compare/7.0.2...7.0.3) (2020-04-26) ### Bug Fixes * [#808](https://github.com/dsherret/ts-morph/issues/808) - Unwrap would throw an error if body starts or ends with comments. ([eba6037](https://github.com/dsherret/ts-morph/commit/eba6037)) <a name="7.0.2"></a> ## [7.0.2](https://github.com/dsherret/ts-morph/compare/7.0.1...7.0.2) (2020-04-08) ### Performance Improvements * **manipulation:** [#807](https://github.com/dsherret/ts-morph/issues/807) - Optimise getTextFromTextChanges performance ([d6f461f](https://github.com/dsherret/ts-morph/commit/d6f461f)) - Thanks [@killagu](https://github.com/killagu)! <a name="7.0.1"></a> ## [7.0.1](https://github.com/dsherret/ts-morph/compare/7.0.0...7.0.1) (2020-03-29) ### Bug Fixes * [#799](https://github.com/dsherret/ts-morph/issues/799) - Support renaming anonymous class declarations ([253a43f](https://github.com/dsherret/ts-morph/commit/253a43f)) <a name="7.0.0"></a> # [7.0.0](https://github.com/dsherret/ts-morph/compare/6.0.2...7.0.0) (2020-02-23) ### Bug Fixes * [#778](https://github.com/dsherret/ts-morph/issues/778) - Fixes error being thrown when inserting after a jsdoc and the jsdoc is the last member or statement. ([e069eff](https://github.com/dsherret/ts-morph/commit/e069eff)) * [#783](https://github.com/dsherret/ts-morph/issues/783) - Fix broken documentation links on npm. ([c997339](https://github.com/dsherret/ts-morph/commit/c997339)) ### Code Refactoring * Only support Node 10+. ([2339210](https://github.com/dsherret/ts-morph/commit/2339210)) ### Features * [#779](https://github.com/dsherret/ts-morph/issues/779) - Implement JSDocTemplateTag and JSDocThisTag. ([9bfc32e](https://github.com/dsherret/ts-morph/commit/9bfc32e)) * [#782](https://github.com/dsherret/ts-morph/issues/782) - Add `Node#getProject()` ([35f6bcf](https://github.com/dsherret/ts-morph/commit/35f6bcf)) * Support TypeScript 3.8. ([a2785b4](https://github.com/dsherret/ts-morph/commit/a2785b4)) ### BREAKING CHANGES * Only Node 10+ has full support. Some functionality might not work on older versions of Node. * Update to TypeScript 3.8. <a name="6.0.2"></a> ## [6.0.2](https://github.com/dsherret/ts-morph/compare/6.0.1...6.0.2) (2019-12-08) ### Bug Fixes * Fix incorrect count when getting line count. <a name="6.0.1"></a> ## [6.0.1](https://github.com/dsherret/ts-morph/compare/6.0.0...6.0.1) (2019-12-07) I unpublished 6.0.0 and published this version instead. ### Bug Fixes * `JSDocTag#getStructure()` was not including newlines at the start in the text. ([543c7e6](https://github.com/dsherret/ts-morph/commit/543c7e6)) * `Structures` should contain `JSDocTagStructure` ([f9f8bbc](https://github.com/dsherret/ts-morph/commit/f9f8bbc)) * Fix JSDoc being printed without blank lines. ([8a84ddf](https://github.com/dsherret/ts-morph/commit/8a84ddf)) * Fix JSDocTag printing an immediate text newline with a trailing whitespace. ([be44781](https://github.com/dsherret/ts-morph/commit/be44781)) * Fix JSDocTag#getStructure() not returning the whole tag text. ([c096d30](https://github.com/dsherret/ts-morph/commit/c096d30)) <a name="6.0.0"></a> # [6.0.0](https://github.com/dsherret/ts-morph/compare/5.0.0...6.0.0) (2019-12-07) ### Bug Fixes * **common:** Fix running in the browser. ([7d81e98](https://github.com/dsherret/ts-morph/commit/7d81e98)) * Fix bug where `Project#getRootDirectories()` might return a directory not in the project. ([e9878b1](https://github.com/dsherret/ts-morph/commit/e9878b1)) * Getting symbol exports by name should call `ts.escapeLeadingUnderscores` on the name. ([d2694ba](https://github.com/dsherret/ts-morph/commit/d2694ba)) ### Code Refactoring * [#767](https://github.com/dsherret/ts-morph/issues/767) - Rename `StructureTypeGuards` -> `Structure` ([b28ed73](https://github.com/dsherret/ts-morph/commit/b28ed73)) * `FileSystemHost#glob` is now asynchronous. A `globSync` method was added. ([942db7a](https://github.com/dsherret/ts-morph/commit/942db7a)) ### Features * [#764](https://github.com/dsherret/ts-morph/issues/764) - Prefer writing single line JS docs. Add JSDoc#isMultiLine(). ([59c8d38](https://github.com/dsherret/ts-morph/commit/59c8d38)) * **bootstrap:** Rename addSourceFiles -> addSourceFilesByPaths to match ts-morph. ([439a0d5](https://github.com/dsherret/ts-morph/commit/439a0d5)) * [#710](https://github.com/dsherret/ts-morph/issues/710) - Manipulation error now throws a custom error object. ([a8881d7](https://github.com/dsherret/ts-morph/commit/a8881d7)) * [#741](https://github.com/dsherret/ts-morph/issues/741) - `Directory#getSourceFiles` now accepts globs. ([b78cd39](https://github.com/dsherret/ts-morph/commit/b78cd39)) * [#750](https://github.com/dsherret/ts-morph/issues/750) - Creating an in-memory file system now loads the lib files by default. ([b1ff3ef](https://github.com/dsherret/ts-morph/commit/b1ff3ef)) * [#750](https://github.com/dsherret/ts-morph/issues/750) - The virtual file system host will have lib files loaded by default. ([8a8cf93](https://github.com/dsherret/ts-morph/commit/8a8cf93)) * [#760](https://github.com/dsherret/ts-morph/issues/760) - Move TypeGuards to be static members of Node (methods still exist on TypeGuards, but will be removed later). ([9b1e659](https://github.com/dsherret/ts-morph/commit/9b1e659)), closes [#728](https://github.com/dsherret/ts-morph/issues/728) * [#763](https://github.com/dsherret/ts-morph/issues/763) - Add Directory#clear(). ([df93db3](https://github.com/dsherret/ts-morph/commit/df93db3)) * [#765](https://github.com/dsherret/ts-morph/issues/765) - Add QuestionDotTokenableNode. ([b620848](https://github.com/dsherret/ts-morph/commit/b620848)) * `SourceFile#applyTextChanges` now accepts objects of type `ts.TextChange`. ([e72c3f0](https://github.com/dsherret/ts-morph/commit/e72c3f0)) * Add `getTypeExpressionOrThrow()` to `JSDocReturnTag` and `JSDocPropertyLikeTag` ([8102360](https://github.com/dsherret/ts-morph/commit/8102360)) * Add `JSDoc#insertTags` and similar methods. ([67a2a66](https://github.com/dsherret/ts-morph/commit/67a2a66)) * Add `JSDocTag#remove()`. ([8b037aa](https://github.com/dsherret/ts-morph/commit/8b037aa)) * Add `JSDocTag#setTagName` ([688b783](https://github.com/dsherret/ts-morph/commit/688b783)) * Add JSDocTagStructure. ([aab3e9c](https://github.com/dsherret/ts-morph/commit/aab3e9c)) * Expose `InMemoryFileSystemHost`. ([2176f2c](https://github.com/dsherret/ts-morph/commit/2176f2c)) * Rename `useVirtualFileSystem` to `useInMemoryFileSystem` ([b69750c](https://github.com/dsherret/ts-morph/commit/b69750c)) * Support declare keyword on class properties. ([7a0c1ab](https://github.com/dsherret/ts-morph/commit/7a0c1ab)) * Upgrade to code-block-writer 10.1.0. ([5eaf5ff](https://github.com/dsherret/ts-morph/commit/5eaf5ff)) * Wrap `BigIntLiteral`. ([85eaa12](https://github.com/dsherret/ts-morph/commit/85eaa12)) ### performance * [#702](https://github.com/dsherret/ts-morph/issues/702) - Fix Project#addSourceFileAtPaths being needlessly slow in some scenarios. ([6db6f60](https://github.com/dsherret/ts-morph/commit/6db6f60)) ### BREAKING CHANGES * `JSDoc#setComment(...)` and `#getComment(...)` are now `setDescription(...)` and `getDescription()`. They also work according to #764. * `StructureTypeGuards` is now `Structure`. * PropertyDeclarationDeclaration and PropertyDeclarationStructure now can have a `declare` keyword (new in TS 3.7). * JS docs will be written as a single line unless multi-line or starting with a newline. Additionally, getting a JS doc structure will have a newline at the start if the JS doc description is one line, but the JS doc is multi-line. * `ProjectOptions#useVirtualFileSystem` is now `useInMemoryFileSystem`. This is a more accurate name. * Creating a Project with `useInMemoryFileSystem: true` will now load in the lib files into the `node_modules/typescript/lib` folder. * Due to the fix for #702, when using `Project#addSourceFileAtPaths` directories that do not have an ancestor directory with a source file included in the results will no longer be added to the project. If you want to ensure that a directory and all its subfolders are added, use `Project#addDirectoryAtPath(path, { recursive: true })`. * `FileSystemHost#glob` is now asynchronous and `#globSync` was added. * Renamed `Directory/Project#addExistingSourceFile` -> `addSourceFileAtPath` * Renamed `Directory/Project#addExistingSourceFileIfExists` -> `addSourceFileAtPathIfExists` * Renamed `Directory/Project#addExistingSourceFiles` -> `addSourceFilesAtPaths` * Renamed `Directory/Project#addExistingDirectory` -> `addDirectoryAtPath` * Renamed `Directory/Project#addExistingDirectoryIfExists` -> `addDirectoryAtPathIfExists` <a name="5.0.0"></a> # [5.0.0](https://github.com/dsherret/ts-morph/compare/4.3.3...5.0.0) (2019-11-08) ### Features * [#733](https://github.com/dsherret/ts-morph/issues/733) - Soft rename addExistingSourceFile-like methods to addSourceFileAtPath-like. ([59fc2d5](https://github.com/dsherret/ts-morph/commit/59fc2d5)) - Thanks [@ChristianIvicevic](https://github.com/ChristianIvicevic)! * Support TypeScript 3.7. ([d86d034](https://github.com/dsherret/ts-morph/commit/d86d034)) * TS 3.7 - Add TypeChecker#getTypeArguments and use that in Type#getTypeArguments. ([616ea3e](https://github.com/dsherret/ts-morph/commit/616ea3e)) * Update implementation for [#733](https://github.com/dsherret/ts-morph/issues/733). ([3613233](https://github.com/dsherret/ts-morph/commit/3613233)) ### BREAKING CHANGES * TypePredicateNode#getTypeNode() now possible returns undefined. * Recommended to use the new `Project#addSourceFileAtPath(path)` methods instead of the ones like `Project#addExistingSourceFile(path)`. The old way will be deprecated in Version 6. * TypeScript 3.7.x support only. <a name="4.3.3"></a> ## [4.3.3](https://github.com/dsherret/ts-morph/compare/4.3.2...4.3.3) (2019-11-07) ### Bug Fixes * Restrict 4.3 version of library to TS < 3.7 ([8ad2d5c](https://github.com/dsherret/ts-morph/commit/8ad2d5c)) <a name="4.3.2"></a> ## [4.3.2](https://github.com/dsherret/ts-morph/compare/4.3.1...4.3.2) (2019-10-22) ### Bug Fixes * [#745](https://github.com/dsherret/ts-morph/issues/745) - Inserting a member when a comment was the last member would throw. ([d83c031](https://github.com/dsherret/ts-morph/commit/d83c031)) <a name="4.3.0"></a> # [4.3.0](https://github.com/dsherret/ts-morph/compare/4.2.0...4.3.0) (2019-10-17) ### Bug Fixes * [#735](https://github.com/dsherret/ts-morph/issues/735) - An unwrappable node would throw an error on unwrap if it had a leading comment. ([2cc4796](https://github.com/dsherret/ts-morph/commit/2cc4796)) ### Features * Add `Node#getWidth(true)` for including js docs in the width (similar to `Node#getStart(true)` in the compiler api). ([03dda0b](https://github.com/dsherret/ts-morph/commit/03dda0b)) <a name="4.2.0"></a> # [4.2.0](https://github.com/dsherret/ts-morph/compare/4.1.1...4.2.0) (2019-10-05) ### Bug Fixes * Fix abstract keyword accidentally being printed before scope. ([c7734dc](https://github.com/dsherret/ts-morph/commit/c7734dc)) * Fix message for Type#getDefaultOrThrow() ([ed1ced7](https://github.com/dsherret/ts-morph/commit/ed1ced7)) ### Features * [#655](https://github.com/dsherret/ts-morph/issues/655) - ExpressionNode - Add `getExpressionIfKind` methods. ([332fb7e](https://github.com/dsherret/ts-morph/commit/332fb7e)) * [#707](https://github.com/dsherret/ts-morph/issues/707) - Add `useTrailingCommas` manipulation setting option. ([938c05c](https://github.com/dsherret/ts-morph/commit/938c05c)) * [#712](https://github.com/dsherret/ts-morph/issues/712) - Add getParentIf and getParentIfOrThrow ([9e037b6](https://github.com/dsherret/ts-morph/commit/9e037b6)) ([@HoldYourWaffle](https://github.com/HoldYourWaffle)) * [#717](https://github.com/dsherret/ts-morph/issues/717) - Update `forgetNodesCreatedInBlock` to allow returning a value. ([fda5970](https://github.com/dsherret/ts-morph/commit/fda5970)) * [#722](https://github.com/dsherret/ts-morph/issues/722) - Wrap TypePredicateNode. ([9af7b34](https://github.com/dsherret/ts-morph/commit/9af7b34)) * Add `Node#forEachDescendantAsArray` ([2043ccb](https://github.com/dsherret/ts-morph/commit/2043ccb)) ### Performance Improvements * [#612](https://github.com/dsherret/ts-morph/issues/612) - insertOverloads should only print. ([8777007](https://github.com/dsherret/ts-morph/commit/8777007)) <a name="4.1.1"></a> ## [4.1.1](https://github.com/dsherret/ts-morph/compare/4.1.0...4.1.1) (2019-10-01) ### Bug Fixes * [#708](https://github.com/dsherret/ts-morph/issues/708) - `getNonWhitespaceStart()` should not include the previous node's trailing comment. ([380c39b](https://github.com/dsherret/ts-morph/commit/380c39b)) * [#708](https://github.com/dsherret/ts-morph/issues/708) - Removing an IfStatement with a preceding else keyword will no longer error. ([f886605](https://github.com/dsherret/ts-morph/commit/f886605)) <a name="4.1.0"></a> # [4.1.0](https://github.com/dsherret/ts-morph/compare/4.0.1...4.1.0) (2019-09-28) ### Features * [#709](https://github.com/dsherret/ts-morph/issues/709) - Check and display syntax diagnostics when a manipulation error occurs. ([07c42b1](https://github.com/dsherret/ts-morph/commit/07c42b1)) * [#703](https://github.com/dsherret/ts-morph/issues/703) - Expand TypeGuards.is implementation to include all node kinds. ([ae82879](https://github.com/dsherret/ts-morph/commit/ae82879)) ([@lazarljubenovic](https://github.com/lazarljubenovic)) <a name="4.0.1"></a> ## [4.0.1](https://github.com/dsherret/ts-morph/compare/4.0.0...4.0.1) (2019-09-12) Thanks to [@cancerberoSgx](https://github.com/cancerberoSgx) for discovering this was a node >= 11 issue. ### Bug Fixes * [#685](https://github.com/dsherret/ts-morph/issues/685) - Fix `applyTextChanges` in node 11 and 12. ([e72b124](https://github.com/dsherret/ts-morph/commit/e72b124)) <a name="4.0.0"></a> # [4.0.0](https://github.com/dsherret/ts-morph/compare/3.1.3...4.0.0) (2019-09-02) ### Bug Fixes * [#667](https://github.com/dsherret/ts-morph/issues/667) - Fix typo in adding-source-files.md ([d635f69](https://github.com/dsherret/ts-morph/commit/d635f69)) * [#691](https://github.com/dsherret/ts-morph/issues/691) - JSDoc.getInnerText would sometimes get the wrong text if the first line content contained an asterisk. ([0661508](https://github.com/dsherret/ts-morph/commit/0661508)) - Thanks [@cancerberoSgx](https://github.com/cancerberoSgx)! * [#692](https://github.com/dsherret/ts-morph/issues/692) - Fix getParent() for TS 3.6. ([37476f8](https://github.com/dsherret/ts-morph/commit/37476f8)) ### Code Refactoring * [#680](https://github.com/dsherret/ts-morph/issues/680) - Rename `SourceFile#getReferencedFiles()` to `getPathReferenceDirectives()`. ([578adc7](https://github.com/dsherret/ts-morph/commit/578adc7)) * `DiagnosticMessageChain#getNext()` now returns an array to match TS 3.6. ([4943196](https://github.com/dsherret/ts-morph/commit/4943196)) * Remove getEmitSkipped() from DirectoryEmitResult because it was not accurate. ([f42ff74](https://github.com/dsherret/ts-morph/commit/f42ff74)) * Rename CompilerExtendedComment to CompilerCommentNode. ([e3db1db](https://github.com/dsherret/ts-morph/commit/e3db1db)) ### Features * [#666](https://github.com/dsherret/ts-morph/issues/666) - Calling `Project#createSourceFile` with an existing file name now suggests to add the overwrite option. ([3022bb8](https://github.com/dsherret/ts-morph/commit/3022bb8)) * [#669](https://github.com/dsherret/ts-morph/issues/669) - Add past parent as second parameter to getParentWhile ([287158e](https://github.com/dsherret/ts-morph/commit/287158e)) - Thanks [@Validark](https://github.com/Validark)! * [#672](https://github.com/dsherret/ts-morph/issues/672) - Add `Type#getPropertyOrThrow` ([c929c6c](https://github.com/dsherret/ts-morph/commit/c929c6c)) * [#680](https://github.com/dsherret/ts-morph/issues/680) - Add `SourceFile#getReferencedSourceFiles()`, `#getNodesReferencingOtherSourceFiles()`, and `#getLiteralsReferencingOtherSourceFiles()`. ([c245acc](https://github.com/dsherret/ts-morph/commit/c245acc)) * Upgrade to code-block-writer 10.0.0. ([5708865](https://github.com/dsherret/ts-morph/commit/5708865)) ### Performance Improvements * [#661](https://github.com/dsherret/ts-morph/issues/661) - Bundle scripts ([6efa96d](https://github.com/dsherret/ts-morph/commit/6efa96d)) ### BREAKING CHANGES * `SourceFile#getReferencedFiles()` is now `getPathReferenceDirectives()`. This was done to prevent confusion with upcoming methods in #680. The name was chosen because it is similar to the methods `getTypeReferenceDirectives()` and `getLibReferenceDirectives()`. * `CodeBlockWriter#indentBlock` is now `indent`. `withHangingIndentation` is now `hangingIndent`. `withHangingIndentationUnlessBlock` is now `hangingIndentUnlessBlock`. * `DiagnosticMessageChain#getNext()` now returns an array to match TS 3.6. * `DirectoryEmitResult#getEmitSkipped()` was removed. Check the output file paths and skipped file paths instead as that's more accurate. * `CompilerExtendedComment` is now called `CompilerCommentNode`. <a name="3.1.3"></a> ## [3.1.3](https://github.com/dsherret/ts-morph/compare/3.1.2...3.1.3) (2019-07-18) ### Bug Fixes * [#665](https://github.com/dsherret/ts-morph/issues/665) - Getting descendants where jsx was used in a non-jsx file would throw an error. ([fa3c3bb](https://github.com/dsherret/ts-morph/commit/fa3c3bb)) <a name="3.1.2"></a> ## [3.1.2](https://github.com/dsherret/ts-morph/compare/3.1.1...3.1.2) (2019-07-16) ### Bug Fixes * Fix windows glob filepaths problem due to upgrading to latest globby. ([e9665a0](https://github.com/dsherret/ts-morph/commit/e9665a0)) * Update to code-block-writer 9.4.1 (Removes accidentally added chai dependency). ([fd6534c](https://github.com/dsherret/ts-morph/commit/fd6534c)) <a name="3.1.1"></a> ## [3.1.1](https://github.com/dsherret/ts-morph/compare/3.0.0...3.1.1) (2019-07-13) ### Bug Fixes * [#663](https://github.com/dsherret/ts-morph/issues/663) - Update globby to 10.0.1. ([07f3417](https://github.com/dsherret/ts-morph/commit/07f3417)) <a name="3.1.0"></a> # [3.1.0](https://github.com/dsherret/ts-morph/compare/3.0.0...3.1.0) (2019-07-03) ### Features * [#657](https://github.com/dsherret/ts-morph/issues/657) - Ability to specify the script kind when creating a source file. ([cb22219](https://github.com/dsherret/ts-morph/commit/cb22219)) * Add DirectoryEmitResult#getSkippedFilePaths(). ([e92ea8d](https://github.com/dsherret/ts-morph/commit/e92ea8d)) ### Bug Fixes * Emitting a source file not in the program will no longer crash. <a name="3.0.0"></a> # [3.0.0](https://github.com/dsherret/ts-morph/compare/2.3.0...3.0.0) (2019-06-29) ### Bug Fixes * [#534](https://github.com/dsherret/ts-morph/issues/534) - Incorrect type resolution behaviour when providing a tsconfig.json file path and having a different current working directory. ([0ecce83](https://github.com/dsherret/ts-morph/commit/0ecce83)) * [#648](https://github.com/dsherret/ts-morph/issues/648) - Comment nodes are no longer accidentally returned in some scenarios. ([ad4c64c](https://github.com/dsherret/ts-morph/commit/ad4c64c)) * ClassLike and TypeElementMembered nodes would not get the correct "add" index when a comment member node was present. ([571ba69](https://github.com/dsherret/ts-morph/commit/571ba69)) * Comment node parser now correctly returns comments on next line after tailing comma in object literal expressions. ([966acb0](https://github.com/dsherret/ts-morph/commit/966acb0)) * Fix issues with `Node#getText({ trimLeadingIndentation: true })` indenting more than it should. ([a2210de](https://github.com/dsherret/ts-morph/commit/a2210de)) * ObjectLiteralExpression insert should insert around comment nodes. ([c3b9f28](https://github.com/dsherret/ts-morph/commit/c3b9f28)), closes [#605](https://github.com/dsherret/ts-morph/issues/605) * Support nodes that may not have a source file (ex. `globalThis` node returned from a symbol) ([b9b0cb0](https://github.com/dsherret/ts-morph/commit/b9b0cb0)) ### Code Refactoring * [#619](https://github.com/dsherret/ts-morph/issues/619) - Rename `StructureTypeGuards` methods to remove word `Node` and `Declaration` in certain cases. ([92331e1](https://github.com/dsherret/ts-morph/commit/92331e1)) * [#633](https://github.com/dsherret/ts-morph/issues/633) - `Node#forEachChild` is now aligned with the compiler API (same with `forEachDescendant`). ([27fa43a](https://github.com/dsherret/ts-morph/commit/27fa43a)) * `SourceFile#getTypeReferenceDirectives()` and `#getReferencedFiles()` better reflects the compiler api. ([350bacb](https://github.com/dsherret/ts-morph/commit/350bacb)) * Remove `renameNode` and `renameLocations` from the language service. ([72f0e1d](https://github.com/dsherret/ts-morph/commit/72f0e1d)) * Rename `ObjectLiteralElementMemberStructures` to `ObjectLiteralExpressionPropertyStructures`. ([98f00d2](https://github.com/dsherret/ts-morph/commit/98f00d2)) ### Features * [#310](https://github.com/dsherret/ts-morph/issues/310) - Add `Symbol#getExportSymbol` and `TypeChecker#getExportSymbolOfSymbol`. ([5fce598](https://github.com/dsherret/ts-morph/commit/5fce598)) * [#561](https://github.com/dsherret/ts-morph/issues/561) - Add methods `Node#getLocals`, `#getLocalByName`, `#getLocalByNameOrThrow` ([c343de3](https://github.com/dsherret/ts-morph/commit/c343de3)) * [#605](https://github.com/dsherret/ts-morph/issues/605) - Add ability to insert comments on enum declarations. ([0420ae1](https://github.com/dsherret/ts-morph/commit/0420ae1)) * [#605](https://github.com/dsherret/ts-morph/issues/605) - Add insertMember-like methods to `ClassLikeDeclarationBase`. ([f55850b](https://github.com/dsherret/ts-morph/commit/f55850b)) * [#605](https://github.com/dsherret/ts-morph/issues/605) - Add insertMember-like methods to `TypeElementMemberedNode`. ([93a070d](https://github.com/dsherret/ts-morph/commit/93a070d)) * [#605](https://github.com/dsherret/ts-morph/issues/605) - ObjectLiteralExpression#insertProperties and similar methods. ([be0f046](https://github.com/dsherret/ts-morph/commit/be0f046)) * [#625](https://github.com/dsherret/ts-morph/issues/625) - Add `writer.withHangingIndent(() => {})`. Also better hanging indent printing ([a544e55](https://github.com/dsherret/ts-morph/commit/a544e55)), closes [#616](https://github.com/dsherret/ts-morph/issues/616) * Add `Writers` alias for `WriterFunctions`. ([79c6694](https://github.com/dsherret/ts-morph/commit/79c6694)) * [#636](https://github.com/dsherret/ts-morph/issues/636) - Writers.returnStatement should do hanging indent in certain cases. ([db6602d](https://github.com/dsherret/ts-morph/commit/db6602d)) * [#638](https://github.com/dsherret/ts-morph/issues/638) - RenameLocation - Support `prefixText` and `suffixText` when renaming. ([9326100](https://github.com/dsherret/ts-morph/commit/9326100)) * `RenameLocation` - Add `getPrefixText()` and `getSuffixText()` ([3cb7a7f](https://github.com/dsherret/ts-morph/commit/3cb7a7f)) * Add `Node#getSymbolsInScope(meaning)` and `TypeChecker#getSymbolsInScope(node, meaning)`. ([25ab43d](https://github.com/dsherret/ts-morph/commit/25ab43d)) * Add TypeGuards.isCommentNode. ([89125a2](https://github.com/dsherret/ts-morph/commit/89125a2)) * Add WriterFunctions.assertion. ([37c875e](https://github.com/dsherret/ts-morph/commit/37c875e)) * Smart comma insertion when printing comma separated values with comments. ([ae62b07](https://github.com/dsherret/ts-morph/commit/ae62b07)) * Upgrade to code-block-writer 9.4.0. ### Performance Improvements * [#615](https://github.com/dsherret/ts-morph/issues/615) - Remove some internal regular expressions. ([cfce40b](https://github.com/dsherret/ts-morph/commit/cfce40b)) * Improve performance of `SourceFile#indent()` and `deindent()`. ([17eefea](https://github.com/dsherret/ts-morph/commit/17eefea)) ### BREAKING CHANGES * `renameNode` and `renameLocations` are removed from the language service. To be consistent, the language service should not have methods that manipulate nodes. * `SourceFile#getTypeReferenceDirectives()` and `#getReferencedFiles()` now return the objects similar to what the compiler api returns. * `Node#forEachChild` is now aligned with the compiler API (same with `forEachDescendant`). These methods now stop when a value is returned in a callback and they will return the returned value. * The `ObjectLiteralElementMemberStructures` alias is now called `ObjectLiteralExpressionPropertyStructures`. This is a more correct name as an object literal expression has "properties" rather than "members" in the compiler api. * Renamed `StructureTypeGuards` methods to remove word `Node` and `Declaration` in certain cases. <a name="2.3.0"></a> # [2.3.0](https://github.com/dsherret/ts-morph/compare/2.2.0...2.3.0) (2019-05-30) Thanks to [@marikaner](https://github.com/marikaner) for implementing the feature in this release! ### Features * [#635](https://github.com/dsherret/ts-morph/issues/635) - Add `WriterFunctions.returnStatement` ([10e8be1](https://github.com/dsherret/ts-morph/commit/10e8be1)) <a name="2.2.0"></a> # [2.2.0](https://github.com/dsherret/ts-morph/compare/2.1.2...2.2.0) (2019-05-25) ### Features * [#628](https://github.com/dsherret/ts-morph/issues/628) - Custom module and type reference directive resolution ([c38c77f](https://github.com/dsherret/ts-morph/commit/c38c77f)) - Thanks [@DanTsk](https://github.com/DanTsk)! * Add `Project#getModuleResolutionHost()` ([9085100](https://github.com/dsherret/ts-morph/commit/9085100)) <a name="2.1.2"></a> ## [2.1.2](https://github.com/dsherret/ts-morph/compare/2.1.1...2.1.2) (2019-05-20) ### Bug Fixes * ObjectLiteralExpression methods would not get the correct "add" index when a comment member node was present. ([23f9276](https://github.com/dsherret/ts-morph/commit/23f9276)) <a name="2.1.1"></a> ## [2.1.1](https://github.com/dsherret/ts-morph/compare/2.1.0...2.1.1) (2019-05-20) ### Bug Fixes * ClassLike and TypeElementMembered nodes would not get the correct "add" index when a comment member node was present. ([af41a29](https://github.com/dsherret/ts-morph/commit/af41a29)) <a name="2.1.0"></a> # [2.1.0](https://github.com/dsherret/ts-morph/compare/2.0.0...2.1.0) (2019-04-29) ### Bug Fixes * `TypeParameterDeclaration#getStructure()` should trim leading indentation on contraint and default. ([ec971ce](https://github.com/dsherret/ts-morph/commit/ec971ce)) * Mixin type guards should maintain the passed in type. ([616c4cc](https://github.com/dsherret/ts-morph/commit/616c4cc)) ### Features * [#567](https://github.com/dsherret/ts-morph/issues/567) - Update `#getStatement()` to work with type guards. ([02c8d89](https://github.com/dsherret/ts-morph/commit/02c8d89)) * [#614](https://github.com/dsherret/ts-morph/issues/614) - Add forEachStructureChild ([f8b0f6d](https://github.com/dsherret/ts-morph/commit/f8b0f6d)) * Add `StructureTypeGuards`. ([6138472](https://github.com/dsherret/ts-morph/commit/6138472)) * Wrap `ConditionalTypeNode`. ([5e3e74c](https://github.com/dsherret/ts-morph/commit/5e3e74c)) * Wrap `InferTypeNode`. ([ec4b3f2](https://github.com/dsherret/ts-morph/commit/ec4b3f2)) * Wrap `ThisTypeNode`. ([6655c51](https://github.com/dsherret/ts-morph/commit/6655c51)) ### Performance Improvements * Upgrade to code-block-writer 8.0.0. ([218442b](https://github.com/dsherret/ts-morph/commit/218442b)) <a name="2.0.0"></a> # [2.0.0](https://github.com/dsherret/ts-morph/compare/1.3.2...2.0.0) (2019-04-20) ### Bug Fixes * The code writer did not handle escaping string chars in strings. ([a87850e](https://github.com/dsherret/ts-morph/commit/a87850e)) * `Node#getDescendantStatements()` is now properly typed as possibly returning an `Expression`. ([9d26400](https://github.com/dsherret/ts-morph/commit/9d26400)) * `ReturnTypedNode` and `TypedNode`'s `#getStructure()` should return the type and return type text without leading indentation. ([4d95e64](https://github.com/dsherret/ts-morph/commit/4d95e64)) * DefinitionInfo.getDeclarationNode() should return a source file when the kind is "module" and width equal to the source file. ([967206f](https://github.com/dsherret/ts-morph/commit/967206f)) * Do not add trailing whitespace when a jsdoc's description includes a blank line. ([cf314da](https://github.com/dsherret/ts-morph/commit/cf314da)) * Fix removing class elements on object literal expressions. ([4e1464e](https://github.com/dsherret/ts-morph/commit/4e1464e)) * Getting/inserting statements on a ModuleBlock was throwing an error. ([2b8adad](https://github.com/dsherret/ts-morph/commit/2b8adad)) * `isOverload()` should return `true` for abstract methods. ([558cdd1](https://github.com/dsherret/ts-morph/commit/558cdd1)) ### Chores * `EnumMember#getStructure()` no longer returns `#value` and will only return `#initializer`. ([ed25348](https://github.com/dsherret/ts-morph/commit/ed25348)) ### Code Refactoring * FileSystemHost.isCaseSensitive() is now required in implementations. ([015a124](https://github.com/dsherret/ts-morph/commit/015a124)) * InitializerGetExpressionableNode is now InitializerExpressionGetableNode for consistency. ([27c25c9](https://github.com/dsherret/ts-morph/commit/27c25c9)) * Remove `VariableDeclarationListStructure` and `VariableDeclarationList#set` and `#getStructure` ([e6953ed](https://github.com/dsherret/ts-morph/commit/e6953ed)) * Remove InitializerSetExpressionableNode. ([990c3c1](https://github.com/dsherret/ts-morph/commit/990c3c1)) * Removed default export from library. ([f127cf4](https://github.com/dsherret/ts-morph/commit/f127cf4)) * Renamed `Type#getArrayType()` to `Type#getArrayElementType()`. ([56b4935](https://github.com/dsherret/ts-morph/commit/56b4935)) ### Features * [#470](https://github.com/dsherret/ts-morph/issues/470) - Node - Ability to get text without leading indentation. ([cd380fa](https://github.com/dsherret/ts-morph/commit/cd380fa)) * [#514](https://github.com/dsherret/ts-morph/issues/514) - Add Node#forEachChildAsArray() ([ba4cd7a](https://github.com/dsherret/ts-morph/commit/ba4cd7a)) * [#563](https://github.com/dsherret/ts-morph/issues/563) - ParameterDeclaration now implements BindingNamedNode instead of DeclarationNamedNode. ([debd09b](https://github.com/dsherret/ts-morph/commit/debd09b)) * [#573](https://github.com/dsherret/ts-morph/issues/573) - ModuledNode#getExportedDeclarations() now returns a map. ([752aaf1](https://github.com/dsherret/ts-morph/commit/752aaf1)) * [#575](https://github.com/dsherret/ts-morph/issues/575) - Extended comments ([a9cc491](https://github.com/dsherret/ts-morph/commit/a9cc491)) * [#581](https://github.com/dsherret/ts-morph/issues/581) - TraversalControl - Add ability to return a value. ([d072b63](https://github.com/dsherret/ts-morph/commit/d072b63)) * [#587](https://github.com/dsherret/ts-morph/issues/587) - SourceFile#getLineAndColumnAtPos ([b987657](https://github.com/dsherret/ts-morph/commit/b987657)) - Thanks [@cancerberoSgx](https://github.com/cancerberoSgx)! * [#588](https://github.com/dsherret/ts-morph/issues/588) - Move `ChildOrderableNode` to `Statement`. ([b5ff9ad](https://github.com/dsherret/ts-morph/commit/b5ff9ad)) * [#595](https://github.com/dsherret/ts-morph/issues/595) - Add SourceFile#fixUnusedIdentifiers ([e4b1b64](https://github.com/dsherret/ts-morph/commit/e4b1b64)) - [@cancerberoSgx](https://github.com/cancerberoSgx) * [#596](https://github.com/dsherret/ts-morph/issues/596) - Add `CombinedCodeAction#applyChanges()` ([2566d53](https://github.com/dsherret/ts-morph/commit/2566d53)) * [#601](https://github.com/dsherret/ts-morph/issues/601) - Add `RefactorEditInfo#applyChanges()` ([ca0ca8c](https://github.com/dsherret/ts-morph/commit/ca0ca8c)) - [@cancerberoSgx](https://github.com/cancerberoSgx) * [#603](https://github.com/dsherret/ts-morph/issues/603) - Make `emit` async and add new `emitSync` ([8a8c1c7](https://github.com/dsherret/ts-morph/commit/8a8c1c7)) * [#606](https://github.com/dsherret/ts-morph/issues/606) - `Symbol#getXByName`-like methods are now `Symbol#getX`. ([08f0710](https://github.com/dsherret/ts-morph/commit/08f0710)) * `#addStatements`/`#insertStatements` now also accepts an array of strings or writer functions. ([d1c361a](https://github.com/dsherret/ts-morph/commit/d1c361a)) * Ability to add/insert statement structures. ([faaa2cd](https://github.com/dsherret/ts-morph/commit/faaa2cd)) * Add `Type#getArrayElementTypeOrThrow()` ([cfd420e](https://github.com/dsherret/ts-morph/commit/cfd420e)) * Add ClassMemberStructures, InterfaceMemberStructures, and Structures type aliases. ([3af3d32](https://github.com/dsherret/ts-morph/commit/3af3d32)) * Add ObjectLiteralElement. ([a40a46d](https://github.com/dsherret/ts-morph/commit/a40a46d)) * getName() should always just return the name node text. ([968c13c](https://github.com/dsherret/ts-morph/commit/968c13c)) * Removed `Project#applyFileTextChanges()`. Added `FileTextChanges#applyChanges()`. ([4c62acb](https://github.com/dsherret/ts-morph/commit/4c62acb)) * Replace `StatementedNode` with new `.statements` property / Add trivia properties to structures ([5f4943b](https://github.com/dsherret/ts-morph/commit/5f4943b)) * Wrap ClassElement. ([73ecfb1](https://github.com/dsherret/ts-morph/commit/73ecfb1)) ### reactor * [#574](https://github.com/dsherret/ts-morph/issues/574) - Target ES2015. ([1e56a01](https://github.com/dsherret/ts-morph/commit/1e56a01)) ### BREAKING CHANGES * The default export was removed. Use the named `Project` export from now on. * ModuledNode#getExportedDeclarations() now returns a map with a key as the export name and the value as an array of declarations that are exported. * * Removed `BodyableNodeStructure`, `BodiedNodeStructure`, `ModuledNodeStructure`. * Removed `.bodyText`, `.classes`, `.enums` properties on structures. Replaced with `.statements` property. * Comments are parsed as children in certain scenarios. See #575 for more details. * `Type#getArrayType()` is now `Type#getArrayElementType()`. This was renamed to better reflect what the method does. * * ParameterDeclaration now implements BindingNamedNode instead of DeclarationNamedNode. * `EnumMember#getStructure()` no longer returns the `#value` and will only return `#initializer`. `#value` should be seen as more of a convenience property for setting the initializer. * `Symbol#getXByName`-like methods were renamed to `Symbol#getX`. * `Project#applyFileTextChanges()` has moved to `FileTextChanges#applyChanges()`. * `SourceFile#getLineNumberAtPos` is now `SourceFile#getLineAndColumnAtPos` * JsxText#containsOnlyWhiteSpaces() is now #containsOnlyTriviaWhiteSpaces(). `FileSystemHost` requires `realpathSync`. * Removed `VariableDeclarationListStructure` and `VariableDeclarationList#set` and `#getStructure`. This was done to simplify the structures. * The library now targets ES2015. * `JsxAttributeStructure` and `JsxSpreadAttributeStructure` are now differentiated based on their `.kind` property. * `JsxElementStructure` and `JsxSelfClosingElementStructure` are now differentiated based on their `.kind` property. * FileSystemHost.isCaseSensitive() is now required in implementations. * Removed DeclarationNamedNode. * InitializerSetExpressionableNode was removed and merged with InitializerExpressionableNode. * InitializerGetExpressionableNode was renamed to InitializerExpressionGetableNode. * getName() always returns the name node text and now never throws. <a name="1.3.2"></a> ## [1.3.2](https://github.com/dsherret/ts-morph/compare/1.3.1...1.3.2) (2019-03-30) ### Bug Fixes * [#591](https://github.com/dsherret/ts-morph/issues/591) - Limit to TS < 3.4 for ts-morph version 1 ([f20e473](https://github.com/dsherret/ts-morph/commit/f20e473)) <a name="1.3.1"></a> ## [1.3.1](https://github.com/dsherret/ts-morph/compare/1.3.0...1.3.1) (2019-03-17) ### Bug Fixes * Depend on a specific version of code-block-writer. ([ccfe90e](https://github.com/dsherret/ts-morph/commit/ccfe90e)) <a name="1.3.0"></a> # [1.3.0](https://github.com/dsherret/ts-morph/compare/1.2.0...1.3.0) (2019-03-03) ### Bug Fixes * [#394](https://github.com/dsherret/ts-morph/issues/394) - Handle inconsistent file path casings on case insensitive file systems. ([f7f6a3c](https://github.com/dsherret/ts-morph/commit/f7f6a3c)) * [#557](https://github.com/dsherret/ts-morph/issues/557) - ExportableNode#isNamedExport() should work when named export is done via export statement. ([7e18296](https://github.com/dsherret/ts-morph/commit/7e18296)) * [#560](https://github.com/dsherret/ts-morph/issues/560) - Type#isEnum() and isEnumLiteral() would not always return correct values. ([98c82bc](https://github.com/dsherret/ts-morph/commit/98c82bc)) ### Features * [#553](https://github.com/dsherret/ts-morph/issues/553) - VariableDeclaration now has read exportable methods like isDefaultExport(). ([0991e96](https://github.com/dsherret/ts-morph/commit/0991e96)) * Add VariableDeclaration#getVariableStatement() ([bba33ee](https://github.com/dsherret/ts-morph/commit/bba33ee)) <a name="1.2.0"></a> # [1.2.0](https://github.com/dsherret/ts-morph/compare/1.1.0...1.2.0) (2019-02-21) Thanks to [@Pineapples](https://github.com/Pineapples) and [@schiller-manuel](https://github.com/schiller-manuel) for their contributions for this release! ### Bug Fixes * [#548](https://github.com/dsherret/ts-morph/issues/548) - Getting JS doc descendants by kind should find nodes. ([2fd7cac](https://github.com/dsherret/ts-morph/commit/2fd7cac)) ### Features * [#535](https://github.com/dsherret/ts-morph/issues/535) - Add getTypeExpression() to JSDocReturnTag and JSDocTypeTag ([61b71b3](https://github.com/dsherret/ts-morph/commit/61b71b3)) ([@Pineapples](https://github.com/Pineapples)) * [#538](https://github.com/dsherret/ts-morph/issues/538) - Add Type#isAny() ([1d3c2bb](https://github.com/dsherret/ts-morph/commit/1d3c2bb)) ([@schiller-manuel](https://github.com/schiller-manuel)) * [#541](https://github.com/dsherret/ts-morph/issues/541) - Add TypeChecker#getResolvedSignature() ([cf5104d](https://github.com/dsherret/ts-morph/commit/cf5104d)) [@schiller-manuel](https://github.com/schiller-manuel) * [#543](https://github.com/dsherret/ts-morph/issues/543) - Wrap IndexedAccessTypeNode. ([a1d5696](https://github.com/dsherret/ts-morph/commit/a1d5696)) * [#547](https://github.com/dsherret/ts-morph/issues/547) - Wrap JSDocSignature and JSDocType. ([9e1b0b2](https://github.com/dsherret/ts-morph/commit/9e1b0b2)) * [#542](https://github.com/dsherret/ts-morph/issues/542) - Add Signature#getDeclaration(). ([d2bc498](https://github.com/dsherret/ts-morph/commit/d2bc498)) ([@schiller-manuel](https://github.com/schiller-manuel)) * Add aliases CallLikeExpression and JsxOpeningLikeElement. ([030c6df](https://github.com/dsherret/ts-morph/commit/030c6df)) * Add Type#isUnknown() ([30bb042](https://github.com/dsherret/ts-morph/commit/30bb042)) * Add WriterFunctions - objectType, unionType, intersectionType ([d10877f](https://github.com/dsherret/ts-morph/commit/d10877f)) * Wrap JSDocFunctionType. ([8965da3](https://github.com/dsherret/ts-morph/commit/8965da3)) <a name="1.1.0"></a> # [1.1.0](https://github.com/dsherret/ts-morph/compare/1.0.0...1.1.0) (2019-02-14) Thanks to [@Pineapples](https://github.com/Pineapples) for implementing these features! ### Features * [#530](https://github.com/dsherret/ts-morph/issues/530) - Add JSDocTypeExpression ([ddc1dd3](https://github.com/dsherret/ts-morph/commit/ddc1dd3)) * [#532](https://github.com/dsherret/ts-morph/issues/532) - Expose isBracketed on JSDocPropertyLikeTag ([1acc955](https://github.com/dsherret/ts-morph/commit/1acc955)) <a name="1.0.0"></a> # 1.0.0 (2019-02-02) ### Features * [#527](https://github.com/dsherret/ts-morph/issues/527) - Adding namespace with quotes defaults to ambient modu