UNPKG

roblox-ts

Version:

A TypeScript-to-Luau Compiler for Roblox

31 lines 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProgramFactory = createProgramFactory; const fs_extra_1 = __importDefault(require("fs-extra")); const createReadBuildProgramHost_1 = require("../util/createReadBuildProgramHost"); const constants_1 = require("../../Shared/constants"); const assert_1 = require("../../Shared/util/assert"); const typescript_1 = __importDefault(require("typescript")); function createCompilerHost(data, compilerOptions) { var _a; const host = typescript_1.default.createIncrementalCompilerHost(compilerOptions); let contentsToHash = ""; contentsToHash += `version=${constants_1.COMPILER_VERSION},`; contentsToHash += `type=${String(data.projectOptions.type)},`; contentsToHash += `isPackage=${String(data.isPackage)},`; contentsToHash += `plugins=${JSON.stringify((_a = compilerOptions.plugins) !== null && _a !== void 0 ? _a : [])},`; if (data.rojoConfigPath && fs_extra_1.default.existsSync(data.rojoConfigPath)) { contentsToHash += fs_extra_1.default.readFileSync(data.rojoConfigPath).toString(); } (0, assert_1.assert)(host.createHash); const origCreateHash = host.createHash; host.createHash = (data) => origCreateHash(contentsToHash + data); return host; } function createProgramFactory(data, options) { return (rootNames, compilerOptions = options, host = createCompilerHost(data, options), oldProgram = typescript_1.default.readBuilderProgram(options, (0, createReadBuildProgramHost_1.createReadBuildProgramHost)())) => typescript_1.default.createEmitAndSemanticDiagnosticsBuilderProgram(rootNames, compilerOptions, host, oldProgram); } //# sourceMappingURL=createProgramFactory.js.map