starling-framework
Version:
A fast, productive library for 2D cross-platform development.
75 lines (57 loc) • 2.51 kB
JavaScript
// Class: starling.assets.JsonFactory
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;
var $extend = require("./../../extend_stub").default;
function starling_assets_AssetFactory() {return require("./../../starling/assets/AssetFactory");}
function openfl_utils_ByteArray() {return $import(require("openfl/utils/ByteArray"));}
function starling_utils_ByteArrayUtil() {return require("./../../starling/utils/ByteArrayUtil");}
function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");}
function openfl_errors_Error() {return $import(require("openfl/errors/Error"));}
function Std() {return require("./../../Std");}
// Constructor
var JsonFactory = function() {
(starling_assets_AssetFactory().default).call(this);
this.addExtensions(["json"]);
this.addMimeTypes(["application/json","text/json"]);
}
// Meta
JsonFactory.__name__ = "starling.assets.JsonFactory";
JsonFactory.__isInterface__ = false;
JsonFactory.__super__ = (starling_assets_AssetFactory().default);
JsonFactory.prototype = $extend((starling_assets_AssetFactory().default).prototype, {
canHandle: function(reference) {
if(!(starling_assets_AssetFactory().default).prototype.canHandle.call(this,reference)) {
if(((reference.get_data()) instanceof (openfl_utils_ByteArray().default))) {
return (starling_utils_ByteArrayUtil().default).startsWithString(reference.get_data(),"{");
} else {
return false;
}
} else {
return true;
}
},
create: function(reference,helper,onComplete,onError) {
try {
var bytes = reference.get_data();
var object = JSON.parse(bytes.readUTFBytes(bytes.length));
onComplete(reference.get_name(),object);
} catch( e ) {
var e1 = ((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e;
if(((e1) instanceof (openfl_errors_Error().default))) {
onError("Could not parse JSON: " + e1.message);
} else {
onError("Could not parse JSON: " + (Std().default).string(e1));
}
}
}
});
JsonFactory.prototype.__class__ = JsonFactory.prototype.constructor = $hxClasses["starling.assets.JsonFactory"] = JsonFactory;
// Init
// Statics
// Export
exports.default = JsonFactory;