Compare commits
No commits in common. "master" and "v3.3.0" have entirely different histories.
|
@ -0,0 +1,36 @@
|
|||
<!--
|
||||
- Please ask questions at https://groups.google.com/forum/#!forum/loopbackjs or
|
||||
https://gitter.im/strongloop/loopback
|
||||
|
||||
- Immediate support is available through our subscription plans, see
|
||||
https://strongloop.com/api-connect-faqs/
|
||||
-->
|
||||
|
||||
### Bug or feature request
|
||||
|
||||
<!--
|
||||
Mark your choice with an "x" (eg. [x], NOT [*]).
|
||||
-->
|
||||
|
||||
- [ ] Bug
|
||||
- [ ] Feature request
|
||||
|
||||
### Description of feature (or steps to reproduce if bug)
|
||||
|
||||
|
||||
|
||||
### Link to sample repo to reproduce issue (if bug)
|
||||
|
||||
|
||||
|
||||
### Expected result
|
||||
|
||||
|
||||
|
||||
### Actual result (if bug)
|
||||
|
||||
|
||||
|
||||
### Additional information (Node.js version, LoopBack version, etc)
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
labels: bug
|
||||
|
||||
---
|
||||
|
||||
<!-- 🚨 STOP 🚨 STOP 🚨 STOP 🚨
|
||||
|
||||
HELP US HELP YOU, PLEASE
|
||||
- Do a quick search to avoid duplicate issues
|
||||
- Provide as much information as possible (reproduction sandbox, use case for features, etc.)
|
||||
- Consider using a more suitable venue for questions such as Stack Overflow, Gitter, etc.
|
||||
|
||||
Please fill in the *entire* template below.
|
||||
|
||||
-->
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
<!-- Describe how to reproduce the issue -->
|
||||
|
||||
## Current Behavior
|
||||
|
||||
<!-- Describe the observed result -->
|
||||
|
||||
## Expected Behavior
|
||||
|
||||
<!-- Describe what did you expect instead, what is the desired outcome? -->
|
||||
|
||||
## Link to reproduction sandbox
|
||||
|
||||
<!--
|
||||
See https://loopback.io/doc/en/contrib/Reporting-issues.html#loopback-3x-bugs
|
||||
Note: Failure to provide a sandbox application for reproduction purposes will result in the issue being closed.
|
||||
-->
|
||||
|
||||
## Additional information
|
||||
|
||||
<!--
|
||||
Copy+paste the output of these two commands:
|
||||
node -e 'console.log(process.platform, process.arch, process.versions.node)'
|
||||
npm ls --prod --depth 0 | grep loopback
|
||||
-->
|
||||
|
||||
## Related Issues
|
||||
|
||||
<!-- Did you find other bugs that looked similar? -->
|
||||
|
||||
_See [Reporting Issues](http://loopback.io/doc/en/contrib/Reporting-issues.html) for more tips on writing good issues_
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
labels: feature
|
||||
|
||||
---
|
||||
|
||||
## Suggestion
|
||||
|
||||
<!-- A summary of what you'd like to see added or changed -->
|
||||
|
||||
## Use Cases
|
||||
|
||||
<!--
|
||||
What do you want to use this for?
|
||||
What shortcomings exist with current approaches?
|
||||
-->
|
||||
|
||||
## Examples
|
||||
|
||||
<!-- Show how this would be used and what the behavior would be -->
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
TBD - will be filled by the team.
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
name: Question
|
||||
about: The issue tracker is not for questions. Please use Stack Overflow or other resources for help.
|
||||
labels: question
|
||||
|
||||
---
|
||||
|
||||
<!-- 🚨 STOP 🚨 STOP 🚨 STOP 🚨
|
||||
|
||||
THE ISSUE TRACKER IS NOT FOR QUESTIONS.
|
||||
|
||||
DO NOT CREATE A NEW ISSUE TO ASK A QUESTION.
|
||||
|
||||
Please use one of the following resources for help:
|
||||
|
||||
**Questions**
|
||||
|
||||
- https://stackoverflow.com/tags/loopbackjs
|
||||
- https://groups.google.com/forum/#!forum/loopbackjs
|
||||
- https://gitter.im/strongloop/loopback
|
||||
|
||||
**Immediate support**
|
||||
|
||||
- https://strongloop.com/api-connect-faqs/
|
||||
- https://strongloop.com/node-js/subscription-plans/
|
||||
|
||||
-->
|
|
@ -1,11 +0,0 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Report a security vulnerability
|
||||
url: https://loopback.io/doc/en/contrib/Reporting-issues.html#security-issues
|
||||
about: Do not report security vulnerabilities using GitHub issues. Please send an email to `reachsl@us.ibm.com` instead.
|
||||
- name: Get help on StackOverflow
|
||||
url: https://stackoverflow.com/tags/loopbackjs
|
||||
about: Please ask and answer questions on StackOverflow.
|
||||
- name: Join our mailing list
|
||||
url: https://groups.google.com/forum/#!forum/loopbackjs
|
||||
about: You can also post your question to our mailing list.
|
|
@ -1,18 +1,24 @@
|
|||
### Description
|
||||
|
||||
|
||||
#### Related issues
|
||||
|
||||
<!--
|
||||
Please provide a high-level description of the changes made by your pull request.
|
||||
Please use the following link syntaxes:
|
||||
|
||||
Include references to all related GitHub issues and other pull requests, for example:
|
||||
|
||||
Fixes #123
|
||||
Implements #254
|
||||
See also #23
|
||||
- #49 (to reference issues in the current repository)
|
||||
- strongloop/loopback#49 (to reference issues in another repository)
|
||||
-->
|
||||
|
||||
## Checklist
|
||||
- None
|
||||
|
||||
👉 [Read and sign the CLA (Contributor License Agreement)](https://cla.strongloop.com/agreements/strongloop/loopback-context) 👈
|
||||
### Checklist
|
||||
|
||||
<!--
|
||||
Please mark your choice with an "x" (i.e. [x], see
|
||||
https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments)
|
||||
-->
|
||||
|
||||
- [ ] `npm test` passes on your machine
|
||||
- [ ] New tests added or existing tests modified to cover all changes
|
||||
- [ ] Code conforms with the [style guide](https://loopback.io/doc/en/contrib/style-guide-es6.html)
|
||||
- [ ] Commit messages are following our [guidelines](https://loopback.io/doc/en/contrib/git-commit-messages.html)
|
||||
- [ ] Code conforms with the [style
|
||||
guide](http://loopback.io/doc/en/contrib/style-guide.html)
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 60
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 14
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- pinned
|
||||
- security
|
||||
- critical
|
||||
- p1
|
||||
- major
|
||||
- good first issue
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: stale
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: >
|
||||
This issue has been closed due to continued inactivity. Thank you for your understanding.
|
||||
If you believe this to be in error, please contact one of the code owners,
|
||||
listed in the `CODEOWNERS` file at the top-level of this repository.
|
|
@ -1,6 +1,7 @@
|
|||
sudo: false
|
||||
language: node_js
|
||||
node_js:
|
||||
- "4"
|
||||
- "6"
|
||||
- "7"
|
||||
- "8"
|
||||
- "10"
|
||||
- "12"
|
||||
|
|
44
CHANGES.md
44
CHANGES.md
|
@ -1,47 +1,3 @@
|
|||
2021-01-19, Version 3.5.2
|
||||
=========================
|
||||
|
||||
* chore: update LTS status to End-of-Life (Rifa Achrinza)
|
||||
|
||||
|
||||
2020-03-06, Version 3.5.1
|
||||
=========================
|
||||
|
||||
* Update LTS status in README (Miroslav Bajtoš)
|
||||
|
||||
|
||||
2020-02-17, Version 3.5.0
|
||||
=========================
|
||||
|
||||
* Add support for Node.js 12 (Ahmet Cetin)
|
||||
|
||||
* chore: enable stalebot (Diana Lau)
|
||||
|
||||
* chore: improve issue and PR templates (Nora)
|
||||
|
||||
* Drop support for Node.js 6.x (Miroslav Bajtoš)
|
||||
|
||||
* chore: update copyrights years (Agnes Lin)
|
||||
|
||||
|
||||
2019-01-02, Version 3.4.0
|
||||
=========================
|
||||
|
||||
* Travis: enable Node.js 10.x (Miroslav Bajtoš)
|
||||
|
||||
* Node version ^10.14 added to engines list (Ahmet Cetin)
|
||||
|
||||
* add lts annoucement (jannyHou)
|
||||
|
||||
* Upgrade dependecies, fix new linter errors (Miroslav Bajtoš)
|
||||
|
||||
* Drop support for Node.js 4.x, 5.x and 7.x (Miroslav Bajtoš)
|
||||
|
||||
* Create Issue and PR Templates (#36) (Sakib Hasan)
|
||||
|
||||
* Add CODEOWNERS file (Diana Lau)
|
||||
|
||||
|
||||
2017-07-21, Version 3.3.0
|
||||
=========================
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
# Lines starting with '#' are comments.
|
||||
# Each line is a file pattern followed by one or more owners,
|
||||
# the last matching pattern has the most precendence.
|
||||
|
||||
# Core team members from IBM
|
||||
* @bajtos @josieusa
|
25
README.md
25
README.md
|
@ -1,17 +1,5 @@
|
|||
# loopback-context
|
||||
|
||||
**⚠️ LoopBack 3 has reached end of life. We are no longer accepting pull requests or providing
|
||||
support for community users. The only exception is fixes for critical bugs and security
|
||||
vulnerabilities provided as part of support for IBM API Connect customers. (See
|
||||
[Module Long Term Support Policy](#module-long-term-support-policy) below.)**
|
||||
|
||||
We urge all LoopBack 3 users to migrate their applications to LoopBack 4 as
|
||||
soon as possible. Refer to our
|
||||
[Migration Guide](https://loopback.io/doc/en/lb4/migration-overview.html)
|
||||
for more information on how to upgrade.
|
||||
|
||||
## Overview
|
||||
|
||||
Current context for LoopBack applications, based on cls-hooked.
|
||||
|
||||
## WARNING
|
||||
|
@ -44,7 +32,7 @@ $ npm install --save loopback-context cls-hooked
|
|||
```
|
||||
|
||||
Make sure you are running on a Node.js version supported by this module
|
||||
(`^4.5`, `^5.10`, `^6.0`, `^7.0`, `^8.2.1` or `^10.14`). When installing, check the output of `npm install`
|
||||
(`^4.5`, `^5.10`, `^6.0`, `^7.0` or `^8.2.1`). When installing, check the output of `npm install`
|
||||
and make sure there are no `engine` related warnings.
|
||||
|
||||
## Usage
|
||||
|
@ -242,14 +230,3 @@ module.exports = function(YourModel) {
|
|||
...
|
||||
};
|
||||
```
|
||||
|
||||
## Module Long Term Support Policy
|
||||
|
||||
This module adopts the [Module Long Term Support (LTS)](http://github.com/CloudNativeJS/ModuleLTS) policy, with the following End Of Life (EOL) dates:
|
||||
|
||||
| Version | Status | Published | EOL |
|
||||
| ------- | --------------- | --------- | -------- |
|
||||
| 3.x | End-of-Life | Jan 2017 | Dec 2020 |
|
||||
| 1.x | End-of-Life | Aug 2016 | Apr 2019 |
|
||||
|
||||
Learn more about our LTS plan in the [docs](https://loopback.io/doc/en/contrib/Long-term-support.html).
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright IBM Corp. 2016. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// Copyright IBM Corp. 2015. All Rights Reserved.
|
||||
// Node module: loopback-context-cls
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright IBM Corp. 2016. All Rights Reserved.
|
||||
// Copyright IBM Corp. 2014,2016. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
|
19
package.json
19
package.json
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"name": "loopback-context",
|
||||
"version": "3.5.2",
|
||||
"version": "3.3.0",
|
||||
"description": "Current context for LoopBack applications, based on cls-hooked",
|
||||
"engines": {
|
||||
"node": "^8.2.1 || ^10.14 || ^12.15"
|
||||
"node": "^4.5 || ^5.10 || ^6.0 || ^7.0 || ^8.2.1"
|
||||
},
|
||||
"keywords": [
|
||||
"StrongLoop",
|
||||
|
@ -27,14 +27,13 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"async-1.5.2": "file:./test/stub-modules/async-1.5.2",
|
||||
"chai": "^4.1.2",
|
||||
"dirty-chai": "^2.0.1",
|
||||
"eslint": "^5.0.1",
|
||||
"eslint-config-loopback": "^10.0.0",
|
||||
"chai": "^3.5.0",
|
||||
"dirty-chai": "^1.2.2",
|
||||
"eslint": "^3.14.1",
|
||||
"eslint-config-loopback": "^8.0.0",
|
||||
"loopback": "^3.0.0",
|
||||
"mocha": "^5.2.0",
|
||||
"supertest": "^3.1.0",
|
||||
"mocha": "^2.5.3",
|
||||
"supertest": "^1.2.0",
|
||||
"when-3.7.7": "file:./test/stub-modules/when-3.7.7"
|
||||
},
|
||||
"author": "IBM Corp."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright IBM Corp. 2016,2017. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// Copyright IBM Corp. 2015,2016. All Rights Reserved.
|
||||
// Node module: loopback-context-cls
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright IBM Corp. 2016. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// Copyright IBM Corp. 2014,2016. All Rights Reserved.
|
||||
// Node module: loopback-context-cls
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
// Copyright IBM Corp. 2016. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
'use strict';
|
||||
|
||||
var chai = require('chai');
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright IBM Corp. 2016,2018. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// Copyright IBM Corp. 2013,2016. All Rights Reserved.
|
||||
// Node module: loopback-context-cls
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
|
@ -52,7 +52,7 @@ describe('LoopBack Context', function() {
|
|||
TestModel.test = function(inst, cb) {
|
||||
var tmpCtx = LoopBackContext.getCurrentContext();
|
||||
if (tmpCtx) tmpCtx.set('data', 'a value stored in context');
|
||||
if (process.domain) cb = process.domain.bind(cb); // IMPORTANT
|
||||
if (process.domain) cb = process.domain.bind(cb); // IMPORTANT
|
||||
runInOtherDomain(cb);
|
||||
};
|
||||
|
||||
|
@ -106,53 +106,53 @@ describe('LoopBack Context', function() {
|
|||
// https://gist.github.com/marlonkjoseph/f42f3c71f746896a0d4b7279a34ea753
|
||||
// Heavily edited by others
|
||||
it('keeps context when using waterfall() from async 1.5.2',
|
||||
function(done) {
|
||||
LoopBackContext.runInContext(function() {
|
||||
function(done) {
|
||||
LoopBackContext.runInContext(function() {
|
||||
// Trigger async waterfall callbacks
|
||||
asyncV152.waterfall([
|
||||
function pushToContext(next) {
|
||||
var ctx = LoopBackContext.getCurrentContext();
|
||||
expect(ctx).is.an('object');
|
||||
ctx.set('test-key', 'test-value');
|
||||
next();
|
||||
},
|
||||
function pullFromContext(next) {
|
||||
var ctx = LoopBackContext.getCurrentContext();
|
||||
expect(ctx).is.an('object');
|
||||
var testValue = ctx && ctx.get('test-key', 'test-value');
|
||||
next(null, testValue);
|
||||
},
|
||||
function verify(testValue, next) {
|
||||
expect(testValue).to.equal('test-value');
|
||||
next();
|
||||
},
|
||||
], done);
|
||||
});
|
||||
asyncV152.waterfall([
|
||||
function pushToContext(next) {
|
||||
var ctx = LoopBackContext.getCurrentContext();
|
||||
expect(ctx).is.an('object');
|
||||
ctx.set('test-key', 'test-value');
|
||||
next();
|
||||
},
|
||||
function pullFromContext(next) {
|
||||
var ctx = LoopBackContext.getCurrentContext();
|
||||
expect(ctx).is.an('object');
|
||||
var testValue = ctx && ctx.get('test-key', 'test-value');
|
||||
next(null, testValue);
|
||||
},
|
||||
function verify(testValue, next) {
|
||||
expect(testValue).to.equal('test-value');
|
||||
next();
|
||||
},
|
||||
], done);
|
||||
});
|
||||
});
|
||||
|
||||
it('handles concurrent then() calls with when v3.7.7 promises & bind option',
|
||||
function() {
|
||||
return Promise.all([
|
||||
runWithPushedValue('test-value-1', {bind: true}),
|
||||
runWithPushedValue('test-value-2', {bind: true}),
|
||||
])
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(0);
|
||||
});
|
||||
function() {
|
||||
return Promise.all([
|
||||
runWithPushedValue('test-value-1', {bind: true}),
|
||||
runWithPushedValue('test-value-2', {bind: true}),
|
||||
])
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(0);
|
||||
});
|
||||
});
|
||||
|
||||
it('fails once without bind option and when v3.7.7 promises',
|
||||
function() {
|
||||
return Promise.all([
|
||||
runWithPushedValue('test-value-3'),
|
||||
runWithPushedValue('test-value-4'),
|
||||
])
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(1);
|
||||
});
|
||||
function() {
|
||||
return Promise.all([
|
||||
runWithPushedValue('test-value-3'),
|
||||
runWithPushedValue('test-value-4'),
|
||||
])
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(1);
|
||||
});
|
||||
});
|
||||
|
||||
var timeout = 100;
|
||||
|
||||
|
@ -191,23 +191,23 @@ describe('LoopBack Context', function() {
|
|||
runWithRequestId('test-value-5', true),
|
||||
runWithRequestId('test-value-6', true),
|
||||
])
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(0);
|
||||
});
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(0);
|
||||
});
|
||||
});
|
||||
|
||||
it('fails & mixes up ctx among requests in mw chains if next() cb is unbound',
|
||||
function() {
|
||||
return Promise.all([
|
||||
runWithRequestId('test-value-7'),
|
||||
runWithRequestId('test-value-8'),
|
||||
])
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(1);
|
||||
});
|
||||
function() {
|
||||
return Promise.all([
|
||||
runWithRequestId('test-value-7'),
|
||||
runWithRequestId('test-value-8'),
|
||||
])
|
||||
.then(function verify(values) {
|
||||
var failureCount = getFailureCount(values);
|
||||
expect(failureCount).to.equal(1);
|
||||
});
|
||||
});
|
||||
|
||||
function runWithRequestId(pushedValue, bindNextCb) {
|
||||
return new Promise(function chainExecutor(outerResolve, reject) {
|
||||
|
|
|
@ -1,7 +1,2 @@
|
|||
// Copyright IBM Corp. 2017. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
'use strict';
|
||||
module.exports = require('async');
|
||||
|
|
|
@ -1,7 +1,2 @@
|
|||
// Copyright IBM Corp. 2017. All Rights Reserved.
|
||||
// Node module: loopback-context
|
||||
// This file is licensed under the MIT License.
|
||||
// License text available at https://opensource.org/licenses/MIT
|
||||
|
||||
'use strict';
|
||||
module.exports = require('when');
|
||||
|
|
Loading…
Reference in New Issue