Skip to content

Commit

Permalink
Standardize repo tooling (#7)
Browse files Browse the repository at this point in the history
* use yarn; update dev dependencies

* standardize repo

Co-authored-by: Mark Stacey <markjstacey@gmail.com>
  • Loading branch information
2 people authored and MajorLift committed Oct 11, 2023
1 parent 53b8e60 commit 4b23b9a
Show file tree
Hide file tree
Showing 13 changed files with 1,787 additions and 1,166 deletions.
66 changes: 66 additions & 0 deletions merged-packages/json-rpc-middleware-stream/.circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
version: 2.1

workflows:
build-test:
jobs:
- prep-deps
- test-lint:
requires:
- prep-deps
- test-unit:
requires:
- prep-deps
- all-tests-pass:
requires:
- test-lint
- test-unit

jobs:
prep-deps:
docker:
- image: circleci/node:10
steps:
- checkout
- run:
name: Install deps
command: |
.circleci/scripts/deps-install.sh
- run:
name: Collect yarn install HAR logs
command: |
.circleci/scripts/collect-har-artifact.sh
- persist_to_workspace:
root: .
paths:
- node_modules
- build-artifacts

test-lint:
docker:
- image: circleci/node:10
steps:
- checkout
- attach_workspace:
at: .
- run:
name: Lint
command: yarn lint

test-unit:
docker:
- image: circleci/node:10
steps:
- checkout
- attach_workspace:
at: .
- run:
name: Unit tests
command: yarn test

all-tests-pass:
docker:
- image: circleci/node:10
steps:
- run:
name: All tests passed
command: echo 'Great success'
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash

set -x
set -e
set -u
set -o pipefail

mkdir -p build-artifacts/yarn-install-har
mv ./*.har build-artifacts/yarn-install-har/
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash

set -x
set -e
set -u
set -o pipefail

yarn --frozen-lockfile --ignore-scripts --har
16 changes: 16 additions & 0 deletions merged-packages/json-rpc-middleware-stream/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module.exports = {
parserOptions: {
ecmaVersion: 2018,
},
plugins: [
'json',
],
extends: [
'@metamask/eslint-config',
'@metamask/eslint-config/config/nodejs',
],
ignorePatterns: [
'!.eslintrc.js',
'node_modules/',
],
}
2 changes: 2 additions & 0 deletions merged-packages/json-rpc-middleware-stream/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

package-lock.json

# Created by https://www.gitignore.io/api/osx,node

### Node ###
Expand Down
1 change: 1 addition & 0 deletions merged-packages/json-rpc-middleware-stream/.nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v10
2 changes: 1 addition & 1 deletion merged-packages/json-rpc-middleware-stream/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# json-rpc-middleware-stream

A small toolset for streaming json rpc and matching requests and responses. Made to be used with `json-rpc-engine`.
A small toolset for streaming JSON RPC data and matching requests and responses. Made to be used with [`json-rpc-engine`](https://npmjs.com/package/json-rpc-engine).
15 changes: 9 additions & 6 deletions merged-packages/json-rpc-middleware-stream/engineStream.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
const DuplexStream = require('readable-stream').Duplex
const { Duplex: DuplexStream } = require('readable-stream')

module.exports = createEngineStream
module.exports = function createEngineStream ({ engine }) {

if (!engine) {
throw new Error('Missing engine parameter!')
}

function createEngineStream({ engine }) {
if (!engine) throw new Error('Missing engine parameter!')
const stream = new DuplexStream({ objectMode: true, read, write })
// forward notifications
if (engine.on) {
Expand All @@ -16,8 +18,9 @@ function createEngineStream({ engine }) {
function read () {
return false
}
function write (req, encoding, cb) {
engine.handle(req, (err, res) => {

function write (req, _encoding, cb) {
engine.handle(req, (_err, res) => {
this.push(res)
})
cb()
Expand Down
17 changes: 8 additions & 9 deletions merged-packages/json-rpc-middleware-stream/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
const SafeEventEmitter = require('safe-event-emitter')
const DuplexStream = require('readable-stream').Duplex
const { Duplex: DuplexStream } = require('readable-stream')

module.exports = createStreamMiddleware

function createStreamMiddleware() {
module.exports = function createStreamMiddleware () {
const idMap = {}
const stream = new DuplexStream({
objectMode: true,
Expand All @@ -26,7 +24,7 @@ function createStreamMiddleware() {
return false
}

function processMessage (res, encoding, cb) {
function processMessage (res, _encoding, cb) {
let err
try {
const isNotification = !res.id
Expand All @@ -42,9 +40,11 @@ function createStreamMiddleware() {
cb(err)
}

function processResponse(res) {
function processResponse (res) {
const context = idMap[res.id]
if (!context) throw new Error(`StreamMiddleware - Unknown response id ${res.id}`)
if (!context) {
throw new Error(`StreamMiddleware - Unknown response id ${res.id}`)
}
delete idMap[res.id]
// copy whole res onto original res
Object.assign(context.res, res)
Expand All @@ -53,8 +53,7 @@ function createStreamMiddleware() {
setTimeout(context.end)
}

function processNotification(res) {
function processNotification (res) {
events.emit('notification', res)
}

}
Loading

0 comments on commit 4b23b9a

Please sign in to comment.