Skip to content

Commit d1f3860

Browse files
committed
🔀 Merge branch 'devel' into release
- 📝 Badge for Travis CI is corrected - 🔨 Build script is optimized - 🚸 Example code is added - 💚 Github Action for CI - ⬆️ Packages for development are updated - `@types/node` is upgraded from 16.7.1 to 16.7.8 - `@typescript-eslint/eslint-plugin` is upgraded from 4.29.2 to 4.30.0 - `@typescript-eslint/parser` is upgraded from 4.29.2 to 4.30.0 - `mocha` is upgraded from 9.1.0 to 9.1.1 - `terser` is upgraded from 5.7.1 to 5.7.2 - `typescript` is upgraded from 4.3.5 to 4.4.2 - 📝 README is updated - Badges for both CI and coverage are added - Installation section is added - Usage section is added - 💚 Travis CI - Node.js v15.x is excepted from test target - Only 'main' branch is made to be tested Signed-off-by: kei-g <km.8k6ce+github@gmail.com>
2 parents 1166a5f + 4dc5884 commit d1f3860

File tree

16 files changed

+216
-39
lines changed

16 files changed

+216
-39
lines changed

.github/.gitkeep

Whitespace-only changes.

.github/workflows/main.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: test
2+
on:
3+
push:
4+
branches: [ main ]
5+
jobs:
6+
npm-test:
7+
runs-on: ubuntu-latest
8+
strategy:
9+
matrix:
10+
node: [ '14.17.5', '16.8.0' ]
11+
name: Test on Node.js ${{ matrix.node }}
12+
steps:
13+
- uses: actions/checkout@v2
14+
- name: Setup Node.js
15+
uses: actions/setup-node@v2
16+
with:
17+
node-version: ${{ matrix.node }}
18+
- name: Setup modules
19+
run: npm i
20+
- name: Test
21+
run: npm test

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
**/*.d.ts
2+
**/*.js
13
**/.nyc_output/
24
**/.vscode/
35
**/build/
46
**/coverage/
5-
**/lib/*.js
6-
**/lib/*.ts
7+
**/lib/
78
**/node_modules/
89
**/package-lock.json

.npmignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
**/*.ts
21
**/.editorconfig
32
**/.eslintrc.json
3+
**/.github/
44
**/.mocharc.json
5+
**/.nycrc.json
56
**/.travis.yml
67
**/CODE_OF_CONDUCT.md
78
**/build/
9+
**/example.ts
10+
**/src/
811
**/test/
912
**/tsconfig.json

.nycrc.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"all": true,
3+
"branches": 100,
4+
"check-coverage": true,
5+
"exclude": [
6+
"**/*.spec.ts",
7+
"**/index.ts"
8+
],
9+
"extension": [
10+
".ts"
11+
],
12+
"functions": 100,
13+
"include": [
14+
"**/*.ts"
15+
],
16+
"lines": 100,
17+
"reporter": [
18+
"html",
19+
"text"
20+
],
21+
"statements": 100,
22+
"watermarks": {
23+
"branches": [80, 95],
24+
"functions": [80, 95],
25+
"lines": [80, 95],
26+
"statements": [80, 95]
27+
}
28+
}

.travis.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
branches:
2-
except:
3-
- /^v\d+\.\d+\.\d+$/
2+
only:
3+
- main
44
cache:
55
directories:
66
- ~/.npm
77
language: node_js
88
node_js:
99
- 14
10-
- 15
1110
- 16
1211
notifications:
1312
email: false

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# ChangeLogs
22

3+
## Version 1.0.6
4+
5+
- :memo: Badge for Travis CI is corrected
6+
- :hammer: Build script is optimized
7+
- :children_crossing: Example code is added
8+
- :green_heart: Github Action for CI
9+
- :arrow_up: Packages for development are updated
10+
- `@types/node` is upgraded from 16.7.1 to 16.7.8
11+
- `@typescript-eslint/eslint-plugin` is upgraded from 4.29.2 to 4.30.0
12+
- `@typescript-eslint/parser` is upgraded from 4.29.2 to 4.30.0
13+
- `mocha` is upgraded from 9.1.0 to 9.1.1
14+
- `terser` is upgraded from 5.7.1 to 5.7.2
15+
- `typescript` is upgraded from 4.3.5 to 4.4.2
16+
- :memo: README is updated
17+
- Badges for both CI and coverage are added
18+
- Installation section is added
19+
- Usage section is added
20+
- :green_heart: Travis CI
21+
- Node.js v15.x is excepted from test target
22+
- Only 'main' branch is made to be tested
23+
324
## Version 1.0.5
425

526
- :see_no_evil: .npmignore is added

README.md

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,76 @@
1-
# async-iterable-queue [![License][license-image]][license-url] [![Dependency][depencency-image]][dependency-url] [![Travis][travis-image]][travis-url] [![npm][npm-image]][npm-url]
1+
# async-iterable-queue [![License][license-image]][license-url] [![Dependency][depencency-image]][dependency-url] [![GitHub][github-test-image]][github-url] [![Travis][travis-image]][travis-url] [![npm][npm-image]][npm-url]
22

3-
[![maintenance][maintenance-image]][npmsio-url] [![quality][quality-image]][npmsio-url]
3+
[![coverage][nyc-cov-image]][github-url] [![maintenance][maintenance-image]][npmsio-url] [![quality][quality-image]][npmsio-url]
44

5-
Async Iterable Queue
5+
`async-iterable-queue` - A library for 'Queue' class which implements AsyncIterable\<T\> works on [Node.js](https://nodejs.org/)
6+
7+
## Installation
8+
9+
```shell
10+
npm i async-iterable-queue
11+
```
12+
13+
## Usage
14+
15+
```typescript
16+
import { AsyncIterableQueue } from 'async-iterable-queue'
17+
18+
type Foo = {
19+
id: number
20+
name: string
21+
}
22+
23+
async function example1(queue: AsyncIterableQueue<Foo>): Promise<void> {
24+
console.debug('pushing 123')
25+
await queue.push({
26+
id: 123,
27+
name: 'foo',
28+
})
29+
console.debug('123 has been pushed')
30+
await queue.push({
31+
id: 456,
32+
name: 'bar',
33+
})
34+
console.debug('456 has been pushed')
35+
await queue.push({
36+
id: 789,
37+
name: 'baz',
38+
})
39+
console.debug('789 has been pushed')
40+
await queue.end()
41+
console.debug('\'end\' has been pushed')
42+
}
43+
44+
async function example2(queue: AsyncIterableQueue<Foo>): Promise<void> {
45+
for await (const value of queue)
46+
console.debug(value)
47+
console.debug('all elements have been popped from queue')
48+
}
49+
50+
async function example(): Promise<void> {
51+
console.debug('example for AsyncIterableQueue has begun')
52+
const queue = new AsyncIterableQueue<Foo>()
53+
await Promise.all([
54+
example1(queue),
55+
example2(queue),
56+
])
57+
console.debug('example for AsyncIterableQueue has finished')
58+
}
59+
60+
example()
61+
```
662

763
[depencency-image]:https://img.shields.io/librariesio/release/npm/async-iterable-queue?logo=nodedotjs
864
[dependency-url]:https://npmjs.com/package/async-iterable-queue?activeTab=dependencies
65+
[github-test-image]:https://img.shields.io/github/workflow/status/kei-g/async-iterable-queue/test/main?label=build%20%26%20test&logo=github
66+
[github-url]:https://github.com/kei-g/async-iterable-queue
967
[license-image]:https://img.shields.io/github/license/kei-g/async-iterable-queue
1068
[license-url]:https://opensource.org/licenses/BSD-3-Clause
1169
[maintenance-image]:https://img.shields.io/npms-io/maintenance-score/async-iterable-queue?logo=npm
1270
[npm-image]:https://img.shields.io/npm/v/async-iterable-queue.svg?logo=npm
1371
[npm-url]:https://npmjs.org/package/async-iterable-queue
1472
[npmsio-url]:https://npms.io/search?q=async-iterable-queue
73+
[nyc-cov-image]:https://img.shields.io/nycrc/kei-g/async-iterable-queue?config=.nycrc.json&label=coverage
1574
[quality-image]:https://img.shields.io/npms-io/quality-score/async-iterable-queue?logo=npm
16-
[travis-image]:https://img.shields.io/travis/kei-g/async-iterable-queue/main.svg?logo=travis
17-
[travis-url]:https://travis-ci.org/kei-g/async-iterable-queue
75+
[travis-image]:https://img.shields.io/travis/com/kei-g/async-iterable-queue/main?label=build%20%26%20test&logo=travis
76+
[travis-url]:https://app.travis-ci.com/kei-g/async-iterable-queue

example.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
import { AsyncIterableQueue } from './src'
3+
4+
type Foo = {
5+
id: number
6+
name: string
7+
}
8+
9+
async function example1(queue: AsyncIterableQueue<Foo>): Promise<void> {
10+
console.debug('pushing 123')
11+
await queue.push({
12+
id: 123,
13+
name: 'foo',
14+
})
15+
console.debug('123 has been pushed')
16+
await queue.push({
17+
id: 456,
18+
name: 'bar',
19+
})
20+
console.debug('456 has been pushed')
21+
await queue.push({
22+
id: 789,
23+
name: 'baz',
24+
})
25+
console.debug('789 has been pushed')
26+
await queue.end()
27+
console.debug('\'end\' has been pushed')
28+
}
29+
30+
async function example2(queue: AsyncIterableQueue<Foo>): Promise<void> {
31+
for await (const value of queue)
32+
console.debug(value)
33+
console.debug('all elements have been popped from queue')
34+
}
35+
36+
async function example(): Promise<void> {
37+
console.debug('example for AsyncIterableQueue has begun')
38+
const queue = new AsyncIterableQueue<Foo>()
39+
await Promise.all([
40+
example1(queue),
41+
example2(queue),
42+
])
43+
console.debug('example for AsyncIterableQueue has finished')
44+
}
45+
46+
example()

lib/.npmignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)