--- /dev/null
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _typescript = require("typescript");
+
+var _typescript2 = _interopRequireDefault(_typescript);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var createProgram = function createProgram(filepath) {
+ var program = _typescript2.default.createProgram([filepath], {
+ noResolve: true,
+ target: _typescript2.default.ScriptTarget.Latest,
+ jsx: "preserve"
+ });
+
+ // This ensures the `parent` property of every node exists. More info here: https://github.com/Microsoft/TypeScript/issues/14464#issuecomment-284533993
+ program.getTypeChecker();
+
+ return program;
+};
+
+exports.default = createProgram;
\ No newline at end of file