This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-10-16
Channels
- # aws-lambda (10)
- # beginners (52)
- # boot (42)
- # cider (2)
- # cljs-dev (8)
- # cljsjs (4)
- # cljsrn (10)
- # clojars (3)
- # clojure (48)
- # clojure-conj (4)
- # clojure-dev (19)
- # clojure-italy (7)
- # clojure-norway (4)
- # clojure-russia (44)
- # clojure-spec (70)
- # clojure-uk (34)
- # clojurescript (39)
- # cursive (35)
- # data-science (11)
- # datomic (7)
- # emacs (6)
- # fulcro (2)
- # hoplon (12)
- # jobs (1)
- # juxt (18)
- # lein-figwheel (2)
- # leiningen (4)
- # luminus (9)
- # off-topic (29)
- # om (46)
- # onyx (131)
- # other-languages (24)
- # parinfer (84)
- # pedestal (10)
- # portkey (45)
- # protorepl (1)
- # re-frame (15)
- # reagent (43)
- # ring-swagger (41)
- # schema (6)
- # shadow-cljs (293)
- # slack-help (2)
- # specter (42)
+ это привычка из жс, делать по модулю на компонент
ухххх :D
та да, у меня, в частности, из js привычка 🙂
у меня была такая проблема в проекте с селениум тестами. написал макрос который подключает все ns с определенным префиксом
#_(:require [clojure.tools.namespace.find :as ns]
[clojure.java.classpath :as cp])
(defmacro loading-my-tests
"Подключает все ns из каталога test"
[]
(let [all-ns (ns/find-namespaces (cp/classpath))
test-ns-list (filter #(re-matches #"test(.*)" (str %)) all-ns)
name-to-fn (fn [ns-name] `(require '[~ns-name :refer :all]))
fn-list (mapv name-to-fn test-ns-list)]
`(do ~@fn-list)))
про core.match кто-нибудь сталкивался с тем, что не работает вот это:
(let [x [:k1 :k2 :k3]]
(m/match [x]
[(:k1 :<< first)] :first))
а вот так - работает
(let [k1 :k1
x [:k1 :k2 :k3]]
(m/match [x]
[(k1 :<< first)] :first))
Invalid list syntax :<< in (:k1 :<< first). Valid syntax:
[[:default :guard] [:or :default] [:default :only] [:default :seq]
[:default :when] [:default :as] [:default :<<] [:default
:clojure.core.match/vector]]
@kuzmin_m судя по https://github.com/clojure/core.match/blob/master/src/main/clojure/clojure/core/match.clj#L1809 это деталь реализации - оно пытается заресолвить синтаксис по первым двум кейвордам. т.е. пытается воспринять :k1 как часть синтаксиса core.match
т.е. если 2 кейворда - оно принципиально считает, что первый часть синтаксиса - второй - тупо value и не участвует в парсинге
подскажите, можно, как-то, с помощью cljs.spec описать пропсы reagent-компонента? как вы описываете PropTypes reagent-компонента?
@y.khmelevskii если это функция, то спекой для функций
s/fdef
но от этого сомнительный профит
+ вроде бы, instrument
не валидирует все аспекты спеки функции
угу, была билиотека поверх спеки с проверкой return value
а еще спека не подается DCE в cljs
так и будет висеть в бандле
@y.khmelevskii проще наверное сделать pre- post- ассерты
@roman01la спасибо. печально как-то без propTypes и ворнингов реакта. pre- ассерты, на сколько я понимаю, если не пройдут, то будут вызывать исключения, чего не хочется, нужны просто ворнинги. И да, спека в бандле тоже неприятно.
Ворнинги на деве полезны, для прода обычно проптайпсы вырезают с бандла.
значит без ns алиасов придется писать?
эта либа?
интересно, а чем обусловлено существование этой либы? почему спек из коробки не делает тоже самое?