Skip to content

Commit c98305c

Browse files
committed
fix: split node and browser code
1 parent 320365c commit c98305c

File tree

5 files changed

+26
-12
lines changed

5 files changed

+26
-12
lines changed

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ import { join, dirname } from 'node:path'
6767
import { fileURLToPath } from 'node:url'
6868

6969
// This will work for a local JSON file, for browser usage see examples/ directory
70-
import { Low, JSONFile } from 'lowdb'
70+
import { Low } from 'lowdb'
71+
import { JSONFile } from 'lowdb/node'
7172

7273
const __dirname = dirname(fileURLToPath(import.meta.url));
7374

@@ -168,7 +169,8 @@ Lowdb has two classes (for asynchronous and synchronous adapters).
168169
#### `new Low(adapter)`
169170
170171
```js
171-
import { Low, JSONFile } from 'lowdb'
172+
import { Low } from 'lowdb'
173+
import { JSONFile } from 'lowdb/node'
172174

173175
const db = new Low(new JSONFile('file.json'))
174176
await db.read()
@@ -178,7 +180,8 @@ await db.write()
178180
#### `new LowSync(adapterSync)`
179181
180182
```js
181-
import { LowSync, JSONFileSync } from 'lowdb'
183+
import { LowSync } from 'lowdb'
184+
import { JSONFileSync } from 'lowdb/node'
182185

183186
const db = new LowSync(new JSONFileSync('file.json'))
184187
db.read()
@@ -314,7 +317,8 @@ To create an adapter for another format than JSON, you can use `TextFile` or `Te
314317
For example:
315318
316319
```js
317-
import { Adapter, Low, TextFile } from 'lowdb'
320+
import { Adapter, Low } from 'lowdb'
321+
import { TextFile } from 'lowdb/node'
318322
import YAML from 'yaml'
319323

320324
class YAMLFile {

examples/README.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
```js
66
// cli.js
7-
import { LowSync, JSONFileSync } from 'lowdb'
7+
import { LowSync } from 'lowdb'
8+
import { JSONFileSync } from 'lowdb/node'
89

910
const title = process.argv[2]
1011
const adapter = new JSONFileSync('file.json')
@@ -27,7 +28,8 @@ $ cat file.json
2728
## Browser
2829

2930
```js
30-
import { LowSync, LocalStorage } from 'lowdb'
31+
import { LowSync } from 'lowdb'
32+
import { LocalStorage } from 'lowdb/browser'
3133

3234
const adapter = new LocalStorage('db')
3335
const db = new LowSync(adapter)
@@ -48,7 +50,8 @@ But if you need to avoid blocking requests, you can do so by using `JSONFile` ad
4850

4951
```js
5052
import express from 'express'
51-
import { Low, JSONFile } from 'lowdb'
53+
import { Low } from 'lowdb'
54+
import { JSONFile } from 'lowdb/node'
5255

5356
const app = express()
5457
app.use(express.json())
@@ -81,10 +84,13 @@ app.listen(3000, () => {
8184
With this adapter, calling `db.write()` will do nothing. One use case for this adapter can be for tests.
8285

8386
```js
84-
import { LowSync, JSONFileSync, MemorySync }
87+
import { LowSync } from 'lowdb'
88+
import { JSONFileSync, MemorySync } from 'lowdb/node'
8589

8690
const adapter =
8791
process.env.NODE_ENV === 'test' ? new MemorySync() : new FileSync('db.json')
8892

8993
const db = new LowSync(adapter)
9094
```
95+
96+
`Memory` and `MemorySync` can also be found in `lowdb/browser`.

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@
2727
"license": "MIT",
2828
"author": "Typicode <[email protected]>",
2929
"type": "module",
30-
"exports": "./lib/index.js",
30+
"exports": {
31+
".": "./lib/index.js",
32+
"./node.js": "./lib/node.js",
33+
"./browser.js": "./lib/browser.js"
34+
},
3135
"types": "lib",
3236
"files": [
3337
"lib",

src/browser.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export * from './adapters/LocalStorage.js'
2+
export * from './adapters/Memory.js'
3+
export * from './adapters/MemorySync.js'
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
export * from './adapters/JSONFile.js'
22
export * from './adapters/JSONFileSync.js'
3-
export * from './adapters/LocalStorage.js'
43
export * from './adapters/Memory.js'
54
export * from './adapters/MemorySync.js'
65
export * from './adapters/TextFile.js'
76
export * from './adapters/TextFileSync.js'
8-
export * from './Low.js'
9-
export * from './LowSync.js'

0 commit comments

Comments
 (0)