couchbase-index-manager
Version:
Manage Couchbase indexes during the CI/CD process
51 lines • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateIndexMutation = void 0;
const tslib_1 = require("tslib");
const chalk_1 = tslib_1.__importDefault(require("chalk"));
const index_mutation_1 = require("./index-mutation");
/**
* Represents an index mutation which is creating a new index
*/
class CreateIndexMutation extends index_mutation_1.IndexMutation {
constructor(definition, name, withClause) {
super(definition, name);
this.withClause = withClause || {};
}
print(logger) {
var _a;
logger.info(chalk_1.default.greenBright(`Create: ${this.displayName}`));
if (this.definition.is_primary) {
logger.info(chalk_1.default.greenBright(` Keys: PRIMARY`));
}
else {
logger.info(chalk_1.default.greenBright(` Keys: ${this.definition.index_key.join(', ')}`));
}
if (this.definition.condition) {
logger.info(chalk_1.default.greenBright(` Cond: ${this.definition.condition}`));
}
if (this.definition.partition) {
logger.info(chalk_1.default.greenBright(` Part: ${this.definition.getPartitionString()}`));
if (this.definition.partition.num_partition) {
logger.info(chalk_1.default.greenBright(`# Part: ${this.definition.partition.num_partition}`));
}
}
if (((_a = this.definition.num_replica) !== null && _a !== void 0 ? _a : 0) > 0 &&
!this.definition.manual_replica) {
logger.info(chalk_1.default.greenBright(` Repl: ${this.definition.num_replica}`));
}
if (this.withClause.nodes) {
logger.info(chalk_1.default.greenBright(` Nodes: ${this.withClause.nodes.join()}`));
}
if (this.withClause.retain_deleted_xattr) {
logger.info(chalk_1.default.greenBright(' XATTR: true'));
}
}
async execute(indexManager, logger) {
logger.info(chalk_1.default.greenBright(`Creating ${this.displayName}...`));
const statement = this.definition.getCreateStatement(indexManager.bucketName, this.name, this.withClause);
await indexManager.createIndex(statement);
}
}
exports.CreateIndexMutation = CreateIndexMutation;
//# sourceMappingURL=create-index-mutation.js.map