@effection/fetch
Advanced tools
Comparing version 1.0.0 to 2.0.0-beta.0
101
CHANGELOG.md
# @effection/fetch | ||
## 2.0.0-preview.11 | ||
### Patch Changes | ||
- Updated dependencies [9998088] | ||
- Updated dependencies [2bce454] | ||
- Updated dependencies [1981b35] | ||
- Updated dependencies [88dc59a] | ||
- @effection/core@2.0.0-preview.12 | ||
## 2.0.0-preview.10 | ||
### Patch Changes | ||
- Updated dependencies [88eca21] | ||
- Updated dependencies [ae8d090] | ||
- Updated dependencies [8bb4514] | ||
- Updated dependencies [44c354d] | ||
- @effection/core@2.0.0-preview.11 | ||
## 2.0.0-preview.9 | ||
### Patch Changes | ||
- Updated dependencies [625b521] | ||
- Updated dependencies [a06c679] | ||
- Updated dependencies [4d04159] | ||
- Updated dependencies [625b521] | ||
- @effection/core@2.0.0-preview.10 | ||
## 2.0.0-preview.8 | ||
### Patch Changes | ||
- Updated dependencies [110a2cd] | ||
- Updated dependencies [e2545b2] | ||
- Updated dependencies [2b92370] | ||
- Updated dependencies [00562fd] | ||
- Updated dependencies [110a2cd] | ||
- Updated dependencies [110a2cd] | ||
- Updated dependencies [02446ad] | ||
- Updated dependencies [da86a9c] | ||
- @effection/core@2.0.0-preview.9 | ||
## 2.0.0-preview.7 | ||
### Patch Changes | ||
- a13987f: make operation resolution an interface. Make operation iterators | ||
an operation. | ||
- Updated dependencies [a13987f] | ||
- @effection/core@2.0.0-preview.8 | ||
## 2.0.0-preview.6 | ||
### Patch Changes | ||
- Updated dependencies [2bad074] | ||
- @effection/core@2.0.0-preview.7 | ||
## 2.0.0-preview.5 | ||
### Patch Changes | ||
- 1222756: Use strict dependency requirements for internal dependencies while in prerelease mode | ||
- Updated dependencies [1222756] | ||
- @effection/core@2.0.0-preview.6 | ||
## 2.0.0-preview.4 | ||
### Patch Changes | ||
- cb25211: reset these pre-release versions to 2.0.0 series | ||
## 2.0.0-preview.2 | ||
### Patch Changes | ||
- 93ec0d6: Include CHANGELOGS and src with all packages | ||
- Updated dependencies [93ec0d6] | ||
- @effection/core@2.0.0-preview.2 | ||
## 2.0.0-preview.1 | ||
### Patch Changes | ||
- 80143d5: Fix packaging | ||
- Updated dependencies [80143d5] | ||
- @effection/core@2.0.0-preview.1 | ||
## 2.0.0-preview.0 | ||
### Major Changes | ||
- Version 2 | ||
### Patch Changes | ||
- Updated dependencies [undefined] | ||
- effection@2.0.0-preview.0 | ||
## 1.0.0 | ||
@@ -4,0 +105,0 @@ |
'use strict'; | ||
var abortController = require('abort-controller'); | ||
var effection = require('effection'); | ||
var crossFetch = require('cross-fetch'); | ||
function* fetch(info, init) { | ||
if (init === void 0) { | ||
init = {}; | ||
function fetch(info, requestInit) { | ||
if (requestInit === void 0) { | ||
requestInit = {}; | ||
} | ||
var controller = new abortController.AbortController(); | ||
init.signal = controller.signal; | ||
var response; | ||
try { | ||
response = yield crossFetch.fetch(info, init); | ||
return yield effection.resource(response, function* () { | ||
function* init(scope) { | ||
var controller = new abortController.AbortController(); | ||
scope.spawn(function* () { | ||
try { | ||
@@ -25,7 +20,39 @@ yield; | ||
}); | ||
} finally { | ||
if (!response) { | ||
controller.abort(); | ||
requestInit.signal = controller.signal; | ||
var response = yield crossFetch.fetch(info, requestInit); | ||
return response; | ||
} | ||
return { | ||
init: init, | ||
arrayBuffer: function* arrayBuffer() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.arrayBuffer(); | ||
}, | ||
blob: function* blob() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.blob(); | ||
}, | ||
formData: function* formData() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.formData(); | ||
}, | ||
json: function* json() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.json(); | ||
}, | ||
text: function* text() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.text(); | ||
} | ||
} | ||
}; | ||
} | ||
@@ -32,0 +59,0 @@ |
@@ -1,2 +0,2 @@ | ||
"use strict";var r=require("abort-controller"),e=require("effection"),t=require("cross-fetch");Object.defineProperty(exports,"AbortController",{enumerable:!0,get:function(){return r.AbortController}}),exports.fetch=function*(o,n){void 0===n&&(n={});var l,i=new r.AbortController;n.signal=i.signal;try{return l=yield t.fetch(o,n),yield e.resource(l,(function*(){try{yield}finally{i.abort()}}))}finally{l||i.abort()}}; | ||
"use strict";var r=require("abort-controller"),t=require("cross-fetch");Object.defineProperty(exports,"AbortController",{enumerable:!0,get:function(){return r.AbortController}}),exports.fetch=function(e,n){function*i(i){var o=new r.AbortController;return i.spawn((function*(){try{yield}finally{o.abort()}})),n.signal=o.signal,yield t.fetch(e,n)}return void 0===n&&(n={}),{init:i,arrayBuffer:function*(){var r=yield{init:i};return yield r.arrayBuffer()},blob:function*(){var r=yield{init:i};return yield r.blob()},formData:function*(){var r=yield{init:i};return yield r.formData()},json:function*(){var r=yield{init:i};return yield r.json()},text:function*(){var r=yield{init:i};return yield r.text()}}}; | ||
//# sourceMappingURL=fetch.cjs.production.min.js.map |
@@ -1,2 +0,9 @@ | ||
import { Operation } from 'effection'; | ||
export declare function fetch(info: RequestInfo, init?: RequestInit): Operation<Response>; | ||
import { Operation, Resource } from '@effection/core'; | ||
export interface Fetch extends Resource<Response> { | ||
arrayBuffer(): Operation<ArrayBuffer>; | ||
blob(): Operation<Blob>; | ||
formData(): Operation<FormData>; | ||
json(): Operation<unknown>; | ||
text(): Operation<string>; | ||
} | ||
export declare function fetch(info: RequestInfo, requestInit?: RequestInit): Fetch; |
import { AbortController } from 'abort-controller'; | ||
export { AbortController } from 'abort-controller'; | ||
import { resource } from 'effection'; | ||
import { fetch as fetch$1 } from 'cross-fetch'; | ||
function* fetch(info, init) { | ||
if (init === void 0) { | ||
init = {}; | ||
function fetch(info, requestInit) { | ||
if (requestInit === void 0) { | ||
requestInit = {}; | ||
} | ||
var controller = new AbortController(); | ||
init.signal = controller.signal; | ||
var response; | ||
try { | ||
response = yield fetch$1(info, init); | ||
return yield resource(response, function* () { | ||
function* init(scope) { | ||
var controller = new AbortController(); | ||
scope.spawn(function* () { | ||
try { | ||
@@ -24,7 +19,39 @@ yield; | ||
}); | ||
} finally { | ||
if (!response) { | ||
controller.abort(); | ||
requestInit.signal = controller.signal; | ||
var response = yield fetch$1(info, requestInit); | ||
return response; | ||
} | ||
return { | ||
init: init, | ||
arrayBuffer: function* arrayBuffer() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.arrayBuffer(); | ||
}, | ||
blob: function* blob() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.blob(); | ||
}, | ||
formData: function* formData() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.formData(); | ||
}, | ||
json: function* json() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.json(); | ||
}, | ||
text: function* text() { | ||
var response = yield { | ||
init: init | ||
}; | ||
return yield response.text(); | ||
} | ||
} | ||
}; | ||
} | ||
@@ -31,0 +58,0 @@ |
{ | ||
"name": "@effection/fetch", | ||
"version": "1.0.0", | ||
"version": "2.0.0-beta.0", | ||
"description": "Fetch operation for Effection", | ||
@@ -11,5 +11,6 @@ "main": "dist/index.js", | ||
"files": [ | ||
"dist/*", | ||
"README.md", | ||
"src" | ||
"CHANGELOG.md", | ||
"dist/**/*", | ||
"src/**/*" | ||
], | ||
@@ -23,6 +24,7 @@ "scripts": { | ||
"devDependencies": { | ||
"@effection/mocha": "2.0.0-beta.0", | ||
"@frontside/tsconfig": "^0.0.1", | ||
"@types/node": "^13.13.4", | ||
"@types/node": "^13.13.5", | ||
"expect": "26.0.1", | ||
"mocha": "7.2.0", | ||
"mocha": "8.3.1", | ||
"ts-node": "8.10.2", | ||
@@ -33,7 +35,7 @@ "tsdx": "0.13.2", | ||
"dependencies": { | ||
"@effection/core": "2.0.0-beta.0", | ||
"abort-controller": "^3.0.0", | ||
"cross-fetch": "^3.0.4", | ||
"effection": "^1.0.0", | ||
"node-fetch": "^2.6.1" | ||
} | ||
} |
@@ -1,12 +0,18 @@ | ||
import { Operation, resource } from 'effection'; | ||
import { Task, Operation, Resource } from '@effection/core'; | ||
import { fetch as nativeFetch } from 'cross-fetch'; | ||
import { AbortController } from 'abort-controller'; | ||
export function* fetch(info: RequestInfo, init: RequestInit = {}): Operation<Response> { | ||
let controller = new AbortController(); | ||
init.signal = controller.signal; | ||
let response: Response | undefined; | ||
try { | ||
response = yield nativeFetch(info, init); | ||
return yield resource(response as Response, function*() { | ||
export interface Fetch extends Resource<Response> { | ||
arrayBuffer(): Operation<ArrayBuffer>; | ||
blob(): Operation<Blob>; | ||
formData(): Operation<FormData>; | ||
json(): Operation<unknown>; | ||
text(): Operation<string>; | ||
} | ||
export function fetch(info: RequestInfo, requestInit: RequestInit = {}): Fetch { | ||
function* init(scope: Task) { | ||
let controller = new AbortController(); | ||
scope.spawn(function*() { | ||
try { | ||
@@ -18,7 +24,32 @@ yield; | ||
}); | ||
} finally { | ||
if (!response) { | ||
controller.abort(); | ||
} | ||
} | ||
requestInit.signal = controller.signal; | ||
let response = yield nativeFetch(info, requestInit); | ||
return response; | ||
}; | ||
return { | ||
init, | ||
*arrayBuffer() { | ||
let response = yield { init }; | ||
return yield response.arrayBuffer(); | ||
}, | ||
*blob() { | ||
let response = yield { init }; | ||
return yield response.blob(); | ||
}, | ||
*formData() { | ||
let response = yield { init }; | ||
return yield response.formData(); | ||
}, | ||
*json() { | ||
let response = yield { init }; | ||
return yield response.json(); | ||
}, | ||
*text() { | ||
let response = yield { init }; | ||
return yield response.text(); | ||
}, | ||
}; | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
17234
189
8
3
+ Added@effection/core@2.0.0-beta.0
+ Added@effection/core@2.0.0-beta.0(transitive)
- Removedeffection@^1.0.0
- Removedeffection@1.0.0(transitive)