Commit iniziale
This commit is contained in:
17
node_modules/native-duplexpair/.npmignore
generated
vendored
Normal file
17
node_modules/native-duplexpair/.npmignore
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
lib-cov
|
||||
*.seed
|
||||
*.log
|
||||
*.csv
|
||||
*.dat
|
||||
*.out
|
||||
*.pid
|
||||
*.gz
|
||||
|
||||
pids
|
||||
logs
|
||||
results
|
||||
|
||||
node_modules
|
||||
npm-debug.log
|
||||
.nyc_output/
|
||||
coverage
|
||||
10
node_modules/native-duplexpair/.travis.yml
generated
vendored
Normal file
10
node_modules/native-duplexpair/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "9"
|
||||
- "8"
|
||||
- "6"
|
||||
- "4"
|
||||
after_success:
|
||||
- npm install coveralls
|
||||
- nyc report --reporter=text-lcov | ./node_modules/.bin/coveralls
|
||||
sudo: false
|
||||
22
node_modules/native-duplexpair/LICENSE
generated
vendored
Normal file
22
node_modules/native-duplexpair/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Anna Henningsen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
39
node_modules/native-duplexpair/README.md
generated
vendored
Normal file
39
node_modules/native-duplexpair/README.md
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
duplexpair
|
||||
==============
|
||||
|
||||
[](https://npmjs.org/package/duplexpair)
|
||||
[](https://npmjs.org/package/duplexpair)
|
||||
[](https://travis-ci.org/addaleax/duplexpair?branch=master)
|
||||
[](https://coveralls.io/r/addaleax/duplexpair?branch=master)
|
||||
[](https://david-dm.org/addaleax/duplexpair)
|
||||
|
||||
Make a full duplex stream with 2 Duplex endpoints.
|
||||
|
||||
**Note:**
|
||||
|
||||
This is a fork of `duplexpair`, changed to use the "native" `Duplex` stream that is part
|
||||
of Node.JS instead of the version from the `readable-stream` package.
|
||||
|
||||
Install:
|
||||
`npm install native-duplexpair`
|
||||
|
||||
```js
|
||||
const DuplexPair = require('native-duplexpair');
|
||||
|
||||
const { socket1, socket2 } = new DuplexPair();
|
||||
|
||||
socket1.write('Hi');
|
||||
console.log(socket2.read()); // => <Buffer 48 69>
|
||||
|
||||
// Or, using options that are passed to the Duplex constructor:
|
||||
|
||||
const { socket1, socket2 } = new DuplexPair({ encoding: 'utf8' });
|
||||
|
||||
socket1.write('Hi');
|
||||
console.log(socket2.read()); // => 'Hi'
|
||||
```
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
MIT
|
||||
74
node_modules/native-duplexpair/code-of-conduct.md
generated
vendored
Normal file
74
node_modules/native-duplexpair/code-of-conduct.md
generated
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||
nationality, personal appearance, race, religion, or sexual identity and
|
||||
orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project maintainer at anna@addaleax.net. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
42
node_modules/native-duplexpair/index.js
generated
vendored
Normal file
42
node_modules/native-duplexpair/index.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
const Duplex = require('stream').Duplex;
|
||||
|
||||
const kCallback = Symbol('Callback');
|
||||
const kOtherSide = Symbol('Other');
|
||||
|
||||
class DuplexSocket extends Duplex {
|
||||
constructor(options) {
|
||||
super(options);
|
||||
this[kCallback] = null;
|
||||
this[kOtherSide] = null;
|
||||
}
|
||||
|
||||
_read() {
|
||||
const callback = this[kCallback];
|
||||
if (callback) {
|
||||
this[kCallback] = null;
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
_write(chunk, encoding, callback) {
|
||||
this[kOtherSide][kCallback] = callback;
|
||||
this[kOtherSide].push(chunk);
|
||||
}
|
||||
|
||||
_final(callback) {
|
||||
this[kOtherSide].on('end', callback);
|
||||
this[kOtherSide].push(null);
|
||||
}
|
||||
}
|
||||
|
||||
class DuplexPair {
|
||||
constructor(options) {
|
||||
this.socket1 = new DuplexSocket(options);
|
||||
this.socket2 = new DuplexSocket(options);
|
||||
this.socket1[kOtherSide] = this.socket2;
|
||||
this.socket2[kOtherSide] = this.socket1;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DuplexPair;
|
||||
33
node_modules/native-duplexpair/package.json
generated
vendored
Normal file
33
node_modules/native-duplexpair/package.json
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "native-duplexpair",
|
||||
"version": "1.0.0",
|
||||
"description": "Make a full duplex stream with 2 Duplex endpoints, using the native version of `Duplex`",
|
||||
"engine": ">=4.0.0",
|
||||
"main": "index.js",
|
||||
"directories": {
|
||||
"test": "test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"mocha": "^4.0.1",
|
||||
"nyc": "^11.3.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "nyc mocha"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/tediousjs/native-duplexpair.git"
|
||||
},
|
||||
"keywords": [
|
||||
"duplex",
|
||||
"pair",
|
||||
"streams",
|
||||
"socket"
|
||||
],
|
||||
"author": "Anna Henningsen <anna@addaleax.net>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/tediousjs/native-duplexpair/issues"
|
||||
},
|
||||
"homepage": "https://github.com/tediousjs/native-duplexpair#readme"
|
||||
}
|
||||
21
node_modules/native-duplexpair/test/index.js
generated
vendored
Normal file
21
node_modules/native-duplexpair/test/index.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
'use strict';
|
||||
|
||||
const DuplexPair = require('../');
|
||||
const assert = require('assert');
|
||||
|
||||
describe('DuplexPair', function() {
|
||||
it('passed data through', function() {
|
||||
const pair = new DuplexPair({ encoding: 'utf8' });
|
||||
pair.socket1.write('Hello');
|
||||
assert.strictEqual(pair.socket1.read(), null);
|
||||
assert.strictEqual(pair.socket2.read(), 'Hello');
|
||||
pair.socket2.write('world');
|
||||
assert.strictEqual(pair.socket1.read(), 'world');
|
||||
assert.strictEqual(pair.socket2.read(), null);
|
||||
pair.socket1.end();
|
||||
assert.strictEqual(pair.socket1.read(), null);
|
||||
assert.strictEqual(pair.socket2.read(), null);
|
||||
pair.socket2.end();
|
||||
assert.strictEqual(pair.socket1.read(), null);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user