@jackctaylor/roblox-ts 3.0.0-projectrefs.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +716 -0
- package/LICENSE +21 -0
- package/README.md +55 -0
- package/include/Promise.lua +2068 -0
- package/include/RuntimeLib.lua +258 -0
- package/out/CLI/cli.d.ts +2 -0
- package/out/CLI/cli.js +41 -0
- package/out/CLI/commands/build.d.ts +7 -0
- package/out/CLI/commands/build.js +438 -0
- package/out/CLI/errors/CLIError.d.ts +4 -0
- package/out/CLI/errors/CLIError.js +12 -0
- package/out/CLI/index.d.ts +3 -0
- package/out/CLI/index.js +22 -0
- package/out/CLI/test.d.ts +1 -0
- package/out/CLI/test.js +82 -0
- package/out/CLI/util/patchFs.d.ts +1 -0
- package/out/CLI/util/patchFs.js +26 -0
- package/out/Project/classes/VirtualFileSystem.d.ts +14 -0
- package/out/Project/classes/VirtualFileSystem.js +102 -0
- package/out/Project/classes/VirtualProject.d.ts +15 -0
- package/out/Project/classes/VirtualProject.js +121 -0
- package/out/Project/functions/buildProject.d.ts +18 -0
- package/out/Project/functions/buildProject.js +48 -0
- package/out/Project/functions/buildProjectReferences.d.ts +3 -0
- package/out/Project/functions/buildProjectReferences.js +78 -0
- package/out/Project/functions/buildSolution.d.ts +10 -0
- package/out/Project/functions/buildSolution.js +97 -0
- package/out/Project/functions/checkFileName.d.ts +1 -0
- package/out/Project/functions/checkFileName.js +18 -0
- package/out/Project/functions/checkRojoConfig.d.ts +4 -0
- package/out/Project/functions/checkRojoConfig.js +26 -0
- package/out/Project/functions/cleanup.d.ts +2 -0
- package/out/Project/functions/cleanup.js +30 -0
- package/out/Project/functions/compileFiles.d.ts +4 -0
- package/out/Project/functions/compileFiles.js +160 -0
- package/out/Project/functions/compileProject.d.ts +14 -0
- package/out/Project/functions/compileProject.js +71 -0
- package/out/Project/functions/copyFiles.d.ts +3 -0
- package/out/Project/functions/copyFiles.js +13 -0
- package/out/Project/functions/copyInclude.d.ts +2 -0
- package/out/Project/functions/copyInclude.js +17 -0
- package/out/Project/functions/copyItem.d.ts +3 -0
- package/out/Project/functions/copyItem.js +27 -0
- package/out/Project/functions/createNodeModulesPathMapping.d.ts +1 -0
- package/out/Project/functions/createNodeModulesPathMapping.js +31 -0
- package/out/Project/functions/createPathTranslator.d.ts +4 -0
- package/out/Project/functions/createPathTranslator.js +22 -0
- package/out/Project/functions/createProgramFactory.d.ts +3 -0
- package/out/Project/functions/createProgramFactory.js +31 -0
- package/out/Project/functions/createProjectData.d.ts +2 -0
- package/out/Project/functions/createProjectData.js +102 -0
- package/out/Project/functions/createProjectProgram.d.ts +3 -0
- package/out/Project/functions/createProjectProgram.js +11 -0
- package/out/Project/functions/getChangedFilePaths.d.ts +2 -0
- package/out/Project/functions/getChangedFilePaths.js +47 -0
- package/out/Project/functions/getChangedSourceFiles.d.ts +2 -0
- package/out/Project/functions/getChangedSourceFiles.js +19 -0
- package/out/Project/functions/getParsedCommandLine.d.ts +3 -0
- package/out/Project/functions/getParsedCommandLine.js +41 -0
- package/out/Project/functions/getProjectReferences.d.ts +2 -0
- package/out/Project/functions/getProjectReferences.js +65 -0
- package/out/Project/functions/getResolvedProjectReferences.d.ts +3 -0
- package/out/Project/functions/getResolvedProjectReferences.js +43 -0
- package/out/Project/functions/setupProjectWatchProgram.d.ts +2 -0
- package/out/Project/functions/setupProjectWatchProgram.js +352 -0
- package/out/Project/functions/setupSolutionWatchProgram.d.ts +2 -0
- package/out/Project/functions/setupSolutionWatchProgram.js +355 -0
- package/out/Project/functions/tryRemoveOutput.d.ts +2 -0
- package/out/Project/functions/tryRemoveOutput.js +30 -0
- package/out/Project/functions/validateCompilerOptions.d.ts +2 -0
- package/out/Project/functions/validateCompilerOptions.js +87 -0
- package/out/Project/index.d.ts +4 -0
- package/out/Project/index.js +20 -0
- package/out/Project/preEmitDiagnostics/fileUsesCommentDirectives.d.ts +3 -0
- package/out/Project/preEmitDiagnostics/fileUsesCommentDirectives.js +28 -0
- package/out/Project/transformers/builtin/transformPaths.d.ts +5 -0
- package/out/Project/transformers/builtin/transformPaths.js +129 -0
- package/out/Project/transformers/builtin/transformTypeReferenceDirectives.d.ts +2 -0
- package/out/Project/transformers/builtin/transformTypeReferenceDirectives.js +23 -0
- package/out/Project/transformers/createTransformerList.d.ts +4 -0
- package/out/Project/transformers/createTransformerList.js +87 -0
- package/out/Project/transformers/createTransformerWatcher.d.ts +3 -0
- package/out/Project/transformers/createTransformerWatcher.js +59 -0
- package/out/Project/transformers/getPluginConfigs.d.ts +2 -0
- package/out/Project/transformers/getPluginConfigs.js +34 -0
- package/out/Project/util/createReadBuildProgramHost.d.ts +5 -0
- package/out/Project/util/createReadBuildProgramHost.js +15 -0
- package/out/Project/util/getCustomPreEmitDiagnostics.d.ts +4 -0
- package/out/Project/util/getCustomPreEmitDiagnostics.js +13 -0
- package/out/Project/util/isCompilableFile.d.ts +1 -0
- package/out/Project/util/isCompilableFile.js +18 -0
- package/out/Project/util/walkDirectorySync.d.ts +1 -0
- package/out/Project/util/walkDirectorySync.js +22 -0
- package/out/Shared/classes/Lazy.d.ts +8 -0
- package/out/Shared/classes/Lazy.js +22 -0
- package/out/Shared/classes/LogService.d.ts +9 -0
- package/out/Shared/classes/LogService.js +37 -0
- package/out/Shared/constants.d.ts +23 -0
- package/out/Shared/constants.js +50 -0
- package/out/Shared/diagnostics.d.ts +79 -0
- package/out/Shared/diagnostics.js +140 -0
- package/out/Shared/errors/DiagnosticError.d.ts +7 -0
- package/out/Shared/errors/DiagnosticError.js +16 -0
- package/out/Shared/errors/LoggableError.d.ts +5 -0
- package/out/Shared/errors/LoggableError.js +14 -0
- package/out/Shared/errors/ProjectError.d.ts +4 -0
- package/out/Shared/errors/ProjectError.js +12 -0
- package/out/Shared/index.d.ts +0 -0
- package/out/Shared/index.js +2 -0
- package/out/Shared/types.d.ts +50 -0
- package/out/Shared/types.js +3 -0
- package/out/Shared/util/assert.d.ts +1 -0
- package/out/Shared/util/assert.js +12 -0
- package/out/Shared/util/benchmark.d.ts +3 -0
- package/out/Shared/util/benchmark.js +32 -0
- package/out/Shared/util/createDiagnosticWithLocation.d.ts +3 -0
- package/out/Shared/util/createDiagnosticWithLocation.js +29 -0
- package/out/Shared/util/createGithubLink.d.ts +1 -0
- package/out/Shared/util/createGithubLink.js +12 -0
- package/out/Shared/util/createTextDiagnostic.d.ts +2 -0
- package/out/Shared/util/createTextDiagnostic.js +18 -0
- package/out/Shared/util/findAncestorDir.d.ts +1 -0
- package/out/Shared/util/findAncestorDir.js +16 -0
- package/out/Shared/util/findLastIndex.d.ts +1 -0
- package/out/Shared/util/findLastIndex.js +12 -0
- package/out/Shared/util/formatDiagnostics.d.ts +2 -0
- package/out/Shared/util/formatDiagnostics.js +19 -0
- package/out/Shared/util/getCanonicalFileName.d.ts +2 -0
- package/out/Shared/util/getCanonicalFileName.js +10 -0
- package/out/Shared/util/getOrSetDefault.d.ts +1 -0
- package/out/Shared/util/getOrSetDefault.js +12 -0
- package/out/Shared/util/getRootDirs.d.ts +2 -0
- package/out/Shared/util/getRootDirs.js +10 -0
- package/out/Shared/util/hasErrors.d.ts +2 -0
- package/out/Shared/util/hasErrors.js +11 -0
- package/out/Shared/util/isPathDescendantOf.d.ts +1 -0
- package/out/Shared/util/isPathDescendantOf.js +11 -0
- package/out/Shared/util/realPathExistsSync.d.ts +1 -0
- package/out/Shared/util/realPathExistsSync.js +13 -0
- package/out/Shared/warn.d.ts +1 -0
- package/out/Shared/warn.js +12 -0
- package/out/TSTransformer/classes/DiagnosticService.d.ts +11 -0
- package/out/TSTransformer/classes/DiagnosticService.js +37 -0
- package/out/TSTransformer/classes/MacroManager.d.ts +46 -0
- package/out/TSTransformer/classes/MacroManager.js +178 -0
- package/out/TSTransformer/classes/MultiTransformState.d.ts +9 -0
- package/out/TSTransformer/classes/MultiTransformState.js +15 -0
- package/out/TSTransformer/classes/TransformState.d.ts +73 -0
- package/out/TSTransformer/classes/TransformState.js +307 -0
- package/out/TSTransformer/index.d.ts +4 -0
- package/out/TSTransformer/index.js +23 -0
- package/out/TSTransformer/macros/callMacros.d.ts +2 -0
- package/out/TSTransformer/macros/callMacros.js +56 -0
- package/out/TSTransformer/macros/constructorMacros.d.ts +2 -0
- package/out/TSTransformer/macros/constructorMacros.js +97 -0
- package/out/TSTransformer/macros/identifierMacros.d.ts +2 -0
- package/out/TSTransformer/macros/identifierMacros.js +7 -0
- package/out/TSTransformer/macros/propertyCallMacros.d.ts +4 -0
- package/out/TSTransformer/macros/propertyCallMacros.js +726 -0
- package/out/TSTransformer/macros/types.d.ts +12 -0
- package/out/TSTransformer/macros/types.js +3 -0
- package/out/TSTransformer/nodes/binding/transformArrayAssignmentPattern.d.ts +4 -0
- package/out/TSTransformer/nodes/binding/transformArrayAssignmentPattern.js +78 -0
- package/out/TSTransformer/nodes/binding/transformArrayBindingPattern.d.ts +4 -0
- package/out/TSTransformer/nodes/binding/transformArrayBindingPattern.js +52 -0
- package/out/TSTransformer/nodes/binding/transformBindingName.d.ts +4 -0
- package/out/TSTransformer/nodes/binding/transformBindingName.js +30 -0
- package/out/TSTransformer/nodes/binding/transformObjectAssignmentPattern.d.ts +4 -0
- package/out/TSTransformer/nodes/binding/transformObjectAssignmentPattern.js +97 -0
- package/out/TSTransformer/nodes/binding/transformObjectBindingPattern.d.ts +4 -0
- package/out/TSTransformer/nodes/binding/transformObjectBindingPattern.js +57 -0
- package/out/TSTransformer/nodes/class/transformClassConstructor.d.ts +7 -0
- package/out/TSTransformer/nodes/class/transformClassConstructor.js +96 -0
- package/out/TSTransformer/nodes/class/transformClassLikeDeclaration.d.ts +7 -0
- package/out/TSTransformer/nodes/class/transformClassLikeDeclaration.js +262 -0
- package/out/TSTransformer/nodes/class/transformDecorators.d.ts +4 -0
- package/out/TSTransformer/nodes/class/transformDecorators.js +179 -0
- package/out/TSTransformer/nodes/class/transformPropertyDeclaration.d.ts +4 -0
- package/out/TSTransformer/nodes/class/transformPropertyDeclaration.js +33 -0
- package/out/TSTransformer/nodes/expressions/transformArrayLiteralExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformArrayLiteralExpression.js +79 -0
- package/out/TSTransformer/nodes/expressions/transformAwaitExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformAwaitExpression.js +13 -0
- package/out/TSTransformer/nodes/expressions/transformBinaryExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformBinaryExpression.js +199 -0
- package/out/TSTransformer/nodes/expressions/transformBooleanLiteral.d.ts +3 -0
- package/out/TSTransformer/nodes/expressions/transformBooleanLiteral.js +15 -0
- package/out/TSTransformer/nodes/expressions/transformCallExpression.d.ts +7 -0
- package/out/TSTransformer/nodes/expressions/transformCallExpression.js +191 -0
- package/out/TSTransformer/nodes/expressions/transformClassExpression.d.ts +3 -0
- package/out/TSTransformer/nodes/expressions/transformClassExpression.js +10 -0
- package/out/TSTransformer/nodes/expressions/transformConditionalExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformConditionalExpression.js +55 -0
- package/out/TSTransformer/nodes/expressions/transformDeleteExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformDeleteExpression.js +14 -0
- package/out/TSTransformer/nodes/expressions/transformElementAccessExpression.d.ts +5 -0
- package/out/TSTransformer/nodes/expressions/transformElementAccessExpression.js +62 -0
- package/out/TSTransformer/nodes/expressions/transformExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformExpression.js +107 -0
- package/out/TSTransformer/nodes/expressions/transformFunctionExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformFunctionExpression.js +46 -0
- package/out/TSTransformer/nodes/expressions/transformIdentifier.d.ts +5 -0
- package/out/TSTransformer/nodes/expressions/transformIdentifier.js +147 -0
- package/out/TSTransformer/nodes/expressions/transformImportExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformImportExpression.js +30 -0
- package/out/TSTransformer/nodes/expressions/transformJsxElement.d.ts +3 -0
- package/out/TSTransformer/nodes/expressions/transformJsxElement.js +8 -0
- package/out/TSTransformer/nodes/expressions/transformJsxExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformJsxExpression.js +19 -0
- package/out/TSTransformer/nodes/expressions/transformJsxFragment.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformJsxFragment.js +28 -0
- package/out/TSTransformer/nodes/expressions/transformJsxSelfClosingElement.d.ts +3 -0
- package/out/TSTransformer/nodes/expressions/transformJsxSelfClosingElement.js +8 -0
- package/out/TSTransformer/nodes/expressions/transformNewExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformNewExpression.js +26 -0
- package/out/TSTransformer/nodes/expressions/transformNoSubstitutionTemplateLiteral.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformNoSubstitutionTemplateLiteral.js +14 -0
- package/out/TSTransformer/nodes/expressions/transformNumericLiteral.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformNumericLiteral.js +13 -0
- package/out/TSTransformer/nodes/expressions/transformObjectLiteralExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformObjectLiteralExpression.js +98 -0
- package/out/TSTransformer/nodes/expressions/transformOmittedExpression.d.ts +2 -0
- package/out/TSTransformer/nodes/expressions/transformOmittedExpression.js +11 -0
- package/out/TSTransformer/nodes/expressions/transformParenthesizedExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformParenthesizedExpression.js +19 -0
- package/out/TSTransformer/nodes/expressions/transformPropertyAccessExpression.d.ts +5 -0
- package/out/TSTransformer/nodes/expressions/transformPropertyAccessExpression.js +36 -0
- package/out/TSTransformer/nodes/expressions/transformSpreadElement.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformSpreadElement.js +35 -0
- package/out/TSTransformer/nodes/expressions/transformStringLiteral.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformStringLiteral.js +12 -0
- package/out/TSTransformer/nodes/expressions/transformSuperKeyword.d.ts +2 -0
- package/out/TSTransformer/nodes/expressions/transformSuperKeyword.js +11 -0
- package/out/TSTransformer/nodes/expressions/transformTaggedTemplateExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformTaggedTemplateExpression.js +27 -0
- package/out/TSTransformer/nodes/expressions/transformTemplateExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformTemplateExpression.js +25 -0
- package/out/TSTransformer/nodes/expressions/transformThisExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformThisExpression.js +29 -0
- package/out/TSTransformer/nodes/expressions/transformTypeExpression.d.ts +3 -0
- package/out/TSTransformer/nodes/expressions/transformTypeExpression.js +8 -0
- package/out/TSTransformer/nodes/expressions/transformUnaryExpression.d.ts +5 -0
- package/out/TSTransformer/nodes/expressions/transformUnaryExpression.js +68 -0
- package/out/TSTransformer/nodes/expressions/transformVoidExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformVoidExpression.js +14 -0
- package/out/TSTransformer/nodes/expressions/transformYieldExpression.d.ts +4 -0
- package/out/TSTransformer/nodes/expressions/transformYieldExpression.js +46 -0
- package/out/TSTransformer/nodes/jsx/transformJsx.d.ts +4 -0
- package/out/TSTransformer/nodes/jsx/transformJsx.js +36 -0
- package/out/TSTransformer/nodes/jsx/transformJsxAttributes.d.ts +4 -0
- package/out/TSTransformer/nodes/jsx/transformJsxAttributes.js +83 -0
- package/out/TSTransformer/nodes/jsx/transformJsxChildren.d.ts +4 -0
- package/out/TSTransformer/nodes/jsx/transformJsxChildren.js +34 -0
- package/out/TSTransformer/nodes/jsx/transformJsxTagName.d.ts +4 -0
- package/out/TSTransformer/nodes/jsx/transformJsxTagName.js +42 -0
- package/out/TSTransformer/nodes/statements/transformBlock.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformBlock.js +14 -0
- package/out/TSTransformer/nodes/statements/transformBreakStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformBreakStatement.js +24 -0
- package/out/TSTransformer/nodes/statements/transformClassDeclaration.d.ts +3 -0
- package/out/TSTransformer/nodes/statements/transformClassDeclaration.js +8 -0
- package/out/TSTransformer/nodes/statements/transformContinueStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformContinueStatement.js +24 -0
- package/out/TSTransformer/nodes/statements/transformDoStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformDoStatement.js +31 -0
- package/out/TSTransformer/nodes/statements/transformEnumDeclaration.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformEnumDeclaration.js +97 -0
- package/out/TSTransformer/nodes/statements/transformExportAssignment.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformExportAssignment.js +53 -0
- package/out/TSTransformer/nodes/statements/transformExportDeclaration.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformExportDeclaration.js +109 -0
- package/out/TSTransformer/nodes/statements/transformExpressionStatement.d.ts +5 -0
- package/out/TSTransformer/nodes/statements/transformExpressionStatement.js +62 -0
- package/out/TSTransformer/nodes/statements/transformForOfStatement.d.ts +5 -0
- package/out/TSTransformer/nodes/statements/transformForOfStatement.js +375 -0
- package/out/TSTransformer/nodes/statements/transformForStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformForStatement.js +371 -0
- package/out/TSTransformer/nodes/statements/transformFunctionDeclaration.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformFunctionDeclaration.js +68 -0
- package/out/TSTransformer/nodes/statements/transformIfStatement.d.ts +5 -0
- package/out/TSTransformer/nodes/statements/transformIfStatement.js +46 -0
- package/out/TSTransformer/nodes/statements/transformImportDeclaration.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformImportDeclaration.js +98 -0
- package/out/TSTransformer/nodes/statements/transformImportEqualsDeclaration.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformImportEqualsDeclaration.js +36 -0
- package/out/TSTransformer/nodes/statements/transformModuleDeclaration.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformModuleDeclaration.js +122 -0
- package/out/TSTransformer/nodes/statements/transformReturnStatement.d.ts +5 -0
- package/out/TSTransformer/nodes/statements/transformReturnStatement.js +74 -0
- package/out/TSTransformer/nodes/statements/transformStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformStatement.js +83 -0
- package/out/TSTransformer/nodes/statements/transformSwitchStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformSwitchStatement.js +105 -0
- package/out/TSTransformer/nodes/statements/transformThrowStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformThrowStatement.js +18 -0
- package/out/TSTransformer/nodes/statements/transformTryStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformTryStatement.js +148 -0
- package/out/TSTransformer/nodes/statements/transformVariableStatement.d.ts +8 -0
- package/out/TSTransformer/nodes/statements/transformVariableStatement.js +155 -0
- package/out/TSTransformer/nodes/statements/transformWhileStatement.d.ts +4 -0
- package/out/TSTransformer/nodes/statements/transformWhileStatement.js +30 -0
- package/out/TSTransformer/nodes/transformEntityName.d.ts +4 -0
- package/out/TSTransformer/nodes/transformEntityName.js +24 -0
- package/out/TSTransformer/nodes/transformInitializer.d.ts +4 -0
- package/out/TSTransformer/nodes/transformInitializer.js +22 -0
- package/out/TSTransformer/nodes/transformInterpolatedStringPart.d.ts +3 -0
- package/out/TSTransformer/nodes/transformInterpolatedStringPart.js +12 -0
- package/out/TSTransformer/nodes/transformLogical.d.ts +4 -0
- package/out/TSTransformer/nodes/transformLogical.js +103 -0
- package/out/TSTransformer/nodes/transformLogicalOrCoalescingAssignmentExpression.d.ts +5 -0
- package/out/TSTransformer/nodes/transformLogicalOrCoalescingAssignmentExpression.js +91 -0
- package/out/TSTransformer/nodes/transformMethodDeclaration.d.ts +5 -0
- package/out/TSTransformer/nodes/transformMethodDeclaration.js +82 -0
- package/out/TSTransformer/nodes/transformOptionalChain.d.ts +46 -0
- package/out/TSTransformer/nodes/transformOptionalChain.js +257 -0
- package/out/TSTransformer/nodes/transformParameters.d.ts +8 -0
- package/out/TSTransformer/nodes/transformParameters.js +104 -0
- package/out/TSTransformer/nodes/transformPropertyName.d.ts +4 -0
- package/out/TSTransformer/nodes/transformPropertyName.js +18 -0
- package/out/TSTransformer/nodes/transformSourceFile.d.ts +4 -0
- package/out/TSTransformer/nodes/transformSourceFile.js +171 -0
- package/out/TSTransformer/nodes/transformStatementList.d.ts +7 -0
- package/out/TSTransformer/nodes/transformStatementList.js +63 -0
- package/out/TSTransformer/nodes/transformWritable.d.ts +9 -0
- package/out/TSTransformer/nodes/transformWritable.js +49 -0
- package/out/TSTransformer/typeGuards.d.ts +5 -0
- package/out/TSTransformer/typeGuards.js +27 -0
- package/out/TSTransformer/types.d.ts +9 -0
- package/out/TSTransformer/types.js +3 -0
- package/out/TSTransformer/util/addIndexDiagnostics.d.ts +3 -0
- package/out/TSTransformer/util/addIndexDiagnostics.js +24 -0
- package/out/TSTransformer/util/addOneIfArrayType.d.ts +4 -0
- package/out/TSTransformer/util/addOneIfArrayType.js +14 -0
- package/out/TSTransformer/util/arrayBindingPatternContainsHoists.d.ts +3 -0
- package/out/TSTransformer/util/arrayBindingPatternContainsHoists.js +23 -0
- package/out/TSTransformer/util/arrayLikeExpressionContainsSpread.d.ts +2 -0
- package/out/TSTransformer/util/arrayLikeExpressionContainsSpread.js +17 -0
- package/out/TSTransformer/util/assertNever.d.ts +1 -0
- package/out/TSTransformer/util/assertNever.js +36 -0
- package/out/TSTransformer/util/assignment.d.ts +7 -0
- package/out/TSTransformer/util/assignment.js +48 -0
- package/out/TSTransformer/util/binding/getAccessorForBindingType.d.ts +6 -0
- package/out/TSTransformer/util/binding/getAccessorForBindingType.js +141 -0
- package/out/TSTransformer/util/binding/getTargetIdForBindingPattern.d.ts +4 -0
- package/out/TSTransformer/util/binding/getTargetIdForBindingPattern.js +15 -0
- package/out/TSTransformer/util/binding/objectAccessor.d.ts +4 -0
- package/out/TSTransformer/util/binding/objectAccessor.js +39 -0
- package/out/TSTransformer/util/bitwise.d.ts +6 -0
- package/out/TSTransformer/util/bitwise.js +67 -0
- package/out/TSTransformer/util/checkVariableHoist.d.ts +3 -0
- package/out/TSTransformer/util/checkVariableHoist.js +33 -0
- package/out/TSTransformer/util/cleanModuleName.d.ts +1 -0
- package/out/TSTransformer/util/cleanModuleName.js +7 -0
- package/out/TSTransformer/util/convertToIndexableExpression.d.ts +3 -0
- package/out/TSTransformer/util/convertToIndexableExpression.js +14 -0
- package/out/TSTransformer/util/createBinaryFromOperator.d.ts +4 -0
- package/out/TSTransformer/util/createBinaryFromOperator.js +54 -0
- package/out/TSTransformer/util/createGetService.d.ts +2 -0
- package/out/TSTransformer/util/createGetService.js +15 -0
- package/out/TSTransformer/util/createHoistDeclaration.d.ts +4 -0
- package/out/TSTransformer/util/createHoistDeclaration.js +20 -0
- package/out/TSTransformer/util/createImportExpression.d.ts +5 -0
- package/out/TSTransformer/util/createImportExpression.js +181 -0
- package/out/TSTransformer/util/createStringFromLiteral.d.ts +2 -0
- package/out/TSTransformer/util/createStringFromLiteral.js +27 -0
- package/out/TSTransformer/util/createTransformServices.d.ts +3 -0
- package/out/TSTransformer/util/createTransformServices.js +9 -0
- package/out/TSTransformer/util/createTruthinessChecks.d.ts +5 -0
- package/out/TSTransformer/util/createTruthinessChecks.js +50 -0
- package/out/TSTransformer/util/createTypeCheck.d.ts +2 -0
- package/out/TSTransformer/util/createTypeCheck.js +11 -0
- package/out/TSTransformer/util/ensureTransformOrder.d.ts +5 -0
- package/out/TSTransformer/util/ensureTransformOrder.js +39 -0
- package/out/TSTransformer/util/expressionChain.d.ts +3 -0
- package/out/TSTransformer/util/expressionChain.js +16 -0
- package/out/TSTransformer/util/expressionMightMutate.d.ts +4 -0
- package/out/TSTransformer/util/expressionMightMutate.js +57 -0
- package/out/TSTransformer/util/findConstructor.d.ts +4 -0
- package/out/TSTransformer/util/findConstructor.js +11 -0
- package/out/TSTransformer/util/fixupWhitespaceAndDecodeEntities.d.ts +1 -0
- package/out/TSTransformer/util/fixupWhitespaceAndDecodeEntities.js +306 -0
- package/out/TSTransformer/util/getAddIterableToArrayBuilder.d.ts +6 -0
- package/out/TSTransformer/util/getAddIterableToArrayBuilder.js +253 -0
- package/out/TSTransformer/util/getAssignableValue.d.ts +3 -0
- package/out/TSTransformer/util/getAssignableValue.js +15 -0
- package/out/TSTransformer/util/getConstantValueLiteral.d.ts +4 -0
- package/out/TSTransformer/util/getConstantValueLiteral.js +19 -0
- package/out/TSTransformer/util/getDeclaredVariables.d.ts +2 -0
- package/out/TSTransformer/util/getDeclaredVariables.js +37 -0
- package/out/TSTransformer/util/getExtendsNode.d.ts +2 -0
- package/out/TSTransformer/util/getExtendsNode.js +16 -0
- package/out/TSTransformer/util/getFlags.d.ts +1 -0
- package/out/TSTransformer/util/getFlags.js +13 -0
- package/out/TSTransformer/util/getKindName.d.ts +2 -0
- package/out/TSTransformer/util/getKindName.js +61 -0
- package/out/TSTransformer/util/getOriginalSymbolOfNode.d.ts +2 -0
- package/out/TSTransformer/util/getOriginalSymbolOfNode.js +15 -0
- package/out/TSTransformer/util/getSourceFileFromModuleSpecifier.d.ts +3 -0
- package/out/TSTransformer/util/getSourceFileFromModuleSpecifier.js +33 -0
- package/out/TSTransformer/util/getStatements.d.ts +2 -0
- package/out/TSTransformer/util/getStatements.js +11 -0
- package/out/TSTransformer/util/hasMultipleDefinitions.d.ts +2 -0
- package/out/TSTransformer/util/hasMultipleDefinitions.js +17 -0
- package/out/TSTransformer/util/isBlockedByTryStatement.d.ts +3 -0
- package/out/TSTransformer/util/isBlockedByTryStatement.js +17 -0
- package/out/TSTransformer/util/isMethod.d.ts +4 -0
- package/out/TSTransformer/util/isMethod.js +90 -0
- package/out/TSTransformer/util/isSymbolMutable.d.ts +3 -0
- package/out/TSTransformer/util/isSymbolMutable.js +24 -0
- package/out/TSTransformer/util/isSymbolOfValue.d.ts +2 -0
- package/out/TSTransformer/util/isSymbolOfValue.js +11 -0
- package/out/TSTransformer/util/isUsedAsStatement.d.ts +2 -0
- package/out/TSTransformer/util/isUsedAsStatement.js +23 -0
- package/out/TSTransformer/util/isValidMethodIndexWithoutCall.d.ts +3 -0
- package/out/TSTransformer/util/isValidMethodIndexWithoutCall.js +31 -0
- package/out/TSTransformer/util/offset.d.ts +2 -0
- package/out/TSTransformer/util/offset.js +44 -0
- package/out/TSTransformer/util/pointer.d.ts +13 -0
- package/out/TSTransformer/util/pointer.js +46 -0
- package/out/TSTransformer/util/spreadDestructuring/index.d.ts +9 -0
- package/out/TSTransformer/util/spreadDestructuring/index.js +45 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureArray.d.ts +3 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureArray.js +17 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureGenerator.d.ts +3 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureGenerator.js +33 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureMap.d.ts +3 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureMap.js +34 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureObject.d.ts +3 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureObject.js +41 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureSet.d.ts +3 -0
- package/out/TSTransformer/util/spreadDestructuring/spreadDestructureSet.js +28 -0
- package/out/TSTransformer/util/traversal.d.ts +7 -0
- package/out/TSTransformer/util/traversal.js +57 -0
- package/out/TSTransformer/util/types.d.ts +31 -0
- package/out/TSTransformer/util/types.js +259 -0
- package/out/TSTransformer/util/validateIdentifier.d.ts +3 -0
- package/out/TSTransformer/util/validateIdentifier.js +18 -0
- package/out/TSTransformer/util/validateMethodAssignment.d.ts +3 -0
- package/out/TSTransformer/util/validateMethodAssignment.js +81 -0
- package/out/TSTransformer/util/validateNotAny.d.ts +3 -0
- package/out/TSTransformer/util/validateNotAny.js +37 -0
- package/out/TSTransformer/util/valueToIdStr.d.ts +2 -0
- package/out/TSTransformer/util/valueToIdStr.js +29 -0
- package/out/TSTransformer/util/wrapExpressionStatement.d.ts +2 -0
- package/out/TSTransformer/util/wrapExpressionStatement.js +22 -0
- package/out/TSTransformer/util/wrapReturnIfLuaTuple.d.ts +4 -0
- package/out/TSTransformer/util/wrapReturnIfLuaTuple.js +56 -0
- package/out/TSTransformer/util/wrapStatementsAsGenerator.d.ts +4 -0
- package/out/TSTransformer/util/wrapStatementsAsGenerator.js +19 -0
- package/package.json +72 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.transformWritableExpression = transformWritableExpression;
|
|
7
|
+
exports.transformWritableAssignment = transformWritableAssignment;
|
|
8
|
+
const luau_ast_1 = __importDefault(require("@roblox-ts/luau-ast"));
|
|
9
|
+
const diagnostics_1 = require("../../Shared/diagnostics");
|
|
10
|
+
const assert_1 = require("../../Shared/util/assert");
|
|
11
|
+
const DiagnosticService_1 = require("../classes/DiagnosticService");
|
|
12
|
+
const transformExpression_1 = require("./expressions/transformExpression");
|
|
13
|
+
const addOneIfArrayType_1 = require("../util/addOneIfArrayType");
|
|
14
|
+
const convertToIndexableExpression_1 = require("../util/convertToIndexableExpression");
|
|
15
|
+
const ensureTransformOrder_1 = require("../util/ensureTransformOrder");
|
|
16
|
+
const traversal_1 = require("../util/traversal");
|
|
17
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
18
|
+
function transformWritableExpression(state, node, readAfterWrite) {
|
|
19
|
+
if (typescript_1.default.isPrototypeAccess(node)) {
|
|
20
|
+
DiagnosticService_1.DiagnosticService.addDiagnostic(diagnostics_1.errors.noPrototype(node));
|
|
21
|
+
}
|
|
22
|
+
if (typescript_1.default.isPropertyAccessExpression(node)) {
|
|
23
|
+
const expression = (0, transformExpression_1.transformExpression)(state, node.expression);
|
|
24
|
+
return luau_ast_1.default.property(readAfterWrite ? state.pushToVarIfNonId(expression, "exp") : (0, convertToIndexableExpression_1.convertToIndexableExpression)(expression), node.name.text);
|
|
25
|
+
}
|
|
26
|
+
else if (typescript_1.default.isElementAccessExpression(node)) {
|
|
27
|
+
const [expression, index] = (0, ensureTransformOrder_1.ensureTransformOrder)(state, [node.expression, node.argumentExpression]);
|
|
28
|
+
const indexExp = (0, addOneIfArrayType_1.addOneIfArrayType)(state, state.getType(node.expression), index);
|
|
29
|
+
return luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.ComputedIndexExpression, {
|
|
30
|
+
expression: readAfterWrite
|
|
31
|
+
? state.pushToVarIfNonId(expression, "exp")
|
|
32
|
+
: (0, convertToIndexableExpression_1.convertToIndexableExpression)(expression),
|
|
33
|
+
index: readAfterWrite ? state.pushToVarIfComplex(indexExp, "index") : indexExp,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const transformed = (0, transformExpression_1.transformExpression)(state, (0, traversal_1.skipDownwards)(node));
|
|
38
|
+
(0, assert_1.assert)(luau_ast_1.default.isWritableExpression(transformed));
|
|
39
|
+
return transformed;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function transformWritableAssignment(state, writeNode, valueNode, readAfterWrite = false, readBeforeWrite = false) {
|
|
43
|
+
const writable = transformWritableExpression(state, writeNode, readAfterWrite);
|
|
44
|
+
const [value, prereqs] = state.capture(() => (0, transformExpression_1.transformExpression)(state, valueNode));
|
|
45
|
+
const readable = !readBeforeWrite || luau_ast_1.default.list.isEmpty(prereqs) ? writable : state.pushToVar(writable, "readable");
|
|
46
|
+
state.prereqList(prereqs);
|
|
47
|
+
return { writable, readable, value };
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=transformWritable.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
export declare function isBlockLike(node: ts.Node): node is ts.BlockLike;
|
|
3
|
+
export declare function isUnaryAssignmentOperator(operator: ts.SyntaxKind): operator is ts.SyntaxKind.PlusPlusToken | ts.SyntaxKind.MinusMinusToken;
|
|
4
|
+
export declare function isTemplateLiteralType(type: ts.Type): type is ts.TemplateLiteralType;
|
|
5
|
+
export declare function isNamespace(node: ts.Node): node is ts.ModuleDeclaration;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isBlockLike = isBlockLike;
|
|
7
|
+
exports.isUnaryAssignmentOperator = isUnaryAssignmentOperator;
|
|
8
|
+
exports.isTemplateLiteralType = isTemplateLiteralType;
|
|
9
|
+
exports.isNamespace = isNamespace;
|
|
10
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
11
|
+
function isBlockLike(node) {
|
|
12
|
+
return (node.kind === typescript_1.default.SyntaxKind.SourceFile ||
|
|
13
|
+
node.kind === typescript_1.default.SyntaxKind.Block ||
|
|
14
|
+
node.kind === typescript_1.default.SyntaxKind.ModuleBlock ||
|
|
15
|
+
node.kind === typescript_1.default.SyntaxKind.CaseClause ||
|
|
16
|
+
node.kind === typescript_1.default.SyntaxKind.DefaultClause);
|
|
17
|
+
}
|
|
18
|
+
function isUnaryAssignmentOperator(operator) {
|
|
19
|
+
return operator === typescript_1.default.SyntaxKind.PlusPlusToken || operator === typescript_1.default.SyntaxKind.MinusMinusToken;
|
|
20
|
+
}
|
|
21
|
+
function isTemplateLiteralType(type) {
|
|
22
|
+
return "texts" in type && "types" in type && !!(type.flags & typescript_1.default.TypeFlags.TemplateLiteral);
|
|
23
|
+
}
|
|
24
|
+
function isNamespace(node) {
|
|
25
|
+
return typescript_1.default.isModuleDeclaration(node) && !!(node.flags & typescript_1.default.NodeFlags.Namespace);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=typeGuards.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.addIndexDiagnostics = addIndexDiagnostics;
|
|
7
|
+
const diagnostics_1 = require("../../Shared/diagnostics");
|
|
8
|
+
const DiagnosticService_1 = require("../classes/DiagnosticService");
|
|
9
|
+
const isMethod_1 = require("./isMethod");
|
|
10
|
+
const isValidMethodIndexWithoutCall_1 = require("./isValidMethodIndexWithoutCall");
|
|
11
|
+
const traversal_1 = require("./traversal");
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
14
|
+
function addIndexDiagnostics(state, node, expType) {
|
|
15
|
+
const symbol = (0, types_1.getFirstDefinedSymbol)(state, expType);
|
|
16
|
+
if ((symbol && state.services.macroManager.getPropertyCallMacro(symbol)) ||
|
|
17
|
+
(!(0, isValidMethodIndexWithoutCall_1.isValidMethodIndexWithoutCall)(state, (0, traversal_1.skipUpwards)(node)) && (0, isMethod_1.isMethod)(state, node))) {
|
|
18
|
+
DiagnosticService_1.DiagnosticService.addDiagnostic(diagnostics_1.errors.noIndexWithoutCall(node));
|
|
19
|
+
}
|
|
20
|
+
if (typescript_1.default.isPrototypeAccess(node)) {
|
|
21
|
+
DiagnosticService_1.DiagnosticService.addDiagnostic(diagnostics_1.errors.noPrototype(node));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=addIndexDiagnostics.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addOneIfArrayType = addOneIfArrayType;
|
|
4
|
+
const offset_1 = require("./offset");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
function addOneIfArrayType(state, type, expression) {
|
|
7
|
+
if ((0, types_1.isDefinitelyType)(type, (0, types_1.isArrayType)(state), types_1.isUndefinedType)) {
|
|
8
|
+
return (0, offset_1.offset)(expression, 1);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return expression;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=addOneIfArrayType.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.arrayBindingPatternContainsHoists = arrayBindingPatternContainsHoists;
|
|
7
|
+
const checkVariableHoist_1 = require("./checkVariableHoist");
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
function arrayBindingPatternContainsHoists(state, arrayBindingPattern) {
|
|
10
|
+
for (const element of arrayBindingPattern.elements) {
|
|
11
|
+
if (typescript_1.default.isBindingElement(element) && typescript_1.default.isIdentifier(element.name)) {
|
|
12
|
+
const symbol = state.typeChecker.getSymbolAtLocation(element.name);
|
|
13
|
+
if (symbol) {
|
|
14
|
+
(0, checkVariableHoist_1.checkVariableHoist)(state, element.name, symbol);
|
|
15
|
+
if (state.isHoisted.get(symbol)) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=arrayBindingPatternContainsHoists.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.arrayLikeExpressionContainsSpread = arrayLikeExpressionContainsSpread;
|
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
+
function arrayLikeExpressionContainsSpread(exp) {
|
|
9
|
+
for (const element of exp.elements) {
|
|
10
|
+
if ((typescript_1.default.isBindingElement(element) && element.dotDotDotToken) || typescript_1.default.isSpreadElement(element))
|
|
11
|
+
return true;
|
|
12
|
+
if (typescript_1.default.isArrayBindingPattern(element) && arrayLikeExpressionContainsSpread(element))
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=arrayLikeExpressionContainsSpread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function assertNever(value: never, message: string): never;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.assertNever = assertNever;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
9
|
+
const LogService_1 = require("../../Shared/classes/LogService");
|
|
10
|
+
const getKindName_1 = require("./getKindName");
|
|
11
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
12
|
+
const util_1 = __importDefault(require("util"));
|
|
13
|
+
function findTypescriptVersion(info) {
|
|
14
|
+
if (info.name === "roblox-ts" && info.dependencies.typescript) {
|
|
15
|
+
return info.dependencies.typescript.version;
|
|
16
|
+
}
|
|
17
|
+
for (const [, dep] of Object.entries(info.dependencies)) {
|
|
18
|
+
const found = findTypescriptVersion(dep);
|
|
19
|
+
if (found) {
|
|
20
|
+
return found;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function error(message) {
|
|
25
|
+
const typescriptVersion = findTypescriptVersion(JSON.parse((0, child_process_1.spawnSync)("npm ls typescript --json").stdout.toString()));
|
|
26
|
+
LogService_1.LogService.fatal(kleur_1.default.red(`Exhaustive assertion failed! ${message}`) +
|
|
27
|
+
kleur_1.default.yellow("\nThis is usually caused by a TypeScript version mismatch.") +
|
|
28
|
+
kleur_1.default.yellow("\nMake sure that all TS versions in your project are the same.") +
|
|
29
|
+
kleur_1.default.yellow("\nYou can check the list of installed versions with `npm list typescript`") +
|
|
30
|
+
(typescriptVersion ? kleur_1.default.yellow(`\nTry running \`npm install typescript@=${typescriptVersion}\``) : ""));
|
|
31
|
+
}
|
|
32
|
+
function assertNever(value, message) {
|
|
33
|
+
const isTsNode = typeof value === "object" && "kind" in value && typescript_1.default.isNode(value);
|
|
34
|
+
error(`${message}, value was ${isTsNode ? `a TS node of kind ${(0, getKindName_1.getKindName)(value.kind)}` : util_1.default.inspect(value)}`);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=assertNever.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import luau from "@roblox-ts/luau-ast";
|
|
2
|
+
import { TransformState } from "..";
|
|
3
|
+
import ts from "typescript";
|
|
4
|
+
export declare function getSimpleAssignmentOperator(leftType: ts.Type, operatorKind: ts.AssignmentOperator, rightType: ts.Type): luau.AssignmentOperator | undefined;
|
|
5
|
+
export declare function createAssignmentExpression(state: TransformState, readable: luau.WritableExpression, operator: luau.AssignmentOperator, value: luau.Expression): luau.WritableExpression;
|
|
6
|
+
export declare function createCompoundAssignmentStatement(state: TransformState, node: ts.Node, writable: luau.WritableExpression, writableType: ts.Type, readable: luau.WritableExpression, operator: ts.BinaryOperator, value: luau.Expression, valueType: ts.Type): luau.Assignment;
|
|
7
|
+
export declare function createCompoundAssignmentExpression(state: TransformState, node: ts.Node, writable: luau.WritableExpression, writableType: ts.Type, readable: luau.WritableExpression, operator: ts.BinaryOperator, value: luau.Expression, valueType: ts.Type): luau.WritableExpression;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSimpleAssignmentOperator = getSimpleAssignmentOperator;
|
|
7
|
+
exports.createAssignmentExpression = createAssignmentExpression;
|
|
8
|
+
exports.createCompoundAssignmentStatement = createCompoundAssignmentStatement;
|
|
9
|
+
exports.createCompoundAssignmentExpression = createCompoundAssignmentExpression;
|
|
10
|
+
const luau_ast_1 = __importDefault(require("@roblox-ts/luau-ast"));
|
|
11
|
+
const createBinaryFromOperator_1 = require("./createBinaryFromOperator");
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
14
|
+
const COMPOUND_OPERATOR_MAP = new Map([
|
|
15
|
+
[typescript_1.default.SyntaxKind.MinusEqualsToken, "-="],
|
|
16
|
+
[typescript_1.default.SyntaxKind.AsteriskEqualsToken, "*="],
|
|
17
|
+
[typescript_1.default.SyntaxKind.SlashEqualsToken, "/="],
|
|
18
|
+
[typescript_1.default.SyntaxKind.AsteriskAsteriskEqualsToken, "^="],
|
|
19
|
+
[typescript_1.default.SyntaxKind.PercentEqualsToken, "%="],
|
|
20
|
+
[typescript_1.default.SyntaxKind.PlusPlusToken, "+="],
|
|
21
|
+
[typescript_1.default.SyntaxKind.MinusMinusToken, "-="],
|
|
22
|
+
[typescript_1.default.SyntaxKind.EqualsToken, "="],
|
|
23
|
+
]);
|
|
24
|
+
function getSimpleAssignmentOperator(leftType, operatorKind, rightType) {
|
|
25
|
+
if (operatorKind === typescript_1.default.SyntaxKind.PlusEqualsToken) {
|
|
26
|
+
return (0, types_1.isDefinitelyType)(leftType, types_1.isStringType) || (0, types_1.isDefinitelyType)(rightType, types_1.isStringType) ? "..=" : "+=";
|
|
27
|
+
}
|
|
28
|
+
return COMPOUND_OPERATOR_MAP.get(operatorKind);
|
|
29
|
+
}
|
|
30
|
+
function createAssignmentExpression(state, readable, operator, value) {
|
|
31
|
+
state.prereq(luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.Assignment, {
|
|
32
|
+
left: readable,
|
|
33
|
+
operator,
|
|
34
|
+
right: value,
|
|
35
|
+
}));
|
|
36
|
+
return readable;
|
|
37
|
+
}
|
|
38
|
+
function createCompoundAssignmentStatement(state, node, writable, writableType, readable, operator, value, valueType) {
|
|
39
|
+
return luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.Assignment, {
|
|
40
|
+
left: writable,
|
|
41
|
+
operator: "=",
|
|
42
|
+
right: (0, createBinaryFromOperator_1.createBinaryFromOperator)(state, node, readable, writableType, operator, value, valueType),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function createCompoundAssignmentExpression(state, node, writable, writableType, readable, operator, value, valueType) {
|
|
46
|
+
return createAssignmentExpression(state, writable, "=", (0, createBinaryFromOperator_1.createBinaryFromOperator)(state, node, readable, writableType, operator, value, valueType));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=assignment.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import luau from "@roblox-ts/luau-ast";
|
|
2
|
+
import { TransformState } from "../..";
|
|
3
|
+
import ts from "typescript";
|
|
4
|
+
type BindingAccessor = (state: TransformState, parentId: luau.AnyIdentifier, index: number, idStack: Array<luau.AnyIdentifier>, isOmitted: boolean) => luau.Expression;
|
|
5
|
+
export declare function getAccessorForBindingType(state: TransformState, node: ts.Node, type: ts.Type): BindingAccessor;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getAccessorForBindingType = getAccessorForBindingType;
|
|
7
|
+
const luau_ast_1 = __importDefault(require("@roblox-ts/luau-ast"));
|
|
8
|
+
const diagnostics_1 = require("../../../Shared/diagnostics");
|
|
9
|
+
const assert_1 = require("../../../Shared/util/assert");
|
|
10
|
+
const DiagnosticService_1 = require("../../classes/DiagnosticService");
|
|
11
|
+
const types_1 = require("../types");
|
|
12
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
13
|
+
function peek(array) {
|
|
14
|
+
return array[array.length - 1];
|
|
15
|
+
}
|
|
16
|
+
const arrayAccessor = (state, parentId, index) => {
|
|
17
|
+
return luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.ComputedIndexExpression, {
|
|
18
|
+
expression: parentId,
|
|
19
|
+
index: luau_ast_1.default.number(index + 1),
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const stringAccessor = (state, parentId, index, idStack, isOmitted) => {
|
|
23
|
+
let id;
|
|
24
|
+
if (idStack.length === 0) {
|
|
25
|
+
id = state.pushToVar(luau_ast_1.default.call(luau_ast_1.default.globals.string.gmatch, [parentId, luau_ast_1.default.globals.utf8.charpattern]), "matcher");
|
|
26
|
+
idStack.push(id);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
id = idStack[0];
|
|
30
|
+
}
|
|
31
|
+
const callExp = luau_ast_1.default.call(id);
|
|
32
|
+
if (isOmitted) {
|
|
33
|
+
state.prereq(luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.CallStatement, {
|
|
34
|
+
expression: callExp,
|
|
35
|
+
}));
|
|
36
|
+
return luau_ast_1.default.none();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return callExp;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const setAccessor = (state, parentId, index, idStack, isOmitted) => {
|
|
43
|
+
const args = [parentId];
|
|
44
|
+
const lastId = peek(idStack);
|
|
45
|
+
if (lastId) {
|
|
46
|
+
args.push(lastId);
|
|
47
|
+
}
|
|
48
|
+
const callExp = luau_ast_1.default.call(luau_ast_1.default.globals.next, args);
|
|
49
|
+
if (isOmitted) {
|
|
50
|
+
state.prereq(luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.CallStatement, {
|
|
51
|
+
expression: callExp,
|
|
52
|
+
}));
|
|
53
|
+
return luau_ast_1.default.none();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const id = state.pushToVar(callExp, "value");
|
|
57
|
+
idStack.push(id);
|
|
58
|
+
return id;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const mapAccessor = (state, parentId, index, idStack) => {
|
|
62
|
+
const args = [parentId];
|
|
63
|
+
const lastId = peek(idStack);
|
|
64
|
+
if (lastId) {
|
|
65
|
+
args.push(lastId);
|
|
66
|
+
}
|
|
67
|
+
const keyId = luau_ast_1.default.tempId("k");
|
|
68
|
+
const valueId = luau_ast_1.default.tempId("v");
|
|
69
|
+
const ids = luau_ast_1.default.list.make(keyId, valueId);
|
|
70
|
+
state.prereq(luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.VariableDeclaration, {
|
|
71
|
+
left: ids,
|
|
72
|
+
right: luau_ast_1.default.call(luau_ast_1.default.globals.next, args),
|
|
73
|
+
}));
|
|
74
|
+
idStack.push(keyId);
|
|
75
|
+
return luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.Array, { members: ids });
|
|
76
|
+
};
|
|
77
|
+
const iterableFunctionLuaTupleAccessor = (state, parentId, index, idStack, isOmitted) => {
|
|
78
|
+
const callExp = luau_ast_1.default.call(parentId);
|
|
79
|
+
if (isOmitted) {
|
|
80
|
+
state.prereq(luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.CallStatement, {
|
|
81
|
+
expression: callExp,
|
|
82
|
+
}));
|
|
83
|
+
return luau_ast_1.default.none();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return luau_ast_1.default.array([callExp]);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const iterableFunctionAccessor = (state, parentId, index, idStack, isOmitted) => {
|
|
90
|
+
const callExp = luau_ast_1.default.call(parentId);
|
|
91
|
+
if (isOmitted) {
|
|
92
|
+
state.prereq(luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.CallStatement, {
|
|
93
|
+
expression: callExp,
|
|
94
|
+
}));
|
|
95
|
+
return luau_ast_1.default.none();
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
return callExp;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const iterAccessor = (state, parentId, index, idStack, isOmitted) => {
|
|
102
|
+
const callExp = luau_ast_1.default.call(luau_ast_1.default.property(parentId, "next"));
|
|
103
|
+
if (isOmitted) {
|
|
104
|
+
state.prereq(luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.CallStatement, { expression: callExp }));
|
|
105
|
+
return luau_ast_1.default.none();
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return luau_ast_1.default.property(callExp, "value");
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
function getAccessorForBindingType(state, node, type) {
|
|
112
|
+
if ((0, types_1.isDefinitelyType)(type, (0, types_1.isArrayType)(state))) {
|
|
113
|
+
return arrayAccessor;
|
|
114
|
+
}
|
|
115
|
+
else if ((0, types_1.isDefinitelyType)(type, types_1.isStringType)) {
|
|
116
|
+
return stringAccessor;
|
|
117
|
+
}
|
|
118
|
+
else if ((0, types_1.isDefinitelyType)(type, (0, types_1.isSetType)(state))) {
|
|
119
|
+
return setAccessor;
|
|
120
|
+
}
|
|
121
|
+
else if ((0, types_1.isDefinitelyType)(type, (0, types_1.isMapType)(state)) || (0, types_1.isDefinitelyType)(type, (0, types_1.isSharedTableType)(state))) {
|
|
122
|
+
return mapAccessor;
|
|
123
|
+
}
|
|
124
|
+
else if ((0, types_1.isDefinitelyType)(type, (0, types_1.isIterableFunctionLuaTupleType)(state))) {
|
|
125
|
+
return iterableFunctionLuaTupleAccessor;
|
|
126
|
+
}
|
|
127
|
+
else if ((0, types_1.isDefinitelyType)(type, (0, types_1.isIterableFunctionType)(state))) {
|
|
128
|
+
return iterableFunctionAccessor;
|
|
129
|
+
}
|
|
130
|
+
else if ((0, types_1.isDefinitelyType)(type, (0, types_1.isIterableType)(state))) {
|
|
131
|
+
DiagnosticService_1.DiagnosticService.addDiagnostic(diagnostics_1.errors.noIterableIteration(node));
|
|
132
|
+
return () => luau_ast_1.default.none();
|
|
133
|
+
}
|
|
134
|
+
else if ((0, types_1.isDefinitelyType)(type, (0, types_1.isGeneratorType)(state)) ||
|
|
135
|
+
(0, types_1.isDefinitelyType)(type, types_1.isObjectType) ||
|
|
136
|
+
typescript_1.default.isThis(node)) {
|
|
137
|
+
return iterAccessor;
|
|
138
|
+
}
|
|
139
|
+
(0, assert_1.assert)(false, `Destructuring not supported for type: ${state.typeChecker.typeToString(type)}`);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=getAccessorForBindingType.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import luau from "@roblox-ts/luau-ast";
|
|
2
|
+
import { TransformState } from "../../classes/TransformState";
|
|
3
|
+
import ts from "typescript";
|
|
4
|
+
export declare function getTargetIdForBindingPattern(state: TransformState, name: ts.BindingPattern, value: luau.Expression): luau.Identifier | luau.TemporaryIdentifier;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getTargetIdForBindingPattern = getTargetIdForBindingPattern;
|
|
7
|
+
const luau_ast_1 = __importDefault(require("@roblox-ts/luau-ast"));
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
function getTargetIdForBindingPattern(state, name, value) {
|
|
10
|
+
return luau_ast_1.default.isAnyIdentifier(value) &&
|
|
11
|
+
name.elements.every(element => typescript_1.default.isOmittedExpression(element) || !element.initializer)
|
|
12
|
+
? value
|
|
13
|
+
: state.pushToVar(value, "binding");
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=getTargetIdForBindingPattern.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.objectAccessor = void 0;
|
|
7
|
+
const luau_ast_1 = __importDefault(require("@roblox-ts/luau-ast"));
|
|
8
|
+
const diagnostics_1 = require("../../../Shared/diagnostics");
|
|
9
|
+
const DiagnosticService_1 = require("../../classes/DiagnosticService");
|
|
10
|
+
const transformExpression_1 = require("../../nodes/expressions/transformExpression");
|
|
11
|
+
const addIndexDiagnostics_1 = require("../addIndexDiagnostics");
|
|
12
|
+
const addOneIfArrayType_1 = require("../addOneIfArrayType");
|
|
13
|
+
const assertNever_1 = require("../assertNever");
|
|
14
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
15
|
+
const objectAccessor = (state, parentId, type, name) => {
|
|
16
|
+
(0, addIndexDiagnostics_1.addIndexDiagnostics)(state, name, state.getType(name));
|
|
17
|
+
if (typescript_1.default.isIdentifier(name)) {
|
|
18
|
+
return luau_ast_1.default.property(parentId, name.text);
|
|
19
|
+
}
|
|
20
|
+
else if (typescript_1.default.isComputedPropertyName(name)) {
|
|
21
|
+
return luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.ComputedIndexExpression, {
|
|
22
|
+
expression: parentId,
|
|
23
|
+
index: (0, addOneIfArrayType_1.addOneIfArrayType)(state, type, (0, transformExpression_1.transformExpression)(state, name.expression)),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else if (typescript_1.default.isNumericLiteral(name) || typescript_1.default.isStringLiteral(name) || typescript_1.default.isNoSubstitutionTemplateLiteral(name)) {
|
|
27
|
+
return luau_ast_1.default.create(luau_ast_1.default.SyntaxKind.ComputedIndexExpression, {
|
|
28
|
+
expression: parentId,
|
|
29
|
+
index: (0, transformExpression_1.transformExpression)(state, name),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
else if (typescript_1.default.isPrivateIdentifier(name)) {
|
|
33
|
+
DiagnosticService_1.DiagnosticService.addDiagnostic(diagnostics_1.errors.noPrivateIdentifier(name));
|
|
34
|
+
return luau_ast_1.default.none();
|
|
35
|
+
}
|
|
36
|
+
return (0, assertNever_1.assertNever)(name, "objectAccessor");
|
|
37
|
+
};
|
|
38
|
+
exports.objectAccessor = objectAccessor;
|
|
39
|
+
//# sourceMappingURL=objectAccessor.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import luau from "@roblox-ts/luau-ast";
|
|
2
|
+
import { TransformState } from "../classes/TransformState";
|
|
3
|
+
import ts from "typescript";
|
|
4
|
+
export declare function isBitwiseOperator(operatorKind: ts.BinaryOperator): boolean;
|
|
5
|
+
export declare function createBitwiseCall(operatorKind: ts.BinaryOperator, expressions: Array<luau.Expression>): luau.Expression;
|
|
6
|
+
export declare function createBitwiseFromOperator(state: TransformState, operatorKind: ts.BinaryOperator, node: ts.BinaryExpression): luau.Expression;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isBitwiseOperator = isBitwiseOperator;
|
|
7
|
+
exports.createBitwiseCall = createBitwiseCall;
|
|
8
|
+
exports.createBitwiseFromOperator = createBitwiseFromOperator;
|
|
9
|
+
const luau_ast_1 = __importDefault(require("@roblox-ts/luau-ast"));
|
|
10
|
+
const assert_1 = require("../../Shared/util/assert");
|
|
11
|
+
const ensureTransformOrder_1 = require("./ensureTransformOrder");
|
|
12
|
+
const getKindName_1 = require("./getKindName");
|
|
13
|
+
const traversal_1 = require("./traversal");
|
|
14
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
15
|
+
const OPERATOR_MAP = new Map([
|
|
16
|
+
[typescript_1.default.SyntaxKind.LessThanLessThanToken, "lshift"],
|
|
17
|
+
[typescript_1.default.SyntaxKind.GreaterThanGreaterThanGreaterThanToken, "rshift"],
|
|
18
|
+
[typescript_1.default.SyntaxKind.GreaterThanGreaterThanToken, "arshift"],
|
|
19
|
+
[typescript_1.default.SyntaxKind.AmpersandEqualsToken, "band"],
|
|
20
|
+
[typescript_1.default.SyntaxKind.BarEqualsToken, "bor"],
|
|
21
|
+
[typescript_1.default.SyntaxKind.CaretEqualsToken, "bxor"],
|
|
22
|
+
[typescript_1.default.SyntaxKind.LessThanLessThanEqualsToken, "lshift"],
|
|
23
|
+
[typescript_1.default.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken, "rshift"],
|
|
24
|
+
[typescript_1.default.SyntaxKind.GreaterThanGreaterThanEqualsToken, "arshift"],
|
|
25
|
+
]);
|
|
26
|
+
const LOGICAL_OPERATOR_MAP = new Map([
|
|
27
|
+
[typescript_1.default.SyntaxKind.AmpersandToken, "band"],
|
|
28
|
+
[typescript_1.default.SyntaxKind.BarToken, "bor"],
|
|
29
|
+
[typescript_1.default.SyntaxKind.CaretToken, "bxor"],
|
|
30
|
+
]);
|
|
31
|
+
function flattenBitwiseSegmentInto(expressionList, operatorKind, node) {
|
|
32
|
+
if (typescript_1.default.isBinaryExpression(node)) {
|
|
33
|
+
if (operatorKind === node.operatorToken.kind) {
|
|
34
|
+
flattenBitwiseSegmentInto(expressionList, operatorKind, node.left);
|
|
35
|
+
expressionList.push((0, traversal_1.skipDownwards)(node.right));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
expressionList.push(node);
|
|
39
|
+
}
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
expressionList.push((0, traversal_1.skipDownwards)(node));
|
|
43
|
+
}
|
|
44
|
+
function isBitwiseLogicalOperator(operatorKind) {
|
|
45
|
+
return LOGICAL_OPERATOR_MAP.has(operatorKind);
|
|
46
|
+
}
|
|
47
|
+
function isBitwiseOperator(operatorKind) {
|
|
48
|
+
return OPERATOR_MAP.has(operatorKind) || isBitwiseLogicalOperator(operatorKind);
|
|
49
|
+
}
|
|
50
|
+
function createBitwiseCall(operatorKind, expressions) {
|
|
51
|
+
var _a;
|
|
52
|
+
const name = (_a = OPERATOR_MAP.get(operatorKind)) !== null && _a !== void 0 ? _a : LOGICAL_OPERATOR_MAP.get(operatorKind);
|
|
53
|
+
(0, assert_1.assert)(name !== undefined, `createBitwiseFromOperator unknown operator: ${(0, getKindName_1.getKindName)(operatorKind)}`);
|
|
54
|
+
return luau_ast_1.default.call(luau_ast_1.default.property(luau_ast_1.default.globals.bit32, name), expressions);
|
|
55
|
+
}
|
|
56
|
+
function createBitwiseFromOperator(state, operatorKind, node) {
|
|
57
|
+
const flattenedExpressions = new Array();
|
|
58
|
+
if (isBitwiseLogicalOperator(operatorKind)) {
|
|
59
|
+
flattenBitwiseSegmentInto(flattenedExpressions, operatorKind, node.left);
|
|
60
|
+
flattenedExpressions.push(node.right);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
flattenedExpressions.push(node.left, node.right);
|
|
64
|
+
}
|
|
65
|
+
return createBitwiseCall(operatorKind, (0, ensureTransformOrder_1.ensureTransformOrder)(state, flattenedExpressions));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=bitwise.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkVariableHoist = checkVariableHoist;
|
|
7
|
+
const getOrSetDefault_1 = require("../../Shared/util/getOrSetDefault");
|
|
8
|
+
const traversal_1 = require("./traversal");
|
|
9
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
10
|
+
function checkVariableHoist(state, node, symbol) {
|
|
11
|
+
if (state.isHoisted.get(symbol) !== undefined) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const statement = (0, traversal_1.getAncestor)(node, typescript_1.default.isStatement);
|
|
15
|
+
if (!statement) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const caseClause = statement.parent;
|
|
19
|
+
if (!typescript_1.default.isCaseClause(caseClause)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const caseBlock = caseClause.parent;
|
|
23
|
+
const isUsedOutsideOfCaseClause = typescript_1.default.FindAllReferences.Core.eachSymbolReferenceInFile(node, state.typeChecker, node.getSourceFile(), token => {
|
|
24
|
+
if (!(0, traversal_1.isAncestorOf)(caseClause, token)) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
}, caseBlock) === true;
|
|
28
|
+
if (isUsedOutsideOfCaseClause) {
|
|
29
|
+
(0, getOrSetDefault_1.getOrSetDefault)(state.hoistsByStatement, statement.parent, () => new Array()).push(node);
|
|
30
|
+
state.isHoisted.set(symbol, true);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=checkVariableHoist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cleanModuleName(name: string): string;
|