68 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | "use strict"; | ||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||
|  | exports.loadProject = exports.Callbacks = void 0; | ||
|  | const fs = require("fs"); | ||
|  | const path = require("path"); | ||
|  | const Platform_1 = require("./Platform"); | ||
|  | const Project_1 = require("./Project"); | ||
|  | exports.Callbacks = { | ||
|  |     preAssetConversion: [() => { }], | ||
|  |     preShaderCompilation: [() => { }], | ||
|  |     preHaxeCompilation: [() => { }], | ||
|  |     postHaxeCompilation: [() => { }], | ||
|  |     postHaxeRecompilation: [() => { }], | ||
|  |     postCppCompilation: [() => { }], | ||
|  |     postAssetReexporting: [(filePath) => { }], | ||
|  |     postBuild: [() => { }], | ||
|  |     onFailure: [(error) => { }] | ||
|  | }; | ||
|  | async function loadProject(from, projectfile, platform) { | ||
|  |     return new Promise((resolve, reject) => { | ||
|  |         fs.readFile(path.join(from, projectfile), 'utf8', (err, data) => { | ||
|  |             if (err) { | ||
|  |                 throw new Error('Error reading ' + projectfile + ' from ' + from + '.'); | ||
|  |             } | ||
|  |             let resolved = false; | ||
|  |             let callbacks = { | ||
|  |                 preAssetConversion: () => { }, | ||
|  |                 preShaderCompilation: () => { }, | ||
|  |                 preHaxeCompilation: () => { }, | ||
|  |                 postHaxeCompilation: () => { }, | ||
|  |                 postHaxeRecompilation: () => { }, | ||
|  |                 postCppCompilation: () => { }, | ||
|  |                 postAssetReexporting: (filePath) => { }, | ||
|  |                 postBuild: () => { }, | ||
|  |                 onFailure: (error) => { } | ||
|  |             }; | ||
|  |             let resolver = (project) => { | ||
|  |                 resolved = true; | ||
|  |                 exports.Callbacks.preAssetConversion.push(callbacks.preAssetConversion); | ||
|  |                 exports.Callbacks.preShaderCompilation.push(callbacks.preShaderCompilation); | ||
|  |                 exports.Callbacks.preHaxeCompilation.push(callbacks.preHaxeCompilation); | ||
|  |                 exports.Callbacks.postHaxeCompilation.push(callbacks.postHaxeCompilation); | ||
|  |                 exports.Callbacks.postHaxeRecompilation.push(callbacks.postHaxeRecompilation); | ||
|  |                 exports.Callbacks.postCppCompilation.push(callbacks.postCppCompilation); | ||
|  |                 exports.Callbacks.postAssetReexporting.push(callbacks.postAssetReexporting); | ||
|  |                 exports.Callbacks.postBuild.push(callbacks.postBuild); | ||
|  |                 exports.Callbacks.onFailure.push(callbacks.onFailure); | ||
|  |                 resolve(project); | ||
|  |             }; | ||
|  |             process.on('exit', (code) => { | ||
|  |                 if (!resolved) { | ||
|  |                     console.error('Error: khafile.js did not call resolve, no project created.'); | ||
|  |                 } | ||
|  |             }); | ||
|  |             Project_1.Project.platform = platform; | ||
|  |             Project_1.Project.scriptdir = from; | ||
|  |             try { | ||
|  |                 let AsyncFunction = Object.getPrototypeOf(async () => { }).constructor; | ||
|  |                 new AsyncFunction('Project', 'Platform', 'platform', 'require', '__dirname', 'process', 'resolve', 'reject', 'callbacks', data)(Project_1.Project, Platform_1.Platform, platform, require, path.resolve(from), process, resolver, reject, callbacks); | ||
|  |             } | ||
|  |             catch (error) { | ||
|  |                 reject(error); | ||
|  |             } | ||
|  |         }); | ||
|  |     }); | ||
|  | } | ||
|  | exports.loadProject = loadProject; | ||
|  | //# sourceMappingURL=ProjectFile.js.map
 |