diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8a878aa..244db5c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,6 +7,9 @@ on:
tags:
- '!*' # Do not execute on tags
env:
+ NAME: ${{vars.NAME}}
+ EMAIL: ${{vars.EMAIL}}
+ NPM_TOKEN: ${{secrets.NPM_TOKEN}}
GITHUB_TOKEN: ${{secrets.GH_TOKEN}}
CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}}
FORCE_COLOR: 1
@@ -55,8 +58,7 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: 18.x
- - run: git clone https://${GITHUB_TOKEN}@github.com/nodef/deploy "$HOME/deploy"
- - run: bash "$HOME/deploy/setup.sh"
+ - uses: nodef/git-config.action@v1.0.0
- run: npm i -g typescript typedoc
- run: npm ci
- run: npm run publish-docs
@@ -71,8 +73,9 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: 18.x
- - run: git clone https://${GITHUB_TOKEN}@github.com/nodef/deploy "$HOME/deploy"
- - run: bash "$HOME/deploy/setup.sh"
+ - uses: nodef/npm-config.action@v1.0.0
+ with:
+ entries: access = public
- run: npm i -g typescript rollup typedoc browserify terser
- run: npm ci
- run: npm run publish-packages
diff --git a/README.md b/README.md
index 55c88e0..65b6946 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,21 @@
-A collection of ways for transforming async functions.
+An [async function] is a function that delivers its [result asynchronously] (through [Promise]).
📦 [Node.js](https://www.npmjs.com/package/extra-async-function),
🌐 [Web](https://www.npmjs.com/package/extra-async-function.web),
📜 [Files](https://unpkg.com/extra-async-function/),
📰 [JSDoc](https://nodef.github.io/extra-async-function/),
📘 [Wiki](https://github.com/nodef/extra-async-function/wiki/).
-An [async function] is a function that delivers its [result asynchronously]
-(through [Promise]). This package is an *variant* of [extra-function], and
-includes methods for transforming *async functions*. The **result** of an async
-function can be manipulated with [negate]. If a *pure* async function is
-expensive, its results can **cached** with [memoize]. **Parameters** of a
-function can be manipulated with [reverse], [spread], [unspread]. [reverse]
-flips the order of parameters, [spread] spreads the first array parameter of a
-function, and [unspread] combines all parameters into the first parameter
-(array). If you want some **functional behavior**, [compose], [composeRight],
-[curry], and [curryRight] can be used. [composeRight] is also known as
-[pipe-forward operator] or [function chaining]. If you are unfamiliar, [Haskell]
-is a great purely functional language, and there is great [haskell beginner
-guide] to learn from.
+This package is an *variant* of [extra-function], and includes methods for
+transforming *async functions*. The **result** of an async function can be
+manipulated with [negate]. If a *pure* async function is expensive, its results
+can **cached** with [memoize]. **Parameters** of a function can be manipulated
+with [reverse], [spread], [unspread]. [reverse] flips the order of parameters,
+[spread] spreads the first array parameter of a function, and [unspread]
+combines all parameters into the first parameter (array). If you want some
+**functional behavior**, [compose], [composeRight], [curry], and [curryRight]
+can be used. [composeRight] is also known as [pipe-forward operator] or
+[function chaining]. If you are unfamiliar, [Haskell] is a great purely
+functional language, and there is great [haskell beginner guide] to learn from.
To control invocation **time** of a function, use [delay]. A function can be
**rate controlled** with [debounce], [debounceEarly], [throttle],
@@ -35,9 +33,9 @@ In addition, [is], [name], and [length] obtain metadata (about) information on
an async function. To attach a `this` to a function, use [bind]. A few generic
async functions are also included: [ARGUMENTS], [NOOP], [IDENTITY], [COMPARE].
-This package is available in both *Node.js* and *Web* formats. The web format is
-exposed as `extra_async_function` standalone variable and can be loaded from
-[jsDelivr CDN].
+This package is available in *Node.js* and *Web* formats. To use it on the web,
+simply use the `extra_async_function` global variable after loading with a `