Merge pull request #49 from seald/48-eperm-root-directory-win32

Fix EPERM error when instantiating database in root directory on win32
feat/compaction-failure-event
tex0l 12 months ago committed by GitHub
commit 2229821d71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      CHANGELOG.md
  2. 4
      lib/persistence.js
  3. 4
      package-lock.json
  4. 2
      package.json

@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres and this project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Fixed
- Fixed EPERM Exception when datastore is at the root of a disk on Windows [#48](https://github.com/seald/nedb/issues/48)
## [4.0.2] - 2023-05-05 ## [4.0.2] - 2023-05-05
### Fixed ### Fixed
- Fixed typo in documentation [#36](https://github.com/seald/nedb/pull/36) - Fixed typo in documentation [#36](https://github.com/seald/nedb/pull/36)

@ -373,8 +373,12 @@ class Persistence {
* @private * @private
*/ */
static async ensureDirectoryExistsAsync (dir, mode = DEFAULT_DIR_MODE) { static async ensureDirectoryExistsAsync (dir, mode = DEFAULT_DIR_MODE) {
const parsedDir = path.parse(path.resolve(dir))
// this is because on Windows mkdir throws a permission error when called on the root directory of a volume
if (process.platform !== 'win32' || parsedDir.dir !== parsedDir.root || parsedDir.base !== '') {
await storage.mkdirAsync(dir, { recursive: true, mode }) await storage.mkdirAsync(dir, { recursive: true, mode })
} }
}
} }
// Interface // Interface

4
package-lock.json generated

@ -1,12 +1,12 @@
{ {
"name": "@seald-io/nedb", "name": "@seald-io/nedb",
"version": "4.0.2", "version": "4.0.3-1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@seald-io/nedb", "name": "@seald-io/nedb",
"version": "4.0.2", "version": "4.0.3-1",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@seald-io/binary-search-tree": "^1.0.3", "@seald-io/binary-search-tree": "^1.0.3",

@ -1,6 +1,6 @@
{ {
"name": "@seald-io/nedb", "name": "@seald-io/nedb",
"version": "4.0.2", "version": "4.0.3-1",
"files": [ "files": [
"lib/**/*.js", "lib/**/*.js",
"browser-version/**/*.js", "browser-version/**/*.js",

Loading…
Cancel
Save