mirror of
https://github.com/kou029w/_.git
synced 2025-01-30 22:08:02 +00:00
udpate
This commit is contained in:
parent
d977571425
commit
3e29baac96
16 changed files with 1128 additions and 2259 deletions
|
@ -1,11 +0,0 @@
|
||||||
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 +0,0 @@
|
||||||
/dist
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"extends": [
|
|
||||||
"oclif",
|
|
||||||
"oclif-typescript"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
"require": [
|
|
||||||
"test/helpers/init.js",
|
|
||||||
"ts-node/register"
|
|
||||||
],
|
|
||||||
"watch-extensions": [
|
|
||||||
"ts"
|
|
||||||
],
|
|
||||||
"recursive": true,
|
|
||||||
"reporter": "spec",
|
|
||||||
"timeout": 60000
|
|
||||||
}
|
|
272
oclif/README.md
272
oclif/README.md
|
@ -1,46 +1,33 @@
|
||||||
oclif-hello-world
|
# Hello World CLI
|
||||||
=================
|
|
||||||
|
|
||||||
oclif example Hello World CLI
|
oclif example Hello World CLI
|
||||||
|
|
||||||
[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
|
- [Usage](#usage)
|
||||||
[![Version](https://img.shields.io/npm/v/oclif-hello-world.svg)](https://npmjs.org/package/oclif-hello-world)
|
- [Commands](#commands)
|
||||||
[![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 -->
|
<!-- prettier-ignore-start -->
|
||||||
* [Usage](#usage)
|
|
||||||
* [Commands](#commands)
|
|
||||||
<!-- tocstop -->
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
<!-- usage -->
|
<!-- usage -->
|
||||||
```sh-session
|
```sh-session
|
||||||
$ npm install -g hello-world
|
$ npm install -g @kou029w/hello-world
|
||||||
$ hello-world COMMAND
|
$ hello-world COMMAND
|
||||||
running command...
|
running command...
|
||||||
$ hello-world (--version)
|
$ hello-world (--version)
|
||||||
hello-world/0.0.0 linux-x64 node-v16.14.2
|
@kou029w/hello-world/0.0.0 linux-x64 node-v16.14.2
|
||||||
$ hello-world --help [COMMAND]
|
$ hello-world --help [COMMAND]
|
||||||
USAGE
|
USAGE
|
||||||
$ hello-world COMMAND
|
$ hello-world COMMAND
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
<!-- usagestop -->
|
<!-- usagestop -->
|
||||||
|
|
||||||
# Commands
|
# Commands
|
||||||
|
|
||||||
<!-- commands -->
|
<!-- commands -->
|
||||||
* [`hello-world hello PERSON`](#hello-world-hello-person)
|
* [`hello-world hello PERSON`](#hello-world-hello-person)
|
||||||
* [`hello-world hello world`](#hello-world-hello-world)
|
* [`hello-world hello:world`](#hello-world-helloworld)
|
||||||
* [`hello-world help [COMMAND]`](#hello-world-help-command)
|
* [`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`
|
## `hello-world hello PERSON`
|
||||||
|
|
||||||
|
@ -64,15 +51,13 @@ EXAMPLES
|
||||||
hello friend from oclif! (./src/commands/hello/index.ts)
|
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`
|
||||||
|
|
||||||
## `hello-world hello world`
|
|
||||||
|
|
||||||
Say hello world
|
Say hello world
|
||||||
|
|
||||||
```
|
```
|
||||||
USAGE
|
USAGE
|
||||||
$ hello-world hello world
|
$ hello-world hello:world
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
Say hello world
|
Say hello world
|
||||||
|
@ -100,235 +85,6 @@ DESCRIPTION
|
||||||
Display help for hello-world.
|
Display help for hello-world.
|
||||||
```
|
```
|
||||||
|
|
||||||
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.10/src/commands/help.ts)_
|
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.12/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 -->
|
<!-- commandsstop -->
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
|
|
@ -1,17 +1,8 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const oclif = require('@oclif/core')
|
process.env.NODE_ENV = "development";
|
||||||
|
|
||||||
const path = require('path')
|
require("esbuild-register")
|
||||||
const project = path.join(__dirname, '..', 'tsconfig.json')
|
const oclif = require("@oclif/core");
|
||||||
|
|
||||||
// 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;
|
oclif.settings.debug = true;
|
||||||
|
oclif.run().then(oclif.flush).catch(oclif.Errors.handle);
|
||||||
// Start the CLI
|
|
||||||
oclif.run().then(oclif.flush).catch(oclif.Errors.handle)
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const oclif = require('@oclif/core')
|
const oclif = require("@oclif/core");
|
||||||
|
oclif.run().then(oclif.flush).catch(oclif.Errors.handle);
|
||||||
oclif.run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle'))
|
|
||||||
|
|
|
@ -1,73 +1,39 @@
|
||||||
{
|
{
|
||||||
"name": "hello-world",
|
"name": "@kou029w/hello-world",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"description": "oclif example Hello World CLI",
|
"description": "oclif example Hello World CLI",
|
||||||
"author": "Kohei Watanabe @kou029w",
|
|
||||||
"bin": {
|
|
||||||
"hello-world": "./bin/run"
|
|
||||||
},
|
|
||||||
"homepage": "https://github.com/kou029w/hello-world",
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "dist/index.js",
|
"bin": "bin/run",
|
||||||
"repository": "kou029w/hello-world",
|
|
||||||
"files": [
|
"files": [
|
||||||
"/bin",
|
"bin",
|
||||||
"/dist",
|
"dist",
|
||||||
"/npm-shrinkwrap.json",
|
"oclif.manifest.json"
|
||||||
"/oclif.manifest.json"
|
|
||||||
],
|
],
|
||||||
|
"scripts": {
|
||||||
|
"build": "run-s build:{te,manifest,readme}",
|
||||||
|
"build:ts": "tsup src --clean",
|
||||||
|
"build:manifest": "oclif manifest",
|
||||||
|
"build:readme": "oclif readme",
|
||||||
|
"test": "vitest run",
|
||||||
|
"prepack": "npm run build"
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@oclif/core": "^1",
|
"@oclif/core": "^1",
|
||||||
"@oclif/plugin-help": "^5",
|
"@oclif/plugin-help": "^5"
|
||||||
"@oclif/plugin-plugins": "^2.0.1"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@oclif/test": "^2",
|
"esbuild-register": "^3.3.2",
|
||||||
"@types/chai": "^4",
|
"npm-run-all": "^4.1.5",
|
||||||
"@types/mocha": "^9.0.0",
|
"oclif": "^3.0.0",
|
||||||
"@types/node": "^16.9.4",
|
"tsup": "^5.12.5",
|
||||||
"chai": "^4",
|
"typescript": "^4.6.3",
|
||||||
"eslint": "^7.32.0",
|
"vitest": "^0.9.3"
|
||||||
"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": {
|
"oclif": {
|
||||||
"bin": "hello-world",
|
"bin": "hello-world",
|
||||||
"dirname": "hello-world",
|
"commands": "dist/commands",
|
||||||
"commands": "./dist/commands",
|
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"@oclif/plugin-help",
|
"@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"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
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!')
|
|
||||||
})
|
|
||||||
})
|
|
|
@ -1,10 +0,0 @@
|
||||||
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!')
|
|
||||||
})
|
|
||||||
})
|
|
|
@ -1,6 +0,0 @@
|
||||||
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
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"extends": "../tsconfig",
|
|
||||||
"compilerOptions": {
|
|
||||||
"noEmit": true
|
|
||||||
},
|
|
||||||
"references": [
|
|
||||||
{"path": ".."}
|
|
||||||
]
|
|
||||||
}
|
|
8
oclif/tests/commands/hello/index.test.ts
Normal file
8
oclif/tests/commands/hello/index.test.ts
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import { test, expect } from "vitest";
|
||||||
|
import run from "../../run";
|
||||||
|
import Hello from "../../../src/commands/hello/index";
|
||||||
|
|
||||||
|
test("hello", async () => {
|
||||||
|
const res = await run(() => Hello.run(["friend", "--from=oclif"]));
|
||||||
|
expect(res).toContain("hello friend from oclif!");
|
||||||
|
});
|
13
oclif/tests/commands/hello/world.test.ts
Normal file
13
oclif/tests/commands/hello/world.test.ts
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
import { test, expect } from "vitest";
|
||||||
|
import run from "../../run";
|
||||||
|
import World from "../../../src/commands/hello/world";
|
||||||
|
|
||||||
|
test("hello world", async () => {
|
||||||
|
const res = await run(() => World.run());
|
||||||
|
expect(res).toContain("hello world!");
|
||||||
|
});
|
||||||
|
|
||||||
|
test("hello world", async () => {
|
||||||
|
const res = await run(() => World.run());
|
||||||
|
expect(res).toContain("hello world!");
|
||||||
|
});
|
19
oclif/tests/run.ts
Normal file
19
oclif/tests/run.ts
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import { vi } from "vitest";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 標準出力のテストのためのヘルパー
|
||||||
|
* @param proc 実行する関数
|
||||||
|
* @return 標準出力の結果
|
||||||
|
*/
|
||||||
|
async function run(proc: () => PromiseLike<void>): Promise<string> {
|
||||||
|
const out: string[] = [];
|
||||||
|
const stdout = vi.spyOn(process.stdout, "write").mockImplementation((val) => {
|
||||||
|
out.push(val as string);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
await proc();
|
||||||
|
stdout.mockRestore();
|
||||||
|
return out.join("");
|
||||||
|
}
|
||||||
|
|
||||||
|
export default run;
|
2906
oclif/yarn.lock
2906
oclif/yarn.lock
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue