Skip to content

Commit

Permalink
Add io (actions#5)
Browse files Browse the repository at this point in the history
* Add io lib

* io cleanup

* Run format script

* Fix lint errors with autofix

* Fix equality lint errors

* Rename ioUtil to io-util

* Add no-import-requires

* Run auto-fix lint

* Remove lint errors

* Use Boolean() to convert options

- `CopyOptions` on `cp` now defaults to empty
- Setting option values is easier now

* Rewrite packages/io to be fully async

* Move IS_WINDOWS into ioUtil

* DRY up cp/mv by moving shared code into move function

* Remove unc support, change isDirectory call to stat

* Tighter try catches

* more concise extensions search

* Allow isDirectory to be stat or lstat

* format

* Shell out to rm -rf

* Remove unc comment

* Export fs.promises from io-util

* Remove unknown error message

* Create an optimistic mkdirp

* Update io-util.ts

* Update io-util.ts

* Update io.test.ts

* Fix tests for mkdirP
  • Loading branch information
Danny McCormick authored May 22, 2019
1 parent 4f5f4f2 commit 08db511
Show file tree
Hide file tree
Showing 8 changed files with 2,059 additions and 3 deletions.
2 changes: 0 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-empty-interface": "error",
"@typescript-eslint/no-explicit-any": "error",
"no-extra-parens": "off",
"@typescript-eslint/no-extra-parens": "error",
"@typescript-eslint/no-extraneous-class": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-inferrable-types": "error",
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules/
packages/*/node_modules/
packages/*/lib/
packages/*/lib/
packages/*/__tests__/_temp/
49 changes: 49 additions & 0 deletions packages/io/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# `@actions/io`

> Core functions for cli filesystem scenarios
## Usage

```
/**
* Copies a file or folder.
*
* @param source source path
* @param dest destination path
* @param options optional. See CopyOptions.
*/
export function cp(source: string, dest: string, options?: CopyOptions): Promise<void>
/**
* Remove a path recursively with force
*
* @param path path to remove
*/
export function rmRF(path: string): Promise<void>
/**
* Make a directory. Creates the full path with folders in between
*
* @param p path to create
* @returns Promise<void>
*/
export function mkdirP(p: string): Promise<void>
/**
* Moves a path.
*
* @param source source path
* @param dest destination path
* @param options optional. See CopyOptions.
*/
export function mv(source: string, dest: string, options?: CopyOptions): Promise<void>
/**
* Returns path of a tool had the tool actually been invoked. Resolves via paths.
*
* @param tool name of the tool
* @param options optional. See WhichOptions.
* @returns Promise<string> path to tool
*/
export function which(tool: string, options?: WhichOptions): Promise<string>
```
Loading

0 comments on commit 08db511

Please sign in to comment.