Package Exports
- @wessberg/codeanalyzer
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@wessberg/codeanalyzer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
CodeAnalyzer
A service that can analyze your code in great detail ahead of time.
Installation
Simply do: npm install @wessberg/codeanalyzer
.
DISCLAIMER
This a very early alpha version. Do not expect it to compute proper values for all kinds of expressions.
Description
The service is a very flexible and powerful tool for extracting metadata and state snapshots of your code and the identifiers that lives within it.
It builds upon the Typescript AST and understands the entirety of the Typescript syntax.
Here's some of what CodeAnalyzer does:
- It computes the initialization values of variables and return values of function calls - ahead of time.
- It tracks the types of class fields, function/method/constructor parameters, generic call- or new expression arguments and similar.
- It breaks code up into expressions that can be resolved at any time.
For example, consider the following code:
const analyzer = new CodeAnalyzer();
const fileName = "a_file.ts";
analyzer.addFile(fileName, `
function foo () {
let arr = [];
for (let i = 1; i <= 5; i++) {
arr.push(i);
}
return arr;
}
const aVariable: number[] = foo();
`);
const variables = analyzer.getVariableAssignmentsForFile(fileName);
const variable = variables["aVariable"];
console.log(variable.value.resolve()); // [1,2,3,4,5]
console.log(variable.name); // aVariable
console.log(variable.type.flattened); // number[]
console.log(variable.value.expression); // [ Identifier {name: "foo"}, "(", ")"]
If you want to reduce the runtime cost of your code, you can replace function calls and variable initialization statements with the result of computing them ahead of time using the CodeAnalyzer.
But more than that, it can also help you with doing a lot of the work that is usually performed at runtime (or requires some kind of runtime backing). For example, by extracting metadata such as type information ahead of time, there is no need for runtime reflection for many use cases (like dependency injection).
The CodeAnalyzer can extract information from your code through a simple, but robust API. Here is the base interface, though more methods exists in the actual interface:
interface CodeAnalyzer {
addFile (fileName: string, content: string, version?: number): NodeArray<Statement>;
getClassDeclarationsForFile(fileName: string, deep?: boolean): ClassIndexer;
getAllIdentifiersForFile(fileName: string, deep?: boolean): IIdentifierMap;
getVariableAssignmentsForFile(fileName: string, deep?: boolean): VariableIndexer;
getEnumDeclarationsForFile(fileName: string, deep?: boolean): EnumIndexer;
getFunctionDeclarationsForFile(fileName: string, deep?: boolean): FunctionIndexer;
getImportDeclarationsForFile (fileName: string, deep?: boolean): IImportDeclaration[];
getExportDeclarationsForFile (fileName: string, deep?: boolean): IExportDeclaration[];
getCallExpressionsForFile(fileName: string, deep?: boolean): ICallExpression[];
getNewExpressionsForFile(fileName: string, deep?: boolean): INewExpression[];
}
For full documentation, consult the full interface or the implementation
Usage
The most likely use case will be to add a file and its raw contents to the CodeAnalyzer:
const analyzer = new CodeAnalyzer();
const fileName = "a_file.ts";
const contents = readFileSync(fileName).toString();
analyzer.addFile(fileName, contents);
The file and its dependencies are traversed and cached.
But, you can also just analyze a chunk of code:
const analyzer = new CodeAnalyzer();
const variables = analyzer.getVariableDeclarations("const var = 2");
Be aware that while this is perfectly fine, the chunk of code won't be cached for later lookups and cannot be used by other chunks of code to understand their context.
Differences from Prepack
The CodeAnalyzer
can resolve identifiers to the value they are initialized to, but it
doesn't track mutations.
This means that if your code gradually builds up a variable, say, an ObjectLiteral, the resolved value will be the one it is initialized to.
Consider the following two examples:
function foo () {
let arr = [];
for (let i = 1; i <= 5; i++) {
arr.push(i);
}
return arr;
}
const val = foo();
The value of the variable val
will be [1,2,3,4,5]
since this is the return value
of the function foo
.
But:
const val = {};
['A', 'B', 42].forEach(function(x) {
var name = '_' + x.toString()[0].toLowerCase();
var y = parseInt(x);
val[name] = y ? y : x;
});
Here, the value of the variable val
will be {}
since this is the value it is initialized to.
The LanguageService will not track any mutations for already-initialized variables.
Changelog
1.0.49 (2017-08-03)
1.0.48 (2017-07-28)
- . (dd33f4c)
- 1.0.48 (8586038)
- Bumped version (10d9b32)
- Fixed issues where a regular expression would falsely be reported for normal strings (8e5f6c7)
1.0.46 (2017-07-19)
- 1.0.46 (4804a66)
- Bumped version (5bd6045)
- Improved commonjs support by better supporting 'module.exports' and 'exports.member' syntax for re-e (3acf356)
1.0.45 (2017-07-19)
1.0.44 (2017-07-19)
- 1.0.44 (8b92dfd)
- Added support for handling expressions of kinds TypeQuery and LastTypeNode. Fixes #9. Fixes #21 (6719e65), closes #9 #21
- Bumped version (d571e0b)
- Fixed an issue where expression bodies of CallExpressions wouldn't be parsed when 'deep' is true. Fi (c9f28b0), closes #10
- Made the MutationFormatter use the IValuableFormatter. Fixes #11 (6e30987), closes #11
- Made the ParametersFormatter use the IValuableFormatter. #11 (2ccc736)
- Made the PropFormatter use the IValuableFormatter. #11 (dbcc74b)
1.0.43 (2017-07-19)
- 1.0.43 (da6dd9d)
- Fixed all lint errors (61133bc)
- Migrated to common tsconfig setup. Added lots of documentation (5daa8e0)
- Removed fields (1ee8b49)
- Skipped a test so that it can be implemented after the following patch (59df7fd)
- Update package.json (75e5bee)
1.0.42 (2017-07-10)
- 1.0.42 (861c824)
- Auto-generated filenames for chunks of code will no longer be removed from the AST. (7e8f34a)
1.0.41 (2017-07-10)
- 1.0.41 (8991b26)
- Added the possibility of providing a raw string of code to all get methods (such as 'getClassDecla (58b596c)
1.0.40 (2017-07-10)
- Fixed some tslint errors. (22695e7)
- 1.0.40 (381c163)
- Moved Typescript to dependencies rather than development dependencies (365c82a)
1.0.39 (2017-07-09)
- 1.0.39 (a63e1fb)
- Fixed a bug where TemplateHeads, TemplateMiddles or TemplateTails would be unmarshalled incorrectly. (cf87adb)
1.0.38 (2017-07-06)
1.0.37 (2017-07-06)
- 1.0.37 (8b83e34)
- Added the possibility of adding one or more regular expressions that matches filepaths that should b (2a220cb)
1.0.36 (2017-07-06)
1.0.35 (2017-07-05)
- 1.0.35 (df28f77)
- Better resolving of files in node_modules. Bumped dependencies and refactored. (2b157cb)
1.0.34 (2017-07-05)
1.0.33 (2017-07-05)
1.0.32 (2017-07-05)
- 1.0.32 (b8da643)
- Parsing package.json files will now skip browser fields if it contains multiple paths. (501847e)
1.0.31 (2017-07-05)
1.0.30 (2017-07-05)
- 1.0.30 (868d7ff)
- Added a fallback path to modules with files without any value for the main field. (679baf5)
1.0.29 (2017-06-12)
1.0.28 (2017-06-08)
1.0.27 (2017-06-08)
- 1.0.27 (343c6ec)
- Added handling for evaluating declarations of kinds 'GetAccessorDeclaration' and 'SetAccessorDeclara (a8df6d6)
1.0.26 (2017-05-31)
1.0.25 (2017-05-31)
1.0.24 (2017-05-31)
1.0.23 (2017-05-31)
1.0.22 (2017-05-31)
1.0.21 (2017-05-31)
1.0.20 (2017-05-31)
- 1.0.20 (0d7eb80)
- Moved some logic into a separate module ('compiler-common') to instead depend on that one. (8fde2e2)
1.0.19 (2017-05-31)
1.0.18 (2017-05-30)
- 1.0.18 (5aee9e9)
- Fixed an issue where getting names of anonymous functions would sometimes crash. (a0ea63a)
1.0.17 (2017-05-30)
1.0.16 (2017-05-30)
- 1.0.16 (0cd0f59)
- Removed Typescript as a constructor argument to instead use the one that is located in node_modules. (daf7772)
1.0.15 (2017-05-26)
- 1.0.15 (e029d2f)
- Added a blacklist filter for specific file names (such as tslib.ts or rollup plugins.) (3c60109)
1.0.14 (2017-05-26)
1.0.13 (2017-05-25)
- 1.0.13 (a85063f)
- Derived classes can now inherit methods, props and constructors from their parents up through the in (02417c8)
1.0.12 (2017-05-25)
- 1.0.12 (a3533d2)
- The 'ArbitraryValue', 'IValueable' and 'INonNullableValueable' interfaces are now exported for publi (a9e73b3)
1.0.11 (2017-05-25)
- 1.0.11 (2ce23d4)
- Major overhaul in regards to serialization and value resolving (c8db56a)
- Updated README (8c3065f)
1.0.10 (2017-05-25)
- 1.0.10 (2eb6000)
- Return statements of methods and functions can now also be broken up into expressions and resolved i (feeb14c)
1.0.9 (2017-05-24)
- 1.0.9 (23ee928)
- Added support for getting all identifiers and the values that they are initialized to in a map. (434d8f6)
- Refactored import/export payloads for consistency by adding an ILiteralValue IIdentifier kind (d752f1e)
- Reformatted code (7f25bfb)
- Updated the value expressions for classes (f947520)
1.0.8 (2017-05-24)
1.0.7 (2017-05-19)
- 1.0.7 (7bd3e1e)
- More caching, better performance, better resolving of values, other bug fixes. (878afb7)
- Reformatted code (aebaf54)
- Removed a console statement (6ca17d2)
1.0.6 (2017-05-18)
- 1.0.6 (ff80b74)
- Added a blacklist filter for specific statement kinds that doesn't live on runtime (such as namespac (bbb6ea3)
1.0.5 (2017-05-18)
1.0.4 (2017-05-18)
1.0.3 (2017-05-18)
- 1.0.3 (d3d59da)
- Bug fixes (e48e11e)
- More work on resolving values (966f21b)
- Much work on resolving values. (2f085a1)
1.0.2 (2017-05-16)
- 1.0.2 (df61ccc)
- Object-/Array destructuring now also works for function/method parameters and arguments. (52538dd)
1.0.1 (2017-05-16)
- 1.0.1 (a369d4a)
- 1.0.1 (2f33b8f)
- 1.0.2 (69af35c)
- 1.0.3 (0710ab5)
- 1.0.4 (798d197)
- 1.0.5 (f69c4e1)
- 1.0.6 (a1dfea4)
- 1.0.7 (9501d4e)
- 1.0.8 (54ebb75)
- 1.0.9 (eb2061b)
- Added an additional export (f67ed76)
- Added an index file for all exports (9821aac)
- Added basic support for resolving and return values from function calls AOT (505af49)
- Added even more exports (82bd13c)
- Added integration testing for combining with an actual Marshaller implementation. Renamed 'getInitia (ad9b7b1)
- Added more text for the README (2a957a2)
- Added payloads to exports (0269a90)
- Added protection against infinite recursion (31b34c8)
- Added recursion support for class methods as well (23b661f)
- Added recursive function support. (4bee9b4)
- Added SpreadOperators and refined array tokenify (28c200d)
- Added support for binding patterns in variable assignments such as 'const [a, b] = [1, 2]' (06c0e74)
- Broader language support (920a487)
- Bug fixes, more tests (276656a)
- Classes and functions can now also be exported (b5b7b40)
- Comminjs export support improvements (12fe4c2)
- Finalized new folder structure (2b61630)
- first commit (fdbc46d)
- First work on resolving values (6f92108)
- Fixed a bug where the 'main' entry pointed to the wrong file in the package.json file (a248f41)
- Fixed an export statement (8ca2437)
- Fixed an issue with 'this' scoping (9ff8194)
- Fixed bugs with identifiers and parsing element access expressions (6da7b85)
- Fixed marshalling of string literals (817bb2d)
- Lots of work on resolving node module packages and handling commonjs exports (f2b6fe0)
- Made improvements to deep path formatting (0f7502c)
- More exported interfaces and types (4e4817a)
- More of the language now supported. (064c62b)
- More refactoring, cleanup, reuse (5333410)
- More refactoring. More code-reuse and less project-specific (6eea7ad)
- More reuse and reuse of interfaces (8c4566a)
- More tests (109367e)
- More work and refactoring (04e8caf)
- More work and refinements (10e5127)
- More work on ExportDeclarations (a853f04)
- More work on initialization valeus and deep parsing (56bd99b)
- More work on initialization values (f532792)
- More work on language features (ec19ec1)
- More work on language features and support (a9cf3e2)
- More work on resolving values (b1667be)
- More work on resolving values (6f3d703)
- More work on resolving values (354c79b)
- More work on resolving values, now with function arguments (c4bf39f)
- More work on typings. Refactoring. Cleanup (4d7ffce)
- Moved 'originalStatement' out if IIdentifiers and added a private map between the two to ensure that (fdf1d51)
- Moved from ts.Type typings to direct bindings (0c507fd)
- Nested namespace exporting now works (5d9d38c)
- Now, both ES-modules and require-statements is parsed and detected as import-statements. We now dete (8714b7f)
- Refactored most arrays into key-value stores for indexed lookups (0fb5649)
- Refactored most logic into separate classes and modules to break the logic out into different pieces (fd004ee)
- Refactored test methods into separate test files (1c9cc34)
- Refactoring (d1675bd)
- Refinements and testing. Some breaking changes (4f755d9)
- Reformatted code (49a6170)
- Reimplemented enum support (4afee33)
- Removed a chunk of unneeded code (38d26d5)
- Removed Mocks since they didn't work well. Added extension addition to module paths (b3b0c86)
- Renamed project to 'CodeAnalyzer' (cd79ddc)
- Resolving values now also works for imports. This fixes #3 (8adfe08), closes #3
- Scoped the package for private access (17d836f)
- The API can now also extract newExpressions (5f48130)
- The left-hand side of CallExpressions or NewExpressions might be a literal. The LanguageService can (48b27b5)
- The service can now get all function declarations (7055527)
- Updated interface signature for 'getInitializedValue' to make it support more Statement kinds (30c759e)
- Updated README (8f0ee61)
- Values from loops can now be resolved (db84f7c)
- Wrote more on the README (5cdf3c8)
1.0.48 (2017-07-28)
- . (dd33f4c)
- 1.0.48 (8586038)
- Bumped version (10d9b32)
- Fixed issues where a regular expression would falsely be reported for normal strings (8e5f6c7)
1.0.46 (2017-07-19)
- 1.0.46 (4804a66)
- Bumped version (5bd6045)
- Improved commonjs support by better supporting 'module.exports' and 'exports.member' syntax for re-e (3acf356)
1.0.45 (2017-07-19)
1.0.44 (2017-07-19)
- 1.0.44 (8b92dfd)
- Added support for handling expressions of kinds TypeQuery and LastTypeNode. Fixes #9. Fixes #21 (6719e65), closes #9 #21
- Bumped version (d571e0b)
- Fixed an issue where expression bodies of CallExpressions wouldn't be parsed when 'deep' is true. Fi (c9f28b0), closes #10
- Made the MutationFormatter use the IValuableFormatter. Fixes #11 (6e30987), closes #11
- Made the ParametersFormatter use the IValuableFormatter. #11 (2ccc736)
- Made the PropFormatter use the IValuableFormatter. #11 (dbcc74b)
1.0.43 (2017-07-19)
- 1.0.43 (da6dd9d)
- Fixed all lint errors (61133bc)
- Migrated to common tsconfig setup. Added lots of documentation (5daa8e0)
- Removed fields (1ee8b49)
- Skipped a test so that it can be implemented after the following patch (59df7fd)
- Update package.json (75e5bee)
1.0.42 (2017-07-10)
- 1.0.42 (861c824)
- Auto-generated filenames for chunks of code will no longer be removed from the AST. (7e8f34a)
1.0.41 (2017-07-10)
- 1.0.41 (8991b26)
- Added the possibility of providing a raw string of code to all get methods (such as 'getClassDecla (58b596c)
1.0.40 (2017-07-10)
- Fixed some tslint errors. (22695e7)
- 1.0.40 (381c163)
- Moved Typescript to dependencies rather than development dependencies (365c82a)
1.0.39 (2017-07-09)
- 1.0.39 (a63e1fb)
- Fixed a bug where TemplateHeads, TemplateMiddles or TemplateTails would be unmarshalled incorrectly. (cf87adb)
1.0.38 (2017-07-06)
1.0.37 (2017-07-06)
- 1.0.37 (8b83e34)
- Added the possibility of adding one or more regular expressions that matches filepaths that should b (2a220cb)
1.0.36 (2017-07-06)
1.0.35 (2017-07-05)
- 1.0.35 (df28f77)
- Better resolving of files in node_modules. Bumped dependencies and refactored. (2b157cb)
1.0.34 (2017-07-05)
1.0.33 (2017-07-05)
1.0.32 (2017-07-05)
- 1.0.32 (b8da643)
- Parsing package.json files will now skip browser fields if it contains multiple paths. (501847e)
1.0.31 (2017-07-05)
1.0.30 (2017-07-05)
- 1.0.30 (868d7ff)
- Added a fallback path to modules with files without any value for the main field. (679baf5)
1.0.29 (2017-06-12)
1.0.28 (2017-06-08)
1.0.27 (2017-06-08)
- 1.0.27 (343c6ec)
- Added handling for evaluating declarations of kinds 'GetAccessorDeclaration' and 'SetAccessorDeclara (a8df6d6)
1.0.26 (2017-05-31)
1.0.25 (2017-05-31)
1.0.24 (2017-05-31)
1.0.23 (2017-05-31)
1.0.22 (2017-05-31)
1.0.21 (2017-05-31)
1.0.20 (2017-05-31)
- 1.0.20 (0d7eb80)
- Moved some logic into a separate module ('compiler-common') to instead depend on that one. (8fde2e2)
1.0.19 (2017-05-31)
1.0.18 (2017-05-30)
- 1.0.18 (5aee9e9)
- Fixed an issue where getting names of anonymous functions would sometimes crash. (a0ea63a)
1.0.17 (2017-05-30)
1.0.16 (2017-05-30)
- 1.0.16 (0cd0f59)
- Removed Typescript as a constructor argument to instead use the one that is located in node_modules. (daf7772)
1.0.15 (2017-05-26)
- 1.0.15 (e029d2f)
- Added a blacklist filter for specific file names (such as tslib.ts or rollup plugins.) (3c60109)
1.0.14 (2017-05-26)
1.0.13 (2017-05-25)
- 1.0.13 (a85063f)
- Derived classes can now inherit methods, props and constructors from their parents up through the in (02417c8)
1.0.12 (2017-05-25)
- 1.0.12 (a3533d2)
- The 'ArbitraryValue', 'IValueable' and 'INonNullableValueable' interfaces are now exported for publi (a9e73b3)
1.0.11 (2017-05-25)
- 1.0.11 (2ce23d4)
- Major overhaul in regards to serialization and value resolving (c8db56a)
- Updated README (8c3065f)
1.0.10 (2017-05-25)
- 1.0.10 (2eb6000)
- Return statements of methods and functions can now also be broken up into expressions and resolved i (feeb14c)
1.0.9 (2017-05-24)
- 1.0.9 (23ee928)
- Added support for getting all identifiers and the values that they are initialized to in a map. (434d8f6)
- Refactored import/export payloads for consistency by adding an ILiteralValue IIdentifier kind (d752f1e)
- Reformatted code (7f25bfb)
- Updated the value expressions for classes (f947520)
1.0.8 (2017-05-24)
1.0.7 (2017-05-19)
- 1.0.7 (7bd3e1e)
- More caching, better performance, better resolving of values, other bug fixes. (878afb7)
- Reformatted code (aebaf54)
- Removed a console statement (6ca17d2)
1.0.6 (2017-05-18)
- 1.0.6 (ff80b74)
- Added a blacklist filter for specific statement kinds that doesn't live on runtime (such as namespac (bbb6ea3)
1.0.5 (2017-05-18)
1.0.4 (2017-05-18)
1.0.3 (2017-05-18)
- 1.0.3 (d3d59da)
- Bug fixes (e48e11e)
- More work on resolving values (966f21b)
- Much work on resolving values. (2f085a1)
1.0.2 (2017-05-16)
- 1.0.2 (df61ccc)
- Object-/Array destructuring now also works for function/method parameters and arguments. (52538dd)
1.0.1 (2017-05-16)
- 1.0.1 (a369d4a)
- 1.0.1 (2f33b8f)
- 1.0.2 (69af35c)
- 1.0.3 (0710ab5)
- 1.0.4 (798d197)
- 1.0.5 (f69c4e1)
- 1.0.6 (a1dfea4)
- 1.0.7 (9501d4e)
- 1.0.8 (54ebb75)
- 1.0.9 (eb2061b)
- Added an additional export (f67ed76)
- Added an index file for all exports (9821aac)
- Added basic support for resolving and return values from function calls AOT (505af49)
- Added even more exports (82bd13c)
- Added integration testing for combining with an actual Marshaller implementation. Renamed 'getInitia (ad9b7b1)
- Added more text for the README (2a957a2)
- Added payloads to exports (0269a90)
- Added protection against infinite recursion (31b34c8)
- Added recursion support for class methods as well (23b661f)
- Added recursive function support. (4bee9b4)
- Added SpreadOperators and refined array tokenify (28c200d)
- Added support for binding patterns in variable assignments such as 'const [a, b] = [1, 2]' (06c0e74)
- Broader language support (920a487)
- Bug fixes, more tests (276656a)
- Classes and functions can now also be exported (b5b7b40)
- Comminjs export support improvements (12fe4c2)
- Finalized new folder structure (2b61630)
- first commit (fdbc46d)
- First work on resolving values (6f92108)
- Fixed a bug where the 'main' entry pointed to the wrong file in the package.json file (a248f41)
- Fixed an export statement (8ca2437)
- Fixed an issue with 'this' scoping (9ff8194)
- Fixed bugs with identifiers and parsing element access expressions (6da7b85)
- Fixed marshalling of string literals (817bb2d)
- Lots of work on resolving node module packages and handling commonjs exports (f2b6fe0)
- Made improvements to deep path formatting (0f7502c)
- More exported interfaces and types (4e4817a)
- More of the language now supported. (064c62b)
- More refactoring, cleanup, reuse (5333410)
- More refactoring. More code-reuse and less project-specific (6eea7ad)
- More reuse and reuse of interfaces (8c4566a)
- More tests (109367e)
- More work and refactoring (04e8caf)
- More work and refinements (10e5127)
- More work on ExportDeclarations (a853f04)
- More work on initialization valeus and deep parsing (56bd99b)
- More work on initialization values (f532792)
- More work on language features (ec19ec1)
- More work on language features and support (a9cf3e2)
- More work on resolving values (b1667be)
- More work on resolving values (6f3d703)
- More work on resolving values (354c79b)
- More work on resolving values, now with function arguments (c4bf39f)
- More work on typings. Refactoring. Cleanup (4d7ffce)
- Moved 'originalStatement' out if IIdentifiers and added a private map between the two to ensure that (fdf1d51)
- Moved from ts.Type typings to direct bindings (0c507fd)
- Nested namespace exporting now works (5d9d38c)
- Now, both ES-modules and require-statements is parsed and detected as import-statements. We now dete (8714b7f)
- Refactored most arrays into key-value stores for indexed lookups (0fb5649)
- Refactored most logic into separate classes and modules to break the logic out into different pieces (fd004ee)
- Refactored test methods into separate test files (1c9cc34)
- Refactoring (d1675bd)
- Refinements and testing. Some breaking changes (4f755d9)
- Reformatted code (49a6170)
- Reimplemented enum support (4afee33)
- Removed a chunk of unneeded code (38d26d5)
- Removed Mocks since they didn't work well. Added extension addition to module paths (b3b0c86)
- Renamed project to 'CodeAnalyzer' (cd79ddc)
- Resolving values now also works for imports. This fixes #3 (8adfe08), closes #3
- Scoped the package for private access (17d836f)
- The API can now also extract newExpressions (5f48130)
- The left-hand side of CallExpressions or NewExpressions might be a literal. The LanguageService can (48b27b5)
- The service can now get all function declarations (7055527)
- Updated interface signature for 'getInitializedValue' to make it support more Statement kinds (30c759e)
- Updated README (8f0ee61)
- Values from loops can now be resolved (db84f7c)
- Wrote more on the README (5cdf3c8)
1.0.46 (2017-07-19)
- 1.0.46 (4804a66)
- Bumped version (5bd6045)
- Improved commonjs support by better supporting 'module.exports' and 'exports.member' syntax for re-e (3acf356)
1.0.45 (2017-07-19)
1.0.44 (2017-07-19)
- 1.0.44 (8b92dfd)
- Added support for handling expressions of kinds TypeQuery and LastTypeNode. Fixes #9. Fixes #21 (6719e65), closes #9 #21
- Bumped version (d571e0b)
- Fixed an issue where expression bodies of CallExpressions wouldn't be parsed when 'deep' is true. Fi (c9f28b0), closes #10
- Made the MutationFormatter use the IValuableFormatter. Fixes #11 (6e30987), closes #11
- Made the ParametersFormatter use the IValuableFormatter. #11 (2ccc736)
- Made the PropFormatter use the IValuableFormatter. #11 (dbcc74b)
1.0.43 (2017-07-19)
- 1.0.43 (da6dd9d)
- Fixed all lint errors (61133bc)
- Migrated to common tsconfig setup. Added lots of documentation (5daa8e0)
- Removed fields (1ee8b49)
- Skipped a test so that it can be implemented after the following patch (59df7fd)
- Update package.json (75e5bee)
1.0.42 (2017-07-10)
- 1.0.42 (861c824)
- Auto-generated filenames for chunks of code will no longer be removed from the AST. (7e8f34a)
1.0.41 (2017-07-10)
- 1.0.41 (8991b26)
- Added the possibility of providing a raw string of code to all get methods (such as 'getClassDecla (58b596c)
1.0.40 (2017-07-10)
- Fixed some tslint errors. (22695e7)
- 1.0.40 (381c163)
- Moved Typescript to dependencies rather than development dependencies (365c82a)
1.0.39 (2017-07-09)
- 1.0.39 (a63e1fb)
- Fixed a bug where TemplateHeads, TemplateMiddles or TemplateTails would be unmarshalled incorrectly. (cf87adb)
1.0.38 (2017-07-06)
1.0.37 (2017-07-06)
- 1.0.37 (8b83e34)
- Added the possibility of adding one or more regular expressions that matches filepaths that should b (2a220cb)
1.0.36 (2017-07-06)
1.0.35 (2017-07-05)
- 1.0.35 (df28f77)
- Better resolving of files in node_modules. Bumped dependencies and refactored. (2b157cb)
1.0.34 (2017-07-05)
1.0.33 (2017-07-05)
1.0.32 (2017-07-05)
- 1.0.32 (b8da643)
- Parsing package.json files will now skip browser fields if it contains multiple paths. (501847e)
1.0.31 (2017-07-05)
1.0.30 (2017-07-05)
- 1.0.30 (868d7ff)
- Added a fallback path to modules with files without any value for the main field. (679baf5)
1.0.29 (2017-06-12)
1.0.28 (2017-06-08)
1.0.27 (2017-06-08)
- 1.0.27 (343c6ec)
- Added handling for evaluating declarations of kinds 'GetAccessorDeclaration' and 'SetAccessorDeclara (a8df6d6)
1.0.26 (2017-05-31)
1.0.25 (2017-05-31)
1.0.24 (2017-05-31)
1.0.23 (2017-05-31)
1.0.22 (2017-05-31)
1.0.21 (2017-05-31)
1.0.20 (2017-05-31)
- 1.0.20 (0d7eb80)
- Moved some logic into a separate module ('compiler-common') to instead depend on that one. (8fde2e2)
1.0.19 (2017-05-31)
1.0.18 (2017-05-30)
- 1.0.18 (5aee9e9)
- Fixed an issue where getting names of anonymous functions would sometimes crash. (a0ea63a)
1.0.17 (2017-05-30)
1.0.16 (2017-05-30)
- 1.0.16 (0cd0f59)
- Removed Typescript as a constructor argument to instead use the one that is located in node_modules. (daf7772)
1.0.15 (2017-05-26)
- 1.0.15 (e029d2f)
- Added a blacklist filter for specific file names (such as tslib.ts or rollup plugins.) (3c60109)
1.0.14 (2017-05-26)
1.0.13 (2017-05-25)
- 1.0.13 (a85063f)
- Derived classes can now inherit methods, props and constructors from their parents up through the in (02417c8)
1.0.12 (2017-05-25)
- 1.0.12 (a3533d2)
- The 'ArbitraryValue', 'IValueable' and 'INonNullableValueable' interfaces are now exported for publi (a9e73b3)
1.0.11 (2017-05-25)
- 1.0.11 (2ce23d4)
- Major overhaul in regards to serialization and value resolving (c8db56a)
- Updated README (8c3065f)
1.0.10 (2017-05-25)
- 1.0.10 (2eb6000)
- Return statements of methods and functions can now also be broken up into expressions and resolved i (feeb14c)
1.0.9 (2017-05-24)
- 1.0.9 (23ee928)
- Added support for getting all identifiers and the values that they are initialized to in a map. (434d8f6)
- Refactored import/export payloads for consistency by adding an ILiteralValue IIdentifier kind (d752f1e)
- Reformatted code (7f25bfb)
- Updated the value expressions for classes (f947520)
1.0.8 (2017-05-24)
1.0.7 (2017-05-19)
- 1.0.7 (7bd3e1e)
- More caching, better performance, better resolving of values, other bug fixes. (878afb7)
- Reformatted code (aebaf54)
- Removed a console statement (6ca17d2)
1.0.6 (2017-05-18)
- 1.0.6 (ff80b74)
- Added a blacklist filter for specific statement kinds that doesn't live on runtime (such as namespac (bbb6ea3)
1.0.5 (2017-05-18)
1.0.4 (2017-05-18)
1.0.3 (2017-05-18)
- 1.0.3 (d3d59da)
- Bug fixes (e48e11e)
- More work on resolving values (966f21b)
- Much work on resolving values. (2f085a1)
1.0.2 (2017-05-16)
- 1.0.2 (df61ccc)
- Object-/Array destructuring now also works for function/method parameters and arguments. (52538dd)
1.0.1 (2017-05-16)
- 1.0.1 (a369d4a)
- 1.0.1 (2f33b8f)
- 1.0.2 (69af35c)
- 1.0.3 (0710ab5)
- 1.0.4 (798d197)
- 1.0.5 (f69c4e1)
- 1.0.6 (a1dfea4)
- 1.0.7 (9501d4e)
- 1.0.8 (54ebb75)
- 1.0.9 (eb2061b)
- Added an additional export (f67ed76)
- Added an index file for all exports (9821aac)
- Added basic support for resolving and return values from function calls AOT (505af49)
- Added even more exports (82bd13c)
- Added integration testing for combining with an actual Marshaller implementation. Renamed 'getInitia (ad9b7b1)
- Added more text for the README (2a957a2)
- Added payloads to exports (0269a90)
- Added protection against infinite recursion (31b34c8)
- Added recursion support for class methods as well (23b661f)
- Added recursive function support. (4bee9b4)
- Added SpreadOperators and refined array tokenify (28c200d)
- Added support for binding patterns in variable assignments such as 'const [a, b] = [1, 2]' (06c0e74)
- Broader language support (920a487)
- Bug fixes, more tests (276656a)
- Classes and functions can now also be exported (b5b7b40)
- Comminjs export support improvements (12fe4c2)
- Finalized new folder structure (2b61630)
- first commit (fdbc46d)
- First work on resolving values (6f92108)
- Fixed a bug where the 'main' entry pointed to the wrong file in the package.json file (a248f41)
- Fixed an export statement (8ca2437)
- Fixed an issue with 'this' scoping (9ff8194)
- Fixed bugs with identifiers and parsing element access expressions (6da7b85)
- Fixed marshalling of string literals (817bb2d)
- Lots of work on resolving node module packages and handling commonjs exports (f2b6fe0)
- Made improvements to deep path formatting (0f7502c)
- More exported interfaces and types (4e4817a)
- More of the language now supported. (064c62b)
- More refactoring, cleanup, reuse (5333410)
- More refactoring. More code-reuse and less project-specific (6eea7ad)
- More reuse and reuse of interfaces (8c4566a)
- More tests (109367e)
- More work and refactoring (04e8caf)
- More work and refinements (10e5127)
- More work on ExportDeclarations (a853f04)
- More work on initialization valeus and deep parsing (56bd99b)
- More work on initialization values (f532792)
- More work on language features (ec19ec1)
- More work on language features and support (a9cf3e2)
- More work on resolving values (b1667be)
- More work on resolving values (6f3d703)
- More work on resolving values (354c79b)
- More work on resolving values, now with function arguments (c4bf39f)
- More work on typings. Refactoring. Cleanup (4d7ffce)
- Moved 'originalStatement' out if IIdentifiers and added a private map between the two to ensure that (fdf1d51)
- Moved from ts.Type typings to direct bindings (0c507fd)
- Nested namespace exporting now works (5d9d38c)
- Now, both ES-modules and require-statements is parsed and detected as import-statements. We now dete (8714b7f)
- Refactored most arrays into key-value stores for indexed lookups (0fb5649)
- Refactored most logic into separate classes and modules to break the logic out into different pieces (fd004ee)
- Refactored test methods into separate test files (1c9cc34)
- Refactoring (d1675bd)
- Refinements and testing. Some breaking changes (4f755d9)
- Reformatted code (49a6170)
- Reimplemented enum support (4afee33)
- Removed a chunk of unneeded code (38d26d5)
- Removed Mocks since they didn't work well. Added extension addition to module paths (b3b0c86)
- Renamed project to 'CodeAnalyzer' (cd79ddc)
- Resolving values now also works for imports. This fixes #3 (8adfe08), closes #3
- Scoped the package for private access (17d836f)
- The API can now also extract newExpressions (5f48130)
- The left-hand side of CallExpressions or NewExpressions might be a literal. The LanguageService can (48b27b5)
- The service can now get all function declarations (7055527)
- Updated interface signature for 'getInitializedValue' to make it support more Statement kinds (30c759e)
- Updated README (8f0ee61)
- Values from loops can now be resolved (db84f7c)
- Wrote more on the README (5cdf3c8)
1.0.45 (2017-07-19)
1.0.44 (2017-07-19)
- 1.0.44 (8b92dfd)
- Added support for handling expressions of kinds TypeQuery and LastTypeNode. Fixes #9. Fixes #21 (6719e65), closes #9 #21
- Bumped version (d571e0b)
- Fixed an issue where expression bodies of CallExpressions wouldn't be parsed when 'deep' is true. Fi (c9f28b0), closes #10
- Made the MutationFormatter use the IValuableFormatter. Fixes #11 (6e30987), closes #11
- Made the ParametersFormatter use the IValuableFormatter. #11 (2ccc736)
- Made the PropFormatter use the IValuableFormatter. #11 (dbcc74b)
1.0.43 (2017-07-19)
- 1.0.43 (da6dd9d)
- Fixed all lint errors (61133bc)
- Migrated to common tsconfig setup. Added lots of documentation (5daa8e0)
- Removed fields (1ee8b49)
- Skipped a test so that it can be implemented after the following patch (59df7fd)
- Update package.json (75e5bee)
1.0.42 (2017-07-10)
- 1.0.42 (861c824)
- Auto-generated filenames for chunks of code will no longer be removed from the AST. (7e8f34a)
1.0.41 (2017-07-10)
- 1.0.41 (8991b26)
- Added the possibility of providing a raw string of code to all get methods (such as 'getClassDecla (58b596c)
1.0.40 (2017-07-10)
- Fixed some tslint errors. (22695e7)
- 1.0.40 (381c163)
- Moved Typescript to dependencies rather than development dependencies (365c82a)
1.0.39 (2017-07-09)
- 1.0.39 (a63e1fb)
- Fixed a bug where TemplateHeads, TemplateMiddles or TemplateTails would be unmarshalled incorrectly. (cf87adb)
1.0.38 (2017-07-06)
1.0.37 (2017-07-06)
- 1.0.37 (8b83e34)
- Added the possibility of adding one or more regular expressions that matches filepaths that should b (2a220cb)
1.0.36 (2017-07-06)
1.0.35 (2017-07-05)
- 1.0.35 (df28f77)
- Better resolving of files in node_modules. Bumped dependencies and refactored. (2b157cb)
1.0.34 (2017-07-05)
1.0.33 (2017-07-05)
1.0.32 (2017-07-05)
- 1.0.32 (b8da643)
- Parsing package.json files will now skip browser fields if it contains multiple paths. (501847e)
1.0.31 (2017-07-05)
1.0.30 (2017-07-05)
- 1.0.30 (868d7ff)
- Added a fallback path to modules with files without any value for the main field. (679baf5)
1.0.29 (2017-06-12)
1.0.28 (2017-06-08)
1.0.27 (2017-06-08)
- 1.0.27 (343c6ec)
- Added handling for evaluating declarations of kinds 'GetAccessorDeclaration' and 'SetAccessorDeclara (a8df6d6)
1.0.26 (2017-05-31)
1.0.25 (2017-05-31)
1.0.24 (2017-05-31)
1.0.23 (2017-05-31)
1.0.22 (2017-05-31)
1.0.21 (2017-05-31)
1.0.20 (2017-05-31)
- 1.0.20 (0d7eb80)
- Moved some logic into a separate module ('compiler-common') to instead depend on that one. (8fde2e2)
1.0.19 (2017-05-31)
1.0.18 (2017-05-30)
- 1.0.18 (5aee9e9)
- Fixed an issue where getting names of anonymous functions would sometimes crash. (a0ea63a)
1.0.17 (2017-05-30)
1.0.16 (2017-05-30)
- 1.0.16 (0cd0f59)
- Removed Typescript as a constructor argument to instead use the one that is located in node_modules. (daf7772)
1.0.15 (2017-05-26)
- 1.0.15 (e029d2f)
- Added a blacklist filter for specific file names (such as tslib.ts or rollup plugins.) (3c60109)
1.0.14 (2017-05-26)
1.0.13 (2017-05-25)
- 1.0.13 (a85063f)
- Derived classes can now inherit methods, props and constructors from their parents up through the in (02417c8)
1.0.12 (2017-05-25)
- 1.0.12 (a3533d2)
- The 'ArbitraryValue', 'IValueable' and 'INonNullableValueable' interfaces are now exported for publi (a9e73b3)
1.0.11 (2017-05-25)
- 1.0.11 (2ce23d4)
- Major overhaul in regards to serialization and value resolving (c8db56a)
- Updated README (8c3065f)
1.0.10 (2017-05-25)
- 1.0.10 (2eb6000)
- Return statements of methods and functions can now also be broken up into expressions and resolved i (feeb14c)
1.0.9 (2017-05-24)
- 1.0.9 (23ee928)
- Added support for getting all identifiers and the values that they are initialized to in a map. (434d8f6)
- Refactored import/export payloads for consistency by adding an ILiteralValue IIdentifier kind (d752f1e)
- Reformatted code (7f25bfb)
- Updated the value expressions for classes (f947520)
1.0.8 (2017-05-24)
1.0.7 (2017-05-19)
- 1.0.7 (7bd3e1e)
- More caching, better performance, better resolving of values, other bug fixes. (878afb7)
- Reformatted code (aebaf54)
- Removed a console statement (6ca17d2)
1.0.6 (2017-05-18)
- 1.0.6 (ff80b74)
- Added a blacklist filter for specific statement kinds that doesn't live on runtime (such as namespac (bbb6ea3)
1.0.5 (2017-05-18)
1.0.4 (2017-05-18)
1.0.3 (2017-05-18)
- 1.0.3 (d3d59da)
- Bug fixes (e48e11e)
- More work on resolving values (966f21b)
- Much work on resolving values. (2f085a1)
1.0.2 (2017-05-16)
- 1.0.2 (df61ccc)
- Object-/Array destructuring now also works for function/method parameters and arguments. (52538dd)
1.0.1 (2017-05-16)
- 1.0.1 (a369d4a)
- 1.0.1 (2f33b8f)
- 1.0.2 (69af35c)
- 1.0.3 (0710ab5)
- 1.0.4 (798d197)
- 1.0.5 (f69c4e1)
- 1.0.6 (a1dfea4)
- 1.0.7 (9501d4e)
- 1.0.8 (54ebb75)
- 1.0.9 (eb2061b)
- Added an additional export (f67ed76)
- Added an index file for all exports (9821aac)
- Added basic support for resolving and return values from function calls AOT (505af49)
- Added even more exports (82bd13c)
- Added integration testing for combining with an actual Marshaller implementation. Renamed 'getInitia (ad9b7b1)
- Added more text for the README (2a957a2)
- Added payloads to exports (0269a90)
- Added protection against infinite recursion (31b34c8)
- Added recursion support for class methods as well (23b661f)
- Added recursive function support. (4bee9b4)
- Added SpreadOperators and refined array tokenify (28c200d)
- Added support for binding patterns in variable assignments such as 'const [a, b] = [1, 2]' (06c0e74)
- Broader language support (920a487)
- Bug fixes, more tests (276656a)
- Classes and functions can now also be exported (b5b7b40)
- Comminjs export support improvements (12fe4c2)
- Finalized new folder structure (2b61630)
- first commit (fdbc46d)
- First work on resolving values (6f92108)
- Fixed a bug where the 'main' entry pointed to the wrong file in the package.json file (a248f41)
- Fixed an export statement (8ca2437)
- Fixed an issue with 'this' scoping (9ff8194)
- Fixed bugs with identifiers and parsing element access expressions (6da7b85)
- Fixed marshalling of string literals (817bb2d)
- Lots of work on resolving node module packages and handling commonjs exports (f2b6fe0)
- Made improvements to deep path formatting (0f7502c)
- More exported interfaces and types (4e4817a)
- More of the language now supported. (064c62b)
- More refactoring, cleanup, reuse (5333410)
- More refactoring. More code-reuse and less project-specific (6eea7ad)
- More reuse and reuse of interfaces (8c4566a)
- More tests (109367e)
- More work and refactoring (04e8caf)
- More work and refinements (10e5127)
- More work on ExportDeclarations (a853f04)
- More work on initialization valeus and deep parsing (56bd99b)
- More work on initialization values (f532792)
- More work on language features (ec19ec1)
- More work on language features and support (a9cf3e2)
- More work on resolving values (b1667be)
- More work on resolving values (6f3d703)
- More work on resolving values (354c79b)
- More work on resolving values, now with function arguments (c4bf39f)
- More work on typings. Refactoring. Cleanup (4d7ffce)
- Moved 'originalStatement' out if IIdentifiers and added a private map between the two to ensure that (fdf1d51)
- Moved from ts.Type typings to direct bindings (0c507fd)
- Nested namespace exporting now works (5d9d38c)
- Now, both ES-modules and require-statements is parsed and detected as import-statements. We now dete (8714b7f)
- Refactored most arrays into key-value stores for indexed lookups (0fb5649)
- Refactored most logic into separate classes and modules to break the logic out into different pieces (fd004ee)
- Refactored test methods into separate test files (1c9cc34)
- Refactoring (d1675bd)
- Refinements and testing. Some breaking changes (4f755d9)
- Reformatted code (49a6170)
- Reimplemented enum support (4afee33)
- Removed a chunk of unneeded code (38d26d5)
- Removed Mocks since they didn't work well. Added extension addition to module paths (b3b0c86)
- Renamed project to 'CodeAnalyzer' (cd79ddc)
- Resolving values now also works for imports. This fixes #3 (8adfe08), closes #3
- Scoped the package for private access (17d836f)
- The API can now also extract newExpressions (5f48130)
- The left-hand side of CallExpressions or NewExpressions might be a literal. The LanguageService can (48b27b5)
- The service can now get all function declarations (7055527)
- Updated interface signature for 'getInitializedValue' to make it support more Statement kinds (30c759e)
- Updated README (8f0ee61)
- Values from loops can now be resolved (db84f7c)
- Wrote more on the README (5cdf3c8)
1.0.44 (2017-07-19)
- 1.0.44 (8b92dfd)
- Added support for handling expressions of kinds TypeQuery and LastTypeNode. Fixes #9. Fixes #21 (6719e65), closes #9 #21
- Bumped version (d571e0b)
- Fixed an issue where expression bodies of CallExpressions wouldn't be parsed when 'deep' is true. Fi (c9f28b0), closes #10
- Made the MutationFormatter use the IValuableFormatter. Fixes #11 (6e30987), closes #11
- Made the ParametersFormatter use the IValuableFormatter. #11 (2ccc736)
- Made the PropFormatter use the IValuableFormatter. #11 (dbcc74b)
1.0.43 (2017-07-19)
- 1.0.43 (da6dd9d)
- Fixed all lint errors (61133bc)
- Migrated to common tsconfig setup. Added lots of documentation (5daa8e0)
- Removed fields (1ee8b49)
- Skipped a test so that it can be implemented after the following patch (59df7fd)
- Update package.json (75e5bee)
1.0.42 (2017-07-10)
- 1.0.42 (861c824)
- Auto-generated filenames for chunks of code will no longer be removed from the AST. (7e8f34a)
1.0.41 (2017-07-10)
- 1.0.41 (8991b26)
- Added the possibility of providing a raw string of code to all get methods (such as 'getClassDecla (58b596c)
1.0.40 (2017-07-10)
- Fixed some tslint errors. (22695e7)
- 1.0.40 (381c163)
- Moved Typescript to dependencies rather than development dependencies (365c82a)
1.0.39 (2017-07-09)
- 1.0.39 (a63e1fb)
- Fixed a bug where TemplateHeads, TemplateMiddles or TemplateTails would be unmarshalled incorrectly. (cf87adb)
1.0.38 (2017-07-06)
1.0.37 (2017-07-06)
- 1.0.37 (8b83e34)
- Added the possibility of adding one or more regular expressions that matches filepaths that should b (2a220cb)
1.0.36 (2017-07-06)
1.0.35 (2017-07-05)
- 1.0.35 (df28f77)
- Better resolving of files in node_modules. Bumped dependencies and refactored. (2b157cb)
1.0.34 (2017-07-05)
1.0.33 (2017-07-05)
1.0.32 (2017-07-05)
- 1.0.32 (b8da643)
- Parsing package.json files will now skip browser fields if it contains multiple paths. (501847e)
1.0.31 (2017-07-05)
1.0.30 (2017-07-05)
- 1.0.30 (868d7ff)
- Added a fallback path to modules with files without any value for the main field. (679baf5)
1.0.29 (2017-06-12)
1.0.28 (2017-06-08)
1.0.27 (2017-06-08)
- 1.0.27 (343c6ec)
- Added handling for evaluating declarations of kinds 'GetAccessorDeclaration' and 'SetAccessorDeclara (a8df6d6)
1.0.26 (2017-05-31)
1.0.25 (2017-05-31)
1.0.24 (2017-05-31)
1.0.23 (2017-05-31)
1.0.22 (2017-05-31)
1.0.21 (2017-05-31)
1.0.20 (2017-05-31)
- 1.0.20 (0d7eb80)
- Moved some logic into a separate module ('compiler-common') to instead depend on that one. (8fde2e2)
1.0.19 (2017-05-31)
1.0.18 (2017-05-30)
- 1.0.18 (5aee9e9)
- Fixed an issue where getting names of anonymous functions would sometimes crash. (a0ea63a)
1.0.17 (2017-05-30)
1.0.16 (2017-05-30)
- 1.0.16 (0cd0f59)
- Removed Typescript as a constructor argument to instead use the one that is located in node_modules. (daf7772)
1.0.15 (2017-05-26)
- 1.0.15 (e029d2f)
- Added a blacklist filter for specific file names (such as tslib.ts or rollup plugins.) (3c60109)
1.0.14 (2017-05-26)
1.0.13 (2017-05-25)
- 1.0.13 (a85063f)
- Derived classes can now inherit methods, props and constructors from their parents up through the in (02417c8)
1.0.12 (2017-05-25)
- 1.0.12 (a3533d2)
- The 'ArbitraryValue', 'IValueable' and 'INonNullableValueable' interfaces are now exported for publi (a9e73b3)
1.0.11 (2017-05-25)
- 1.0.11 (2ce23d4)
- Major overhaul in regards to serialization and value resolving (c8db56a)
- Updated README (8c3065f)
1.0.10 (2017-05-25)
- 1.0.10 (2eb6000)
- Return statements of methods and functions can now also be broken up into expressions and resolved i (feeb14c)
1.0.9 (2017-05-24)
- 1.0.9 (23ee928)
- Added support for getting all identifiers and the values that they are initialized to in a map. (434d8f6)
- Refactored import/export payloads for consistency by adding an ILiteralValue IIdentifier kind (d752f1e)
- Reformatted code (7f25bfb)
- Updated the value expressions for classes (f947520)
1.0.8 (2017-05-24)
1.0.7 (2017-05-19)
- 1.0.7 (7bd3e1e)
- More caching, better performance, better resolving of values, other bug fixes. (878afb7)
- Reformatted code (aebaf54)
- Removed a console statement (6ca17d2)
1.0.6 (2017-05-18)
- 1.0.6 (ff80b74)
- Added a blacklist filter for specific statement kinds that doesn't live on runtime (such as namespac (bbb6ea3)
1.0.5 (2017-05-18)
1.0.4 (2017-05-18)
1.0.3 (2017-05-18)
- 1.0.3 (d3d59da)
- Bug fixes (e48e11e)
- More work on resolving values (966f21b)
- Much work on resolving values. (2f085a1)
1.0.2 (2017-05-16)
- 1.0.2 (df61ccc)
- Object-/Array destructuring now also works for function/method parameters and arguments. (52538dd)
1.0.1 (2017-05-16)
- 1.0.1 (a369d4a)
- 1.0.1 (2f33b8f)
- 1.0.2 (69af35c)
- 1.0.3 (0710ab5)
- 1.0.4 (798d197)
- 1.0.5 (f69c4e1)
- 1.0.6 (a1dfea4)
- 1.0.7 (9501d4e)
- 1.0.8 (54ebb75)
- 1.0.9 (eb2061b)
- Added an additional export (f67ed76)
- Added an index file for all exports (9821aac)
- Added basic support for resolving and return values from function calls AOT (505af49)
- Added even more exports (82bd13c)
- Added integration testing for combining with an actual Marshaller implementation. Renamed 'getInitia (ad9b7b1)
- Added more text for the README (2a957a2)
- Added payloads to exports (0269a90)
- Added protection against infinite recursion (31b34c8)
- Added recursion support for class methods as well (23b661f)
- Added recursive function support. (4bee9b4)
- Added SpreadOperators and refined array tokenify (28c200d)
- Added support for binding patterns in variable assignments such as 'const [a, b] = [1, 2]' (06c0e74)
- Broader language support (920a487)
- Bug fixes, more tests (276656a)
- Classes and functions can now also be exported (b5b7b40)
- Comminjs export support improvements (12fe4c2)
- Finalized new folder structure (2b61630)
- first commit (fdbc46d)
- First work on resolving values (6f92108)
- Fixed a bug where the 'main' entry pointed to the wrong file in the package.json file (a248f41)
- Fixed an export statement (8ca2437)
- Fixed an issue with 'this' scoping (9ff8194)
- Fixed bugs with identifiers and parsing element access expressions (6da7b85)
- Fixed marshalling of string literals (817bb2d)
- Lots of work on resolving node module packages and handling commonjs exports (f2b6fe0)
- Made improvements to deep path formatting (0f7502c)
- More exported interfaces and types (4e4817a)
- More of the language now supported. (064c62b)
- More refactoring, cleanup, reuse (5333410)
- More refactoring. More code-reuse and less project-specific (6eea7ad)
- More reuse and reuse of interfaces (8c4566a)
- More tests (109367e)
- More work and refactoring (04e8caf)
- More work and refinements (10e5127)
- More work on ExportDeclarations (a853f04)
- More work on initialization valeus and deep parsing (56bd99b)
- More work on initialization values (f532792)
- More work on language features (ec19ec1)
- More work on language features and support (a9cf3e2)
- More work on resolving values (b1667be)
- More work on resolving values (6f3d703)
- More work on resolving values (354c79b)
- More work on resolving values, now with function arguments (c4bf39f)
- More work on typings. Refactoring. Cleanup (4d7ffce)
- Moved 'originalStatement' out if IIdentifiers and added a private map between the two to ensure that (fdf1d51)
- Moved from ts.Type typings to direct bindings (0c507fd)
- Nested namespace exporting now works (5d9d38c)
- Now, both ES-modules and require-statements is parsed and detected as import-statements. We now dete (8714b7f)
- Refactored most arrays into key-value stores for indexed lookups (0fb5649)
- Refactored most logic into separate classes and modules to break the logic out into different pieces (fd004ee)
- Refactored test methods into separate test files (1c9cc34)
- Refactoring (d1675bd)
- Refinements and testing. Some breaking changes (4f755d9)
- Reformatted code (49a6170)
- Reimplemented enum support (4afee33)
- Removed a chunk of unneeded code (38d26d5)
- Removed Mocks since they didn't work well. Added extension addition to module paths (b3b0c86)
- Renamed project to 'CodeAnalyzer' (cd79ddc)
- Resolving values now also works for imports. This fixes #3 (8adfe08), closes #3
- Scoped the package for private access (17d836f)
- The API can now also extract newExpressions (5f48130)
- The left-hand side of CallExpressions or NewExpressions might be a literal. The LanguageService can (48b27b5)
- The service can now get all function declarations (7055527)
- Updated interface signature for 'getInitializedValue' to make it support more Statement kinds (30c759e)
- Updated README (8f0ee61)
- Values from loops can now be resolved (db84f7c)
- Wrote more on the README (5cdf3c8)
1.0.43 (2017-07-19)
- 1.0.43 (da6dd9d)
- Fixed all lint errors (61133bc)
- Migrated to common tsconfig setup. Added lots of documentation (5daa8e0)
- Removed fields (1ee8b49)
- Skipped a test so that it can be implemented after the following patch (59df7fd)
- Update package.json (75e5bee)
1.0.42 (2017-07-10)
- 1.0.42 (861c824)
- Auto-generated filenames for chunks of code will no longer be removed from the AST. (7e8f34a)
1.0.41 (2017-07-10)
- 1.0.41 (8991b26)
- Added the possibility of providing a raw string of code to all get methods (such as 'getClassDecla (58b596c)
1.0.40 (2017-07-10)
- Fixed some tslint errors. (22695e7)
- 1.0.40 (381c163)
- Moved Typescript to dependencies rather than development dependencies (365c82a)
1.0.39 (2017-07-09)
- 1.0.39 (a63e1fb)
- Fixed a bug where TemplateHeads, TemplateMiddles or TemplateTails would be unmarshalled incorrectly. (cf87adb)
1.0.38 (2017-07-06)
1.0.37 (2017-07-06)
- 1.0.37 (8b83e34)
- Added the possibility of adding one or more regular expressions that matches filepaths that should b (2a220cb)
1.0.36 (2017-07-06)
1.0.35 (2017-07-05)
- 1.0.35 (df28f77)
- Better resolving of files in node_modules. Bumped dependencies and refactored. (2b157cb)
1.0.34 (2017-07-05)
1.0.33 (2017-07-05)
1.0.32 (2017-07-05)
- 1.0.32 (b8da643)
- Parsing package.json files will now skip browser fields if it contains multiple paths. (501847e)
1.0.31 (2017-07-05)
1.0.30 (2017-07-05)
- 1.0.30 (868d7ff)
- Added a fallback path to modules with files without any value for the main field. (679baf5)
1.0.29 (2017-06-12)
1.0.28 (2017-06-08)
1.0.27 (2017-06-08)
- 1.0.27 (343c6ec)
- Added handling for evaluating declarations of kinds 'GetAccessorDeclaration' and 'SetAccessorDeclara (a8df6d6)
1.0.26 (2017-05-31)
1.0.25 (2017-05-31)
1.0.24 (2017-05-31)
1.0.23 (2017-05-31)
1.0.22 (2017-05-31)
1.0.21 (2017-05-31)
1.0.20 (2017-05-31)
- 1.0.20 (0d7eb80)
- Moved some logic into a separate module ('compiler-common') to instead depend on that one. (8fde2e2)
1.0.19 (2017-05-31)
1.0.18 (2017-05-30)
- 1.0.18 (5aee9e9)
- Fixed an issue where getting names of anonymous functions would sometimes crash. (a0ea63a)
1.0.17 (2017-05-30)
1.0.16 (2017-05-30)
- 1.0.16 (0cd0f59)
- Removed Typescript as a constructor argument to instead use the one that is located in node_modules. (daf7772)
1.0.15 (2017-05-26)
- 1.0.15 (e029d2f)
- Added a blacklist filter for specific file names (such as tslib.ts or rollup plugins.) (3c60109)
1.0.14 (2017-05-26)
1.0.13 (2017-05-25)
- 1.0.13 (a85063f)
- Derived classes can now inherit methods, props and constructors from their parents up through the in (02417c8)
1.0.12 (2017-05-25)
- 1.0.12 (a3533d2)
- The 'ArbitraryValue', 'IValueable' and 'INonNullableValueable' interfaces are now exported for publi (a9e73b3)
1.0.11 (2017-05-25)
- 1.0.11 (2ce23d4)
- Major overhaul in regards to serialization and value resolving (c8db56a)
- Updated README (8c3065f)
1.0.10 (2017-05-25)
- 1.0.10 (2eb6000)
- Return statements of methods and functions can now also be broken up into expressions and resolved i (feeb14c)
1.0.9 (2017-05-24)
- 1.0.9 (23ee928)
- Added support for getting all identifiers and the values that they are initialized to in a map. (434d8f6)
- Refactored import/export payloads for consistency by adding an ILiteralValue IIdentifier kind (d752f1e)
- Reformatted code (7f25bfb)
- Updated the value expressions for classes (f947520)
1.0.8 (2017-05-24)
1.0.7 (2017-05-19)
- 1.0.7 (7bd3e1e)
- More caching, better performance, better resolving of values, other bug fixes. (878afb7)
- Reformatted code (aebaf54)
- Removed a console statement (6ca17d2)
1.0.6 (2017-05-18)
- 1.0.6 (ff80b74)
- Added a blacklist filter for specific statement kinds that doesn't live on runtime (such as namespac (bbb6ea3)
1.0.5 (2017-05-18)
1.0.4 (2017-05-18)
1.0.3 (2017-05-18)
- 1.0.3 (d3d59da)
- Bug fixes (e48e11e)
- More work on resolving values (966f21b)
- Much work on resolving values. (2f085a1)
1.0.2 (2017-05-16)
- 1.0.2 (df61ccc)
- Object-/Array destructuring now also works for function/method parameters and arguments. (52538dd)
1.0.1 (2017-05-16)
- 1.0.1 (a369d4a)
- 1.0.1 (2f33b8f)
- 1.0.2 (69af35c)
- 1.0.3 (0710ab5)
- 1.0.4 (798d197)
- 1.0.5 (f69c4e1)
- 1.0.6 (a1dfea4)
- 1.0.7 (9501d4e)
- 1.0.8 (54ebb75)
- 1.0.9 (eb2061b)
- Added an additional export (f67ed76)
- Added an index file for all exports (9821aac)
- Added basic support for resolving and return values from function calls AOT (505af49)
- Added even more exports (82bd13c)
- Added integration testing for combining with an actual Marshaller implementation. Renamed 'getInitia (ad9b7b1)
- Added more text for the README (2a957a2)
- Added payloads to exports (0269a90)
- Added protection against infinite recursion (31b34c8)
- Added recursion support for class methods as well (23b661f)
- Added recursive function support. (4bee9b4)
- Added SpreadOperators and refined array tokenify (28c200d)
- Added support for binding patterns in variable assignments such as 'const [a, b] = [1, 2]' (06c0e74)
- Broader language support (920a487)
- Bug fixes, more tests (276656a)
- Classes and functions can now also be exported (b5b7b40)
- Comminjs export support improvements (12fe4c2)
- Finalized new folder structure (2b61630)
- first commit (fdbc46d)
- First work on resolving values (6f92108)
- Fixed a bug where the 'main' entry pointed to the wrong file in the package.json file (a248f41)
- Fixed an export statement (8ca2437)
- Fixed an issue with 'this' scoping (9ff8194)
- Fixed bugs with identifiers and parsing element access expressions (6da7b85)
- Fixed marshalling of string literals (817bb2d)
- Lots of work on resolving node module packages and handling commonjs exports (f2b6fe0)
- Made improvements to deep path formatting (0f7502c)
- More exported interfaces and types (4e4817a)
- More of the language now supported. (064c62b)
- More refactoring, cleanup, reuse (5333410)
- More refactoring. More code-reuse and less project-specific (6eea7ad)
- More reuse and reuse of interfaces (8c4566a)
- More tests (109367e)
- More work and refactoring (04e8caf)
- More work and refinements (10e5127)
- More work on ExportDeclarations (a853f04)
- More work on initialization valeus and deep parsing (56bd99b)
- More work on initialization values (f532792)
- More work on language features (ec19ec1)
- More work on language features and support (a9cf3e2)
- More work on resolving values (b1667be)
- More work on resolving values (6f3d703)
- More work on resolving values (354c79b)
- More work on resolving values, now with function arguments (c4bf39f)
- More work on typings. Refactoring. Cleanup (4d7ffce)
- Moved 'originalStatement' out if IIdentifiers and added a private map between the two to ensure that (fdf1d51)
- Moved from ts.Type typings to direct bindings (0c507fd)
- Nested namespace exporting now works (5d9d38c)
- Now, both ES-modules and require-statements is parsed and detected as import-statements. We now dete (8714b7f)
- Refactored most arrays into key-value stores for indexed lookups (0fb5649)
- Refactored most logic into separate classes and modules to break the logic out into different pieces (fd004ee)
- Refactored test methods into separate test files (1c9cc34)
- Refactoring (d1675bd)
- Refinements and testing. Some breaking changes (4f755d9)
- Reformatted code (49a6170)
- Reimplemented enum support (4afee33)
- Removed a chunk of unneeded code (38d26d5)
- Removed Mocks since they didn't work well. Added extension addition to module paths (b3b0c86)
- Renamed project to 'CodeAnalyzer' (cd79ddc)
- Resolving values now also works for imports. This fixes #3 (8adfe08), closes #3
- Scoped the package for private access (17d836f)
- The API can now also extract newExpressions (5f48130)
- The left-hand side of CallExpressions or NewExpressions might be a literal. The LanguageService can (48b27b5)
- The service can now get all function declarations (7055527)
- Updated interface signature for 'getInitializedValue' to make it support more Statement kinds (30c759e)
- Updated README (8f0ee61)
- Values from loops can now be resolved (db84f7c)
- Wrote more on the README (5cdf3c8)
1.0.42 (2017-07-10)
- 1.0.42 (861c824)
- Auto-generated filenames for chunks of code will no longer be removed from the AST. (7e8f34a)
1.0.41 (2017-07-10)
- 1.0.41 (8991b26)
- Added the possibility of providing a raw string of code to all get methods (such as 'getClassDecla (58b596c)
1.0.40 (2017-07-10)
- Fixed some tslint errors. (22695e7)
- 1.0.40 (381c163)
- Moved Typescript to dependencies rather than development dependencies (365c82a)
1.0.39 (2017-07-09)
- 1.0.39 (a63e1fb)
- Fixed a bug where TemplateHeads, TemplateMiddles or TemplateTails would be unmarshalled incorrectly. (cf87adb)
1.0.38 (2017-07-06)
1.0.37 (2017-07-06)
- 1.0.37 (8b83e34)
- Added the possibility of adding one or more regular expressions that matches filepaths that should b (2a220cb)
1.0.36 (2017-07-06)
1.0.35 (2017-07-05)
- 1.0.35 (df28f77)
- Better resolving of files in node_modules. Bumped dependencies and refactored. (2b157cb)
1.0.34 (2017-07-05)
1.0.33 (2017-07-05)
1.0.32 (2017-07-05)
- 1.0.32 (b8da643)
- Parsing package.json files will now skip browser fields if it contains multiple paths. (501847e)
1.0.31 (2017-07-05)
1.0.30 (2017-07-05)
- 1.0.30 (868d7ff)
- Added a fallback path to modules with files without any value for the main field. (679baf5)
1.0.29 (2017-06-12)
1.0.28 (2017-06-08)
1.0.27 (2017-06-08)
- 1.0.27 (343c6ec)
- Added handling for evaluating declarations of kinds 'GetAccessorDeclaration' and 'SetAccessorDeclara (a8df6d6)
1.0.26 (2017-05-31)
1.0.25 (2017-05-31)
1.0.24 (2017-05-31)
1.0.23 (2017-05-31)
1.0.22 (2017-05-31)
1.0.21 (2017-05-31)
1.0.20 (2017-05-31)
- 1.0.20 (0d7eb80)
- Moved some logic into a separate module ('compiler-common') to instead depend on that one. (8fde2e2)
1.0.19 (2017-05-31)
1.0.18 (2017-05-30)
- 1.0.18 (5aee9e9)
- Fixed an issue where getting names of anonymous functions would sometimes crash. (a0ea63a)
1.0.17 (2017-05-30)
1.0.16 (2017-05-30)
- 1.0.16 (0cd0f59)
- Removed Typescript as a constructor argument to instead use the one that is located in node_modules. (daf7772)
1.0.15 (2017-05-26)
- 1.0.15 (e029d2f)
- Added a blacklist filter for specific file names (such as tslib.ts or rollup plugins.) (3c60109)
1.0.14 (2017-05-26)
1.0.13 (2017-05-25)
- 1.0.13 (a85063f)
- Derived classes can now inherit methods, props and constructors from their parents up through the in (02417c8)
1.0.12 (2017-05-25)
- 1.0.12 (a3533d2)
- The 'ArbitraryValue', 'IValueable' and 'INonNullableValueable' interfaces are now exported for publi (a9e73b3)
1.0.11 (2017-05-25)
- 1.0.11 (2ce23d4)
- Major overhaul in regards to serialization and value resolving (c8db56a)
- Updated README (8c3065f)
1.0.10 (2017-05-25)
- 1.0.10 (2eb6000)
- Return statements of methods and functions can now also be broken up into expressions and resolved i (feeb14c)
1.0.9 (2017-05-24)
- 1.0.9 (23ee928)
- Added support for getting all identifiers and the values that they are initialized to in a map. (434d8f6)
- Refactored import/export payloads for consistency by adding an ILiteralValue IIdentifier kind (d752f1e)
- Reformatted code (7f25bfb)
- Updated the value expressions for classes (f947520)
1.0.8 (2017-05-24)
1.0.7 (2017-05-19)
- 1.0.7 (7bd3e1e)
- More caching, better performance, better resolving of values, other bug fixes. (878afb7)
- Reformatted code (aebaf54)
- Removed a console statement (6ca17d2)
1.0.6 (2017-05-18)
- 1.0.6 (ff80b74)
- Added a blacklist filter for specific statement kinds that doesn't live on runtime (such as namespac (bbb6ea3)
1.0.5 (2017-05-18)
1.0.4 (2017-05-18)
1.0.3 (2017-05-18)
- 1.0.3 (d3d59da)
- Bug fixes (e48e11e)
- More work on resolving values (966f21b)
- Much work on resolving values. (2f085a1)
1.0.2 (2017-05-16)
- 1.0.2 (df61ccc)
- Object-/Array destructuring now also works for function/method parameters and arguments. (52538dd)
1.0.1 (2017-05-16)
- 1.0.1 (a369d4a)
- 1.0.1 (2f33b8f)
- 1.0.2 (69af35c)
- 1.0.3 (0710ab5)
- 1.0.4 (798d197)
- 1.0.5 (f69c4e1)
- 1.0.6 (a1dfea4)
- 1.0.7 (9501d4e)
- 1.0.8 (54ebb75)
- 1.0.9 (eb2061b)
- Added an additional export (f67ed76)
- Added an index file for all exports (9821aac)
- Added basic support for resolving and return values from function calls AOT (505af49)
- Added even more exports (82bd13c)
- Added integration testing for combining with an actual Marshaller implementation. Renamed 'getInitia (ad9b7b1)
- Added more text for the README (2a957a2)
- Added payloads to exports (0269a90)
- Added protection against infinite recursion (31b34c8)
- Added recursion support for class methods as well (23b661f)
- Added recursive function support. (4bee9b4)
- Added SpreadOperators and refined array tokenify (28c200d)
- Added support for binding patterns in variable assignments such as 'const [a, b] = [1, 2]' (06c0e74)
- Broader language support (920a487)
- Bug fixes, more tests (276656a)
- Classes and functions can now also be exported (b5b7b40)
- Comminjs export support improvements (12fe4c2)
- Finalized new folder structure (2b61630)
- first commit (fdbc46d)
- First work on resolving values (6f92108)
- Fixed a bug where the 'main' entry pointed to the wrong file in the package.json file (a248f41)
- Fixed an export statement (8ca2437)
- Fixed an issue with 'this' scoping (9ff8194)
- Fixed bugs with identifiers and parsing element access expressions (6da7b85)
- Fixed marshalling of string literals (817bb2d)
- Lots of work on resolving node module packages and handling commonjs exports (f2b6fe0)
- Made improvements to deep path formatting (0f7502c)
- More exported interfaces and types (4e4817a)
- More of the language now supported. (064c62b)
- More refactoring, cleanup, reuse (5333410)
- More refactoring. More code-reuse and less project-specific (6eea7ad)
- More reuse and reuse of interfaces (8c4566a)
- More tests (109367e)
- More work and refactoring (04e8caf)
- More work and refinements (10e5127)
- More work on ExportDeclarations (a853f04)
- More work on initialization valeus and deep parsing (56bd99b)
- More work on initialization values (f532792)
- More work on language features (ec19ec1)
- More work on language features and support (a9cf3e2)
- More work on resolving values (b1667be)
- More work on resolving values (6f3d703)
- More work on resolving values (354c79b)
- More work on resolving values, now with function arguments (c4bf39f)
- More work on typings. Refactoring. Cleanup (4d7ffce)
- Moved 'originalStatement' out if IIdentifiers and added a private map between the two to ensure that (fdf1d51)
- Moved from ts.Type typings to direct bindings (0c507fd)
- Nested namespace exporting now works (5d9d38c)
- Now, both ES-modules and require-statements is parsed and detected as import-statements. We now dete (8714b7f)
- Refactored most arrays into key-value stores for indexed lookups (0fb5649)
- Refactored most logic into separate classes and modules to break the logic out into different pieces (fd004ee)
- Refactored test methods into separate test files (1c9cc34)
- Refactoring (d1675bd)
- Refinements and testing. Some breaking changes (4f755d9)
- Reformatted code (49a6170)
- Reimplemented enum support (4afee33)
- Removed a chunk of unneeded code (38d26d5)
- Removed Mocks since they didn't work well. Added extension addition to module paths (b3b0c86)
- Renamed project to 'CodeAnalyzer' (cd79ddc)
- Resolving values now also works for imports. This fixes #3 (8adfe08), closes #3
- Scoped the package for private access (17d836f)
- The API can now also extract newExpressions (5f48130)
- The left-hand side of CallExpressions or NewExpressions might be a literal. The LanguageService can (48b27b5)
- The service can now get all function declarations (7055527)
- Updated interface signature for 'getInitializedValue' to make it support more Statement kinds (30c759e)
- Updated README (8f0ee61)
- Values from loops can now be resolved (db84f7c)
- Wrote more on the README (5cdf3c8)