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
 |