UNPKG

roblox-ts

Version:

A TypeScript-to-Luau Compiler for Roblox

51 lines 2.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProjectData = createProjectData; const rojo_resolver_1 = require("@roblox-ts/rojo-resolver"); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const LogService_1 = require("../../Shared/classes/LogService"); const constants_1 = require("../../Shared/constants"); const ProjectError_1 = require("../../Shared/errors/ProjectError"); const typescript_1 = __importDefault(require("typescript")); const PACKAGE_REGEX = /^@[a-z0-9-]*\//; function createProjectData(tsConfigPath, projectOptions) { var _a; const projectPath = path_1.default.dirname(tsConfigPath); const pkgJsonPath = typescript_1.default.findPackageJson(projectPath, typescript_1.default.sys); if (!pkgJsonPath) { throw new ProjectError_1.ProjectError("Unable to find package.json"); } let isPackage = false; try { const pkgJson = JSON.parse(fs_extra_1.default.readFileSync(pkgJsonPath).toString()); isPackage = PACKAGE_REGEX.test((_a = pkgJson.name) !== null && _a !== void 0 ? _a : ""); } catch { } projectOptions.includePath = path_1.default.resolve(projectOptions.includePath || path_1.default.join(projectPath, "include")); const nodeModulesPath = path_1.default.join(path_1.default.dirname(pkgJsonPath), constants_1.NODE_MODULES); let rojoConfigPath; if (projectOptions.rojo) { rojoConfigPath = path_1.default.resolve(projectOptions.rojo); } else { const { path, warnings } = rojo_resolver_1.RojoResolver.findRojoConfigFilePath(projectPath); rojoConfigPath = path; for (const warning of warnings) { LogService_1.LogService.warn(warning); } } return { tsConfigPath, isPackage, nodeModulesPath, projectOptions, projectPath, rojoConfigPath, }; } //# sourceMappingURL=createProjectData.js.map