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
							 |