UNPKG

@martymarron/cliff

Version:
58 lines (57 loc) 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const liff_server_api_1 = require("liff-server-api"); const command_1 = require("@oclif/command"); const message_api_request_adapter_1 = require("../adapters/message-api-request-adapter"); const dotenv = require("dotenv"); dotenv.config(); class BaseCommand extends command_1.default { async init() { const { flags } = this.parse(this.constructor); this.parsedFlags = flags; if (!flags['base-url']) { throw new Error('args.flags\' requires containing \'base-url\' as its member.'); } this._baseUrl = this.parsedFlags['base-url']; if (flags['access-token']) { this._accessToken = this.parsedFlags['access-token']; } else { const client = new liff_server_api_1.MessageApiClient(this.baseUrl); const request = new message_api_request_adapter_1.IssueAccessTokenRequestAdapter(this.parsedFlags); const response = await client.issueAccessToken(request); this._accessToken = response.access_token; } } get baseUrl() { return this._baseUrl; } get accessToken() { return this._accessToken; } } exports.default = BaseCommand; BaseCommand.hidden = true; BaseCommand.flags = { 'client-id': command_1.flags.string({ env: 'LINE_CLIENT_ID', description: 'Channel ID retrieved from the developer console.' }), 'client-secret': command_1.flags.string({ env: 'LINE_CLIENT_SECRET', description: 'Channel secret retrieved from the developer console.' }), 'access-token': command_1.flags.string({ env: 'CHANNEL_ACCESS_TOKEN', }), 'base-url': command_1.flags.string({ env: 'BASE_URL', description: 'Base URL of the LIFF Server API.' }), json: command_1.flags.string({ description: 'JSON string to create/update the LIFF app' }), 'json-file': command_1.flags.string({ hidden: true }), };