typescript-dotnet-core
Version:
A the core classes and utilities of a JavaScript-Friendly .NET Based TypeScript Library.
7 lines (6 loc) • 1.35 kB
JavaScript
;
/*!
* @author electricessence / https://github.com/electricessence/
* Licensing: MIT https://github.com/electricessence/TypeScript.NET-Core/blob/master/LICENSE.md
*/Object.defineProperty(exports,"__esModule",{value:!0});var Types_1=require("../Types"),InvalidOperationException_1=require("../Exceptions/InvalidOperationException"),EMPTY="",TRUE="true",FALSE="false";function toString(e,t){var r=e;switch(typeof r){case Types_1.default.STRING:return r;case Types_1.default.BOOLEAN:return r?TRUE:FALSE;case Types_1.default.NUMBER:return EMPTY+r;default:if(null==r)return r;if(isSerializable(r))return r.serialize();if(t)return t;var i=new InvalidOperationException_1.default("Attempting to serialize unidentifiable type.");throw i.data.value=r,i}}function isSerializable(e){return Types_1.default.hasMemberOfType(e,"serialize",Types_1.default.FUNCTION)}function toPrimitive(e,t,r){if(e)switch(t&&(e=e.toLowerCase()),e){case"null":return null;case Types_1.default.UNDEFINED:return;case TRUE:return!0;case FALSE:return!1;default:var i=e.replace(/^\s+|,|\s+$/g,EMPTY);if(i)if(/^\d+$/g.test(i)){var a=parseInt(i);if(!isNaN(a))return a}else{var s=parseFloat(e);if(!isNaN(s))return s}r&&(e=r(e))}return e}exports.toString=toString,exports.isSerializable=isSerializable,exports.toPrimitive=toPrimitive;
//# sourceMappingURL=Utility.js.map