UNPKG

roblox-ts

Version:

A TypeScript-to-Luau Compiler for Roblox

26 lines 1.47 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformNewExpression = transformNewExpression; const luau_ast_1 = __importDefault(require("@roblox-ts/luau-ast")); const transformExpression_1 = require("./transformExpression"); const convertToIndexableExpression_1 = require("../../util/convertToIndexableExpression"); const ensureTransformOrder_1 = require("../../util/ensureTransformOrder"); const types_1 = require("../../util/types"); const validateNotAny_1 = require("../../util/validateNotAny"); function transformNewExpression(state, node) { (0, validateNotAny_1.validateNotAnyType)(state, node.expression); const symbol = (0, types_1.getFirstConstructSymbol)(state, node.expression); if (symbol) { const macro = state.services.macroManager.getConstructorMacro(symbol); if (macro) { return macro(state, node); } } const expression = (0, convertToIndexableExpression_1.convertToIndexableExpression)((0, transformExpression_1.transformExpression)(state, node.expression)); const args = node.arguments ? (0, ensureTransformOrder_1.ensureTransformOrder)(state, node.arguments) : []; return luau_ast_1.default.call(luau_ast_1.default.property(expression, "new"), args); } //# sourceMappingURL=transformNewExpression.js.map