line-api-cli
Version:
LINE API CLIs for Node.js
107 lines (88 loc) • 2.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _commandLineUsage = require("command-line-usage");
var _os = require("os");
var _operation = _interopRequireDefault(require("./operation"));
var _fs = _interopRequireDefault(require("fs"));
var _jsYaml = _interopRequireDefault(require("js-yaml"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class LINEInitOperation extends _operation.default {
static get usage() {
/** @type {Content|OptionList|Section[]} */
const sections = [{
header: 'Initialize configuration file for LINE API CLIs'.help,
content: 'Initialize configuration file' + _os.EOL + _os.EOL + 'line init'.code + _os.EOL + _os.EOL + `This command should be run first time under project root folder. After run successfully, you will get ${this.configFileName} configuration file`
}];
return sections;
}
static async run() {
const prompts = require('prompts');
const exists = _fs.default.existsSync(`./${LINEInitOperation.configFileName}`);
if (exists === true) {
console.log(`${LINEInitOperation.configFileName} already exists`.warn);
const {
overwrite
} = await prompts({
type: 'toggle',
name: 'overwrite',
message: 'Do you want to overwrite?',
initial: false,
active: 'Yes',
inactive: 'No'
});
if (!overwrite) {
return false;
}
}
console.log('Setting up configuration file'.help);
const {
id
} = await prompts({
type: 'number',
name: 'id',
message: 'Channel ID?',
hint: 'You can find Channel ID and Secret at https://manager.line.biz/account/<Account ID>/setting/messaging-api'
}, this.cancelOption);
const {
secret
} = await prompts({
type: 'text',
name: 'secret',
message: 'Channel Secret?'
}, this.cancelOption);
const {
hasLongLivedAccessToken
} = await prompts({
type: 'toggle',
name: 'hasLongLivedAccessToken',
message: 'Do you have long-lived access token?',
initial: false,
active: 'Yes',
inactive: 'No'
}, this.cancelOption);
let accessToken = '';
if (hasLongLivedAccessToken) {
const rsToken = await prompts({
type: 'text',
name: 'accessToken',
message: 'Long-lived access token?'
}, this.cancelOption);
accessToken = rsToken.accessToken;
}
const config = {
channel: {
id,
secret,
accessToken
}
};
_fs.default.writeFileSync(`./${LINEInitOperation.configFileName}`, _jsYaml.default.dump(config));
console.log(`Successfully written configuration file at ./${LINEInitOperation.configFileName}`.info);
return true;
}
}
exports.default = LINEInitOperation;
//# sourceMappingURL=line-init-operation.js.map