@line/create-liff-app
Version:
Start developing LIFF application with a simple CLI command.
63 lines (59 loc) • 2.74 kB
JavaScript
;
/* Copyright 2023 LY Corporation
* LY Corporation licenses this file to you 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:
* https://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.
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
const package_json_1 = __importDefault(require("./package.json"));
const create_liff_app_1 = require("./create-liff-app");
const answers = parseFlags();
(0, create_liff_app_1.init)(answers);
function parseFlags() {
const answers = {};
new commander_1.Command(package_json_1.default.name)
.version(package_json_1.default.version, '-v, --version')
.usage('[project name] [options]')
.arguments('[projectName]')
.addOption(new commander_1.Option('-t, --template <template>', 'Choose a template to bootstrap the app with').choices(create_liff_app_1.templateNames))
.option('-l, --liffid <liff id>', 'Liff id. For more information, please visit https://developers.line.biz/ja/docs/liff/getting-started/')
.option('--js, --javascript', 'Initialize as a JavaScript project')
.option('--ts, --typescript', 'Initialize as a TypeScript project')
.option('--npm, --use-npm', 'Bootstrap the app using npm')
.option('--yarn, --use-yarn', 'Bootstrap the app using yarn')
.action((projectName, options) => {
const { template, liffid, javascript, typescript, useNpm, useYarn } = options;
// projectName
if (typeof projectName === 'string')
answers.projectName = projectName;
// template
if (typeof template === 'string')
answers.template = template;
// liffId
if (typeof liffid === 'string')
answers.liffId = liffid;
// language
if (javascript)
answers.language = 'JavaScript';
if (typescript)
answers.language = 'TypeScript';
// packageManager
if (useNpm)
answers.packageManager = 'npm';
if (useYarn)
answers.packageManager = 'yarn';
})
.parse(process.argv);
return answers;
}