Skip to content

Commit 3811e9d

Browse files
jasonmitoffirgolan
authored andcommitted
fix: Changes self to global, rollup-plugin-node-globals makes isomorphic (#54)
* fix: Changes self to global, rollup-plugin-node-globals makes isomorphic * chore: Adding linting rule for whitelisting global
1 parent 7135f67 commit 3811e9d

File tree

8 files changed

+28
-21
lines changed

8 files changed

+28
-21
lines changed

.eslintrc.js

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ module.exports = {
99
},
1010
plugins: ['prettier'],
1111
extends: ['eslint:recommended', 'prettier'],
12+
globals: {
13+
global: true
14+
},
1215
env: {
1316
browser: true,
1417
es6: true

packages/@pollyjs/core/src/adapters/fetch/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import Adapter from '@pollyjs/adapter';
22
import serializeHeaders from './utils/serialize-headers';
33

4-
const nativeFetch = self.fetch;
4+
const nativeFetch = global.fetch;
55
const { defineProperty } = Object;
66

77
export default class FetchAdapter extends Adapter {
88
onConnect() {
99
this.assert('Fetch global not found.', nativeFetch);
1010
this.assert(
1111
'Running concurrent fetch adapters is unsupported, stop any running Polly instances.',
12-
self.fetch === nativeFetch
12+
global.fetch === nativeFetch
1313
);
1414

1515
this.native = nativeFetch;
16-
self.fetch = (url, options = {}) =>
16+
global.fetch = (url, options = {}) =>
1717
this.handleRequest({
1818
url,
1919
method: options.method || 'GET',
@@ -24,7 +24,7 @@ export default class FetchAdapter extends Adapter {
2424
}
2525

2626
onDisconnect() {
27-
self.fetch = nativeFetch;
27+
global.fetch = nativeFetch;
2828
}
2929

3030
async onRecord(pollyRequest) {
@@ -50,7 +50,7 @@ export default class FetchAdapter extends Adapter {
5050
async onPassthrough(pollyRequest) {
5151
const [, options] = pollyRequest.requestArguments;
5252

53-
const response = await this.native.apply(self, [
53+
const response = await this.native.apply(global, [
5454
pollyRequest.url,
5555
{
5656
...options,

packages/@pollyjs/core/src/adapters/xhr/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default class XHRAdapter extends Adapter {
1010
this.assert('XHR global not found.', FakeXHR.xhr.supportsXHR);
1111
this.assert(
1212
'Running concurrent XHR adapters is unsupported, stop any running Polly instances.',
13-
self.XMLHttpRequest === FakeXHR.xhr.GlobalXMLHttpRequest
13+
global.XMLHttpRequest === FakeXHR.xhr.GlobalXMLHttpRequest
1414
);
1515

1616
this.native = FakeXHR.xhr.GlobalXMLHttpRequest;

packages/@pollyjs/core/src/persisters/local-storage/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Persister from '@pollyjs/persister';
22
import stringify from 'json-stable-stringify';
33

44
export default class LocalStoragePersister extends Persister {
5-
constructor(polly, store = self.localStorage) {
5+
constructor(polly, store = global.localStorage) {
66
super(polly);
77
this._store = store;
88
this._namespace = '__pollyjs__';

packages/@pollyjs/core/src/persisters/rest/ajax.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const { keys } = Object;
2-
const REQUEST_ASYNC = !/PhantomJS/.test(self.navigator.userAgent);
3-
const NativeXMLHttpRequest = self.XMLHttpRequest;
2+
const REQUEST_ASYNC =
3+
!('navigator' in global) || !/PhantomJS/.test(global.navigator.userAgent);
4+
const NativeXMLHttpRequest = global.XMLHttpRequest;
45

56
export default function ajax(url, options = {}) {
67
return new Promise((resolve, reject) => {

packages/@pollyjs/core/src/test-helpers/mocha.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ function generateRecordingName(context) {
1313
return parts.reverse().join('/');
1414
}
1515

16-
export default function setupMocha(defaults = {}, ctx = self) {
16+
export default function setupMocha(defaults = {}, ctx = global) {
1717
setupMocha.beforeEach(defaults, ctx);
1818
setupMocha.afterEach(ctx);
1919
}
2020

21-
setupMocha.beforeEach = function setupMochaBeforeEach(defaults, ctx = self) {
21+
setupMocha.beforeEach = function setupMochaBeforeEach(defaults, ctx = global) {
2222
ctx.beforeEach(function() {
2323
return beforeEach(this, generateRecordingName(this), defaults);
2424
});
2525
};
2626

27-
setupMocha.afterEach = function setupMochaAfterEach(ctx = self) {
27+
setupMocha.afterEach = function setupMochaAfterEach(ctx = global) {
2828
ctx.afterEach(function() {
2929
return afterEach(this, 'mocha');
3030
});

packages/@pollyjs/core/tests/helpers/setup-fetch.js

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1+
/* globals beforeEach, afterEach */
12
import xhrRequest from './xhr-request';
23

34
export default function setupFetch(fetchType) {
4-
beforeEach(fetchType);
5-
afterEach();
5+
beforeEachWrapper(fetchType);
6+
afterEachWrapper();
67
}
78

8-
export function beforeEach(fetchType) {
9-
self.beforeEach(function() {
9+
function beforeEachWrapper(fetchType) {
10+
beforeEach(function() {
1011
this.fetch = (...args) => {
1112
if (fetchType === 'xhr') {
1213
return xhrRequest(...args);
@@ -23,10 +24,12 @@ export function beforeEach(fetchType) {
2324
});
2425
}
2526

26-
export function afterEach() {
27-
self.afterEach(async function() {
27+
export function afterEachWrapper() {
28+
afterEach(async function() {
2829
this.polly.stop();
2930

3031
await this.fetchRecord({ method: 'DELETE' });
3132
});
3233
}
34+
export { beforeEachWrapper as beforeEach };
35+
export { afterEachWrapper as afterEach };

packages/@pollyjs/core/tests/unit/polly-test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Adapter from '@pollyjs/adapter';
55
import Persister from '@pollyjs/persister';
66
import { MODES } from '@pollyjs/utils';
77

8-
const nativeFetch = self.fetch;
8+
const nativeFetch = global.fetch;
99

1010
describe('Unit | Polly', function() {
1111
it('should exist', function() {
@@ -201,9 +201,9 @@ describe('Unit | Polly', function() {
201201
});
202202

203203
it('should connect to new adapters', async function() {
204-
expect(nativeFetch).to.equal(self.fetch);
204+
expect(nativeFetch).to.equal(global.fetch);
205205
this.polly.configure({ adapters: ['fetch'] });
206-
expect(nativeFetch).to.not.equal(self.fetch);
206+
expect(nativeFetch).to.not.equal(global.fetch);
207207
});
208208
});
209209

0 commit comments

Comments
 (0)