- Fixed an issue where
tiden upgrade
would create a broken project if run from 0.6.0 to 0.7.1
- Fixed an issue where
tiden init
would create an broken project
- Removed injecting of importmap during runtime. It is not possible in Firefox. Instead, importmap is now injected into index.html during
tiden upgrade
command.
- Added
<body>
to index.html template. Seems Firefox gets cranky otherwise, even though it's not required by spec. - Use
document.write
instead ofdocument.createElement
ininit.js
, fixes issue with Firefox not loading shim. - Removed
window.importmap
variable. Instead, use a normal importmap (Tiden will patch it). - Re-added so that
tiden init ...
will use template by default
- Fixed an issue where component() would fail in production only
- Fixed an issue where
cache
would fail if metadata did not exist createNano
no longer adds template boilerplate, as this is usually not needed- Fixed an issue where Router.generate would fail to create links with provided
id
instead of legacypageId
- Fix an issue with
linkTo
which would use legacy verbnavigate
instead ofset page
render
can now take properties that have deeply nested generators- Added
history
andpop
streams to stdlib. Basic popstate functionality. - Added option to use URL fragments (i.e. "hash URLs"), just set
window.root
to the folder where index files are located (can be relative) - Returned capture groups from Page
interpret
function are now automatically run bydecodeURIComponent
- Anonymous
merge
will now start immediately. It cannot wait for a 'first request', because anonymous merges cannot be requested.
- Bump version of hotserve to 1.3.4 which includes a fix for HMR
- Added comments in generated index.html to help people add their own import maps
- Fix an issue where multiple importmaps would fail due to the shim being loaded later
- IDE will now reload automatically when changing the index.html file
merge
can now be anonymous (just omit second argument)- Feat!
render
can now be used with generator functions! - Page IDs will now include namespace by default
- Remove faulty warning message from 'connect'
- Add
window.publish
andwindow.request
methods - Using hotserve 1.3.3 include mikabytes/hotserve#2 we no longer have a dependency on Watchman. (thanks! @Seke1412)
- Fix another bug in 'connect' where returned arrays were converted to objects
- Fix a bug causing CSS not to be HMR ready
- Fixed HMR. Components now reload without having to reload whole site
- Fixed an issue where 'connect' would refuse to set an array property returned from selector.
- Added stdlib with 'Storage' functionality
- Add instructions for installing Watchman and better error handling #22
- Ensure that node version is at least 15.3.0. As we use EcmaScript modules, it will definitely break if node version is lower.
- Fixed an issue #20. Dependencies weren't installed correctly
- CLI has been added, use
tiden help
for specification
These have been deprecated and will be removed in a future minor version
HotHaunted.useAutoFocus
.HotHaunted.useElementWidth
HotHaunted.useCssVariable
ensure
[3]nested
[3]
get
Userequest
instead.getOne
Userequest
instead.set
Userequest
instead.create
Userequest
instead.update
Userequest
instead.takeEveryCreate
UserespondTo
instead.takeEveryUpdate
UserespondTo
instead.takeEveryGet
UserespondTo
instead.takeLeadingGet
This is such a corner case, and won't be covered by this library.unique
UsewhenChanged
instead.distinct
UsewhenChanged
instead.distinct
UsewhenChanged
instead.pipe
Use generator functions directly inconnect
instead.takeOne
This is such a corner case, and won't be covered by this library.createDispatcher
is no longer exported. Only used internally, as such low-level functionality shouldn't be offered by this library.link
UselinkTo
insteadannounce
Usepublish
insteadlistenFor
Usesubscribe
instead
createSimpleConcept
has been renamed tosimpleStream
createCache
has been renamed tocache
createMutex
has been renamed tomutex
HotHaunted
has been renamed tocomponent
mutex
return value is no longer{*lock}
but just*lock
.- assigning arrays as selector to
connect
is now forbidden [1] clearcache
verb has been removed frommerge
. Useinvalidate
instead.merge
now refetches all streams when invalidated (early it only recalculated its value based on already cached upstream values- Routing no longer prioritize pages that are registrered earlier before later ones. [2]
- Routing interpreters must now return key 'groups' even if a regex. It may also return a key
0
which, if exists, will be used for prioritizations. If unset, then it will be given highest priority.
[1] Assigning objects and literals is still allowed. Arrays will have a different meaning in v1.1 when connect moves towards using merges instead of selectors.
[2] pre-0.0.1 if a page was registered first with a regex of /.*/
then it would take priority after all the following ones because it was first and matched anything. In 0.0.1 this has changed so that the page that matches the biggest portion of the URL gains priority. This makes it easier to make fallback URLs, and solves race conditions when sub-apps are dynamically loaded.
[3] These are not automatically exposed in import ... from "tiden"
but can instead be loaded using import ... from "tiden/lib/api/ensure.js"
until next major version, at which point they will be removed.