create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
1 lines • 77.7 kB
JavaScript
["^ ","~:resource-id",["~:shadow.build.classpath/resource","com/cognitect/transit/impl/writer.js"],"~:js","goog.provide(\"com.cognitect.transit.impl.writer\");\ngoog.require(\"com.cognitect.transit.util\");\ngoog.require(\"com.cognitect.transit.caching\");\ngoog.require(\"com.cognitect.transit.handlers\");\ngoog.require(\"com.cognitect.transit.types\");\ngoog.require(\"com.cognitect.transit.delimiters\");\ngoog.require(\"goog.math.Long\");\ngoog.scope(function() {\n var writer = com.cognitect.transit.impl.writer, util = com.cognitect.transit.util, caching = com.cognitect.transit.caching, handlers = com.cognitect.transit.handlers, types = com.cognitect.transit.types, d = com.cognitect.transit.delimiters, Long = goog.math.Long;\n writer.escape = function(string) {\n if (string.length > 0) {\n var c = string.charAt(0);\n if (c === d.ESC || c === d.SUB || c === d.RES) {\n return d.ESC + string;\n } else {\n return string;\n }\n } else {\n return string;\n }\n };\n writer.JSONMarshaller = function Transit$JSONMarshaller(opts) {\n this.opts = opts || {};\n this.preferStrings = this.opts[\"preferStrings\"] != null ? this.opts[\"preferStrings\"] : true;\n this.objectBuilder = this.opts[\"objectBuilder\"] || null;\n this.transform = this.opts[\"transform\"] || null;\n this.handlers = new handlers.Handlers;\n var optsHandlers = this.opts[\"handlers\"];\n if (optsHandlers) {\n if (util.isArray(optsHandlers) || !optsHandlers.forEach) {\n throw new Error('transit writer \"handlers\" option must be a map');\n }\n var self = this;\n optsHandlers.forEach(function(v, k) {\n if (k !== undefined) {\n self.handlers.set(k, v);\n } else {\n throw new Error(\"Cannot create handler for JavaScript undefined\");\n }\n });\n }\n this.handlerForForeign = this.opts[\"handlerForForeign\"];\n this.unpack = this.opts[\"unpack\"] || function(x) {\n if (types.isArrayMap(x) && x.backingMap === null) {\n return x._entries;\n } else {\n return false;\n }\n };\n this.verbose = this.opts && this.opts[\"verbose\"] || false;\n };\n writer.JSONMarshaller.prototype.handler = function(obj) {\n var h = this.handlers.get(handlers.constructor(obj));\n if (h != null) {\n return h;\n } else {\n var tag = obj && obj[\"transitTag\"];\n if (tag) {\n return this.handlers.get(tag);\n } else {\n return null;\n }\n }\n };\n writer.JSONMarshaller.prototype.registerHandler = function(ctor, handler) {\n this.handlers.set(ctor, handler);\n };\n writer.JSONMarshaller.prototype.emitNil = function(asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"_\", \"\", asMapKey, cache);\n } else {\n return null;\n }\n };\n writer.JSONMarshaller.prototype.emitString = function(prefix, tag, s, asMapKey, cache) {\n var string = prefix + tag + s;\n if (cache) {\n return cache.write(string, asMapKey);\n } else {\n return string;\n }\n };\n writer.JSONMarshaller.prototype.emitBoolean = function(b, asMapKey, cache) {\n if (asMapKey) {\n var s = b.toString();\n return this.emitString(d.ESC, \"?\", s[0], asMapKey, cache);\n } else {\n return b;\n }\n };\n writer.JSONMarshaller.prototype.emitInteger = function(i, asMapKey, cache) {\n if (i === Infinity) {\n return this.emitString(d.ESC, \"z\", \"INF\", asMapKey, cache);\n } else {\n if (i === -Infinity) {\n return this.emitString(d.ESC, \"z\", \"-INF\", asMapKey, cache);\n } else {\n if (isNaN(i)) {\n return this.emitString(d.ESC, \"z\", \"NaN\", asMapKey, cache);\n } else {\n if (asMapKey || typeof i === \"string\" || i instanceof Long) {\n return this.emitString(d.ESC, \"i\", i.toString(), asMapKey, cache);\n } else {\n return i;\n }\n }\n }\n }\n };\n writer.JSONMarshaller.prototype.emitDouble = function(d, asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"d\", d, asMapKey, cache);\n } else {\n return d;\n }\n };\n writer.JSONMarshaller.prototype.emitBinary = function(b, asMapKey, cache) {\n return this.emitString(d.ESC, \"b\", b, asMapKey, cache);\n };\n writer.JSONMarshaller.prototype.emitQuoted = function(em, obj, cache) {\n if (em.verbose) {\n var ret = {}, k = this.emitString(d.ESC_TAG, \"'\", \"\", true, cache);\n ret[k] = writer.marshal(this, obj, false, cache);\n return ret;\n } else {\n return [this.emitString(d.ESC_TAG, \"'\", \"\", true, cache), writer.marshal(this, obj, false, cache)];\n }\n };\n writer.emitObjects = function(em, iterable, cache) {\n var ret = [];\n if (util.isArray(iterable)) {\n for (var i = 0; i < iterable.length; i++) {\n ret.push(writer.marshal(em, iterable[i], false, cache));\n }\n } else {\n iterable.forEach(function(v, i) {\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n };\n writer.emitArray = function(em, iterable, skip, cache) {\n return writer.emitObjects(em, iterable, cache);\n };\n writer.isStringableKey = function(em, k) {\n if (typeof k !== \"string\") {\n var h = em.handler(k);\n return h && h.tag(k).length === 1;\n } else {\n return true;\n }\n };\n writer.stringableKeys = function(em, obj) {\n var arr = em.unpack(obj), stringableKeys = true;\n if (arr) {\n for (var i = 0; i < arr.length; i += 2) {\n stringableKeys = writer.isStringableKey(em, arr[i]);\n if (!stringableKeys) {\n break;\n }\n }\n return stringableKeys;\n } else {\n if (obj.keys) {\n var iter = obj.keys(), step = null;\n if (iter.next) {\n step = iter.next();\n while (!step.done) {\n stringableKeys = writer.isStringableKey(em, step.value);\n if (!stringableKeys) {\n break;\n }\n step = iter.next();\n }\n return stringableKeys;\n }\n }\n }\n if (obj.forEach) {\n obj.forEach(function(v, k) {\n stringableKeys = stringableKeys && writer.isStringableKey(em, k);\n });\n return stringableKeys;\n } else {\n throw new Error(\"Cannot walk keys of object type \" + handlers.constructor(obj).name);\n }\n };\n writer.isForeignObject = function(x) {\n if (x.constructor[\"transit$isObject\"]) {\n return true;\n }\n var ret = x.constructor.toString();\n ret = ret.substr(\"function \".length);\n ret = ret.substr(0, ret.indexOf(\"(\"));\n var isObject = ret == \"Object\";\n if (typeof Object.defineProperty != \"undefined\") {\n Object.defineProperty(x.constructor, \"transit$isObject\", {value:isObject, enumerable:false});\n } else {\n x.constructor[\"transit$isObject\"] = isObject;\n }\n return isObject;\n };\n writer.emitMap = function(em, obj, skip, cache) {\n var arr = null, rep = null, tag = null, ks = null, i = 0;\n if (obj.constructor === Object || obj.forEach != null || em.handlerForForeign && writer.isForeignObject(obj)) {\n if (em.verbose) {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n var ret = {};\n obj.forEach(function(v, k) {\n ret[writer.marshal(em, k, true, false)] = writer.marshal(em, v, false, cache);\n });\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, false));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n rep.push(writer.marshal(em, k, false, false));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n ret = {};\n ret[tag] = rep;\n return ret;\n }\n } else {\n ks = util.objectKeys(obj);\n ret = {};\n for (; i < ks.length; i++) {\n ret[writer.marshal(em, ks[i], true, false)] = writer.marshal(em, obj[ks[i]], false, cache);\n }\n return ret;\n }\n } else {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n arr = em.unpack(obj);\n ret = [\"^ \"];\n if (arr) {\n for (; i < arr.length; i += 2) {\n ret.push(writer.marshal(em, arr[i], true, cache));\n ret.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n ret.push(writer.marshal(em, k, true, cache));\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, cache));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function(v, k) {\n rep.push(writer.marshal(em, k, false, cache));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n return [tag, rep];\n }\n } else {\n ret = [\"^ \"];\n ks = util.objectKeys(obj);\n for (; i < ks.length; i++) {\n ret.push(writer.marshal(em, ks[i], true, cache));\n ret.push(writer.marshal(em, obj[ks[i]], false, cache));\n }\n return ret;\n }\n }\n } else {\n if (em.objectBuilder != null) {\n return em.objectBuilder(obj, function(k) {\n return writer.marshal(em, k, true, cache);\n }, function(v) {\n return writer.marshal(em, v, false, cache);\n });\n } else {\n var name = handlers.constructor(obj).name, err = new Error(\"Cannot write \" + name);\n err.data = {obj:obj, type:name};\n throw err;\n }\n }\n };\n writer.emitTaggedMap = function(em, tag, rep, skip, cache) {\n if (em.verbose) {\n var ret = {};\n ret[em.emitString(d.ESC_TAG, tag, \"\", true, cache)] = writer.marshal(em, rep, false, cache);\n return ret;\n } else {\n return [em.emitString(d.ESC_TAG, tag, \"\", true, cache), writer.marshal(em, rep, false, cache)];\n }\n };\n writer.emitEncoded = function(em, h, tag, rep, obj, asMapKey, cache) {\n if (tag.length === 1) {\n if (typeof rep === \"string\") {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else {\n if (asMapKey || em.preferStrings) {\n var vh = em.verbose && h.getVerboseHandler();\n if (vh) {\n tag = vh.tag(obj);\n rep = vh.stringRep(obj, vh);\n } else {\n rep = h.stringRep(obj, h);\n }\n if (rep !== null) {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else {\n var err = new Error('Tag \"' + tag + '\" cannot be encoded as string');\n err.data = {tag:tag, rep:rep, obj:obj};\n throw err;\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n };\n writer.marshal = function(em, obj, asMapKey, cache) {\n if (em.transform !== null) {\n obj = em.transform(obj);\n }\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null), tag = h ? h.tag(obj) : null, rep = h ? h.rep(obj) : null;\n if (h != null && tag != null) {\n switch(tag) {\n case \"_\":\n return em.emitNil(asMapKey, cache);\n break;\n case \"s\":\n return em.emitString(\"\", \"\", writer.escape(rep), asMapKey, cache);\n break;\n case \"?\":\n return em.emitBoolean(rep, asMapKey, cache);\n break;\n case \"i\":\n return em.emitInteger(rep, asMapKey, cache);\n break;\n case \"d\":\n return em.emitDouble(rep, asMapKey, cache);\n break;\n case \"b\":\n return em.emitBinary(rep, asMapKey, cache);\n break;\n case \"'\":\n return em.emitQuoted(em, rep, cache);\n break;\n case \"array\":\n return writer.emitArray(em, rep, asMapKey, cache);\n break;\n case \"map\":\n return writer.emitMap(em, rep, asMapKey, cache);\n break;\n default:\n return writer.emitEncoded(em, h, tag, rep, obj, asMapKey, cache);\n break;\n }\n } else {\n var name = handlers.constructor(obj).name, err = new Error(\"Cannot write \" + name);\n err.data = {obj:obj, type:name};\n throw err;\n }\n };\n writer.maybeQuoted = function(em, obj) {\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null);\n if (h != null) {\n if (h.tag(obj).length === 1) {\n return types.quoted(obj);\n } else {\n return obj;\n }\n } else {\n var name = handlers.constructor(obj).name, err = new Error(\"Cannot write \" + name);\n err.data = {obj:obj, type:name};\n throw err;\n }\n };\n writer.marshalTop = function(em, obj, asMapKey, cache) {\n return JSON.stringify(writer.marshal(em, writer.maybeQuoted(em, obj), asMapKey, cache));\n };\n writer.Writer = function Transit$Writer(marshaller, options) {\n this._marshaller = marshaller;\n this.options = options || {};\n if (this.options[\"cache\"] === false) {\n this.cache = null;\n } else {\n this.cache = this.options[\"cache\"] ? this.options[\"cache\"] : new caching.WriteCache;\n }\n };\n writer.Writer.prototype.marshaller = function() {\n return this._marshaller;\n };\n writer.Writer.prototype[\"marshaller\"] = writer.Writer.prototype.marshaller;\n writer.Writer.prototype.write = function(obj, opts) {\n var ret = null, ropts = opts || {}, asMapKey = ropts[\"asMapKey\"] || false, cache = this._marshaller.verbose ? false : this.cache;\n if (ropts[\"marshalTop\"] === false) {\n ret = writer.marshal(this._marshaller, obj, asMapKey, cache);\n } else {\n ret = writer.marshalTop(this._marshaller, obj, asMapKey, cache);\n }\n if (this.cache != null) {\n this.cache.clear();\n }\n return ret;\n };\n writer.Writer.prototype[\"write\"] = writer.Writer.prototype.write;\n writer.Writer.prototype.register = function(type, handler) {\n this._marshaller.registerHandler(type, handler);\n };\n writer.Writer.prototype[\"register\"] = writer.Writer.prototype.register;\n});\n","~:source","// Copyright 2014 Cognitect. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ngoog.provide(\"com.cognitect.transit.impl.writer\");\ngoog.require(\"com.cognitect.transit.util\");\ngoog.require(\"com.cognitect.transit.caching\");\ngoog.require(\"com.cognitect.transit.handlers\");\ngoog.require(\"com.cognitect.transit.types\");\ngoog.require(\"com.cognitect.transit.delimiters\");\ngoog.require(\"goog.math.Long\");\n\ngoog.scope(function () {\n\n var writer = com.cognitect.transit.impl.writer,\n util = com.cognitect.transit.util,\n caching = com.cognitect.transit.caching,\n handlers = com.cognitect.transit.handlers,\n types = com.cognitect.transit.types,\n d = com.cognitect.transit.delimiters,\n Long = goog.math.Long;\n\n writer.escape = function (string) {\n if (string.length > 0) {\n var c = string.charAt(0);\n if (c === d.ESC || c === d.SUB || c === d.RES) {\n return d.ESC + string;\n } else {\n return string;\n }\n } else {\n return string;\n }\n };\n\n /**\n * @constructor\n */\n writer.JSONMarshaller = function Transit$JSONMarshaller(opts) {\n this.opts = opts || {};\n this.preferStrings = this.opts[\"preferStrings\"] != null ? this.opts[\"preferStrings\"] : true;\n\n this.objectBuilder = this.opts[\"objectBuilder\"] || null;\n this.transform = this.opts[\"transform\"] || null;\n\n this.handlers = new handlers.Handlers();\n\n var optsHandlers = this.opts[\"handlers\"];\n if (optsHandlers) {\n if (util.isArray(optsHandlers) || !optsHandlers.forEach) {\n throw new Error(\"transit writer \\\"handlers\\\" option must be a map\");\n }\n var self = this;\n optsHandlers.forEach(function (v, k) {\n if (k !== undefined) {\n self.handlers.set(k, v);\n } else {\n throw new Error(\"Cannot create handler for JavaScript undefined\");\n }\n });\n }\n\n // Multiple JS context helper\n this.handlerForForeign = this.opts[\"handlerForForeign\"];\n\n this.unpack = this.opts[\"unpack\"] || function (x) {\n if (types.isArrayMap(x) && x.backingMap === null) {\n return x._entries;\n } else {\n return false;\n }\n };\n\n this.verbose = (this.opts && this.opts[\"verbose\"]) || false;\n };\n\n writer.JSONMarshaller.prototype.handler = function (obj) {\n var h = this.handlers.get(handlers.constructor(obj));\n\n if (h != null) {\n return h;\n } else {\n var tag = obj && obj[\"transitTag\"];\n if (tag) {\n return this.handlers.get(tag)\n } else {\n return null;\n }\n }\n };\n\n writer.JSONMarshaller.prototype.registerHandler = function (ctor, handler) {\n this.handlers.set(ctor, handler);\n };\n\n writer.JSONMarshaller.prototype.emitNil = function (asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"_\", \"\", asMapKey, cache);\n } else {\n return null;\n }\n };\n\n writer.JSONMarshaller.prototype.emitString = function (prefix, tag, s, asMapKey, cache) {\n var string = prefix + tag + s;\n if (cache) {\n return cache.write(string, asMapKey);\n } else {\n return string;\n }\n };\n\n writer.JSONMarshaller.prototype.emitBoolean = function (b, asMapKey, cache) {\n if (asMapKey) {\n var s = b.toString();\n return this.emitString(d.ESC, \"?\", s[0], asMapKey, cache);\n } else {\n return b;\n }\n };\n\n writer.JSONMarshaller.prototype.emitInteger = function (i, asMapKey, cache) {\n if (i === Infinity) {\n return this.emitString(d.ESC, \"z\", \"INF\", asMapKey, cache);\n } else if (i === -Infinity) {\n return this.emitString(d.ESC, \"z\", \"-INF\", asMapKey, cache);\n } else if (isNaN(i)) {\n return this.emitString(d.ESC, \"z\", \"NaN\", asMapKey, cache);\n } else if (asMapKey || (typeof i === \"string\") || (i instanceof Long)) {\n return this.emitString(d.ESC, \"i\", i.toString(), asMapKey, cache);\n } else {\n return i;\n }\n };\n\n writer.JSONMarshaller.prototype.emitDouble = function (d, asMapKey, cache) {\n if (asMapKey) {\n return this.emitString(d.ESC, \"d\", d, asMapKey, cache);\n } else {\n return d;\n }\n };\n\n writer.JSONMarshaller.prototype.emitBinary = function (b, asMapKey, cache) {\n return this.emitString(d.ESC, \"b\", b, asMapKey, cache);\n };\n\n writer.JSONMarshaller.prototype.emitQuoted = function (em, obj, cache) {\n if (em.verbose) {\n var ret = {},\n k = this.emitString(d.ESC_TAG, \"'\", \"\", true, cache);\n ret[k] = writer.marshal(this, obj, false, cache);\n return ret;\n } else {\n return [this.emitString(d.ESC_TAG, \"'\", \"\", true, cache), writer.marshal(this, obj, false, cache)];\n }\n };\n\n writer.emitObjects = function (em, iterable, cache) {\n var ret = [];\n if (util.isArray(iterable)) {\n for (var i = 0; i < iterable.length; i++) {\n ret.push(writer.marshal(em, iterable[i], false, cache));\n }\n } else {\n iterable.forEach(function (v, i) {\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n };\n\n writer.emitArray = function (em, iterable, skip, cache) {\n return writer.emitObjects(em, iterable, cache);\n };\n\n writer.isStringableKey = function (em, k) {\n if (typeof k !== \"string\") {\n var h = em.handler(k);\n return h && h.tag(k).length === 1;\n } else {\n return true;\n }\n };\n\n /**\n * Returns true if map-like obj parameter has only stringable keys -\n * strings, symbols or keywords. If false, obj is a cmap value.\n * @param em\n * @param obj\n * @returns {boolean}\n */\n writer.stringableKeys = function (em, obj) {\n var arr = em.unpack(obj),\n stringableKeys = true;\n\n if (arr) {\n for (var i = 0; i < arr.length; i += 2) {\n stringableKeys = writer.isStringableKey(em, arr[i]);\n if (!stringableKeys) {\n break;\n }\n }\n return stringableKeys;\n } else if (obj.keys) {\n var iter = obj.keys(),\n step = null;\n\n if (iter.next) {\n step = iter.next();\n while (!step.done) {\n stringableKeys = writer.isStringableKey(em, step.value);\n if (!stringableKeys) {\n break;\n }\n step = iter.next();\n }\n return stringableKeys;\n }\n }\n\n if (obj.forEach) {\n obj.forEach(function (v, k) {\n stringableKeys = stringableKeys && writer.isStringableKey(em, k);\n });\n return stringableKeys;\n } else {\n throw new Error(\"Cannot walk keys of object type \" + handlers.constructor(obj).name);\n }\n };\n\n /**\n * Returns true if x is an Object instance from a different JavaScript\n * context.\n * @param x\n * @returns {boolean}\n */\n writer.isForeignObject = function (x) {\n if (x.constructor[\"transit$isObject\"]) {\n return true;\n }\n\n var ret = x.constructor.toString();\n\n ret = ret.substr('function '.length);\n ret = ret.substr(0, ret.indexOf('('));\n var isObject = ret == \"Object\";\n\n if (typeof Object.defineProperty != \"undefined\") {\n Object.defineProperty(x.constructor, \"transit$isObject\", {\n value: isObject,\n enumerable: false\n });\n } else {\n x.constructor[\"transit$isObject\"] = isObject;\n }\n\n return isObject;\n };\n\n writer.emitMap = function (em, obj, skip, cache) {\n var arr = null, rep = null, tag = null, ks = null, i = 0;\n\n if ((obj.constructor === Object) ||\n (obj.forEach != null) ||\n (em.handlerForForeign && writer.isForeignObject(obj))) {\n if (em.verbose) {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n var ret = {};\n obj.forEach(function (v, k) {\n ret[writer.marshal(em, k, true, false)] = writer.marshal(em, v, false, cache);\n });\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, false));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function (v, k) {\n rep.push(writer.marshal(em, k, false, false));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n ret = {};\n ret[tag] = rep;\n return ret;\n }\n } else {\n ks = util.objectKeys(obj);\n ret = {};\n for (; i < ks.length; i++) {\n ret[writer.marshal(em, ks[i], true, false)] = writer.marshal(em, obj[ks[i]], false, cache);\n }\n return ret;\n }\n } else {\n if (obj.forEach != null) {\n if (writer.stringableKeys(em, obj)) {\n arr = em.unpack(obj);\n ret = [\"^ \"];\n if (arr) {\n for (; i < arr.length; i += 2) {\n ret.push(writer.marshal(em, arr[i], true, cache));\n ret.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function (v, k) {\n ret.push(writer.marshal(em, k, true, cache));\n ret.push(writer.marshal(em, v, false, cache));\n });\n }\n return ret;\n } else {\n arr = em.unpack(obj);\n rep = [];\n tag = em.emitString(d.ESC_TAG, \"cmap\", \"\", true, cache);\n if (arr) {\n for (; i < arr.length; i += 2) {\n rep.push(writer.marshal(em, arr[i], false, cache));\n rep.push(writer.marshal(em, arr[i + 1], false, cache));\n }\n } else {\n obj.forEach(function (v, k) {\n rep.push(writer.marshal(em, k, false, cache));\n rep.push(writer.marshal(em, v, false, cache));\n });\n }\n return [tag, rep];\n }\n } else {\n ret = [\"^ \"];\n ks = util.objectKeys(obj);\n for (; i < ks.length; i++) {\n ret.push(writer.marshal(em, ks[i], true, cache));\n ret.push(writer.marshal(em, obj[ks[i]], false, cache));\n }\n return ret;\n }\n }\n } else if (em.objectBuilder != null) {\n return em.objectBuilder(obj, function (k) {\n return writer.marshal(em, k, true, cache);\n },\n function (v) {\n return writer.marshal(em, v, false, cache);\n });\n } else {\n var name = handlers.constructor(obj).name,\n err = new Error(\"Cannot write \" + name);\n err.data = {obj: obj, type: name};\n throw err;\n }\n };\n\n writer.emitTaggedMap = function (em, tag, rep, skip, cache) {\n if (em.verbose) {\n var ret = {};\n ret[em.emitString(d.ESC_TAG, tag, \"\", true, cache)] = writer.marshal(em, rep, false, cache);\n return ret;\n } else {\n return [em.emitString(d.ESC_TAG, tag, \"\", true, cache), writer.marshal(em, rep, false, cache)];\n }\n };\n\n writer.emitEncoded = function (em, h, tag, rep, obj, asMapKey, cache) {\n if (tag.length === 1) {\n if (typeof rep === \"string\") {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else if (asMapKey || em.preferStrings) {\n var vh = em.verbose && h.getVerboseHandler();\n if (vh) {\n tag = vh.tag(obj);\n rep = vh.stringRep(obj, vh);\n } else {\n rep = h.stringRep(obj, h);\n }\n if (rep !== null) {\n return em.emitString(d.ESC, tag, rep, asMapKey, cache);\n } else {\n var err = new Error(\"Tag \\\"\" + tag + \"\\\" cannot be encoded as string\");\n err.data = {tag: tag, rep: rep, obj: obj};\n throw err;\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n } else {\n return writer.emitTaggedMap(em, tag, rep, asMapKey, cache);\n }\n };\n\n writer.marshal = function (em, obj, asMapKey, cache) {\n if(em.transform !== null) {\n obj = em.transform(obj);\n }\n\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null),\n tag = h ? h.tag(obj) : null,\n rep = h ? h.rep(obj) : null;\n\n if (h != null && tag != null) {\n switch (tag) {\n case \"_\":\n return em.emitNil(asMapKey, cache);\n break;\n case \"s\":\n return em.emitString(\"\", \"\", writer.escape(rep), asMapKey, cache);\n break;\n case \"?\":\n return em.emitBoolean(rep, asMapKey, cache);\n break;\n case \"i\":\n return em.emitInteger(rep, asMapKey, cache);\n break;\n case \"d\":\n return em.emitDouble(rep, asMapKey, cache);\n break;\n case \"b\":\n return em.emitBinary(rep, asMapKey, cache);\n break;\n case \"'\":\n return em.emitQuoted(em, rep, cache);\n break;\n case \"array\":\n return writer.emitArray(em, rep, asMapKey, cache);\n break;\n case \"map\":\n return writer.emitMap(em, rep, asMapKey, cache);\n break;\n default:\n return writer.emitEncoded(em, h, tag, rep, obj, asMapKey, cache);\n break;\n }\n } else {\n var name = handlers.constructor(obj).name,\n err = new Error(\"Cannot write \" + name);\n err.data = {obj: obj, type: name};\n throw err;\n }\n };\n\n writer.maybeQuoted = function (em, obj) {\n var h = em.handler(obj) || (em.handlerForForeign ? em.handlerForForeign(obj, em.handlers) : null);\n\n if (h != null) {\n if (h.tag(obj).length === 1) {\n return types.quoted(obj);\n } else {\n return obj;\n }\n } else {\n var name = handlers.constructor(obj).name,\n err = new Error(\"Cannot write \" + name);\n err.data = {obj: obj, type: name};\n throw err;\n }\n };\n\n writer.marshalTop = function (em, obj, asMapKey, cache) {\n return JSON.stringify(writer.marshal(em, writer.maybeQuoted(em, obj), asMapKey, cache));\n };\n\n /**\n * @constructor\n */\n writer.Writer = function Transit$Writer(marshaller, options) {\n this._marshaller = marshaller;\n this.options = options || {};\n if (this.options[\"cache\"] === false) {\n this.cache = null;\n } else {\n this.cache = this.options[\"cache\"] ? this.options[\"cache\"] : new caching.WriteCache();\n }\n };\n\n writer.Writer.prototype.marshaller = function () {\n return this._marshaller;\n };\n writer.Writer.prototype[\"marshaller\"] = writer.Writer.prototype.marshaller;\n\n writer.Writer.prototype.write = function (obj, opts) {\n var ret = null,\n ropts = opts || {},\n asMapKey = ropts[\"asMapKey\"] || false,\n cache = this._marshaller.verbose ? false : this.cache;\n\n if (ropts[\"marshalTop\"] === false) {\n ret = writer.marshal(this._marshaller, obj, asMapKey, cache)\n } else {\n ret = writer.marshalTop(this._marshaller, obj, asMapKey, cache)\n }\n if (this.cache != null) {\n this.cache.clear();\n }\n return ret;\n };\n writer.Writer.prototype[\"write\"] = writer.Writer.prototype.write;\n\n writer.Writer.prototype.register = function (type, handler) {\n this._marshaller.registerHandler(type, handler);\n };\n writer.Writer.prototype[\"register\"] = writer.Writer.prototype.register;\n\n});\n","~:compiled-at",1613924115829,"~:source-map-json","{\n\"version\":3,\n\"file\":\"com.cognitect.transit.impl.writer.js\",\n\"lineCount\":428,\n\"mappings\":\"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