For a list of breaking changes, check here.
Nbb: Scripting in Clojure on Node.js using SCI
- Bump org.babashka/cli
- Bump SCI
- Fix
cljs.pprint/print-table
+with-out-str
- Fixed
cljs.test/testing
macro to display strings correctly on test failure (@jaidetree)
- nbb bundle JS output will ignore
nbb.edn
- #351: Update bun docs/example.
- Add
cljs.core/exists?
- Add
cljs.test/run-test
macro
- Add cljs.core/Atom
- Add promesa
promesify
- Expose
sci.core
in nbb - Expose
get-sci-ctx
innbb.core
- More promesa fixes
- Bump sci.configs, adds promesa fixes/updates
- Fix problem in cljs.test reporter
- Bump sci.configs, fixes bug in
cljs.test/run-all-tests
- #330: Update nREPL server to always have
println
to emit the final newline to nREPL clients even from inside async calls such asjs/setTimeout
. - Bump sci.configs to include
promesa/timeout
- Bump SCI
- #323: regression:
cljs.core/PersistentQueue.EMPTY
no longer works - Remove offending but unused code for bun
- #318: fix
:local/root
deps innbb.edn
when not invoked from current directory
- #95: add
invoked-file
- #315: support
:init
option in repl api
- #311: allow macro to resolve class via alias
- #297: resolve
nbb.edn
relative to invoked script
- #309: fix error when calling a macro which is referring to a js library symbol
- #201: keyword arguments as map support
- #306: nREPL server exits on evaluation error
- #303 nREPL server sends bad namespace value in eval responses.
- #302: top level
do
expressions did not allow non-seq? values - Upgrade sci configs to
bf8d209e
- #300: write
print-error-report
to*print-err-fn*
- #294: support multiple values in code input in nREPL eval message
- #295: add
swap-vals!
andreset-vals!
- #292: fix destructuring in multimethod
- Upgrade shadow-cljs
- Lazy load
cljs.pprint
for better startup time - Update SCI: faster field access
- Upgrade SCI with performance improvements
- #288: escape regex when searching for completions in REPL
-
Add support for executing function using babashka.cli:
nbb -x foo.bar/baz --flag --option 1
- Downgrade shadow-cljs due to #287
- Add
cljs.pprint/cl-format
- Add
promesa.core/future
- Fix
package.json
- #132: Expose
nbb.nrepl-server
API
- #279: fix regression: nbb no longer has current directory on classpath by default
- #274: nbb.edn on Windows
- #272: malli doesn't run in nbb 1.0.140 due to stackoverflow
- #270: respect nbb.edn when starting nbb from JS API
- #268: Fix
:require-macros
(compatibility with camel-snake-kebab) - #264: make
load-file
auto-await
- Optimize
let
in SCI
- Add
clojure.zip
- Add
IFn
for compatibility withhickory.select
- Add
nbbun
launcher for Bun
- #258: improvements for loading namespaces and JS code asynchronously
- Fix compatibility with latest HoneySQL version
- Bump promesa to latest version and include promise-aware
doseq
macro
- #256: prefer loading package.json import over require (#257)
- #246: Support queue literal
- #247: Include remaining
goog.object
functions - Respect
:paths
fromnbb.edn
- #253: relative Javascript imports cached by "name", not by the resolved path
- #252:
IPrintWithWriter
support - Add
type->str
- Support
:deps
innbb.edn
- thanks @lilactown! - Allow npm lib name in bundle to be configured with
$NBB_NPM_LIB_NAME
- Malli compatibility
- More bundler fixes
- Fix #239: bundler with
--classpath
- Another fix for #234
- Fix #219: nbb doesn't resolve local node_modules when using the dynamic
js/import
- Fix #236: also coerce set to bencode in nREPL
- Fix #234: cljs.test/assert-expr
- Fix #136: allow
set!
on any var
- Fix bundler problem with
reagent.core
- Introduce bundle to make nbb projects work together with JS bundlers.
- Use
utf-8
encoding infs/readFile
for bun compatibility.
- Add
cljs.test/run-all-tests
- Optimization in SCI: smaller advanced JS bundle
- Add
promesa.core/error
- Temporarily roll back malli and schema support due to deployment difficulties
- Fix #214: add
reagent.core/adapt-react-class
- Support
metosin/malli
- Add support for
prismatic/schema
- Fix #207: Requiring a local JS file is now relative to the current
.cljs
file
- Bump shadow-cljs and fix custom nbb builds
- Include
promesa.core/loop
andrecur
- Fix #190: null namespace in completions
- Set exit code automatically based on failing
cljs.test
tests. - Upgrade to ClojureScript 1.11.51. See release
notes. This adds the
additional core vars + the
cljs.math
namespace.
- nREPL improvements
- Fix #187: invalid arity with
are
macro (workaround for bug in CLJS)
nrepl-server
supports pprinting eval results
nrepl-server
supports:host
parameter enabling connection within a Docker container.
- Add
goog.crypt
- #85: set *1, *2, *3, *e in REPL
- Expose
edamame.core
- Fix #180: namespace resolution in REPL
- Migrate features support to classpath approach
- Provide build bb library for building features
- Include
reagent.core/reactify-component
- Include
clojure.data
as built-in dependency - Add
datascript.core/squuid
- Add support for different CLI name
- React improvements
- Support for Raycast.
- Nbb is now able to run medley from source
-
Use
import-meta-resolve
to discover ES module files whencreateRequire
doesn't find them. Fixes issue with loading newer version ofzx
(6.0.0+). -
Add optional datascript tests
- Allow
reagent.ratom
to be required separately
- Add initial features support with datascript and datascript-transit
- Include
cognitect.transit
as built-in dependency - Add
clojure.pprint/print-table
- Don't load modules more than once
- Fix #158: be able to use
cljs.test
as namespace name + support:refer-macros
- Fix #154: ignore
:require-macros
- Fix #139: include
goog.string/format
- Support
*print-err-fn*
- Include
org.clojure/tools.cli
as built-in dependency. - Update SCI to
0.3.3
- Add
nbb.repl/get-completions
forinf-clojure
- Feat #149: Add auto-completions to normal REPL
- Support property access completions in nREPL server
- Fix #146: add JS completions for clojure functions in nREPL server
- Fix #146: add var completions for clojure functions in nREPL server
- Re-implement
require
via automaticawait
, allows conditional requires like:(when foo? (require 'bar))
- feat #142: experimental nbb.core/await
- Update SCI configs with
promesa/do
+promesa/create
- Bump SCI: drop location metadata from symbols, except top level
- Bump promesa for built-in clj-kondo config and
with-redefs
macro (@niwinz) - Include new
with-redefs
macro (@eccentric-j)
- Fix bug: allow arbitrary expression in class position in
new
(part 2)
- Fix bug: allow arbitrary expression in class position in
new
- Bump SCI
- Bump promesa for built-in clj-kondo config
- Show nbb version at REPL startup (@prestancedesign)
- Bump promesa with new
->
and->>
macros (@prestancedesign) - Bump SCI with performance improvements (4x) for loops
- Fix: use
Reflect.construct
to fix interop with Graal Node.js
- Fix #118: Use
Reflect.apply
to fix interop with Graal Node.js
- Support
:as-alias
- Bump SCI and cljs-bean
- CIDER improvements (@benjamin-asdf)
- Fix #115: Missing
cljs.core
functions:array?
,object?
,js-delete
,undefined?
- Fix #114: When non-Error values are thrown they aren't be caught by
:default
- Add cljs-bean to ease JS interop
- Add
--help
option to print help text - Add
--main
option to invoke main function
- Support binding
clojure.test/report
#106
- Expose
Math
directly
- Add
tap
and related functions
- Expose more
promesa
functions
- Bump SCI
- Add
nbb.classpath
namespace and JS API for adding classpath entries
- Support
test-vars
anduse-fixtures
inclojure.test
namespace #99
None yet.