@@ -5,7 +5,7 @@ import { SourceNode } from "source-map";
55import * as ts from "typescript" ;
66import { CompilerOptions , isBundleEnabled , LuaTarget } from "../CompilerOptions" ;
77import { getLuaLibBundle } from "../LuaLib" ;
8- import { assert , cast , isNonNull , normalizeSlashes , trimExtension } from "../utils" ;
8+ import { assert , cast , isNonNull , trimExtension } from "../utils" ;
99import { Chunk , modulesToBundleChunks , modulesToChunks } from "./chunk" ;
1010import { createResolutionErrorDiagnostic } from "./diagnostics" ;
1111import { buildModule , Module } from "./module" ;
@@ -55,17 +55,6 @@ export class Transpilation {
5555
5656 public emit ( ) : Chunk [ ] {
5757 this . modules . forEach ( module => this . buildModule ( module ) ) ;
58-
59- const lualibRequired = this . modules . some ( m => m . source . toString ( ) . includes ( 'require("lualib_bundle")' ) ) ;
60- if ( lualibRequired ) {
61- const fileName = normalizeSlashes ( path . resolve ( this . rootDir , "lualib_bundle.lua" ) ) ;
62- this . modules . unshift ( {
63- request : fileName ,
64- isBuilt : true ,
65- source : new SourceNode ( null , null , null , getLuaLibBundle ( this . host ) ) ,
66- } ) ;
67- }
68-
6958 return this . mapModulesToChunks ( this . modules ) ;
7059 }
7160
@@ -83,6 +72,17 @@ export class Transpilation {
8372 }
8473
8574 private resolveRequestToModule ( issuer : string , request : string ) {
75+ if ( request === "<internal>/lualib/lualib_bundle" ) {
76+ let module = this . modules . find ( m => m . request === request ) ;
77+ if ( ! module ) {
78+ const source = new SourceNode ( null , null , null , getLuaLibBundle ( this . host ) ) ;
79+ module = { request, isBuilt : true , source } ;
80+ this . modules . push ( module ) ;
81+ }
82+
83+ return module ;
84+ }
85+
8686 let resolvedPath : string ;
8787 try {
8888 const result = this . resolver . resolveSync ( { } , path . dirname ( issuer ) , request ) ;
@@ -103,11 +103,8 @@ export class Transpilation {
103103
104104 // TODO: Load source map files
105105 const code = cast ( this . host . readFile ( resolvedPath ) , isNonNull ) ;
106- module = {
107- request : resolvedPath ,
108- isBuilt : false ,
109- source : new SourceNode ( null , null , null , code ) ,
110- } ;
106+ const source = new SourceNode ( null , null , null , code ) ;
107+ module = { request : resolvedPath , isBuilt : false , source } ;
111108
112109 this . modules . push ( module ) ;
113110 this . buildModule ( module ) ;
@@ -120,6 +117,10 @@ export class Transpilation {
120117 const pluginResult = applyBailPlugin ( this . plugins , p => p . getModuleId ?.( module , this ) ) ;
121118 if ( pluginResult !== undefined ) return pluginResult ;
122119
120+ if ( module . request . startsWith ( "<internal>/" ) ) {
121+ return module . request . replace ( "<internal>/" , "" ) ;
122+ }
123+
123124 const result = path . relative ( this . rootDir , trimExtension ( module . request ) ) ;
124125 // TODO: handle files on other drives
125126 assert ( ! path . isAbsolute ( result ) , `Invalid path: ${ result } ` ) ;
0 commit comments