@kui-shell/plugin-core-support
Version:
Kui plugin offering core extensions such as help and screenshot commands
89 lines (87 loc) • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _debug = _interopRequireDefault(require("debug"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Copyright 2018 The Kubernetes Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const debug = (0, _debug.default)('plugins/core-support/base64');
/**
* The command usage model
*
*/
const usage = {
command: 'base64',
strict: 'base64',
hidden: true,
required: [{
name: 'string',
docs: 'The string to encode or decode'
}],
optional: [{
name: '--decode',
alias: '-d',
boolean: true,
docs: 'Decode the given string'
}, {
name: '--break',
alias: '-b',
numeric: true,
docs: 'break encoded string into num character lines'
}]
};
/**
* Break the given string into lines with a maximum number of
* characters, if so instructed
*
*/
const breakout = (str, options) => {
if (options.break > 0) {
let dest = '';
for (let idx = 0; idx < str.length; idx += options.break) {
dest = dest + str.slice(idx, Math.min(str.length, idx + options.break)) + '\n';
}
return dest;
} else {
return str;
}
};
/**
* The command handlers
*
*/
var _default = commandTree => {
debug('init');
commandTree.listen('/base64', ({
argvNoOptions,
parsedOptions: options
}) => {
const str = argvNoOptions[1];
debug('str', str, argvNoOptions);
if (options.decode) {
debug('decoding');
return breakout(Buffer.from(str, 'base64').toString(), options);
} else {
debug('encoding');
return breakout(Buffer.from(str).toString('base64'), options);
}
}, {
usage
});
};
exports.default = _default;