datahike 0.7.1630
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +226 -0
- package/cljs.analyzer.api.js +427 -0
- package/cljs.analyzer.api.js.map +1 -0
- package/cljs.analyzer.impl.js +86 -0
- package/cljs.analyzer.impl.js.map +1 -0
- package/cljs.analyzer.impl.namespaces.js +219 -0
- package/cljs.analyzer.impl.namespaces.js.map +1 -0
- package/cljs.analyzer.js +7186 -0
- package/cljs.analyzer.js.map +1 -0
- package/cljs.analyzer.passes.and_or.js +141 -0
- package/cljs.analyzer.passes.and_or.js.map +1 -0
- package/cljs.analyzer.passes.js +104 -0
- package/cljs.analyzer.passes.js.map +1 -0
- package/cljs.cache.js +1145 -0
- package/cljs.cache.js.map +1 -0
- package/cljs.cache.wrapped.js +352 -0
- package/cljs.cache.wrapped.js.map +1 -0
- package/cljs.core.async.impl.buffers.js +489 -0
- package/cljs.core.async.impl.buffers.js.map +1 -0
- package/cljs.core.async.impl.channels.js +711 -0
- package/cljs.core.async.impl.channels.js.map +1 -0
- package/cljs.core.async.impl.dispatch.js +81 -0
- package/cljs.core.async.impl.dispatch.js.map +1 -0
- package/cljs.core.async.impl.ioc_helpers.js +192 -0
- package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
- package/cljs.core.async.impl.protocols.js +368 -0
- package/cljs.core.async.impl.protocols.js.map +1 -0
- package/cljs.core.async.impl.timers.js +510 -0
- package/cljs.core.async.impl.timers.js.map +1 -0
- package/cljs.core.async.js +8813 -0
- package/cljs.core.async.js.map +1 -0
- package/cljs.core.js +38764 -0
- package/cljs.core.js.map +1 -0
- package/cljs.env.js +60 -0
- package/cljs.env.js.map +1 -0
- package/cljs.nodejs.js +80 -0
- package/cljs.nodejs.js.map +1 -0
- package/cljs.reader.js +462 -0
- package/cljs.reader.js.map +1 -0
- package/cljs.spec.alpha.js +5312 -0
- package/cljs.spec.alpha.js.map +1 -0
- package/cljs.spec.gen.alpha.js +2020 -0
- package/cljs.spec.gen.alpha.js.map +1 -0
- package/cljs.tagged_literals.js +103 -0
- package/cljs.tagged_literals.js.map +1 -0
- package/cljs.tools.reader.edn.js +960 -0
- package/cljs.tools.reader.edn.js.map +1 -0
- package/cljs.tools.reader.impl.commons.js +217 -0
- package/cljs.tools.reader.impl.commons.js.map +1 -0
- package/cljs.tools.reader.impl.errors.js +441 -0
- package/cljs.tools.reader.impl.errors.js.map +1 -0
- package/cljs.tools.reader.impl.inspect.js +182 -0
- package/cljs.tools.reader.impl.inspect.js.map +1 -0
- package/cljs.tools.reader.impl.utils.js +429 -0
- package/cljs.tools.reader.impl.utils.js.map +1 -0
- package/cljs.tools.reader.js +1830 -0
- package/cljs.tools.reader.js.map +1 -0
- package/cljs.tools.reader.reader_types.js +838 -0
- package/cljs.tools.reader.reader_types.js.map +1 -0
- package/cljs_env.js +18192 -0
- package/cljs_node_io.core.js +1278 -0
- package/cljs_node_io.core.js.map +1 -0
- package/cljs_node_io.file.js +918 -0
- package/cljs_node_io.file.js.map +1 -0
- package/cljs_node_io.fs.js +3911 -0
- package/cljs_node_io.fs.js.map +1 -0
- package/clojure.data.js +319 -0
- package/clojure.data.js.map +1 -0
- package/clojure.edn.js +119 -0
- package/clojure.edn.js.map +1 -0
- package/clojure.set.js +406 -0
- package/clojure.set.js.map +1 -0
- package/clojure.string.js +502 -0
- package/clojure.string.js.map +1 -0
- package/clojure.walk.js +156 -0
- package/clojure.walk.js.map +1 -0
- package/datahike.api.impl.js +621 -0
- package/datahike.api.impl.js.map +1 -0
- package/datahike.api.specification.js +85 -0
- package/datahike.api.specification.js.map +1 -0
- package/datahike.array.js +275 -0
- package/datahike.array.js.map +1 -0
- package/datahike.config.js +437 -0
- package/datahike.config.js.map +1 -0
- package/datahike.connections.js +55 -0
- package/datahike.connections.js.map +1 -0
- package/datahike.connector.js +1248 -0
- package/datahike.connector.js.map +1 -0
- package/datahike.constants.js +66 -0
- package/datahike.constants.js.map +1 -0
- package/datahike.core.js +628 -0
- package/datahike.core.js.map +1 -0
- package/datahike.datom.js +963 -0
- package/datahike.datom.js.map +1 -0
- package/datahike.db.interface.js +819 -0
- package/datahike.db.interface.js.map +1 -0
- package/datahike.db.js +3095 -0
- package/datahike.db.js.map +1 -0
- package/datahike.db.search.js +1004 -0
- package/datahike.db.search.js.map +1 -0
- package/datahike.db.transaction.js +1904 -0
- package/datahike.db.transaction.js.map +1 -0
- package/datahike.db.utils.js +642 -0
- package/datahike.db.utils.js.map +1 -0
- package/datahike.gc.js +1618 -0
- package/datahike.gc.js.map +1 -0
- package/datahike.impl.entity.js +604 -0
- package/datahike.impl.entity.js.map +1 -0
- package/datahike.index.interface.js +484 -0
- package/datahike.index.interface.js.map +1 -0
- package/datahike.index.js +50 -0
- package/datahike.index.js.map +1 -0
- package/datahike.index.persistent_set.js +1250 -0
- package/datahike.index.persistent_set.js.map +1 -0
- package/datahike.js.api.js +2211 -0
- package/datahike.js.api.js.map +1 -0
- package/datahike.lru.js +404 -0
- package/datahike.lru.js.map +1 -0
- package/datahike.pull_api.js +533 -0
- package/datahike.pull_api.js.map +1 -0
- package/datahike.query.js +11891 -0
- package/datahike.query.js.map +1 -0
- package/datahike.query_stats.js +152 -0
- package/datahike.query_stats.js.map +1 -0
- package/datahike.readers.js +166 -0
- package/datahike.readers.js.map +1 -0
- package/datahike.schema.js +251 -0
- package/datahike.schema.js.map +1 -0
- package/datahike.schema_cache.js +66 -0
- package/datahike.schema_cache.js.map +1 -0
- package/datahike.spec.js +70 -0
- package/datahike.spec.js.map +1 -0
- package/datahike.store.js +514 -0
- package/datahike.store.js.map +1 -0
- package/datahike.tools.js +436 -0
- package/datahike.tools.js.map +1 -0
- package/datahike.writer.js +3463 -0
- package/datahike.writer.js.map +1 -0
- package/datahike.writing.js +3168 -0
- package/datahike.writing.js.map +1 -0
- package/datalog.parser.impl.js +1421 -0
- package/datalog.parser.impl.js.map +1 -0
- package/datalog.parser.impl.proto.js +213 -0
- package/datalog.parser.impl.proto.js.map +1 -0
- package/datalog.parser.impl.util.js +117 -0
- package/datalog.parser.impl.util.js.map +1 -0
- package/datalog.parser.js +47 -0
- package/datalog.parser.js.map +1 -0
- package/datalog.parser.pull.js +2603 -0
- package/datalog.parser.pull.js.map +1 -0
- package/datalog.parser.type.js +7502 -0
- package/datalog.parser.type.js.map +1 -0
- package/datalog.parser.util.js +60 -0
- package/datalog.parser.util.js.map +1 -0
- package/environ.core.js +263 -0
- package/environ.core.js.map +1 -0
- package/fress.api.js +607 -0
- package/fress.api.js.map +1 -0
- package/fress.impl.adler32.js +435 -0
- package/fress.impl.adler32.js.map +1 -0
- package/fress.impl.bigint.js +185 -0
- package/fress.impl.bigint.js.map +1 -0
- package/fress.impl.buffer.js +1087 -0
- package/fress.impl.buffer.js.map +1 -0
- package/fress.impl.codes.js +105 -0
- package/fress.impl.codes.js.map +1 -0
- package/fress.impl.hopmap.js +603 -0
- package/fress.impl.hopmap.js.map +1 -0
- package/fress.impl.ranges.js +49 -0
- package/fress.impl.ranges.js.map +1 -0
- package/fress.impl.raw_input.js +837 -0
- package/fress.impl.raw_input.js.map +1 -0
- package/fress.impl.raw_output.js +653 -0
- package/fress.impl.raw_output.js.map +1 -0
- package/fress.impl.table.js +133 -0
- package/fress.impl.table.js.map +1 -0
- package/fress.reader.js +2312 -0
- package/fress.reader.js.map +1 -0
- package/fress.util.js +458 -0
- package/fress.util.js.map +1 -0
- package/fress.writer.js +2141 -0
- package/fress.writer.js.map +1 -0
- package/geheimnis.aes.js +132 -0
- package/geheimnis.aes.js.map +1 -0
- package/hasch.base64.js +42 -0
- package/hasch.base64.js.map +1 -0
- package/hasch.benc.js +201 -0
- package/hasch.benc.js.map +1 -0
- package/hasch.core.js +188 -0
- package/hasch.core.js.map +1 -0
- package/hasch.platform.js +221 -0
- package/hasch.platform.js.map +1 -0
- package/incognito.base.js +276 -0
- package/incognito.base.js.map +1 -0
- package/incognito.edn.js +54 -0
- package/incognito.edn.js.map +1 -0
- package/incognito.fressian.js +330 -0
- package/incognito.fressian.js.map +1 -0
- package/index.d.ts +660 -0
- package/is.simm.partial_cps.async.js +142 -0
- package/is.simm.partial_cps.async.js.map +1 -0
- package/is.simm.partial_cps.runtime.js +65 -0
- package/is.simm.partial_cps.runtime.js.map +1 -0
- package/is.simm.partial_cps.sequence.js +1255 -0
- package/is.simm.partial_cps.sequence.js.map +1 -0
- package/konserve.cache.js +2519 -0
- package/konserve.cache.js.map +1 -0
- package/konserve.compressor.js +502 -0
- package/konserve.compressor.js.map +1 -0
- package/konserve.core.js +8052 -0
- package/konserve.core.js.map +1 -0
- package/konserve.encryptor.js +553 -0
- package/konserve.encryptor.js.map +1 -0
- package/konserve.gc.js +541 -0
- package/konserve.gc.js.map +1 -0
- package/konserve.impl.defaults.js +8290 -0
- package/konserve.impl.defaults.js.map +1 -0
- package/konserve.impl.storage_layout.js +849 -0
- package/konserve.impl.storage_layout.js.map +1 -0
- package/konserve.memory.js +2102 -0
- package/konserve.memory.js.map +1 -0
- package/konserve.node_filestore.js +2951 -0
- package/konserve.node_filestore.js.map +1 -0
- package/konserve.protocols.js +590 -0
- package/konserve.protocols.js.map +1 -0
- package/konserve.serializers.js +562 -0
- package/konserve.serializers.js.map +1 -0
- package/konserve.store.js +2245 -0
- package/konserve.store.js.map +1 -0
- package/konserve.tiered.js +9574 -0
- package/konserve.tiered.js.map +1 -0
- package/konserve.utils.js +180 -0
- package/konserve.utils.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
- package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
- package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
- package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.js +890 -0
- package/me.tonsky.persistent_sorted_set.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
- package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.util.js +402 -0
- package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
- package/medley.core.js +1857 -0
- package/medley.core.js.map +1 -0
- package/package.json +38 -0
- package/spec_tools.core.js +1925 -0
- package/spec_tools.core.js.map +1 -0
- package/spec_tools.data_spec.js +1291 -0
- package/spec_tools.data_spec.js.map +1 -0
- package/spec_tools.form.js +185 -0
- package/spec_tools.form.js.map +1 -0
- package/spec_tools.impl.js +362 -0
- package/spec_tools.impl.js.map +1 -0
- package/spec_tools.parse.js +427 -0
- package/spec_tools.parse.js.map +1 -0
- package/spec_tools.transform.js +288 -0
- package/spec_tools.transform.js.map +1 -0
- package/superv.async.js +8617 -0
- package/superv.async.js.map +1 -0
- package/tailrecursion.priority_map.js +994 -0
- package/tailrecursion.priority_map.js.map +1 -0
- package/taoensso.encore.js +12385 -0
- package/taoensso.encore.js.map +1 -0
- package/taoensso.timbre.appenders.core.js +239 -0
- package/taoensso.timbre.appenders.core.js.map +1 -0
- package/taoensso.timbre.js +1264 -0
- package/taoensso.timbre.js.map +1 -0
- package/taoensso.truss.impl.js +442 -0
- package/taoensso.truss.impl.js.map +1 -0
- package/taoensso.truss.js +743 -0
- package/taoensso.truss.js.map +1 -0
- package/test-config-keys.js +33 -0
- package/test-final.js +36 -0
- package/test-key-duplication.js +67 -0
- package/test.js +557 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
require("./cljs.spec.alpha.js");
|
|
6
|
+
require("./clojure.set.js");
|
|
7
|
+
require("./clojure.edn.js");
|
|
8
|
+
require("./spec_tools.parse.js");
|
|
9
|
+
require("./spec_tools.impl.js");
|
|
10
|
+
var environ=$CLJS.environ || ($CLJS.environ = {});
|
|
11
|
+
var fress=$CLJS.fress || ($CLJS.fress = {});
|
|
12
|
+
var datahike=$CLJS.datahike || ($CLJS.datahike = {});
|
|
13
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
14
|
+
var hasch=$CLJS.hasch || ($CLJS.hasch = {});
|
|
15
|
+
var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
|
|
16
|
+
var superv=$CLJS.superv || ($CLJS.superv = {});
|
|
17
|
+
var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
|
|
18
|
+
var is=$CLJS.is || ($CLJS.is = {});
|
|
19
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
20
|
+
var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
|
|
21
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
22
|
+
var konserve=$CLJS.konserve || ($CLJS.konserve = {});
|
|
23
|
+
var datalog=$CLJS.datalog || ($CLJS.datalog = {});
|
|
24
|
+
var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
|
|
25
|
+
var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
|
|
26
|
+
var incognito=$CLJS.incognito || ($CLJS.incognito = {});
|
|
27
|
+
var medley=$CLJS.medley || ($CLJS.medley = {});
|
|
28
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
29
|
+
|
|
30
|
+
$CLJS.SHADOW_ENV.setLoaded("spec_tools.transform.js");
|
|
31
|
+
|
|
32
|
+
goog.provide('spec_tools.transform');
|
|
33
|
+
spec_tools.transform.keyword__GT_string = (function spec_tools$transform$keyword__GT_string(_,x){
|
|
34
|
+
if((x instanceof cljs.core.Keyword)){
|
|
35
|
+
return spec_tools.impl.qualified_name(x);
|
|
36
|
+
} else {
|
|
37
|
+
return x;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
spec_tools.transform.keyword_or_string__GT_ = (function spec_tools$transform$keyword_or_string__GT_(f){
|
|
41
|
+
return (function (spec,x){
|
|
42
|
+
if((x instanceof cljs.core.Keyword)){
|
|
43
|
+
var G__125752 = spec;
|
|
44
|
+
var G__125753 = spec_tools.transform.keyword__GT_string(spec,x);
|
|
45
|
+
return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__125752,G__125753) : f.call(null, G__125752,G__125753));
|
|
46
|
+
} else {
|
|
47
|
+
if(typeof x === 'string'){
|
|
48
|
+
return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(spec,x) : f.call(null, spec,x));
|
|
49
|
+
} else {
|
|
50
|
+
return x;
|
|
51
|
+
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
spec_tools.transform.keyword__GT_ = (function spec_tools$transform$keyword__GT_(f){
|
|
57
|
+
return (function (spec,x){
|
|
58
|
+
if((x instanceof cljs.core.Keyword)){
|
|
59
|
+
var G__125758 = spec;
|
|
60
|
+
var G__125759 = spec_tools.transform.keyword__GT_string(spec,x);
|
|
61
|
+
return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__125758,G__125759) : f.call(null, G__125758,G__125759));
|
|
62
|
+
} else {
|
|
63
|
+
return x;
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
spec_tools.transform.number__GT_string = (function spec_tools$transform$number__GT_string(_,x){
|
|
69
|
+
if(typeof x === 'number'){
|
|
70
|
+
return cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);
|
|
71
|
+
} else {
|
|
72
|
+
return x;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
spec_tools.transform.number_or_string__GT_ = (function spec_tools$transform$number_or_string__GT_(f){
|
|
76
|
+
return (function (spec,x){
|
|
77
|
+
if(typeof x === 'number'){
|
|
78
|
+
var G__125763 = spec;
|
|
79
|
+
var G__125764 = spec_tools.transform.number__GT_string(spec,x);
|
|
80
|
+
return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__125763,G__125764) : f.call(null, G__125763,G__125764));
|
|
81
|
+
} else {
|
|
82
|
+
if(typeof x === 'string'){
|
|
83
|
+
return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(spec,x) : f.call(null, spec,x));
|
|
84
|
+
} else {
|
|
85
|
+
return x;
|
|
86
|
+
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
spec_tools.transform.string__GT_long = (function spec_tools$transform$string__GT_long(_,x){
|
|
92
|
+
if(typeof x === 'string'){
|
|
93
|
+
try{var x_SINGLEQUOTE_ = parseInt(x,(10));
|
|
94
|
+
if(cljs.core.truth_(isNaN(x_SINGLEQUOTE_))){
|
|
95
|
+
return x;
|
|
96
|
+
} else {
|
|
97
|
+
return x_SINGLEQUOTE_;
|
|
98
|
+
}
|
|
99
|
+
}catch (e125776){if((e125776 instanceof Error)){
|
|
100
|
+
var ___$1 = e125776;
|
|
101
|
+
return x;
|
|
102
|
+
} else {
|
|
103
|
+
throw e125776;
|
|
104
|
+
|
|
105
|
+
}
|
|
106
|
+
}} else {
|
|
107
|
+
return x;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
spec_tools.transform.string__GT_double = (function spec_tools$transform$string__GT_double(_,x){
|
|
111
|
+
if(typeof x === 'string'){
|
|
112
|
+
try{var x_SINGLEQUOTE_ = parseFloat(x);
|
|
113
|
+
if(cljs.core.truth_(isNaN(x_SINGLEQUOTE_))){
|
|
114
|
+
return x;
|
|
115
|
+
} else {
|
|
116
|
+
return x_SINGLEQUOTE_;
|
|
117
|
+
}
|
|
118
|
+
}catch (e125778){if((e125778 instanceof Error)){
|
|
119
|
+
var ___$1 = e125778;
|
|
120
|
+
return x;
|
|
121
|
+
} else {
|
|
122
|
+
throw e125778;
|
|
123
|
+
|
|
124
|
+
}
|
|
125
|
+
}} else {
|
|
126
|
+
return x;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
spec_tools.transform.string__GT_keyword = (function spec_tools$transform$string__GT_keyword(_,x){
|
|
130
|
+
if(typeof x === 'string'){
|
|
131
|
+
return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(x);
|
|
132
|
+
} else {
|
|
133
|
+
return x;
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
spec_tools.transform.string__GT_boolean = (function spec_tools$transform$string__GT_boolean(_,x){
|
|
137
|
+
if(typeof x === 'string'){
|
|
138
|
+
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("true",x)){
|
|
139
|
+
return true;
|
|
140
|
+
} else {
|
|
141
|
+
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("false",x)){
|
|
142
|
+
return false;
|
|
143
|
+
} else {
|
|
144
|
+
return x;
|
|
145
|
+
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
} else {
|
|
149
|
+
return x;
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
spec_tools.transform.string__GT_uri = (function spec_tools$transform$string__GT_uri(_,x){
|
|
153
|
+
if(typeof x === 'string'){
|
|
154
|
+
try{return goog.Uri.parse(x);
|
|
155
|
+
}catch (e125785){if((e125785 instanceof Error)){
|
|
156
|
+
var ___$1 = e125785;
|
|
157
|
+
return x;
|
|
158
|
+
} else {
|
|
159
|
+
throw e125785;
|
|
160
|
+
|
|
161
|
+
}
|
|
162
|
+
}} else {
|
|
163
|
+
return x;
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
spec_tools.transform.string__GT_uuid = (function spec_tools$transform$string__GT_uuid(_,x){
|
|
167
|
+
if(typeof x === 'string'){
|
|
168
|
+
try{if(cljs.core.truth_(cljs.core.re_find(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,x))){
|
|
169
|
+
return cljs.core.uuid(x);
|
|
170
|
+
} else {
|
|
171
|
+
return x;
|
|
172
|
+
}
|
|
173
|
+
}catch (e125798){if((e125798 instanceof Error)){
|
|
174
|
+
var ___$1 = e125798;
|
|
175
|
+
return x;
|
|
176
|
+
} else {
|
|
177
|
+
throw e125798;
|
|
178
|
+
|
|
179
|
+
}
|
|
180
|
+
}} else {
|
|
181
|
+
return x;
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
spec_tools.transform.string__GT_date = (function spec_tools$transform$string__GT_date(_,x){
|
|
185
|
+
if(typeof x === 'string'){
|
|
186
|
+
try{return (new Date(goog.date.UtcDateTime.fromIsoString(x).getTime()));
|
|
187
|
+
}catch (e125799){if((e125799 instanceof Error)){
|
|
188
|
+
var ___$1 = e125799;
|
|
189
|
+
return x;
|
|
190
|
+
} else {
|
|
191
|
+
throw e125799;
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
}} else {
|
|
195
|
+
return x;
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
spec_tools.transform.date__GT_string = (function spec_tools$transform$date__GT_string(_,x){
|
|
199
|
+
if(cljs.core.inst_QMARK_(x)){
|
|
200
|
+
try{return x.toISOString();
|
|
201
|
+
}catch (e125804){if((e125804 instanceof Error)){
|
|
202
|
+
var ___$1 = e125804;
|
|
203
|
+
return x;
|
|
204
|
+
} else {
|
|
205
|
+
throw e125804;
|
|
206
|
+
|
|
207
|
+
}
|
|
208
|
+
}} else {
|
|
209
|
+
return x;
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
spec_tools.transform.string__GT_symbol = (function spec_tools$transform$string__GT_symbol(_,x){
|
|
213
|
+
if(typeof x === 'string'){
|
|
214
|
+
return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(x);
|
|
215
|
+
} else {
|
|
216
|
+
return x;
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
spec_tools.transform.string__GT_nil = (function spec_tools$transform$string__GT_nil(_,x){
|
|
220
|
+
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("",x)){
|
|
221
|
+
return null;
|
|
222
|
+
} else {
|
|
223
|
+
return x;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
spec_tools.transform.any__GT_string = (function spec_tools$transform$any__GT_string(_,x){
|
|
227
|
+
if((!((x == null)))){
|
|
228
|
+
return cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);
|
|
229
|
+
} else {
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
spec_tools.transform.number__GT_double = (function spec_tools$transform$number__GT_double(_,x){
|
|
234
|
+
if(typeof x === 'number'){
|
|
235
|
+
return x;
|
|
236
|
+
} else {
|
|
237
|
+
return x;
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
spec_tools.transform.any__GT_any = (function spec_tools$transform$any__GT_any(_,x){
|
|
241
|
+
return x;
|
|
242
|
+
});
|
|
243
|
+
spec_tools.transform.strip_extra_keys = (function spec_tools$transform$strip_extra_keys(p__125806,x){
|
|
244
|
+
var map__125807 = p__125806;
|
|
245
|
+
var map__125807__$1 = cljs.core.__destructure_map(map__125807);
|
|
246
|
+
var keys = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125807__$1,new cljs.core.Keyword("spec-tools.parse","keys","spec-tools.parse/keys",1331815460));
|
|
247
|
+
if(cljs.core.truth_((function (){var and__5000__auto__ = keys;
|
|
248
|
+
if(cljs.core.truth_(and__5000__auto__)){
|
|
249
|
+
return cljs.core.map_QMARK_(x);
|
|
250
|
+
} else {
|
|
251
|
+
return and__5000__auto__;
|
|
252
|
+
}
|
|
253
|
+
})())){
|
|
254
|
+
return cljs.core.select_keys(x,keys);
|
|
255
|
+
} else {
|
|
256
|
+
return x;
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
spec_tools.transform.fail_on_extra_keys = (function spec_tools$transform$fail_on_extra_keys(p__125808,x){
|
|
260
|
+
var map__125809 = p__125808;
|
|
261
|
+
var map__125809__$1 = cljs.core.__destructure_map(map__125809);
|
|
262
|
+
var keys = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125809__$1,new cljs.core.Keyword("spec-tools.parse","keys","spec-tools.parse/keys",1331815460));
|
|
263
|
+
if(((cljs.core.map_QMARK_(x)) && ((!(clojure.set.subset_QMARK_(cljs.core.set(cljs.core.keys(x)),keys)))))){
|
|
264
|
+
return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119);
|
|
265
|
+
} else {
|
|
266
|
+
return x;
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
spec_tools.transform.strip_extra_values = (function spec_tools$transform$strip_extra_values(p__125811,x){
|
|
270
|
+
var map__125812 = p__125811;
|
|
271
|
+
var map__125812__$1 = cljs.core.__destructure_map(map__125812);
|
|
272
|
+
var items = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125812__$1,new cljs.core.Keyword("spec-tools.parse","items","spec-tools.parse/items",1255627600));
|
|
273
|
+
var size = cljs.core.count(items);
|
|
274
|
+
if(((cljs.core.vector_QMARK_(x)) && ((cljs.core.count(x) > size)))){
|
|
275
|
+
return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(x,(0),size);
|
|
276
|
+
} else {
|
|
277
|
+
return x;
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
spec_tools.transform.json_type_decoders = cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,"keyword","keyword",811389747),spec_tools.transform.string__GT_keyword,new cljs.core.Keyword(null,"uuid","uuid",-2145095719),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_uuid),new cljs.core.Keyword(null,"date","date",-1463434462),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_date),new cljs.core.Keyword(null,"symbol","symbol",-1038572696),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_symbol),new cljs.core.Keyword(null,"long","long",-171452093),spec_tools.transform.keyword__GT_(spec_tools.transform.string__GT_long),new cljs.core.Keyword(null,"double","double",884886883),spec_tools.transform.keyword__GT_(spec_tools.transform.string__GT_double),new cljs.core.Keyword(null,"boolean","boolean",-1919418404),spec_tools.transform.keyword__GT_(spec_tools.transform.string__GT_boolean),new cljs.core.Keyword(null,"string","string",-1989541586),spec_tools.transform.keyword__GT_string], null)], 0));
|
|
281
|
+
spec_tools.transform.string_type_decoders = cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec_tools.transform.json_type_decoders,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"long","long",-171452093),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_long),new cljs.core.Keyword(null,"double","double",884886883),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_double),new cljs.core.Keyword(null,"boolean","boolean",-1919418404),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_boolean)], null)], 0));
|
|
282
|
+
spec_tools.transform.strip_extra_keys_type_decoders = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"map","map",1371690461),spec_tools.transform.strip_extra_keys], null);
|
|
283
|
+
spec_tools.transform.fail_on_extra_keys_type_decoders = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"map","map",1371690461),spec_tools.transform.fail_on_extra_keys], null);
|
|
284
|
+
spec_tools.transform.strip_extra_values_type_decoders = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tuple","tuple",-472667284),spec_tools.transform.strip_extra_values], null);
|
|
285
|
+
spec_tools.transform.json_type_encoders = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"date","date",-1463434462),new cljs.core.Keyword(null,"symbol","symbol",-1038572696),new cljs.core.Keyword(null,"vector","vector",1902966158),new cljs.core.Keyword(null,"keyword","keyword",811389747),new cljs.core.Keyword(null,"bigdec","bigdec",1019443956),new cljs.core.Keyword(null,"uri","uri",-774711847),new cljs.core.Keyword(null,"uuid","uuid",-2145095719),new cljs.core.Keyword(null,"set","set",304602554),new cljs.core.Keyword(null,"map","map",1371690461)],[spec_tools.transform.date__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_any,spec_tools.transform.keyword__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_any,spec_tools.transform.any__GT_any]);
|
|
286
|
+
spec_tools.transform.string_type_encoders = cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec_tools.transform.json_type_encoders,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"long","long",-171452093),spec_tools.transform.any__GT_string,new cljs.core.Keyword(null,"double","double",884886883),spec_tools.transform.any__GT_string], null)], 0));
|
|
287
|
+
|
|
288
|
+
//# sourceMappingURL=spec_tools.transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["spec_tools/transform.cljc"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,0CAAA,1CAAMA,4FAAiBC,EAAEC;AAAzB,AACE,GAAI,cAAAC,bAAUD;AACZ,OAACE,+BAAoBF;;AACrBA;;;AAEJ,8CAAA,9CAAMG,oGAAqBC;AAA3B,AACE,kBAAKC,KAAKL;AAAV,AACE,GACE,cAAAC,bAAUD;AAAG,IAAAM,YAAGD;IAAHE,YAAQ,AAACT,wCAAgBO,KAAKL;AAA9B,AAAA,0EAAAM,UAAAC,0BAAAD,UAAAC,hHAACH,kCAAAA,uDAAAA;;AADhB,GAEE,OAASJ;AAAG,QAACI,kCAAAA,0CAAAA,VAAEC,uBAAAA,lBAAKL,uBAAAA;;AAFtB,AAGQA;;;;;;AAEZ,oCAAA,pCAAMQ,gFAAWJ;AAAjB,AACE,kBAAKC,KAAKL;AAAV,AACE,GACE,cAAAC,bAAUD;AAAG,IAAAS,YAAGJ;IAAHK,YAAQ,AAACZ,wCAAgBO,KAAKL;AAA9B,AAAA,0EAAAS,UAAAC,0BAAAD,UAAAC,hHAACN,kCAAAA,uDAAAA;;AADhB,AAEQJ;;;;;AAKZ,yCAAA,zCAAMW,0FAAgBZ,EAAEC;AAAxB,AACE,GAAI,OAASA;AACX,mDAAKA;;AACLA;;;AAEJ,6CAAA,7CAAMY,kGAAoBR;AAA1B,AACE,kBAAKC,KAAKL;AAAV,AACE,GACE,OAASA;AAAG,IAAAa,YAAGR;IAAHS,YAAQ,AAACH,uCAAeN,KAAKL;AAA7B,AAAA,0EAAAa,UAAAC,0BAAAD,UAAAC,hHAACV,kCAAAA,uDAAAA;;AADf,GAEE,OAASJ;AAAG,QAACI,kCAAAA,0CAAAA,VAAEC,uBAAAA,lBAAKL,uBAAAA;;AAFtB,AAGQA;;;;;;AAKZ,uCAAA,vCAAMe,sFAAchB,EAAEC;AAAtB,AACE,GAAI,OAASA;AACX,IAAA,AAEW,IAAMiB,iBAAG,WAAA,XAACC,SAAYlB;AAAtB,AACE,oBAAI,AAACmB,MAASF;AAAIjB;;AAAEiB;;iBAHjC,GAAA,CAAAD,mBAIkCI;AAJlC,YAAAJ,RAI4CjB;AAJ5C,AAI8CC;;AAJ9C,AAAA,MAAAgB;;;;AAKAhB;;;AAEJ,yCAAA,zCAAMqB,0FAAgBtB,EAAEC;AAAxB,AACE,GAAI,OAASA;AACX,IAAA,AAEW,IAAMiB,iBAAG,AAACM,WAAcvB;AAAxB,AACE,oBAAI,AAACmB,MAASF;AAAIjB;;AAAEiB;;iBAHjC,GAAA,CAAAK,mBAIkCF;AAJlC,YAAAE,RAI4CvB;AAJ5C,AAI8CC;;AAJ9C,AAAA,MAAAsB;;;;AAKAtB;;;AAEJ,0CAAA,1CAAMwB,4FAAiBzB,EAAEC;AAAzB,AACE,GAAI,OAASA;AACX,OAACyB,gDAAQzB;;AACTA;;;AAEJ,0CAAA,1CAAM0B,4FAAiB3B,EAAEC;AAAzB,AACE,GAAI,OAASA;AACX,GACE,6CAAA,7CAAC2B,oDAAS3B;AADZ;;AAAA,GAEE,6CAAA,7CAAC2B,qDAAU3B;AAFb;;AAAA,AAGQA;;;;;AACRA;;;AAqBJ,sCAAA,tCAAM4B,oFAAa7B,EAAEC;AAArB,AACE,GAAI,OAASA;AACX,IAAA,AAGW,OAAC8B,eAAe9B;iBAH3B,GAAA,CAAA6B,mBAIkCT;AAJlC,YAAAS,RAI4C9B;AAJ5C,AAI8CC;;AAJ9C,AAAA,MAAA6B;;;;AAKA7B;;;AAEJ,uCAAA,vCAAM+B,sFAAchC,EAAEC;AAAtB,AACE,GAAI,OAASA;AACX,IAAA,AAGW,oBAAI,kBAAA,lBAACiC,8FAAqFjC;AACxF,OAACkC,eAAKlC;;AACNA;;iBALb,GAAA,CAAAgC,mBAMkCZ;AANlC,YAAAY,RAM4CjC;AAN5C,AAM8CC;;AAN9C,AAAA,MAAAgC;;;;AAOAhC;;;AAUJ,uCAAA,vCAAMmC,sFAAcpC,EAAEC;AAAtB,AACE,GAAI,OAASA;AACX,IAAA,AAEW,YAAAqC,KAAU,AAAU,AAACC,oCAAoCtC;iBAFpE,GAAA,CAAAoC,mBAGkChB;AAHlC,YAAAgB,RAG4CrC;AAH5C,AAG8CC;;AAH9C,AAAA,MAAAoC;;;;AAIApC;;;AAOJ,uCAAA,vCAAMuC,sFAAcxC,EAAEC;AAAtB,AACE,GAAI,AAACwC,sBAAMxC;AACT,IAAA,AAEW,OAAcA;iBAFzB,GAAA,CAAAyC,mBAGkCrB;AAHlC,YAAAqB,RAG4C1C;AAH5C,AAG8CC;;AAH9C,AAAA,MAAAyC;;;;AAIAzC;;;AAEJ,yCAAA,zCAAM0C,0FAAgB3C,EAAEC;AAAxB,AACE,GAAI,OAASA;AACX,OAAC2C,+CAAO3C;;AACRA;;;AAEJ,sCAAA,tCAAM4C,oFAAa7C,EAAEC;AAArB,AACE,GAAI,6CAAA,7CAAC2B,gDAAK3B;AAAV;;AAEEA;;;AAEJ,sCAAA,tCAAM6C,oFAAa9C,EAAEC;AAArB,AACE,GAAA,GAAQ,MAAA,LAAMA;AACZ,mDAAKA;;AADP;;;AAGF,yCAAA,zCAAM8C,0FAAgB/C,EAAEC;AAAxB,AACE,GAAI,OAASA;AACHA;;AACRA;;;AAEJ,mCAAA,nCAAM+C,8EAAUhD,EAAEC;AAAlB,AAAqBA;;AAMrB,wCAAA,gDAAAgD,xFAAMK,kGAAyCrD;AAA/C,AAAA,IAAAiD,cAAAD;IAAAC,kBAAA,AAAAC,4BAAAD;IAAAE,OAAA,AAAAC,4CAAAH,gBAAA;AAAA,AACE,oBAAI,iBAAAK,oBAAKH;AAAL,AAAA,oBAAAG;AAAU,OAACC,qBAAKvD;;AAAhBsD;;;AACF,OAACE,sBAAYxD,EAAEmD;;AACfnD;;;AAGJ,0CAAA,kDAAAyD,5FAAME,sGAA2C3D;AAAjD,AAAA,IAAA0D,cAAAD;IAAAC,kBAAA,AAAAR,4BAAAQ;IAAAP,OAAA,AAAAC,4CAAAM,gBAAA;AAAA,AACE,GAAI,EAAK,AAACH,qBAAKvD,QAAG,GAAK,AAAC4D,uDAAgB5D,fAAE,AAAC6D,dAAmB,AAACC,iCAAMX;AAArE;;AAEEnD;;;AAMJ,0CAAA,kDAAA+D,5FAAMG,sGAA4ClE;AAAlD,AAAA,IAAAgE,cAAAD;IAAAC,kBAAA,AAAAd,4BAAAc;IAAAC,QAAA,AAAAb,4CAAAY,gBAAA;AAAA,AACE,IAAMG,OAAK,AAACC,gBAAMH;AAAlB,AACE,GAAI,EAAK,AAACI,wBAAQrE,QAAG,CAAG,AAACoE,gBAAMpE,KAAGmE;AAChC,wDAAA,jDAACG,+CAAOtE,MAAImE;;AACZnE;;;AAMN,AAAKuE,0CACH,uGAAA,2CAAA,kGAAA,wIAAA,wIAAA,8IAAA,6HAAA,kIAAA,uIAAA,xhCAACC,4MACWhD,8FACH,AAACrB,4CAAoB4B,4FACrB,AAAC5B,4CAAoBgC,gGACnB,AAAChC,4CAAoBuC,6FACvB,AAAClC,kCAAUO,8FACT,AAACP,kCAAUa,oGACV,AAACb,kCAAUkB,mGACZ5B;AAMb,AAAK2E,4CACH,+IAAA,2CAAA,uIAAA,4IAAA,7cAACD,uGACCD,wIACO,AAACpE,4CAAoBY,8FACnB,AAACZ,4CAAoBkB,oGACpB,AAAClB,4CAAoBuB;AAEnC,sDAAA,2CAAA,jGAAKgD,oJACGrB;AAER,wDAAA,2CAAA,nGAAKsB,sJACGhB;AAER,wDAAA,2CAAA,nGAAKiB,0JACKV;AAMV,0CAAA,wCAAA,sDAAA,0DAAA,yDAAA,0DAAA,yDAAA,mDAAA,sDAAA,kDAAA,zgBAAKW,wqBACO/E,rEACD+C,qLACFA,pCACDA,pCACGA,lJACFN,+RACDQ,jCACAA,rLACGA;AAGX,AAAK+B,4CACH,+IAAA,2CAAA,yFAAA,nRAACN,uGACCK,wIACOhC,4FACEA","names":["spec-tools.transform/keyword->string","_","x","cljs.core/Keyword","spec-tools.impl/qualified-name","spec-tools.transform/keyword-or-string->","f","spec","G__125752","G__125753","spec-tools.transform/keyword->","G__125758","G__125759","spec-tools.transform/number->string","spec-tools.transform/number-or-string->","G__125763","G__125764","spec-tools.transform/string->long","e125776","x'","js/parseInt","js/isNaN","js/Error","spec-tools.transform/string->double","e125778","js/parseFloat","spec-tools.transform/string->keyword","cljs.core.keyword","spec-tools.transform/string->boolean","cljs.core._EQ_","spec-tools.transform/string->uri","e125785","js/goog.Uri.parse","spec-tools.transform/string->uuid","e125798","cljs.core/re-find","cljs.core/uuid","spec-tools.transform/string->date","e125799","js/Date","js/goog.date.UtcDateTime.fromIsoString","spec-tools.transform/date->string","cljs.core/inst?","e125804","spec-tools.transform/string->symbol","cljs.core.symbol","spec-tools.transform/string->nil","spec-tools.transform/any->string","spec-tools.transform/number->double","spec-tools.transform/any->any","p__125806","map__125807","cljs.core/--destructure-map","keys","cljs.core.get","spec-tools.transform/strip-extra-keys","and__5000__auto__","cljs.core/map?","cljs.core/select-keys","p__125808","map__125809","spec-tools.transform/fail-on-extra-keys","clojure.set/subset?","cljs.core/keys","cljs.core/set","p__125811","map__125812","items","spec-tools.transform/strip-extra-values","size","cljs.core/count","cljs.core/vector?","cljs.core.subvec","spec-tools.transform/json-type-decoders","cljs.core.merge","spec-tools.transform/string-type-decoders","spec-tools.transform/strip-extra-keys-type-decoders","spec-tools.transform/fail-on-extra-keys-type-decoders","spec-tools.transform/strip-extra-values-type-decoders","spec-tools.transform/json-type-encoders","spec-tools.transform/string-type-encoders"],"sourcesContent":["(ns spec-tools.transform\n #?(:cljs (:refer-clojure :exclude [Inst Keyword UUID]))\n (:require [clojure.spec.alpha :as s]\n #?@(:cljs [[goog.date.UtcDateTime]\n [goog.date.Date]\n [goog.Uri]])\n [clojure.set :as set]\n [clojure.edn :as edn]\n [spec-tools.parse :as parse]\n [spec-tools.impl :as impl])\n #?(:clj\n (:import (java.util Date UUID)\n (java.time Instant ZoneId)\n (java.net URI)\n (java.time.format DateTimeFormatter DateTimeFormatterBuilder)\n (java.time.temporal ChronoField))))\n\n;;\n;; Keywords\n;;\n\n(defn keyword->string [_ x]\n (if (keyword? x)\n (impl/qualified-name x)\n x))\n\n(defn keyword-or-string-> [f]\n (fn [spec x]\n (cond\n (keyword? x) (f spec (keyword->string spec x))\n (string? x) (f spec x)\n :else x)))\n\n(defn keyword-> [f]\n (fn [spec x]\n (cond\n (keyword? x) (f spec (keyword->string spec x))\n :else x)))\n\n;; Numbers\n;;\n\n(defn number->string [_ x]\n (if (number? x)\n (str x)\n x))\n\n(defn number-or-string-> [f]\n (fn [spec x]\n (cond\n (number? x) (f spec (number->string spec x))\n (string? x) (f spec x)\n :else x)))\n;;\n;; Strings\n;;\n\n(defn string->long [_ x]\n (if (string? x)\n (try\n #?(:clj (Long/parseLong x)\n :cljs (let [x' (js/parseInt x 10)]\n (if (js/isNaN x') x x')))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->double [_ x]\n (if (string? x)\n (try\n #?(:clj (Double/parseDouble x)\n :cljs (let [x' (js/parseFloat x)]\n (if (js/isNaN x') x x')))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->keyword [_ x]\n (if (string? x)\n (keyword x)\n x))\n\n(defn string->boolean [_ x]\n (if (string? x)\n (cond\n (= \"true\" x) true\n (= \"false\" x) false\n :else x)\n x))\n\n#?(:clj\n (defn string->decimal [_ x]\n (if (string? x)\n (try\n (BigDecimal. ^String x)\n (catch Exception _ x))\n x)))\n\n#?(:clj\n (defn string->ratio [_ x]\n (if (string? x)\n (try\n (let [parsed-x (edn/read-string ^String x)]\n (if (ratio? parsed-x)\n parsed-x\n x))\n (catch Exception _ x))\n x)))\n\n(defn string->uri [_ x]\n (if (string? x)\n (try\n #?(:clj (URI/create x)\n ;; https://stackoverflow.com/questions/11528249/uri-validation-in-javascript\n :cljs (goog.Uri.parse x))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->uuid [_ x]\n (if (string? x)\n (try\n #?(:clj (UUID/fromString x)\n ;; http://stackoverflow.com/questions/7905929/how-to-test-valid-uuid-guid\n :cljs (if (re-find #\"^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$\" x)\n (uuid x)\n x))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n#?(:clj\n (def ^DateTimeFormatter +string->date-format+\n (-> (DateTimeFormatterBuilder.)\n (.appendPattern \"yyyy-MM-dd['T'HH:mm:ss[.SSS][XXXX][XXXXX]]\")\n (.parseDefaulting ChronoField/HOUR_OF_DAY 0)\n (.parseDefaulting ChronoField/OFFSET_SECONDS 0)\n (.toFormatter))))\n\n(defn string->date [_ x]\n (if (string? x)\n (try\n #?(:clj (Date/from (Instant/from (.parse +string->date-format+ x)))\n :cljs (js/Date. (.getTime (goog.date.UtcDateTime.fromIsoString x))))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n#?(:clj\n (def ^DateTimeFormatter +date->string-format+\n (-> (DateTimeFormatter/ofPattern \"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\")\n (.withZone (ZoneId/of \"UTC\")))))\n\n(defn date->string [_ x]\n (if (inst? x)\n (try\n #?(:clj (.format +date->string-format+ (Instant/ofEpochMilli (inst-ms x)))\n :cljs (.toISOString x))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->symbol [_ x]\n (if (string? x)\n (symbol x)\n x))\n\n(defn string->nil [_ x]\n (if (= \"\" x)\n nil\n x))\n\n(defn any->string [_ x]\n (if-not (nil? x)\n (str x)))\n\n(defn number->double [_ x]\n (if (number? x)\n (double x)\n x))\n\n(defn any->any [_ x] x)\n\n;;\n;; Maps\n;;\n\n(defn strip-extra-keys [{:keys [::parse/keys]} x]\n (if (and keys (map? x))\n (select-keys x keys)\n x))\n\n;; TODO: remove this as it couples transformation & validation?\n(defn fail-on-extra-keys [{:keys [::parse/keys]} x]\n (if (and (map? x) (not (set/subset? (-> x (clojure.core/keys) (set)) keys)))\n ::s/invalid\n x))\n\n;;\n;; Tuples\n;;\n\n(defn strip-extra-values [{:keys [::parse/items]} x]\n (let [size (count items)]\n (if (and (vector? x) (> (count x) size))\n (subvec x 0 size)\n x)))\n\n;;\n;; type decoders\n;;\n\n(def json-type-decoders\n (merge\n {:keyword string->keyword\n :uuid (keyword-or-string-> string->uuid)\n :date (keyword-or-string-> string->date)\n :symbol (keyword-or-string-> string->symbol)\n :long (keyword-> string->long)\n :double (keyword-> string->double)\n :boolean (keyword-> string->boolean)\n :string keyword->string}\n #?(:clj\n {:uri string->uri\n :bigdec (number-or-string-> string->decimal)\n :ratio string->ratio})))\n\n(def string-type-decoders\n (merge\n json-type-decoders\n {:long (keyword-or-string-> string->long)\n :double (keyword-or-string-> string->double)\n :boolean (keyword-or-string-> string->boolean)}))\n\n(def strip-extra-keys-type-decoders\n {:map strip-extra-keys})\n\n(def fail-on-extra-keys-type-decoders\n {:map fail-on-extra-keys})\n\n(def strip-extra-values-type-decoders\n {:tuple strip-extra-values})\n\n;;\n;; type encoders\n;;\n\n(def json-type-encoders\n {:keyword keyword->string\n :symbol any->string\n :uuid any->string\n :uri any->string\n :bigdec any->string\n :date date->string\n :map any->any\n :set any->any\n :vector any->any\n #?@(:clj [:ratio number->double])})\n\n(def string-type-encoders\n (merge\n json-type-encoders\n {:long any->string\n :double any->string}))\n"],"x_google_ignoreList":[0]}
|