UNPKG

couchbase

Version:

The official Couchbase Node.js Client Library.

139 lines (138 loc) 4.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Bucket = void 0; const collection_1 = require("./collection"); const collectionmanager_1 = require("./collectionmanager"); const diagnosticsexecutor_1 = require("./diagnosticsexecutor"); const scope_1 = require("./scope"); const utilities_1 = require("./utilities"); const viewexecutor_1 = require("./viewexecutor"); const viewindexmanager_1 = require("./viewindexmanager"); /** * Exposes the operations which are available to be performed against a bucket. * Namely the ability to access to Collections as well as performing management * operations against the bucket. * * @category Core */ class Bucket { /** @internal */ constructor(cluster, bucketName) { this._cluster = cluster; this._name = bucketName; this._conn = cluster.conn; } /** @internal */ get conn() { return this._conn; } /** @internal */ get cluster() { return this._cluster; } /** @internal */ get transcoder() { return this._cluster.transcoder; } /** * The name of the bucket this Bucket object references. */ get name() { return this._name; } /** * Creates a Scope object reference to a specific scope. * * @param scopeName The name of the scope to reference. */ scope(scopeName) { return new scope_1.Scope(this, scopeName); } /** * Creates a Scope object reference to the default scope. */ defaultScope() { return this.scope(scope_1.Scope.DEFAULT_NAME); } /** * Creates a Collection object reference to a specific collection. * * @param collectionName The name of the collection to reference. */ collection(collectionName) { const scope = this.defaultScope(); return scope.collection(collectionName); } /** * Creates a Collection object reference to the default collection. */ defaultCollection() { return this.collection(collection_1.Collection.DEFAULT_NAME); } /** * Returns a ViewIndexManager which can be used to manage the view indexes * of this bucket. */ viewIndexes() { return new viewindexmanager_1.ViewIndexManager(this); } /** * Returns a CollectionManager which can be used to manage the collections * of this bucket. */ collections() { return new collectionmanager_1.CollectionManager(this); } /** * Executes a view query. * * @param designDoc The name of the design document containing the view to execute. * @param viewName The name of the view to execute. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ viewQuery(designDoc, viewName, options, callback) { if (options instanceof Function) { callback = arguments[2]; options = undefined; } if (!options) { options = {}; } const exec = new viewexecutor_1.ViewExecutor(this); const options_ = options; return utilities_1.PromiseHelper.wrapAsync(() => exec.query(designDoc, viewName, options_), callback); } /** * Performs a ping operation against the cluster. Pinging the bucket services * which are specified (or all services if none are specified). Returns a report * which describes the outcome of the ping operations which were performed. * * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ ping(options, callback) { if (options instanceof Function) { callback = arguments[0]; options = undefined; } if (!options) { options = {}; } const exec = new diagnosticsexecutor_1.PingExecutor(this._cluster); const options_ = options; return utilities_1.PromiseHelper.wrapAsync(() => exec.ping({ ...options_, bucket: this.name, }), callback); } } exports.Bucket = Bucket;