Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[deps]: Update lowdb to v7 #458

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

[deps]: Update lowdb to v7 #458

wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Feb 17, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
lowdb 1.0.0 -> 7.0.1 age adoption passing confidence

Release Notes

typicode/lowdb (lowdb)

v7.0.1

Compare Source

v7.0.0

Compare Source

🚀 Simplified syntax with db.update, new adapter for more file format, consistent presets, automatic write error retry, and a TS error fix!

What's New

  • Simplified Syntax: Introducing db.update for easier updates and writes.
  • Flexible Adapters: Added DataFile adapters for supporting various formats like YAML , JSON5, ... and adding features like encryption with minimal code.
  • Automatic Retry: Resolves write errors, especially for Windows users.

Breaking Changes

  • Node 16 Dropped: discontinued support for Node 16.
  • Consistent Naming: Renamed presets for consistency:
    • JSONPreset to JSONFilePreset
    • JSONSyncPreset to JSONFileSyncPreset.

Code Examples

If you were using the JSONPreset, please rename it

- import { JSONPreset } from 'lowdb/node'
+ import { JSONFilePreset } from 'lowdb/node'

Enjoy the simplified syntax with db.update

- db.data.posts.push(newPost)
- await db.write()
+ await db.update(({ posts }) => posts.push(newPost))

Easily support other formats:

const yamlAdapter = new DataFile('db.yaml', {
  parse: YAML.parse,
  stringify: YAML.stringify
})
const db = new Low(yamlAdapter, { posts: [] })

Sponsors

Special thanks to lowdb's current sponsor: Mockend.

Your support is essential, you can sponsor this project on GitHub Sponsors ❤️

v6.1.1

Compare Source

  • Fix JSONPreset and JSONSyncPreset

v6.1.0

Compare Source

New presets

Before

import { Low } from 'lowdb'
import { JSONFile } from 'lowdb/node'

const adapter = new JSONFile(file)
const defaultData = { posts: [] }
const db = new Low(adapter, defaultData)

await db.read()

Now

import { JSONPreset } from 'lowdb/node'

const defaultData = { posts: [] }
const db = await JSONPreset('db.json', defaultData)

This will also use the Memory adapter automatically when NODE_ENV=test making tests faster.

TypeScript

Lowdb now supports the broader fs.PathLike type which lets you use URL type in addition to string. This is useful for ESM.

// Read from 'db.json' relatively to the current module path using URL
JSONPreset(new URL('db.json', import.meta.url), defaultData)

v6.0.1

Compare Source

What's Changed

New Contributors

Full Changelog: typicode/lowdb@v6.0.0...v6.0.1

v6.0.0

Compare Source

What's Changed

  • Drop Node 14 support
  • Require defaultData parameter for Low and LowSync constructors to improve TypeScript experience
  • Move examples from Markdown to real TypeScript files

How to upgrade:

// v5
const defaultData = { posts: [] }
const db = new Low(adapter)
db.data ||= defaultData

function add() {
  db.data.posts.push('title') // TS error
}
// v6
const defaultData = { posts: [] }
const db = new Low(adapter, defaultData)

function add() {
  db.data.posts.push('title') // No TS error
}

If you like lowdb, please sponsor my work. If you cannot, a star or tweet is always appreciated.
Thank you!

v5.1.0

Compare Source

What's Changed

New Contributors

Full Changelog: typicode/lowdb@v5.0.4...v5.1.0

v5.0.5

Compare Source

v5.0.3

Compare Source

v5.0.2

Compare Source

v5.0.1

Compare Source

v5.0.0

Compare Source

Better support for front-end tools like Vite, CodeSandbox, ...

To achieve this, Node and Browser (localStorage) adapters are now split in two.
Besides that, there are no other breaking changes.

Node

// Before
import { Low, JSONFile } from 'lowdb'

// After
import { Low } from 'lowdb'
import { JSONFile } from 'lowdb/node'

lowdb/node exports JSONFile, JSONFileSync, TextFile and TextFileSync.

Browser

// Before
import { LowSync, LocalStorage } from 'lowdb'

// After
import { LowSync } from 'lowdb'
import { LocalStorage } from 'lowdb/browser'

lowdb/browser exports LocalStorage.

v4.0.1

Compare Source

v4.0.0

Compare Source

  • Drop Node 12 support
  • Update dependencies

v3.0.0

Compare Source

  • Switch license from "Sponsors and OSS Only" to MIT
  • Use native # instead of TypeScript private keyword for adapters
  • Update dependencies
  • No breaking change in terms of code

Many thanks to Mockend and everyone on GitHub Sponsors for supporting this project ❤️ 🦉

v2.1.0

Compare Source

  • Add TextFile and TextFileSync adapters to simplify writing to different formats (YAML, XML, ...) and make encryption easier.

v2.0.3

Compare Source

v2.0.2

Compare Source

v2.0.1

Compare Source

v2.0.0

Compare Source

  • Out of the box and improved TypeScript support.
  • Uses new steno version for fast async file writes.
  • Uses ECMAScript modules.
  • Plain JS can now be used to modify and query db.data
  • Reduced install size.
  • With native JavaScript improvements, lodash is now optional (you can still use it though as it provides powerful utilities).

To help with OSS funding, lowdb v2 is released under Parity license for a limited time. It'll be released under MIT license once the goal of 100 sponsors is reached (currently at 55) or in five months. See README for complete explanation.

You can sponsor me on GitHub Sponsors.

Thank you!

Migrate

Lowdb v1
const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')

const adapter = new FileSync('db.json')
const db = low(adapter)

// Set some defaults
db.defaults({ posts: [], user: {} })
  .write()

// Add a post
db.get('posts')
  .push({ id: 1, title: 'lowdb is awesome'})
  .write()

// Set a user name using Lodash shorthand syntax
db.set('user.name', 'typicode')
  .write()
Lowdb v2
import { Low, FileSync } from 'lowdb'

const adapter = new FileSync('db.json')
const db = new Low(adapter)

// Set some defaults
db.data ||= { posts: [], user: {} })
db.write()

// Add a post
db.data
  .posts
  .push({ id: 1, title: 'lowdb is awesome'})
db.write()

// Set a user name using plain JS
db.data.user.name = 'typicode'
db.write()

If you're using TypeScript, data can now be typed:

type Post = {
  id: number
  title: string
}

type Data = {
  posts: Post[]
}

const db = new Low<Data>(adapter)

To continue using lodash with lowdb:

npm install lodash
import lodash from 'lodash'

// Set a user name using Lodash shorthand syntax
db.chain = lodash.chain(db.data)
db.chain
  .set('user.name', 'typicode')
  .value()
db.write()

Breaking changes

The following methods and properties have been removed:

  • db.getState (use db.data instead)
  • db.setState (use db.data = ... instead)
  • db._

Configuration

📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested a review from a team as a code owner February 17, 2024 01:14
@renovate renovate bot requested a review from r-tome February 17, 2024 01:14
@bitwarden-bot bitwarden-bot changed the title [deps]: Update lowdb to v7 [AC-2225] [deps]: Update lowdb to v7 Feb 17, 2024
@bitwarden-bot
Copy link

Internal tracking:

@bitwarden-bot
Copy link

bitwarden-bot commented Feb 17, 2024

Logo
Checkmarx One – Scan Summary & Details5ccb43f0-f81d-4a00-b856-385e9188c4f0

No New Or Fixed Issues Found

@renovate renovate bot changed the title [AC-2225] [deps]: Update lowdb to v7 [deps]: Update lowdb to v7 Feb 17, 2024
@renovate renovate bot force-pushed the renovate/lowdb-7.x branch 2 times, most recently from 600635d to 283d4fd Compare March 6, 2024 13:04
@renovate renovate bot force-pushed the renovate/lowdb-7.x branch 4 times, most recently from e0dcbc4 to 4610e16 Compare March 18, 2024 17:39
@renovate renovate bot force-pushed the renovate/lowdb-7.x branch 2 times, most recently from e16f2c3 to acaaca8 Compare March 25, 2024 14:19
@renovate renovate bot force-pushed the renovate/lowdb-7.x branch 2 times, most recently from e44d791 to 319faf5 Compare March 27, 2024 17:10
@renovate renovate bot force-pushed the renovate/lowdb-7.x branch 3 times, most recently from 93fbbac to 570bbb0 Compare April 29, 2024 14:01
@renovate renovate bot force-pushed the renovate/lowdb-7.x branch 3 times, most recently from 37289e6 to c7f768b Compare May 13, 2024 13:27
@renovate renovate bot force-pushed the renovate/lowdb-7.x branch 2 times, most recently from e8afdc7 to b862986 Compare May 21, 2024 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant