UNPKG

@line/create-liff-app

Version:

Start developing LIFF application with a simple CLI command.

63 lines (59 loc) 2.74 kB
#!/usr/bin/env node "use strict"; /* 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; }