HTMLify
set_profiling_level.js
Views: 8 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 'use strict'; const CommandOperation = require('./command'); const levelValues = new Set(['off', 'slow_only', 'all']); class SetProfilingLevelOperation extends CommandOperation { constructor(db, level, options) { let profile = 0; if (level === 'off') { profile = 0; } else if (level === 'slow_only') { profile = 1; } else if (level === 'all') { profile = 2; } super(db, options); this.level = level; this.profile = profile; } _buildCommand() { const profile = this.profile; // Set up the profile number const command = { profile }; return command; } execute(callback) { const level = this.level; if (!levelValues.has(level)) { return callback(new Error('Error: illegal profiling level value ' + level)); } super.execute((err, doc) => { if (err == null && doc.ok === 1) return callback(null, level); return err != null ? callback(err, null) : callback(new Error('Error with profile command'), null); }); } } module.exports = SetProfilingLevelOperation; |