replikativ / konserve

A clojuresque key-value/document store protocol with core.async.
Eclipse Public License 1.0
299 stars 25 forks source link

Clojurescript warnings and dependency errors #49

Closed Folcon closed 1 year ago

Folcon commented 3 years ago

I'm currently running konserve version 0.6.0-SNAPSHOT, I'm doing this because I can't get version 0.6.0-alpha3 working at all.

0.6.0-SNAPSHOT warnings in REPL

I'm mentioning these because I don't know if they've been fixed in the ` version, note these don't prevent konserve from working, unlike the errors in the0.6.0-alpha3` version errors:

[Figwheel:WARNING] Compile Warning   resources/public/js/compiled/out/hasch/core.cljc   line:58  column:16

  Use of undeclared Var hasch.core/byte-array

  53  (defn b64-hash
  54    "Provides a base64 encoded string of the edn-hash of a value val. This contains
  55    all bits of the hash compared to 128 bits for the UUID-5. Both should be safe,
  56    but b64-hash is safer towards collisions."
  57    [val]
  58    (b64/encode (byte-array (edn-hash val))))
                     ^---

[Figwheel:WARNING] Compile Warning   resources/public/js/compiled/out/konserve/serializers.cljc   line:68  column:27

  Use of undeclared Var konserve.serializers/class

  63  
  64  (defn string-serializer []
  65    (map->StringSerializer {}))
  66  
  67  (defn construct->class [m]
  68    (->> (map (fn [[k v]] [(class v) k]) m)
                                ^---
  69            (into {})))
  70  
  71  (def byte->serializer
  72    {0 (string-serializer)
  73     1 (fressian-serializer)})

The second one also creates this error in the console:

Uncaught TypeError: Cannot read property 'call' of undefined
    at serializers.cljc?rel=1621611596489:68
    at core.cljs:4736
    at core.cljs:4736
    at Object.sval (core.cljs:3439)
    at Object.cljs$core$ISeqable$_seq$arity$1 (core.cljs:3496)
    at Object.cljs$core$seq [as seq] (core.cljs:1234)
    at Function.cljs$core$IFn$_invoke$arity$3 (core.cljs:2480)
    at Object.cljs$core$IReduce$_reduce$arity$3 (core.cljs:3506)
    at Function.cljs$core$IFn$_invoke$arity$3 (core.cljs:2552)
    at Function.cljs$core$IFn$_invoke$arity$2 (core.cljs:5232)
(anonymous) @ serializers.cljc?rel=1621611596489:68
(anonymous) @ core.cljs:4736
(anonymous) @ core.cljs:4736
(anonymous) @ core.cljs:3439
(anonymous) @ core.cljs:3496
cljs$core$seq @ core.cljs:1234
(anonymous) @ core.cljs:2480
(anonymous) @ core.cljs:3506
(anonymous) @ core.cljs:2552
(anonymous) @ core.cljs:5232
cljs$core$into @ core.cljs:5224
konserve$serializers$construct__GT_class @ serializers.cljc?rel=1621611596489:69
(anonymous) @ serializers.cljc?rel=1621611596489:76

0.6.0-alpha3 errors

These do prevent the lib from working entirety, so I'm using the older version. I've fiddled around a bit with trying to run different versions of incognito.fressian, but in the end I decided it was better to just downgrade for now.

[Figwheel] Failed to compile build dev in 33.879 seconds.
[Figwheel:WARNING] Compile Exception   resources/public/js/compiled/out/konserve/serializers.cljc   line:4  column:24

  No such namespace: incognito.fressian, could not locate incognito/fressian.cljs, incognito/fressian.cljc, or JavaScript source providing "incognito.fressian" in file resources/public/js/compiled/out/konserve/serializers.cljc

  1  (ns konserve.serializers
  2    (:require [konserve.protocols :refer [PStoreSerializer -serialize -deserialize]]
  3              #?@(:clj [[clojure.data.fressian :as fress]
  4                        [incognito.fressian :refer [incognito-read-handlers
                            ^---
  5                                                    incognito-write-handlers]]])
  6              #?@(:cljs [[fress.api :as fress]
  7                         [incognito.fressian :refer [incognito-read-handlers incognito-write-handlers]]])
  8              [incognito.edn :refer [read-string-safe]])
  9    #?(:clj (:import [java.io FileOutputStream FileInputStream DataInputStream DataOutputStream]

[Figwheel:SEVERE] failed compiling file:resources/public/js/compiled/out/konserve/serializers.cljc

PS: It's a little worse than I thought, I can't do a production build as it errors and thus fails entirely.

whilo commented 3 years ago

@Folcon Hey, sorry for coming back to you late. Yes, downgrading should hopefully work for now, but this issue needs to be fixed.