open:def-superfetcher

def-superfetcher

(defmacro def-superfetcher [sym bindings do-fetch-fn]
          `(defrecord ~sym ~bindings
             u/DataSource
             (-identity [this#] (:id this#))
             (-fetch [this# env#]
               (unwrap first (~do-fetch-fn [this#] env#)))
 
             u/BatchedSource
             (-fetch-multi [muse# muses# env#]
               (let [muses# (cons muse# muses#)]
                 (unwrap (fn [responses#]
                           (zipmap (map u/-identity muses#)
                                   responses#))
                         (~do-fetch-fn muses# env#))))))


  • open/def-superfetcher.txt
  • 마지막으로 수정됨: 2022/06/20 00:08
  • 저자 127.0.0.1