kraken-js
Version:
An express-based Node.js web application bootstrapping module.
168 lines (101 loc) • 6.68 kB
Markdown
# unreleased
## 2.6.0
- Now requires Node v20 and later
- Updated `formidable` dependency to `^3.5.4`
- Added compatibility layer to preserve current Kraken API
- Updated several devDependencies
## Release Notes
kraken-js v2.5.0
Released 2023-08-16
## Changes
- Options can now be passed directly to confit via `{ confit: {} }`. This can be used to mitigate issue #470. [Pull Request](https://github.com/krakenjs/kraken-js/pull/528)
# Release Notes
kraken-js v2.4.0
Released: 2021-11-23
## Changes
- Include process.cwd while resolving module for view engine. It is possible that kraken-js module is deployed outside application root. [Pull Request](https://github.com/krakenjs/kraken-js/pull/526)
- Use confit@3x [Pull Request](https://github.com/krakenjs/kraken-js/pull/527)
kraken-js v2.3.0
Released: 2020-02-04
## Changes
- deprecate domains
- add onKrakenMount property; removed node v4, v6 and added node 10 in travis CI config (#514)
---
kraken-js v2.2.0
Released: 2017-23-10
## Changes
* **Core:**
1. Allow config path to be configurable
[Implementation](https://github.com/krakenjs/kraken-js/commit/6a643e5c740a21740a2adfd81a12ea0518755db7), [Pull Request](https://github.com/krakenjs/kraken-js/pull/473)
2. Updates dependencies
[Pull Request](https://github.com/krakenjs/kraken-js/pull/481)
3. Updates `lusca` dependency to 1.5.1
[Pull Request](https://github.com/krakenjs/kraken-js/pull/493)
4. Enables Lusca XSS protection by default
[Pull Request](https://github.com/krakenjs/kraken-js/pull/477)
---
kraken-js v2.1.0
Released: 2016-01-04
## Changes
* **Core:**
1. Add more robust error handler for both inside and outside of the middleware continuation
[Implementation](https://github.com/krakenjs/kraken-js/compare/v2.0.1...v2.1.0), [Pull Request](https://github.com/krakenjs/kraken-js/pull/435)
---
kraken-js v2.0.1
Released: 2015-12-04
## Changes
* **Core:**
1. Set morgan option to log request even if server crashes
[Implementation](https://github.com/krakenjs/kraken-js/commit/8febdea2423ce76608cc5167575f69a68eb97787), [Pull Request](https://github.com/krakenjs/kraken-js/pull/430)
---
kraken-js v2.0.0
Released: 2015-10-07
## Bug Fixes
* **Core:**
1. Fix occasional double close error on shutdown
[Issue](https://github.com/krakenjs/kraken-js/issues/402), [Pull Request](https://github.com/krakenjs/kraken-js/pull/419)
## Changes
* **Core:**
1. Add `shutdownHeaders` option to shutdown middleware
[Pull Request](https://github.com/krakenjs/kraken-js/pull/373)
2. Print deprecation warnings for the included 404 and 500 handlers.
[Implementation](https://github.com/krakenjs/kraken-js/commit/a6b3fae2ba25703573c317143ad4d2a1a9c3a937), [Issue](https://github.com/krakenjs/kraken-js/issues/359), [Pull Request](https://github.com/krakenjs/kraken-js/pull/361)
## Breaking Changes
* **Dependency:** meddleware (v1 -> v3)
1. Call registered middleware factories with a context set to the method owner. This helps in specific cases (e.g., Passport).
**Previously:** The factory was called with a context of `null`.
[Implementation](https://github.com/krakenjs/meddleware/blob/ffb855528d1ceafed12b9c185d093561fd6bb7e1/index.js#L97), [Issue](https://github.com/krakenjs/meddleware/issues/26), [Pull Request](https://github.com/krakenjs/meddleware/pull/29)
1. Default middleware `enabled` to `true`. I.e., omitting the [`enabled` option](https://github.com/krakenjs/meddleware/blob/01c2c8fbeade81eac8ea295ae30c5bcc1ed2d446/README.md#options) will still enable the middleware.
**Previously:** middleware was defaulted `enabled` to `false`.
[Implementation](https://github.com/krakenjs/meddleware/blob/01c2c8fbeade81eac8ea295ae30c5bcc1ed2d446/index.js#L171-L173), [Issue](https://github.com/krakenjs/meddleware/issues/13), [Pull Request](https://github.com/krakenjs/meddleware/pull/17)
2. Remove the ability to toggle the `enabled` state of a middleware at arbitrary points during runtime. Now, a middleware that is not `enabled`—by explicitly setting `enabled` to `false`, given breaking change No.1—will not be `require`d (i.e., not parsed), and cannot be enabled at a later time.
**Previously:** middleware could be toggled. Was by design, but largely unused and caused unanticipated behavior.
[Issue](https://github.com/krakenjs/meddleware/issues/20), [Pull Request](https://github.com/krakenjs/meddleware/pull/25)
* **Dependency:** confit (v1 -> v2)
1. Resolve the `import` shortstop handler after merging `config.json`, `[env].json`, and before the other shortstop handlers are resolved.
**Previously:** `import` handler resolved only once, before the rest of the shortstop handlers.
[implementation 1](https://github.com/krakenjs/confit/blob/59feac850a6dfb86ac524f4e14736f167ab215c1/lib/factory.js#L35-L44), [implementation 2](https://github.com/krakenjs/confit/blob/59feac850a6dfb86ac524f4e14736f167ab215c1/lib/factory.js#L61), [Issue](https://github.com/krakenjs/confit/issues/26), [Pull Request](https://github.com/krakenjs/confit/pull/35)
###### New Behavior:
>``` js
>{ "main": "import:main.json" } // config/config.json
>{ "key": "value", "otherKey": "otherValue" } // config/main.json
>{ "main": { "key": "devValue" } } // config/dev.json
>{ "main": { "key": "devValue", "otherKey": "otherValue" } } // result
>```
2. Change source priority—from highest to lowest (higher overrides lower)— to: command line arguments, environment variables, `[env].json`, `config.json`, [convenience](https://github.com/krakenjs/confit/blob/59feac850a6dfb86ac524f4e14736f167ab215c1/lib/provider.js#L57-L80) (environment normalization and `env:*` keys).
**Previously:** source priority order, from highest to lowest, was `[env].json`, `config.json`, convenience, environment variables, command line arguments.
[Implementation](https://github.com/krakenjs/confit/blob/59feac850a6dfb86ac524f4e14736f167ab215c1/lib/factory.js#L33-L46), [Pull Request](https://github.com/krakenjs/confit/pull/34)
###### New Behavior
>``` js
>// config/config.json
>{ "KEY": "fromConfig", "OTHER_KEY": "fromConfig", "THIRD_KEY": "fromConfig" }
>```
>
>``` sh
>OTHER_KEY=fromEnv THIRD_KEY=fromEnv node myApp.js --THIRD_KEY=fromArgv
>```
>
>``` js
>// result
>{ "KEY": "fromConfig", "OTHER_KEY": "fromEnv", "THIRD_KEY": "fromArgv" }
>```