mirror of
https://github.com/kou029w/_.git
synced 2025-01-31 06:18:07 +00:00
create oclif
This commit is contained in:
parent
659934fe3d
commit
d977571425
23 changed files with 5811 additions and 0 deletions
30
oclif/.circleci/config.yml
Normal file
30
oclif/.circleci/config.yml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
version: 2.1
|
||||||
|
|
||||||
|
orbs:
|
||||||
|
release-management: salesforce/npm-release-management@4
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
test-and-release:
|
||||||
|
jobs:
|
||||||
|
- release-management/test-package:
|
||||||
|
matrix:
|
||||||
|
parameters:
|
||||||
|
os:
|
||||||
|
- linux
|
||||||
|
- windows
|
||||||
|
node_version:
|
||||||
|
- latest
|
||||||
|
- lts
|
||||||
|
- maintenance
|
||||||
|
dependabot-automerge:
|
||||||
|
triggers:
|
||||||
|
- schedule:
|
||||||
|
cron: '0 2,5,8,11 * * *'
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
jobs:
|
||||||
|
- release-management/dependabot-automerge
|
11
oclif/.editorconfig
Normal file
11
oclif/.editorconfig
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
1
oclif/.eslintignore
Normal file
1
oclif/.eslintignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/dist
|
6
oclif/.eslintrc
Normal file
6
oclif/.eslintrc
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"extends": [
|
||||||
|
"oclif",
|
||||||
|
"oclif-typescript"
|
||||||
|
]
|
||||||
|
}
|
16
oclif/.github/dependabot.yml
vendored
Normal file
16
oclif/.github/dependabot.yml
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "npm"
|
||||||
|
versioning-strategy: increase
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
|
labels:
|
||||||
|
- "dependencies"
|
||||||
|
open-pull-requests-limit: 100
|
||||||
|
pull-request-branch-name:
|
||||||
|
separator: "-"
|
||||||
|
ignore:
|
||||||
|
- dependency-name: "fs-extra"
|
||||||
|
- dependency-name: "*"
|
||||||
|
update-types: ["version-update:semver-major"]
|
9
oclif/.gitignore
vendored
Normal file
9
oclif/.gitignore
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
*-debug.log
|
||||||
|
*-error.log
|
||||||
|
/.nyc_output
|
||||||
|
/dist
|
||||||
|
/lib
|
||||||
|
/package-lock.json
|
||||||
|
/tmp
|
||||||
|
node_modules
|
||||||
|
oclif.manifest.json
|
12
oclif/.mocharc.json
Normal file
12
oclif/.mocharc.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"require": [
|
||||||
|
"test/helpers/init.js",
|
||||||
|
"ts-node/register"
|
||||||
|
],
|
||||||
|
"watch-extensions": [
|
||||||
|
"ts"
|
||||||
|
],
|
||||||
|
"recursive": true,
|
||||||
|
"reporter": "spec",
|
||||||
|
"timeout": 60000
|
||||||
|
}
|
21
oclif/LICENSE
Normal file
21
oclif/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2019 Salesforce
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
334
oclif/README.md
Normal file
334
oclif/README.md
Normal file
|
@ -0,0 +1,334 @@
|
||||||
|
oclif-hello-world
|
||||||
|
=================
|
||||||
|
|
||||||
|
oclif example Hello World CLI
|
||||||
|
|
||||||
|
[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
|
||||||
|
[![Version](https://img.shields.io/npm/v/oclif-hello-world.svg)](https://npmjs.org/package/oclif-hello-world)
|
||||||
|
[![CircleCI](https://circleci.com/gh/oclif/hello-world/tree/main.svg?style=shield)](https://circleci.com/gh/oclif/hello-world/tree/main)
|
||||||
|
[![Downloads/week](https://img.shields.io/npm/dw/oclif-hello-world.svg)](https://npmjs.org/package/oclif-hello-world)
|
||||||
|
[![License](https://img.shields.io/npm/l/oclif-hello-world.svg)](https://github.com/oclif/hello-world/blob/main/package.json)
|
||||||
|
|
||||||
|
<!-- toc -->
|
||||||
|
* [Usage](#usage)
|
||||||
|
* [Commands](#commands)
|
||||||
|
<!-- tocstop -->
|
||||||
|
# Usage
|
||||||
|
<!-- usage -->
|
||||||
|
```sh-session
|
||||||
|
$ npm install -g hello-world
|
||||||
|
$ hello-world COMMAND
|
||||||
|
running command...
|
||||||
|
$ hello-world (--version)
|
||||||
|
hello-world/0.0.0 linux-x64 node-v16.14.2
|
||||||
|
$ hello-world --help [COMMAND]
|
||||||
|
USAGE
|
||||||
|
$ hello-world COMMAND
|
||||||
|
...
|
||||||
|
```
|
||||||
|
<!-- usagestop -->
|
||||||
|
# Commands
|
||||||
|
<!-- commands -->
|
||||||
|
* [`hello-world hello PERSON`](#hello-world-hello-person)
|
||||||
|
* [`hello-world hello world`](#hello-world-hello-world)
|
||||||
|
* [`hello-world help [COMMAND]`](#hello-world-help-command)
|
||||||
|
* [`hello-world plugins`](#hello-world-plugins)
|
||||||
|
* [`hello-world plugins:install PLUGIN...`](#hello-world-pluginsinstall-plugin)
|
||||||
|
* [`hello-world plugins:inspect PLUGIN...`](#hello-world-pluginsinspect-plugin)
|
||||||
|
* [`hello-world plugins:install PLUGIN...`](#hello-world-pluginsinstall-plugin-1)
|
||||||
|
* [`hello-world plugins:link PLUGIN`](#hello-world-pluginslink-plugin)
|
||||||
|
* [`hello-world plugins:uninstall PLUGIN...`](#hello-world-pluginsuninstall-plugin)
|
||||||
|
* [`hello-world plugins:uninstall PLUGIN...`](#hello-world-pluginsuninstall-plugin-1)
|
||||||
|
* [`hello-world plugins:uninstall PLUGIN...`](#hello-world-pluginsuninstall-plugin-2)
|
||||||
|
* [`hello-world plugins update`](#hello-world-plugins-update)
|
||||||
|
|
||||||
|
## `hello-world hello PERSON`
|
||||||
|
|
||||||
|
Say hello
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world hello [PERSON] -f <value>
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PERSON Person to say hello to
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-f, --from=<value> (required) Whom is saying hello
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Say hello
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
$ oex hello friend --from oclif
|
||||||
|
hello friend from oclif! (./src/commands/hello/index.ts)
|
||||||
|
```
|
||||||
|
|
||||||
|
_See code: [dist/commands/hello/index.ts](https://github.com/kou029w/hello-world/blob/v0.0.0/dist/commands/hello/index.ts)_
|
||||||
|
|
||||||
|
## `hello-world hello world`
|
||||||
|
|
||||||
|
Say hello world
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world hello world
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Say hello world
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
$ oex hello world
|
||||||
|
hello world! (./src/commands/hello/world.ts)
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world help [COMMAND]`
|
||||||
|
|
||||||
|
Display help for hello-world.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world help [COMMAND] [-n]
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
COMMAND Command to show help for.
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-n, --nested-commands Include all nested commands in the output.
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Display help for hello-world.
|
||||||
|
```
|
||||||
|
|
||||||
|
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.10/src/commands/help.ts)_
|
||||||
|
|
||||||
|
## `hello-world plugins`
|
||||||
|
|
||||||
|
List installed plugins.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins [--core]
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
--core Show core plugins.
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
List installed plugins.
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
$ hello-world plugins
|
||||||
|
```
|
||||||
|
|
||||||
|
_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.0.11/src/commands/plugins/index.ts)_
|
||||||
|
|
||||||
|
## `hello-world plugins:install PLUGIN...`
|
||||||
|
|
||||||
|
Installs a plugin into the CLI.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins:install PLUGIN...
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PLUGIN Plugin to install.
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-f, --force Run yarn install with force flag.
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Installs a plugin into the CLI.
|
||||||
|
|
||||||
|
Can be installed from npm or a git url.
|
||||||
|
|
||||||
|
Installation of a user-installed plugin will override a core plugin.
|
||||||
|
|
||||||
|
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
|
||||||
|
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
|
||||||
|
the CLI without the need to patch and update the whole CLI.
|
||||||
|
|
||||||
|
ALIASES
|
||||||
|
$ hello-world plugins add
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
$ hello-world plugins:install myplugin
|
||||||
|
|
||||||
|
$ hello-world plugins:install https://github.com/someuser/someplugin
|
||||||
|
|
||||||
|
$ hello-world plugins:install someuser/someplugin
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world plugins:inspect PLUGIN...`
|
||||||
|
|
||||||
|
Displays installation properties of a plugin.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins:inspect PLUGIN...
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PLUGIN [default: .] Plugin to inspect.
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Displays installation properties of a plugin.
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
$ hello-world plugins:inspect myplugin
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world plugins:install PLUGIN...`
|
||||||
|
|
||||||
|
Installs a plugin into the CLI.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins:install PLUGIN...
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PLUGIN Plugin to install.
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-f, --force Run yarn install with force flag.
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Installs a plugin into the CLI.
|
||||||
|
|
||||||
|
Can be installed from npm or a git url.
|
||||||
|
|
||||||
|
Installation of a user-installed plugin will override a core plugin.
|
||||||
|
|
||||||
|
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
|
||||||
|
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
|
||||||
|
the CLI without the need to patch and update the whole CLI.
|
||||||
|
|
||||||
|
ALIASES
|
||||||
|
$ hello-world plugins add
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
$ hello-world plugins:install myplugin
|
||||||
|
|
||||||
|
$ hello-world plugins:install https://github.com/someuser/someplugin
|
||||||
|
|
||||||
|
$ hello-world plugins:install someuser/someplugin
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world plugins:link PLUGIN`
|
||||||
|
|
||||||
|
Links a plugin into the CLI for development.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins:link PLUGIN
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PATH [default: .] path to plugin
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Links a plugin into the CLI for development.
|
||||||
|
|
||||||
|
Installation of a linked plugin will override a user-installed or core plugin.
|
||||||
|
|
||||||
|
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
|
||||||
|
command will override the user-installed or core plugin implementation. This is useful for development work.
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
$ hello-world plugins:link myplugin
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world plugins:uninstall PLUGIN...`
|
||||||
|
|
||||||
|
Removes a plugin from the CLI.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins:uninstall PLUGIN...
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PLUGIN plugin to uninstall
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Removes a plugin from the CLI.
|
||||||
|
|
||||||
|
ALIASES
|
||||||
|
$ hello-world plugins unlink
|
||||||
|
$ hello-world plugins remove
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world plugins:uninstall PLUGIN...`
|
||||||
|
|
||||||
|
Removes a plugin from the CLI.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins:uninstall PLUGIN...
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PLUGIN plugin to uninstall
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Removes a plugin from the CLI.
|
||||||
|
|
||||||
|
ALIASES
|
||||||
|
$ hello-world plugins unlink
|
||||||
|
$ hello-world plugins remove
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world plugins:uninstall PLUGIN...`
|
||||||
|
|
||||||
|
Removes a plugin from the CLI.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins:uninstall PLUGIN...
|
||||||
|
|
||||||
|
ARGUMENTS
|
||||||
|
PLUGIN plugin to uninstall
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Removes a plugin from the CLI.
|
||||||
|
|
||||||
|
ALIASES
|
||||||
|
$ hello-world plugins unlink
|
||||||
|
$ hello-world plugins remove
|
||||||
|
```
|
||||||
|
|
||||||
|
## `hello-world plugins update`
|
||||||
|
|
||||||
|
Update installed plugins.
|
||||||
|
|
||||||
|
```
|
||||||
|
USAGE
|
||||||
|
$ hello-world plugins update [-h] [-v]
|
||||||
|
|
||||||
|
FLAGS
|
||||||
|
-h, --help Show CLI help.
|
||||||
|
-v, --verbose
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Update installed plugins.
|
||||||
|
```
|
||||||
|
<!-- commandsstop -->
|
17
oclif/bin/dev
Executable file
17
oclif/bin/dev
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
const oclif = require('@oclif/core')
|
||||||
|
|
||||||
|
const path = require('path')
|
||||||
|
const project = path.join(__dirname, '..', 'tsconfig.json')
|
||||||
|
|
||||||
|
// In dev mode -> use ts-node and dev plugins
|
||||||
|
process.env.NODE_ENV = 'development'
|
||||||
|
|
||||||
|
require('ts-node').register({project})
|
||||||
|
|
||||||
|
// In dev mode, always show stack traces
|
||||||
|
oclif.settings.debug = true;
|
||||||
|
|
||||||
|
// Start the CLI
|
||||||
|
oclif.run().then(oclif.flush).catch(oclif.Errors.handle)
|
3
oclif/bin/dev.cmd
Normal file
3
oclif/bin/dev.cmd
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
node "%~dp0\dev" %*
|
5
oclif/bin/run
Executable file
5
oclif/bin/run
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
const oclif = require('@oclif/core')
|
||||||
|
|
||||||
|
oclif.run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle'))
|
3
oclif/bin/run.cmd
Normal file
3
oclif/bin/run.cmd
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
node "%~dp0\run" %*
|
73
oclif/package.json
Normal file
73
oclif/package.json
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{
|
||||||
|
"name": "hello-world",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"description": "oclif example Hello World CLI",
|
||||||
|
"author": "Kohei Watanabe @kou029w",
|
||||||
|
"bin": {
|
||||||
|
"hello-world": "./bin/run"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/kou029w/hello-world",
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "dist/index.js",
|
||||||
|
"repository": "kou029w/hello-world",
|
||||||
|
"files": [
|
||||||
|
"/bin",
|
||||||
|
"/dist",
|
||||||
|
"/npm-shrinkwrap.json",
|
||||||
|
"/oclif.manifest.json"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"@oclif/core": "^1",
|
||||||
|
"@oclif/plugin-help": "^5",
|
||||||
|
"@oclif/plugin-plugins": "^2.0.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@oclif/test": "^2",
|
||||||
|
"@types/chai": "^4",
|
||||||
|
"@types/mocha": "^9.0.0",
|
||||||
|
"@types/node": "^16.9.4",
|
||||||
|
"chai": "^4",
|
||||||
|
"eslint": "^7.32.0",
|
||||||
|
"eslint-config-oclif": "^4",
|
||||||
|
"eslint-config-oclif-typescript": "^1.0.2",
|
||||||
|
"globby": "^11",
|
||||||
|
"mocha": "^9",
|
||||||
|
"oclif": "^2",
|
||||||
|
"shx": "^0.3.3",
|
||||||
|
"ts-node": "^10.2.1",
|
||||||
|
"tslib": "^2.3.1",
|
||||||
|
"typescript": "^4.4.3"
|
||||||
|
},
|
||||||
|
"oclif": {
|
||||||
|
"bin": "hello-world",
|
||||||
|
"dirname": "hello-world",
|
||||||
|
"commands": "./dist/commands",
|
||||||
|
"plugins": [
|
||||||
|
"@oclif/plugin-help",
|
||||||
|
"@oclif/plugin-plugins"
|
||||||
|
],
|
||||||
|
"topicSeparator": " ",
|
||||||
|
"topics": {
|
||||||
|
"hello": {
|
||||||
|
"description": "Say hello to the world and others"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "shx rm -rf dist && tsc -b",
|
||||||
|
"lint": "eslint . --ext .ts --config .eslintrc",
|
||||||
|
"postpack": "shx rm -f oclif.manifest.json",
|
||||||
|
"posttest": "yarn lint",
|
||||||
|
"prepack": "yarn build && oclif manifest && oclif readme",
|
||||||
|
"test": "mocha --forbid-only \"test/**/*.test.ts\"",
|
||||||
|
"version": "oclif readme && git add README.md"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"bugs": "https://github.com/kou029w/hello-world/issues",
|
||||||
|
"keywords": [
|
||||||
|
"oclif"
|
||||||
|
],
|
||||||
|
"types": "dist/index.d.ts"
|
||||||
|
}
|
23
oclif/src/commands/hello/index.ts
Normal file
23
oclif/src/commands/hello/index.ts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
import {Command, Flags} from '@oclif/core'
|
||||||
|
|
||||||
|
export default class Hello extends Command {
|
||||||
|
static description = 'Say hello'
|
||||||
|
|
||||||
|
static examples = [
|
||||||
|
`$ oex hello friend --from oclif
|
||||||
|
hello friend from oclif! (./src/commands/hello/index.ts)
|
||||||
|
`,
|
||||||
|
]
|
||||||
|
|
||||||
|
static flags = {
|
||||||
|
from: Flags.string({char: 'f', description: 'Whom is saying hello', required: true}),
|
||||||
|
}
|
||||||
|
|
||||||
|
static args = [{name: 'person', description: 'Person to say hello to', required: true}]
|
||||||
|
|
||||||
|
async run(): Promise<void> {
|
||||||
|
const {args, flags} = await this.parse(Hello)
|
||||||
|
|
||||||
|
this.log(`hello ${args.person} from ${flags.from}! (./src/commands/hello/index.ts)`)
|
||||||
|
}
|
||||||
|
}
|
19
oclif/src/commands/hello/world.ts
Normal file
19
oclif/src/commands/hello/world.ts
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import {Command} from '@oclif/core'
|
||||||
|
|
||||||
|
export default class World extends Command {
|
||||||
|
static description = 'Say hello world'
|
||||||
|
|
||||||
|
static examples = [
|
||||||
|
`$ oex hello world
|
||||||
|
hello world! (./src/commands/hello/world.ts)
|
||||||
|
`,
|
||||||
|
]
|
||||||
|
|
||||||
|
static flags = {}
|
||||||
|
|
||||||
|
static args = []
|
||||||
|
|
||||||
|
async run(): Promise<void> {
|
||||||
|
this.log('hello world! (./src/commands/hello/world.ts)')
|
||||||
|
}
|
||||||
|
}
|
1
oclif/src/index.ts
Normal file
1
oclif/src/index.ts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export {run} from '@oclif/core'
|
10
oclif/test/commands/hello/index.test.ts
Normal file
10
oclif/test/commands/hello/index.test.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import {expect, test} from '@oclif/test'
|
||||||
|
|
||||||
|
describe('hello', () => {
|
||||||
|
test
|
||||||
|
.stdout()
|
||||||
|
.command(['hello', 'friend', '--from=oclif'])
|
||||||
|
.it('runs hello cmd', ctx => {
|
||||||
|
expect(ctx.stdout).to.contain('hello friend from oclif!')
|
||||||
|
})
|
||||||
|
})
|
10
oclif/test/commands/hello/world.test.ts
Normal file
10
oclif/test/commands/hello/world.test.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import {expect, test} from '@oclif/test'
|
||||||
|
|
||||||
|
describe('hello world', () => {
|
||||||
|
test
|
||||||
|
.stdout()
|
||||||
|
.command(['hello:world'])
|
||||||
|
.it('runs hello world cmd', ctx => {
|
||||||
|
expect(ctx.stdout).to.contain('hello world!')
|
||||||
|
})
|
||||||
|
})
|
6
oclif/test/helpers/init.js
Normal file
6
oclif/test/helpers/init.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
const path = require('path')
|
||||||
|
process.env.TS_NODE_PROJECT = path.resolve('test/tsconfig.json')
|
||||||
|
process.env.NODE_ENV = 'development'
|
||||||
|
|
||||||
|
global.oclif = global.oclif || {}
|
||||||
|
global.oclif.columns = 80
|
9
oclif/test/tsconfig.json
Normal file
9
oclif/test/tsconfig.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"extends": "../tsconfig",
|
||||||
|
"compilerOptions": {
|
||||||
|
"noEmit": true
|
||||||
|
},
|
||||||
|
"references": [
|
||||||
|
{"path": ".."}
|
||||||
|
]
|
||||||
|
}
|
14
oclif/tsconfig.json
Normal file
14
oclif/tsconfig.json
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"declaration": true,
|
||||||
|
"importHelpers": true,
|
||||||
|
"module": "commonjs",
|
||||||
|
"outDir": "dist",
|
||||||
|
"rootDir": "src",
|
||||||
|
"strict": true,
|
||||||
|
"target": "es2019"
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src/**/*"
|
||||||
|
]
|
||||||
|
}
|
5178
oclif/yarn.lock
Normal file
5178
oclif/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue