UNPKG

starling-framework

Version:

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

72 lines (54 loc) 2.43 kB
// 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 $import = require("./../../import_stub").default; var $extend = require("./../../extend_stub").default; function starling_assets_AssetFactory() {return require("./../../starling/assets/AssetFactory");} function Std() {return require("./../../Std");} 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 js_Boot() {return require("./../../js/Boot");} function openfl_errors_Error() {return $import(require("openfl/errors/Error"));} // 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.__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((Std().default)["is"](reference.get_data(),(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 ) { if (e instanceof (js__$Boot_HaxeError().default)) e = e.val; if( (js_Boot().default).__instanceof(e,(openfl_errors_Error().default)) ) { onError("Could not parse JSON: " + e.message); } else throw(e); } } }); JsonFactory.prototype.__class__ = JsonFactory.prototype.constructor = $hxClasses["starling.assets.JsonFactory"] = JsonFactory; // Init // Statics // Export exports.default = JsonFactory;