This is an automated email from the ASF dual-hosted git repository. glynnbird pushed a commit to branch esm in repository https://gitbox.apache.org/repos/asf/couchdb-nano.git
commit 8660583d871e1f97ff775286e7bf291c6f09b061 Author: Glynn Bird <[email protected]> AuthorDate: Wed Sep 10 11:04:40 2025 +0100 make the library ESM-only. Exchange all "require"s for "import"s. --- README.md | 110 ++++++++++++++++-------------- lib/changesreader.js | 11 ++- lib/cookie.js | 4 +- lib/multipart.js | 3 +- lib/nano.js | 22 +++--- package-lock.json | 4 +- package.json | 3 +- test/attachment.destroy.test.js | 8 +-- test/attachment.get.test.js | 8 +-- test/attachment.getAsStream.test.js | 8 +-- test/attachment.insert.test.js | 11 +-- test/cookie.test.js | 7 +- test/database.changes.test.js | 8 +-- test/database.changesAsStream.test.js | 8 +-- test/database.compact.test.js | 8 +-- test/database.create.test.js | 8 +-- test/database.destroy.test.js | 8 +-- test/database.get.test.js | 9 ++- test/database.list.test.js | 8 +-- test/database.listAsStream.test.js | 8 +-- test/database.replicate.test.js | 9 ++- test/database.replication.disable.test.js | 9 ++- test/database.replication.enable.test.js | 9 ++- test/database.replication.query.test.js | 8 +-- test/design.atomic.test.js | 8 +-- test/design.createIndex.test.js | 8 +-- test/design.find.test.js | 8 +-- test/design.findAsStream.test.js | 8 +-- test/design.search.test.js | 8 +-- test/design.searchAsStream.test.js | 8 +-- test/design.show.test.js | 8 +-- test/design.view.test.js | 8 +-- test/design.viewAsStream.test.js | 8 +-- test/design.viewWithList.test.js | 8 +-- test/design.viewWithListAsStream.test.js | 8 +-- test/document.bulk.test.js | 8 +-- test/document.changesreader.test.js | 11 ++- test/document.destroy.test.js | 8 +-- test/document.fetch.test.js | 8 +-- test/document.fetchRevs.test.js | 8 +-- test/document.get.test.js | 8 +-- test/document.head.test.js | 8 +-- test/document.insert.test.js | 8 +-- test/document.list.test.js | 8 +-- test/document.listAsStream.test.js | 8 +-- test/mock.js | 21 +++--- test/multipart.get.test.js | 8 +-- test/multipart.insert.test.js | 8 +-- test/multipart.test.js | 6 +- test/nano.agent.test.js | 10 +-- test/nano.auth.test.js | 8 +-- test/nano.config.test.js | 6 +- test/nano.customheaders.test.js | 8 +-- test/nano.info.test.js | 8 +-- test/nano.logger.test.js | 8 +-- test/nano.request.test.js | 8 +-- test/nano.session.test.js | 8 +-- test/nano.updates.test.js | 8 +-- test/nano.use.test.js | 6 +- test/nano.uuids.test.js | 8 +-- test/notnocked.test.js | 6 +- test/partition.find.test.js | 8 +-- test/partition.findAsStream.test.js | 8 +-- test/partition.info.test.js | 8 +-- test/partition.list.test.js | 8 +-- test/partition.listAsStream.test.js | 8 +-- test/partition.search.test.js | 8 +-- test/partition.searchAsStream.test.js | 8 +-- test/partition.view.test.js | 8 +-- test/partition.viewAsStream.test.js | 8 +-- 70 files changed, 336 insertions(+), 341 deletions(-) diff --git a/README.md b/README.md index 2439615..365f370 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Offical [Apache CouchDB](https://couchdb.apache.org/) library for [Node.js](http > Note: Nano >=11.0.0 is a **breaking change for Node.js versions 16 and > older**. Nano 11 uses Node.js's built-in "fetch" HTTP client but this is > only available in Node.js versions 18 or later. If you are using Node 16 or > older then continue using Nano 10. > See our [migration guide](migration_guide_v10_to_v11.md) for moving from > Nano 10 to Nano 11. +> Note: Nano >=12.0.0 is ESM-only, meaning that the `import` syntax is used to load the module instead of `require`. + Features: * **Minimalistic** - There is only a minimum of abstraction between you and @@ -26,7 +28,7 @@ or save `nano` as a dependency of your project with npm install --save nano -Note the minimum required version of Node.js is 10. +Note the minimum required version of Node.js is 20. ## Table of contents @@ -108,7 +110,8 @@ Note the minimum required version of Node.js is 10. To use `nano` you need to connect it to your CouchDB install, to do that: ```js -const nano = require('nano')('http://127.0.0.1:5984'); +import Nano from 'nano' +const nano = Nano('http://127.0.0.1:5984') ``` > Note: Supplying authentication credentials in the URL e.g. > `http://admin:mypassword@localhost:5984` is deprecated. Use `nano.auth` > instead. @@ -116,13 +119,13 @@ const nano = require('nano')('http://127.0.0.1:5984'); To create a new database: ```js -nano.db.create('alice'); +nano.db.create('alice') ``` and to use an existing database: ```js -const alice = nano.db.use('alice'); +const alice = nano.db.use('alice') ``` Under-the-hood, calls like `nano.db.create` are making HTTP API calls to the CouchDB service. Such operations are *asynchronous*. There are two ways to receive the asynchronous data back from the library @@ -184,15 +187,16 @@ You can also see your document in futon (http://127.0.0.1:5984/_utils). Configuring nano to use your database server is as simple as: ```js -const nano = require('nano')('http://127.0.0.1:5984') -const db = nano.use('foo'); +import Nano from 'nano' +const nano = Nano('http://127.0.0.1:5984') +const db = nano.use('foo') ``` If you don't need to instrument database objects you can simply: ```js // nano parses the URL and knows this is a database -const db = require('nano')('http://127.0.0.1:5984/foo'); +const db = Nano('http://127.0.0.1:5984/foo') ``` You can tell nano to not parse the URL (maybe the server is behind a proxy, is accessed through a rewrite rule or other): @@ -200,12 +204,12 @@ You can tell nano to not parse the URL (maybe the server is behind a proxy, is a ```js // nano does not parse the URL and return the server api // "http://127.0.0.1:5984/prefix" is the CouchDB server root -const couch = require('nano')( +const couch = Nano( { url : "http://127.0.0.1:5984/prefix" parseUrl : false - }); -const db = couch.use('foo'); + }) +const db = couch.use('foo') ``` ### Pool size and open sockets @@ -213,6 +217,8 @@ const db = couch.use('foo'); To specify the number of connections, timeouts and pool size, supply an `agentOptions` object when starting up Nano. ```js +import Nano from 'nano' +import undici from 'undici' const agentOptions = { bodyTimeout: 30000, headersTimeout: 30000, @@ -229,7 +235,6 @@ const agentOptions = { connections: null, maxRedirections: 0 } -const undici = require('undici') const undiciOptions = new undici.Agent(agentOptions) const nano = Nano({ url: 'http://127.0.0.1:5984', undiciOptions }) ``` @@ -251,13 +256,13 @@ To supply customer headers with each request, supply a headers object when start ```js -const couch = require('nano')( +const couch = Nano( { url : "http://127.0.0.1:5984/prefix" headers: { mycustomheader: '42' } - }); + }) ``` ## TypeScript @@ -344,7 +349,7 @@ Lists all the CouchDB databases as a stream: ```js nano.db.listAsStream() .on('error', (e) => console.error('error', e)) - .pipe(process.stdout); + .pipe(process.stdout) ``` ### nano.db.compact(name, [designname]) @@ -396,7 +401,7 @@ by the call to `replication.enable`: const r = await nano.db.replication.enable('alice', 'http://admin:[email protected]:5984/alice', { create_target:true }) -await nano.db.replication.disable(r.id); +await nano.db.replication.disable(r.id) ``` ### nano.db.changes(name, [params]) @@ -413,7 +418,7 @@ const c = await nano.db.changes('alice') Same as `nano.db.changes` but returns a stream. ```js -nano.db.changes('alice').pipe(process.stdout); +nano.db.changes('alice').pipe(process.stdout) ``` ### nano.db.info() @@ -429,7 +434,7 @@ const info = await nano.db.info() Returns a database object that allows you to perform operations against that database: ```js -const alice = nano.use('alice'); +const alice = nano.use('alice') await alice.insert({ happy: true }, 'rabbit') ``` @@ -505,7 +510,7 @@ The response is an object with [CouchDB cluster information](https://docs.couchd Inserts `doc` in the database with optional `params`. If params is a string, it's assumed it is the intended document `_id`. If params is an object, it's passed as query string parameters and `docName` is checked for defining the document `_id`: ```js -const alice = nano.use('alice'); +const alice = nano.use('alice') const response = await alice.insert({ happy: true }, 'rabbit') ``` @@ -570,7 +575,7 @@ Bulk operations(update/delete/insert) on the database, refer to the const documents = [ { a:1, b:2 }, { _id: 'tiger', striped: true} -]; +] const response = await alice.bulk({ docs: documents }) ``` @@ -581,9 +586,9 @@ List all the docs in the database . ```js const doclist = await alice.list().then((body)=>{ body.rows.forEach((doc) => { - console.log(doc); + console.log(doc) }) -}); +}) ``` or with optional query string additions `params`: @@ -610,7 +615,7 @@ additional query string `params` can be specified, `include_docs` is always set to `true`. ```js -const keys = ['tiger', 'zebra', 'donkey']; +const keys = ['tiger', 'zebra', 'donkey'] const datat = await alice.fetch({keys: keys}) ``` @@ -632,7 +637,7 @@ Create index on database fields, as specified in const indexDef = { index: { fields: ['foo'] }, name: 'fooindex' -}; +} const response = await alice.createIndex(indexDef) ``` @@ -656,11 +661,11 @@ const db = nano.db.use('mydb') db.changesReader.start() .on('change', (change) => { console.log(change) }) .on('batch', (b) => { - console.log('a batch of', b.length, 'changes has arrived'); + console.log('a batch of', b.length, 'changes has arrived') }).on('seq', (s) => { - console.log('sequence token', s); + console.log('sequence token', s) }).on('error', (e) => { - console.error('error', e); + console.error('error', e) }) ``` @@ -671,7 +676,7 @@ If you want `changesReader` to hold off making the next `_changes` API call unti ```js db.changesReader.get({wait: true}) .on('batch', (b) => { - console.log('a batch of', b.length, 'changes has arrived'); + console.log('a batch of', b.length, 'changes has arrived') // do some asynchronous work here and call "changesReader.resume()" // when you're ready for the next API call to be dispatched. // In this case, wait 5s before the next changes feed request. @@ -679,8 +684,8 @@ db.changesReader.get({wait: true}) db.changesReader.resume() }, 5000) }).on('end', () => { - console.log('changes feed monitoring has stopped'); - }); + console.log('changes feed monitoring has stopped') + }) ``` You may supply a number of options when you start to listen to the changes feed: @@ -947,13 +952,13 @@ Inserts a `doc` together with `attachments` and `params`. If params is a string, The `attachments` parameter must be an array of objects with `name`, `data` and `content_type` properties. ```js -const fs = require('fs'); +import fs from 'node:fs' fs.readFile('rabbit.png', (err, data) => { if (!err) { await alice.multipart.insert({ foo: 'bar' }, [{name: 'rabbit.png', data: data, content_type: 'image/png'}], 'mydoc') } -}); +}) ``` ### db.multipart.get(docname, [params]) @@ -973,7 +978,7 @@ Inserts an attachment `attname` to `docname`, in most cases [CouchDB doc](https://docs.couchdb.org/en/latest/api/document/attachments.html#db-doc-attachment) for more details. ```js -const fs = require('fs'); +import fs from 'node:fs' fs.readFile('rabbit.png', (err, data) => { if (!err) { @@ -983,7 +988,7 @@ fs.readFile('rabbit.png', (err, data) => { 'image/png', { rev: '12-150985a725ec88be471921a54ce91452' }) } -}); +}) ``` ### db.attachment.insertAsStream(docname, attname, att, contenttype, [params]) @@ -997,7 +1002,7 @@ Get `docname`'s attachment `attname` with optional query string additions `params`. ```js -const fs = require('fs'); +import fs from 'node:fs' const body = await alice.attachment.get('rabbit', 'rabbit.png') fs.writeFile('rabbit.png', body) @@ -1006,10 +1011,10 @@ fs.writeFile('rabbit.png', body) ### db.attachment.getAsStream(docname, attname, [params]) ```js -const fs = require('fs'); +import fs from 'node:fs' alice.attachment.getAsStream('rabbit', 'rabbit.png') .on('error', e => console.error) - .pipe(fs.createWriteStream('rabbit.png')); + .pipe(fs.createWriteStream('rabbit.png')) ``` ### db.attachment.destroy(docname, attname, [params]) @@ -1059,7 +1064,7 @@ Same as `db.view` but returns a stream: ```js alice.viewAsStream('characters', 'happy_ones', {reduce: false}) .on('error', (e) => console.error('error', e)) - .pipe(process.stdout); + .pipe(process.stdout) ``` ### db.viewWithList(designname, viewname, listname, [params]) @@ -1077,7 +1082,7 @@ Calls a list function fed by the given view from the specified design document a ```js alice.viewWithListAsStream('characters', 'happy_ones', 'my_list') .on('error', (e) => console.error('error', e)) - .pipe(process.stdout); + .pipe(process.stdout) ``` ### db.show(designname, showname, doc_id, [params]) @@ -1138,7 +1143,7 @@ Check out the tests for a fully functioning example. Calls a view of the specified design with optional query string additions `params`. Returns stream. ```js -alice.search('characters', 'happy_ones', { q: 'cat' }).pipe(process.stdout); +alice.search('characters', 'happy_ones', { q: 'cat' }).pipe(process.stdout) ``` ### db.find(selector) @@ -1154,7 +1159,7 @@ const q = { }, fields: [ "name", "age", "tags", "url" ], limit:50 -}; +} const response = await alice.find(q) ``` @@ -1171,10 +1176,10 @@ const q = { }, fields: [ "name", "age", "tags", "url" ], limit:50 -}; +} alice.findAsStream(q) .on('error', (e) => console.error('error', e)) - .pipe(process.stdout); + .pipe(process.stdout) ``` ## using cookie authentication @@ -1182,7 +1187,8 @@ alice.findAsStream(q) Nano supports making requests using CouchDB's [cookie authentication](http://guide.couchdb.org/editions/1/en/security.html#cookies) functionality. If you initialise *Nano* so that it is cookie-aware, you may call `nano.auth` first to get a session cookie. Nano will behave like a web browser, remembering your session cookie and refreshing it if a new one is received in a future HTTP response. ```js -const nano = require('nano')({ +import Nano from 'nano' +const nano = Nano({ url: 'http://127.0.0.1:5984' }) const username = 'user' @@ -1237,12 +1243,12 @@ function getrabbitrev(rev) { doc: 'rabbit', method: 'get', params: { rev: rev } - }); + }) } getrabbitrev('4-2e6cdc4c7e26b745c2881a24e0eeece2').then((body) => { - console.log(body); -}); + console.log(body) +}) ``` ### Pipes @@ -1250,12 +1256,13 @@ getrabbitrev('4-2e6cdc4c7e26b745c2881a24e0eeece2').then((body) => { You can pipe the return values of certain nano functions like other stream. For example if our `rabbit` document has an attachment with name `picture.png` you can pipe it to a `writable stream`: ```js -const fs = require('fs'); -const nano = require('nano')('http://127.0.0.1:5984/'); -const alice = nano.use('alice'); +import fs from 'node:fs' +import Nano from 'nano' +const nano = Nano('http://127.0.0.1:5984/') +const alice = nano.use('alice') alice.attachment.getAsStream('rabbit', 'picture.png') .on('error', (e) => console.error('error', e)) - .pipe(fs.createWriteStream('/tmp/rabbit.png')); + .pipe(fs.createWriteStream('/tmp/rabbit.png')) ``` then open `/tmp/rabbit.png` and you will see the rabbit picture. @@ -1285,13 +1292,12 @@ const nano = Nano({ url: process.env.COUCH_URL, log: console.log }) You may supply your own logging function to format the data before output: ```js -const url = require('url') const logger = (data) => { // only output logging if there is an environment variable set if (process.env.LOG === 'nano') { // if this is a request if (typeof data.err === 'undefined') { - const u = new url.URL(data.uri) + const u = new URL(data.uri) console.log(data.method, u.pathname, data.qs) } else { // this is a response diff --git a/lib/changesreader.js b/lib/changesreader.js index 98ca422..1e3f51f 100644 --- a/lib/changesreader.js +++ b/lib/changesreader.js @@ -1,13 +1,13 @@ -const EventEmitter = require('events').EventEmitter +import EventEmitter from 'node:events' +import stream from 'node:stream' const AbortController = global.AbortController -const stream = require('stream') const EVENT_BATCH = 'batch' const EVENT_CHANGE = 'change' const EVENT_SEQ = 'seq' const EVENT_ERROR = 'error' // streaming line breaker -const liner = () => { +function liner() { const liner = new stream.Transform({ objectMode: true }) liner._transform = function (chunk, encoding, done) { @@ -33,7 +33,7 @@ const liner = () => { } // streaming change processor -const changeProcessor = (ee, batchSize) => { +function changeProcessor(ee, batchSize) { const changeProcessor = new stream.Transform({ objectMode: true }) const buffer = [] changeProcessor.lastSeq = '0' @@ -81,7 +81,7 @@ const changeProcessor = (ee, batchSize) => { * @param {String} db - Name of the database. * @param {Function} request - Nano.relax */ -class ChangesReader { +export default class ChangesReader { // constructor constructor (db, request) { this.db = db @@ -295,4 +295,3 @@ class ChangesReader { } } -module.exports = ChangesReader diff --git a/lib/cookie.js b/lib/cookie.js index d18a4ce..534f345 100644 --- a/lib/cookie.js +++ b/lib/cookie.js @@ -1,7 +1,6 @@ -const { URL } = require('url') // a simple cookie jar -class CookieJar { +export default class CookieJar { // create new empty cookie jar constructor () { this.jar = [] @@ -126,4 +125,3 @@ class CookieJar { } } -module.exports = CookieJar diff --git a/lib/multipart.js b/lib/multipart.js index cf7f946..ee4e56b 100644 --- a/lib/multipart.js +++ b/lib/multipart.js @@ -4,7 +4,7 @@ const DASHES = '--' // generate the payload, boundary and header for a multipart/related request // to upload binary attachments to CouchDB. // https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html -class MultiPartFactory { +export default class MultiPartFactory { // constructor constructor (parts) { // generate a unique id that forms the boundary between parts @@ -50,4 +50,3 @@ class MultiPartFactory { } } -module.exports = MultiPartFactory diff --git a/lib/nano.js b/lib/nano.js index c7bbda2..c1facb3 100644 --- a/lib/nano.js +++ b/lib/nano.js @@ -10,14 +10,14 @@ // License for the specific language governing permissions and limitations under // the License. -const { URL } = require('url') -const assert = require('assert') -const stream = require('stream') -const Readable = stream.Readable -const ChangesReader = require('./changesreader.js') -const CookieJar = require('./cookie.js') -const MultiPartFactory = require('./multipart.js') -const pkg = require('../package.json') +import assert from 'node:assert' +import { PassThrough, Readable } from 'node:stream' +import ChangesReader from './changesreader.js' +import CookieJar from './cookie.js' +import MultiPartFactory from './multipart.js' +import fs from 'node:fs' +import path from 'node:path' +const pkg = JSON.parse(fs.readFileSync(path.join(import.meta.dirname, '..', 'package.json'), { encoding: 'utf8' })) const SCRUBBED_STR = 'XXXXXX' @@ -34,7 +34,7 @@ function missing (...params) { // the stock error returned when a call has missing or invalid parameters const invalidParametersError = new Error('Invalid parameters') -module.exports = exports = function dbScope (cfg) { +export default function Nano (cfg) { let serverScope = {} if (typeof cfg === 'string') { @@ -396,7 +396,7 @@ module.exports = exports = function dbScope (cfg) { } // if the body is readable stream - if (fetchOptions.body && fetchOptions.body instanceof stream.Readable) { + if (fetchOptions.body && fetchOptions.body instanceof Readable) { fetchOptions.duplex = 'half' fetchOptions.keepalive = false } @@ -410,7 +410,7 @@ module.exports = exports = function dbScope (cfg) { // actually do the HTTP request if (opts.stream) { // return the Request object for streaming - const outStream = new stream.PassThrough() + const outStream = new PassThrough() fetch(fetchOptions.url, fetchOptions).then((response) => { const readableWebStream = response.body const readableNodeStream = Readable.fromWeb ? Readable.fromWeb(readableWebStream) : Readable.from(readableWebStream) diff --git a/package-lock.json b/package-lock.json index 2080ecd..88b5a29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nano", - "version": "11.0.0", + "version": "12.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nano", - "version": "11.0.0", + "version": "12.0.0", "license": "Apache-2.0", "devDependencies": { "@types/node": "^24.3.0", diff --git a/package.json b/package.json index fc0a36d..a7c17b9 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,11 @@ { "name": "nano", "description": "The official CouchDB client for Node.js", + "type": "module", "license": "Apache-2.0", "homepage": "http://github.com/apache/couchdb-nano", "repository": "http://github.com/apache/couchdb-nano", - "version": "11.0.0", + "version": "12.0.0", "author": "Apache CouchDB <[email protected]> (http://couchdb.apache.org)", "keywords": [ "couchdb", diff --git a/test/attachment.destroy.test.js b/test/attachment.destroy.test.js index bb5bbf2..6dbc9c0 100644 --- a/test/attachment.destroy.test.js +++ b/test/attachment.destroy.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to destroy an attachment - DELETE /db/id/attname - db.attachment.destroy', async () => { diff --git a/test/attachment.get.test.js b/test/attachment.get.test.js index fcb70c4..c2e1ed8 100644 --- a/test/attachment.get.test.js +++ b/test/attachment.get.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const image = Buffer.from('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7', 'base64') diff --git a/test/attachment.getAsStream.test.js b/test/attachment.getAsStream.test.js index 35909b8..f623485 100644 --- a/test/attachment.getAsStream.test.js +++ b/test/attachment.getAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const image = Buffer.from('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7', 'base64') diff --git a/test/attachment.insert.test.js b/test/attachment.insert.test.js index af9c9ec..4de7aef 100644 --- a/test/attachment.insert.test.js +++ b/test/attachment.insert.test.js @@ -10,12 +10,13 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import fs from 'node:fs' +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' + const nano = Nano(COUCH_URL) -const fs = require('fs') const image = Buffer.from('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7', 'base64') test('should be able to insert document attachment - PUT /db/docname/attachment - db.attachment.insert', async () => { diff --git a/test/cookie.test.js b/test/cookie.test.js index 32ba062..8a9fd0f 100644 --- a/test/cookie.test.js +++ b/test/cookie.test.js @@ -10,10 +10,9 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') - -const CookieJar = require('../lib/cookie.js') +import test from 'node:test' +import assert from 'node:assert/strict' +import CookieJar from '../lib/cookie.js' test('should parse cookies correctly', () => { const cj = new CookieJar() diff --git a/test/database.changes.test.js b/test/database.changes.test.js index 44506b8..ea74f57 100644 --- a/test/database.changes.test.js +++ b/test/database.changes.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { diff --git a/test/database.changesAsStream.test.js b/test/database.changesAsStream.test.js index 149f3af..ae965df 100644 --- a/test/database.changesAsStream.test.js +++ b/test/database.changesAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { results: [ diff --git a/test/database.compact.test.js b/test/database.compact.test.js index 38c7a8f..61663b8 100644 --- a/test/database.compact.test.js +++ b/test/database.compact.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { ok: true } diff --git a/test/database.create.test.js b/test/database.create.test.js index fef1795..d4c5b86 100644 --- a/test/database.create.test.js +++ b/test/database.create.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { ok: true } diff --git a/test/database.destroy.test.js b/test/database.destroy.test.js index 835d057..403c553 100644 --- a/test/database.destroy.test.js +++ b/test/database.destroy.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { ok: true } diff --git a/test/database.get.test.js b/test/database.get.test.js index 290834e..88f031a 100644 --- a/test/database.get.test.js +++ b/test/database.get.test.js @@ -10,11 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') - -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { db_name: 'db', diff --git a/test/database.list.test.js b/test/database.list.test.js index 6c670da..fb54c4b 100644 --- a/test/database.list.test.js +++ b/test/database.list.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = ['rita', 'sue', 'bob'] diff --git a/test/database.listAsStream.test.js b/test/database.listAsStream.test.js index f8525d5..c83150f 100644 --- a/test/database.listAsStream.test.js +++ b/test/database.listAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = ['rita', 'sue', 'bob'] diff --git a/test/database.replicate.test.js b/test/database.replicate.test.js index 14d332b..d287df6 100644 --- a/test/database.replicate.test.js +++ b/test/database.replicate.test.js @@ -10,11 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') - -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { history: [], diff --git a/test/database.replication.disable.test.js b/test/database.replication.disable.test.js index 04e1f9b..ca88df9 100644 --- a/test/database.replication.disable.test.js +++ b/test/database.replication.disable.test.js @@ -10,11 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') - -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { ok: true, id: 'rep1', rev: '2-123' } const errResponse = { diff --git a/test/database.replication.enable.test.js b/test/database.replication.enable.test.js index 38b64bc..f7f6c27 100644 --- a/test/database.replication.enable.test.js +++ b/test/database.replication.enable.test.js @@ -10,11 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') - -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { ok: true, id: 'abc', rev: '1-123' } diff --git a/test/database.replication.query.test.js b/test/database.replication.query.test.js index e15d016..d84150c 100644 --- a/test/database.replication.query.test.js +++ b/test/database.replication.query.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { _id: 'rep1', diff --git a/test/design.atomic.test.js b/test/design.atomic.test.js index a471b7b..f29ffbe 100644 --- a/test/design.atomic.test.js +++ b/test/design.atomic.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to use an update function - PUT /db/_design/ddoc/_update/updatename/docid - db.atomic', async () => { diff --git a/test/design.createIndex.test.js b/test/design.createIndex.test.js index 4802863..ba9dd21 100644 --- a/test/design.createIndex.test.js +++ b/test/design.createIndex.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to create an index - POST /db/_index - db.createIndex', async () => { diff --git a/test/design.find.test.js b/test/design.find.test.js index 0789582..563ea37 100644 --- a/test/design.find.test.js +++ b/test/design.find.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to query an index - POST /db/_find - db.find', async () => { diff --git a/test/design.findAsStream.test.js b/test/design.findAsStream.test.js index 3a317ce..406a091 100644 --- a/test/design.findAsStream.test.js +++ b/test/design.findAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to query an index as a stream- POST /db/_find - db.findAsStream', async () => { diff --git a/test/design.search.test.js b/test/design.search.test.js index ac02f85..443241d 100644 --- a/test/design.search.test.js +++ b/test/design.search.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a search index - POST /db/_design/ddoc/_search/searchname - db.search', async () => { diff --git a/test/design.searchAsStream.test.js b/test/design.searchAsStream.test.js index 0d1348f..4df4433 100644 --- a/test/design.searchAsStream.test.js +++ b/test/design.searchAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a search index as a stream - POST /db/_design/ddoc/_search/searchname - db.searchAsStream', async () => { diff --git a/test/design.show.test.js b/test/design.show.test.js index 90d6847..2336825 100644 --- a/test/design.show.test.js +++ b/test/design.show.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to use a show function - GET /db/_design/ddoc/_show/showname/docid - db.show', async () => { diff --git a/test/design.view.test.js b/test/design.view.test.js index a36f24a..4dd347c 100644 --- a/test/design.view.test.js +++ b/test/design.view.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a MapReduce view - GET /db/_design/ddoc/_view/viewname - db.view', async () => { diff --git a/test/design.viewAsStream.test.js b/test/design.viewAsStream.test.js index 44ac2aa..af25ac5 100644 --- a/test/design.viewAsStream.test.js +++ b/test/design.viewAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a MapReduce view as a stream - GET /db/_design/ddoc/_view/viewname - db.viewAsStream', async () => { diff --git a/test/design.viewWithList.test.js b/test/design.viewWithList.test.js index 07d48bc..9847ea0 100644 --- a/test/design.viewWithList.test.js +++ b/test/design.viewWithList.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a MapReduce view with a list - GET /db/_design/ddoc/_list/listname/viewname - db.viewWithList', async () => { diff --git a/test/design.viewWithListAsStream.test.js b/test/design.viewWithListAsStream.test.js index 053b739..94b6ae3 100644 --- a/test/design.viewWithListAsStream.test.js +++ b/test/design.viewWithListAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a MapReduce view with a list as a stream - GET /db/_design/ddoc/_list/listname/viewname - db.viewWithListAsStream', async () => { diff --git a/test/document.bulk.test.js b/test/document.bulk.test.js index 237b395..217a693 100644 --- a/test/document.bulk.test.js +++ b/test/document.bulk.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to insert documents in bulk - POST /db/_bulk_docs - db.bulk', async () => { diff --git a/test/document.changesreader.test.js b/test/document.changesreader.test.js index f22a947..d454a8a 100644 --- a/test/document.changesreader.test.js +++ b/test/document.changesreader.test.js @@ -10,10 +10,11 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import fs from 'node:fs' +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const DBNAME = 'db' @@ -206,7 +207,6 @@ test('should keep polling the changes feed (wait: true) - db.changesReader.start }) test('spooling changes - db.changesReader.spool', async () => { - const fs = require('fs') const reply = fs.readFileSync('./test/changes.json') const replyObj = JSON.parse(reply) mockPool @@ -229,7 +229,6 @@ test('spooling changes - db.changesReader.spool', async () => { }) test('spooling changes - numeric seq - db.changesReader.spool', async () => { - const fs = require('fs') const reply = fs.readFileSync('./test/changes_numeric.json') const replyObj = JSON.parse(reply) mockPool diff --git a/test/document.destroy.test.js b/test/document.destroy.test.js index 82f2d3f..d3c7d15 100644 --- a/test/document.destroy.test.js +++ b/test/document.destroy.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to destroy a document - DELETE /db/id - db.destroy', async () => { diff --git a/test/document.fetch.test.js b/test/document.fetch.test.js index 97df61f..d2ddfee 100644 --- a/test/document.fetch.test.js +++ b/test/document.fetch.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano({ url: COUCH_URL }) test('should be able to fetch a list of documents - POST /db/_all_docs - db.fetch', async () => { diff --git a/test/document.fetchRevs.test.js b/test/document.fetchRevs.test.js index 5d5771d..abd8b2e 100644 --- a/test/document.fetchRevs.test.js +++ b/test/document.fetchRevs.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to fetch a list of document revisions - POST /db/_all_docs - db.fetchRevs', async () => { diff --git a/test/document.get.test.js b/test/document.get.test.js index 1babced..6f87aa8 100644 --- a/test/document.get.test.js +++ b/test/document.get.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to get a document - GET /db/id - db.get', async () => { diff --git a/test/document.head.test.js b/test/document.head.test.js index 70941ce..595055c 100644 --- a/test/document.head.test.js +++ b/test/document.head.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to head a document - HEAD /db/id - db.head', async () => { diff --git a/test/document.insert.test.js b/test/document.insert.test.js index 6895a2f..d6a7a61 100644 --- a/test/document.insert.test.js +++ b/test/document.insert.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to insert document - POST /db - db.insert', async () => { diff --git a/test/document.list.test.js b/test/document.list.test.js index 175d460..04bbb2a 100644 --- a/test/document.list.test.js +++ b/test/document.list.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to get a list of documents - GET /db/_all_docs - db.list', async () => { diff --git a/test/document.listAsStream.test.js b/test/document.listAsStream.test.js index e3590f6..45cf647 100644 --- a/test/document.listAsStream.test.js +++ b/test/document.listAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should get a streamed list of documents - GET /db/_all_docs - db.listAsStream', async () => { diff --git a/test/mock.js b/test/mock.js index d793f95..3ef4e2c 100644 --- a/test/mock.js +++ b/test/mock.js @@ -1,14 +1,11 @@ -const COUCH_URL = 'http://127.0.0.1:5984' -const JSON_HEADERS = { headers: { 'content-type': 'application/json' } } -const { MockAgent, setGlobalDispatcher } = require('undici') -const mockAgent = new MockAgent() +import { MockAgent, setGlobalDispatcher } from 'undici' + +export const mockAgent = new MockAgent() mockAgent.disableNetConnect() -const mockPool = mockAgent.get(COUCH_URL) -setGlobalDispatcher(mockAgent) -module.exports = { - COUCH_URL, - JSON_HEADERS, - mockAgent, - mockPool -} + + +export const COUCH_URL = 'http://127.0.0.1:5984' +export const JSON_HEADERS = { headers: { 'content-type': 'application/json' } } +export const mockPool = mockAgent.get(COUCH_URL) +setGlobalDispatcher(mockAgent) diff --git a/test/multipart.get.test.js b/test/multipart.get.test.js index 5b6056a..31f0183 100644 --- a/test/multipart.get.test.js +++ b/test/multipart.get.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const multipartResponse = ''.concat( diff --git a/test/multipart.insert.test.js b/test/multipart.insert.test.js index 38dce82..26777d5 100644 --- a/test/multipart.insert.test.js +++ b/test/multipart.insert.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const image1 = Buffer.from(''.concat( 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAsV', diff --git a/test/multipart.test.js b/test/multipart.test.js index 32d0870..a670603 100644 --- a/test/multipart.test.js +++ b/test/multipart.test.js @@ -1,6 +1,6 @@ -const test = require('node:test') -const assert = require('node:assert/strict') -const MultiPartFactory = require('../lib/multipart.js') +import test from 'node:test' +import assert from 'node:assert/strict' +import MultiPartFactory from '../lib/multipart.js' const textAttachment = { name: 'test.txt', data: 'Hello\r\nWorld!', content_type: 'text/plain' } const anotherTextAttachment = { name: 'test2.txt', data: 'the quick brown fox', content_type: 'text/plain' } diff --git a/test/nano.agent.test.js b/test/nano.agent.test.js index a124b0d..29eb543 100644 --- a/test/nano.agent.test.js +++ b/test/nano.agent.test.js @@ -1,8 +1,8 @@ -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent } = require('./mock.js') -const Nano = require('../lib/nano') -const undici = require('undici') +import undici from 'undici' +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent } from './mock.js' +import Nano from '../lib/nano.js' test('should be able to supply a custom agent parameters', async () => { const agentOptions = { diff --git a/test/nano.auth.test.js b/test/nano.auth.test.js index 2e5cd3b..f11a8e7 100644 --- a/test/nano.auth.test.js +++ b/test/nano.auth.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano({ url: COUCH_URL }) test('should be able to authenticate - POST /_session - nano.auth', async () => { diff --git a/test/nano.config.test.js b/test/nano.config.test.js index 3209dd7..0dbb929 100644 --- a/test/nano.config.test.js +++ b/test/nano.config.test.js @@ -10,9 +10,9 @@ // License for the specific language governing permissions and limitations under // the License. -const Nano = require('..') -const test = require('node:test') -const assert = require('node:assert/strict') +import test from 'node:test' +import assert from 'node:assert/strict' +import Nano from '../lib/nano.js' test('should be able to supply HTTP url - nano.config', () => { const HTTP_URL = 'http://127.0.0.1:5984' diff --git a/test/nano.customheaders.test.js b/test/nano.customheaders.test.js index 38131f8..c307942 100644 --- a/test/nano.customheaders.test.js +++ b/test/nano.customheaders.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const CUSTOM_HEADER = 'thequickbrownfox' const nano = Nano({ url: COUCH_URL, diff --git a/test/nano.info.test.js b/test/nano.info.test.js index 1e97dff..cedfb58 100644 --- a/test/nano.info.test.js +++ b/test/nano.info.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('../lib/nano') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to get info - GET / - nano.info', async () => { diff --git a/test/nano.logger.test.js b/test/nano.logger.test.js index 1db53c7..8a37678 100644 --- a/test/nano.logger.test.js +++ b/test/nano.logger.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' test('should be able to log output with user-defined function', async () => { // setup Nano with custom logger diff --git a/test/nano.request.test.js b/test/nano.request.test.js index 02954a6..3f30388 100644 --- a/test/nano.request.test.js +++ b/test/nano.request.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano({ url: COUCH_URL }) test('check request can do GET requests - nano.request', async () => { diff --git a/test/nano.session.test.js b/test/nano.session.test.js index 7190834..e207c8b 100644 --- a/test/nano.session.test.js +++ b/test/nano.session.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to check your session - GET /_session - nano.auth', async () => { diff --git a/test/nano.updates.test.js b/test/nano.updates.test.js index 7058fa4..74f2e2f 100644 --- a/test/nano.updates.test.js +++ b/test/nano.updates.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const response = { diff --git a/test/nano.use.test.js b/test/nano.use.test.js index d867bbd..cd9d397 100644 --- a/test/nano.use.test.js +++ b/test/nano.use.test.js @@ -10,9 +10,9 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import Nano from '../lib/nano.js' const nano = Nano('http://myurl.com') test('should be able to use a database - nano.db.use', () => { diff --git a/test/nano.uuids.test.js b/test/nano.uuids.test.js index 26ffb2d..9eb4843 100644 --- a/test/nano.uuids.test.js +++ b/test/nano.uuids.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to fetch uuids - GET /_uuids - nano.uuids', async () => { diff --git a/test/notnocked.test.js b/test/notnocked.test.js index f017d2f..43444aa 100644 --- a/test/notnocked.test.js +++ b/test/notnocked.test.js @@ -10,9 +10,9 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import Nano from '../lib/nano.js' const COUCH_URL = 'http://admin:[email protected]:5984' const nano = Nano(COUCH_URL) const dbName = 'notnocked' + new Date().getTime() diff --git a/test/partition.find.test.js b/test/partition.find.test.js index 8604307..9a9a3f1 100644 --- a/test/partition.find.test.js +++ b/test/partition.find.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to query a partitioned index - POST /db/_partition/partition/_find - db.partitionedFind', async () => { diff --git a/test/partition.findAsStream.test.js b/test/partition.findAsStream.test.js index 4df1748..09182d0 100644 --- a/test/partition.findAsStream.test.js +++ b/test/partition.findAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should get a queried streamed list of documents from a partition- POST /db/_partition/partition/_find - db.partitionedFindAsStream', async () => { diff --git a/test/partition.info.test.js b/test/partition.info.test.js index 5724aae..59160fe 100644 --- a/test/partition.info.test.js +++ b/test/partition.info.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const db = nano.db.use('db') diff --git a/test/partition.list.test.js b/test/partition.list.test.js index 4bb52d3..05a31e8 100644 --- a/test/partition.list.test.js +++ b/test/partition.list.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) const db = nano.db.use('db') diff --git a/test/partition.listAsStream.test.js b/test/partition.listAsStream.test.js index 9313fa1..670e291 100644 --- a/test/partition.listAsStream.test.js +++ b/test/partition.listAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should get a streamed list of documents from a partition- GET /db/_partition/partition/_all_docs - db.partitionedListAsStream', async () => { diff --git a/test/partition.search.test.js b/test/partition.search.test.js index 1de358a..00b2c54 100644 --- a/test/partition.search.test.js +++ b/test/partition.search.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a partitioned search index - GET /db/_partition/partition/_design/ddoc/_search/searchname - db.partitionedSearch', async () => { diff --git a/test/partition.searchAsStream.test.js b/test/partition.searchAsStream.test.js index f53a724..7753c53 100644 --- a/test/partition.searchAsStream.test.js +++ b/test/partition.searchAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should get a searched streamed list of documents from a partition- GET /db/_partition/partition/_design/ddoc/_search/searchname - db.partitionedSearchAsStream', async () => { diff --git a/test/partition.view.test.js b/test/partition.view.test.js index a6fd0c0..79bf6d9 100644 --- a/test/partition.view.test.js +++ b/test/partition.view.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should be able to access a partitioned view index - GET /db/_partition/partition/_design/ddoc/_view/viewname - db.partitionedView', async () => { diff --git a/test/partition.viewAsStream.test.js b/test/partition.viewAsStream.test.js index 1b15805..5ccbfc0 100644 --- a/test/partition.viewAsStream.test.js +++ b/test/partition.viewAsStream.test.js @@ -10,10 +10,10 @@ // License for the specific language governing permissions and limitations under // the License. -const test = require('node:test') -const assert = require('node:assert/strict') -const { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } = require('./mock.js') -const Nano = require('..') +import test from 'node:test' +import assert from 'node:assert/strict' +import { COUCH_URL, mockAgent, mockPool, JSON_HEADERS } from './mock.js' +import Nano from '../lib/nano.js' const nano = Nano(COUCH_URL) test('should get a streamed list of documents from a view from partition - GET /db/_partition/partition/_design/ddoc/_view/viewname - db.partitionedViewAsStream', async () => {
