UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

168 lines (151 loc) 5.36 kB
// Class: lime.utils.AssetManifest var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; function haxe_Serializer() {return require("./../../haxe/Serializer");} function lime_utils__$Bytes_Bytes_$Impl_$() {return require("./../../lime/utils/_Bytes/Bytes_Impl_");} function lime_app_Future() {return require("./../../lime/app/Future");} function Reflect() {return require("./../../Reflect");} function haxe_Unserializer() {return require("./../../haxe/Unserializer");} function HxOverrides() {return require("./../../HxOverrides");} function StringTools() {return require("./../../StringTools");} function haxe_io_Path() {return require("./../../haxe/io/Path");} // Constructor var AssetManifest = function() { this.assets = []; this.libraryArgs = []; this.version = 2; } // Meta AssetManifest.__name__ = "lime.utils.AssetManifest"; AssetManifest.__isInterface__ = false; AssetManifest.prototype = { serialize: function() { var manifestData = { }; manifestData.version = this.version; manifestData.libraryType = this.libraryType; manifestData.libraryArgs = this.libraryArgs; manifestData.name = this.name; manifestData.assets = (haxe_Serializer().default).run(this.assets); manifestData.rootPath = this.rootPath; return JSON.stringify(manifestData); } }; AssetManifest.prototype.__class__ = AssetManifest.prototype.constructor = $hxClasses["lime.utils.AssetManifest"] = AssetManifest; // Init // Statics AssetManifest.fromBytes = function(bytes,rootPath) { if(bytes != null) { return AssetManifest.parse(bytes.getString(0,bytes.length),rootPath); } else { return null; } } AssetManifest.fromFile = function(path,rootPath) { path = AssetManifest.__resolvePath(path); rootPath = AssetManifest.__resolveRootPath(rootPath,path); if(path == null) { return null; } return AssetManifest.fromBytes((lime_utils__$Bytes_Bytes_$Impl_$().default).fromFile(path),rootPath); } AssetManifest.loadFromBytes = function(bytes,rootPath) { return (lime_app_Future().default).withValue(AssetManifest.fromBytes(bytes,rootPath)); } AssetManifest.loadFromFile = function(path,rootPath) { path = AssetManifest.__resolvePath(path); rootPath = AssetManifest.__resolveRootPath(rootPath,path); if(path == null) { return null; } return (lime_utils__$Bytes_Bytes_$Impl_$().default).loadFromFile(path).then(function(bytes) { return (lime_app_Future().default).withValue(AssetManifest.fromBytes(bytes,rootPath)); }); } AssetManifest.parse = function(data,rootPath) { if(data == null || data == "") { return null; } var manifestData = JSON.parse(data); var manifest = new AssetManifest(); if((Reflect().default).hasField(manifestData,"name")) { manifest.name = manifestData.name; } if((Reflect().default).hasField(manifestData,"libraryType")) { manifest.libraryType = manifestData.libraryType; } if((Reflect().default).hasField(manifestData,"libraryArgs")) { manifest.libraryArgs = manifestData.libraryArgs; } if((Reflect().default).hasField(manifestData,"assets")) { var assets = manifestData.assets; if((Reflect().default).hasField(manifestData,"version") && manifestData.version <= 2) { manifest.assets = (haxe_Unserializer().default).run(assets); } else { manifest.assets = assets; } } if((Reflect().default).hasField(manifestData,"rootPath")) { manifest.rootPath = manifestData.rootPath; } if(rootPath != null && rootPath != "") { if(manifest.rootPath == null || manifest.rootPath == "") { manifest.rootPath = rootPath; } else { manifest.rootPath = rootPath + "/" + manifest.rootPath; } } return manifest; } AssetManifest.__resolvePath = function(path) { if(path == null) { return null; } var queryIndex = path.indexOf("?"); var basePath; if(queryIndex > -1) { basePath = (HxOverrides().default).substr(path,0,queryIndex); } else { basePath = path; } basePath = (StringTools().default).replace(basePath,"\\","/"); while((StringTools().default).endsWith(basePath,"/")) basePath = (HxOverrides().default).substr(basePath,0,basePath.length - 1); if((StringTools().default).endsWith(basePath,".bundle")) { if(queryIndex > -1) { return basePath + "/library.json" + (HxOverrides().default).substr(path,queryIndex,null); } else { return basePath + "/library.json"; } } else { return path; } } AssetManifest.__resolveRootPath = function(rootPath,path) { if(rootPath != null) { return rootPath; } var queryIndex = path.indexOf("?"); if(queryIndex > -1) { rootPath = (HxOverrides().default).substr(path,0,queryIndex); } else { rootPath = path; } rootPath = (StringTools().default).replace(rootPath,"\\","/"); while((StringTools().default).endsWith(rootPath,"/")) { if(rootPath == "/") { return rootPath; } rootPath = (HxOverrides().default).substr(rootPath,0,rootPath.length - 1); } if((StringTools().default).endsWith(rootPath,".bundle")) { return rootPath; } else { return (haxe_io_Path().default).directory(rootPath); } } // Export exports.default = AssetManifest;