react-inlinesvg 2.2.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -11
- package/esm/index.d.ts +4 -1
- package/esm/index.js +16 -8
- package/esm/index.js.map +1 -1
- package/esm/types.d.ts +1 -0
- package/lib/index.d.ts +4 -1
- package/lib/index.js +23 -14
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +1 -0
- package/package.json +24 -23
- package/src/index.tsx +11 -4
- package/src/types.ts +1 -0
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ npm i react-inlinesvg
|
|
|
20
20
|
|
|
21
21
|
And import it into your code:
|
|
22
22
|
|
|
23
|
-
```
|
|
23
|
+
```tsx
|
|
24
24
|
import React, { useRef } from 'react';
|
|
25
25
|
import SVG, { Props as SVGProps } from 'react-inlinesvg';
|
|
26
26
|
|
|
@@ -34,8 +34,8 @@ export function App() {
|
|
|
34
34
|
return (
|
|
35
35
|
<main>
|
|
36
36
|
<SVG src={`${process.env.PUBLIC_URL}/menu.svg`} width={24} height="auto" title="Menu" />
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
<Logo ref={logo} src={`${process.env.PUBLIC_URL}/logo.svg`} />
|
|
38
|
+
</main>
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
41
|
```
|
|
@@ -64,6 +64,9 @@ Cache remote SVGs.
|
|
|
64
64
|
**description** {string}
|
|
65
65
|
A description for your SVG. It will override an existing `<desc>` tag.
|
|
66
66
|
|
|
67
|
+
**fetchOptions** {RequestInit}
|
|
68
|
+
Custom options for the [request](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request).
|
|
69
|
+
|
|
67
70
|
**innerRef** {React.Ref}
|
|
68
71
|
Set a ref in SVGElement.
|
|
69
72
|
|
|
@@ -76,7 +79,7 @@ This will receive a single argument with:
|
|
|
76
79
|
|
|
77
80
|
- a `FetchError` with:
|
|
78
81
|
|
|
79
|
-
```
|
|
82
|
+
```typescript
|
|
80
83
|
{
|
|
81
84
|
message: string;
|
|
82
85
|
type: string;
|
|
@@ -87,11 +90,11 @@ This will receive a single argument with:
|
|
|
87
90
|
|
|
88
91
|
- or an `InlineSVGError`, which has the following properties:
|
|
89
92
|
|
|
90
|
-
```
|
|
93
|
+
```typescript
|
|
91
94
|
{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
name: 'InlineSVGError';
|
|
96
|
+
data: object; // optional
|
|
97
|
+
message: string;
|
|
95
98
|
}
|
|
96
99
|
```
|
|
97
100
|
|
|
@@ -111,7 +114,7 @@ A string to use with `uniquifyIDs`.
|
|
|
111
114
|
**uniquifyIDs** {boolean} ▶︎ `false`
|
|
112
115
|
Create unique IDs for each icon.
|
|
113
116
|
|
|
114
|
-
> Any additional props will be passed down to the SVG element.
|
|
117
|
+
> Any additional props will be passed down to the SVG element.
|
|
115
118
|
|
|
116
119
|
### Example
|
|
117
120
|
|
|
@@ -121,9 +124,9 @@ Create unique IDs for each icon.
|
|
|
121
124
|
cacheRequests={true}
|
|
122
125
|
description="The React logo"
|
|
123
126
|
loader={<span>Loading...</span>}
|
|
124
|
-
onError={error => console.log(error.message)}
|
|
127
|
+
onError={(error) => console.log(error.message)}
|
|
125
128
|
onLoad={(src, hasCache) => console.log(src, hasCache)}
|
|
126
|
-
preProcessor={code => code.replace(/fill=".*?"/g, 'fill="currentColor"')}
|
|
129
|
+
preProcessor={(code) => code.replace(/fill=".*?"/g, 'fill="currentColor"')}
|
|
127
130
|
src="https://cdn.svgporn.com/logos/react.svg"
|
|
128
131
|
title="React"
|
|
129
132
|
uniqueHash="a1f8d1"
|
|
@@ -131,6 +134,11 @@ Create unique IDs for each icon.
|
|
|
131
134
|
/>
|
|
132
135
|
```
|
|
133
136
|
|
|
137
|
+
## Caching
|
|
138
|
+
|
|
139
|
+
The internal cache is exported as `cacheStore` if you need to debug or pre-cache some files.
|
|
140
|
+
⚠️ Use it at your own risk.
|
|
141
|
+
|
|
134
142
|
## Browser Support
|
|
135
143
|
|
|
136
144
|
Any browsers that support inlining [SVGs](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg) and [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) will work.
|
package/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Props, State } from './types';
|
|
2
|
+
import { Props, State, StorageItem } from './types';
|
|
3
|
+
export declare const cacheStore: {
|
|
4
|
+
[key: string]: StorageItem;
|
|
5
|
+
};
|
|
3
6
|
export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
4
7
|
constructor(props: Props);
|
|
5
8
|
private isActive;
|
package/esm/index.js
CHANGED
|
@@ -6,6 +6,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
6
6
|
return extendStatics(d, b);
|
|
7
7
|
};
|
|
8
8
|
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
9
11
|
extendStatics(d, b);
|
|
10
12
|
function __() { this.constructor = d; }
|
|
11
13
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -38,14 +40,15 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
38
40
|
}
|
|
39
41
|
return ar;
|
|
40
42
|
};
|
|
41
|
-
var
|
|
42
|
-
for (var
|
|
43
|
-
|
|
43
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
44
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
45
|
+
to[j] = from[i];
|
|
46
|
+
return to;
|
|
44
47
|
};
|
|
45
48
|
import * as React from 'react';
|
|
46
49
|
import convert from 'react-from-dom';
|
|
47
50
|
import { STATUS, canUseDOM, isSupportedEnvironment, randomString, removeProperties, } from './helpers';
|
|
48
|
-
var cacheStore = Object.create(null);
|
|
51
|
+
export var cacheStore = Object.create(null);
|
|
49
52
|
var InlineSVG = /** @class */ (function (_super) {
|
|
50
53
|
__extends(InlineSVG, _super);
|
|
51
54
|
function InlineSVG(props) {
|
|
@@ -82,12 +85,12 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
82
85
|
}
|
|
83
86
|
};
|
|
84
87
|
_this.request = function () {
|
|
85
|
-
var _a = _this.props, cacheRequests = _a.cacheRequests, src = _a.src;
|
|
88
|
+
var _a = _this.props, cacheRequests = _a.cacheRequests, fetchOptions = _a.fetchOptions, src = _a.src;
|
|
86
89
|
try {
|
|
87
90
|
if (cacheRequests) {
|
|
88
91
|
cacheStore[src] = { content: '', status: STATUS.LOADING, queue: [] };
|
|
89
92
|
}
|
|
90
|
-
return fetch(src)
|
|
93
|
+
return fetch(src, fetchOptions)
|
|
91
94
|
.then(function (response) {
|
|
92
95
|
var contentType = response.headers.get('content-type');
|
|
93
96
|
var _a = __read((contentType || '').split(/ ?; ?/), 1), fileType = _a[0];
|
|
@@ -100,6 +103,11 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
100
103
|
return response.text();
|
|
101
104
|
})
|
|
102
105
|
.then(function (content) {
|
|
106
|
+
var currentSrc = _this.props.src;
|
|
107
|
+
// the current src don't match the previous one, skipping...
|
|
108
|
+
if (src !== currentSrc) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
103
111
|
_this.handleLoad(content);
|
|
104
112
|
/* istanbul ignore else */
|
|
105
113
|
if (cacheRequests) {
|
|
@@ -210,7 +218,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
210
218
|
if (!uniquifyIDs) {
|
|
211
219
|
return node;
|
|
212
220
|
}
|
|
213
|
-
|
|
221
|
+
__spreadArray([], __read(node.children)).map(function (d) {
|
|
214
222
|
if (d.attributes && d.attributes.length) {
|
|
215
223
|
var attributes_1 = Object.values(d.attributes).map(function (a) {
|
|
216
224
|
var attr = a;
|
|
@@ -323,7 +331,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
323
331
|
InlineSVG.prototype.render = function () {
|
|
324
332
|
var _a = this.state, element = _a.element, status = _a.status;
|
|
325
333
|
var _b = this.props, _c = _b.children, children = _c === void 0 ? null : _c, innerRef = _b.innerRef, _d = _b.loader, loader = _d === void 0 ? null : _d;
|
|
326
|
-
var elementProps = removeProperties(this.props, 'baseURL', 'cacheRequests', 'children', 'description', 'innerRef', 'loader', 'onError', 'onLoad', 'preProcessor', 'src', 'title', 'uniqueHash', 'uniquifyIDs');
|
|
334
|
+
var elementProps = removeProperties(this.props, 'baseURL', 'cacheRequests', 'children', 'description', 'fetchOptions', 'innerRef', 'loader', 'onError', 'onLoad', 'preProcessor', 'src', 'title', 'uniqueHash', 'uniquifyIDs');
|
|
327
335
|
if (!canUseDOM()) {
|
|
328
336
|
return loader;
|
|
329
337
|
}
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/esm/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface Props extends Omit<React.SVGProps<SVGElement>, 'onLoad' | 'onEr
|
|
|
9
9
|
cacheRequests?: boolean;
|
|
10
10
|
children?: React.ReactNode;
|
|
11
11
|
description?: string;
|
|
12
|
+
fetchOptions?: RequestInit;
|
|
12
13
|
innerRef?: React.Ref<SVGElement>;
|
|
13
14
|
loader?: React.ReactNode;
|
|
14
15
|
onError?: ErrorCallback;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Props, State } from './types';
|
|
2
|
+
import { Props, State, StorageItem } from './types';
|
|
3
|
+
export declare const cacheStore: {
|
|
4
|
+
[key: string]: StorageItem;
|
|
5
|
+
};
|
|
3
6
|
export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
4
7
|
constructor(props: Props);
|
|
5
8
|
private isActive;
|
package/lib/index.js
CHANGED
|
@@ -7,6 +7,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -49,15 +51,17 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
49
51
|
}
|
|
50
52
|
return ar;
|
|
51
53
|
};
|
|
52
|
-
var
|
|
53
|
-
for (var
|
|
54
|
-
|
|
54
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
55
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
56
|
+
to[j] = from[i];
|
|
57
|
+
return to;
|
|
55
58
|
};
|
|
56
59
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
+
exports.cacheStore = void 0;
|
|
57
61
|
var React = require("react");
|
|
58
62
|
var react_from_dom_1 = require("react-from-dom");
|
|
59
63
|
var helpers_1 = require("./helpers");
|
|
60
|
-
|
|
64
|
+
exports.cacheStore = Object.create(null);
|
|
61
65
|
var InlineSVG = /** @class */ (function (_super) {
|
|
62
66
|
__extends(InlineSVG, _super);
|
|
63
67
|
function InlineSVG(props) {
|
|
@@ -94,12 +98,12 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
94
98
|
}
|
|
95
99
|
};
|
|
96
100
|
_this.request = function () {
|
|
97
|
-
var _a = _this.props, cacheRequests = _a.cacheRequests, src = _a.src;
|
|
101
|
+
var _a = _this.props, cacheRequests = _a.cacheRequests, fetchOptions = _a.fetchOptions, src = _a.src;
|
|
98
102
|
try {
|
|
99
103
|
if (cacheRequests) {
|
|
100
|
-
cacheStore[src] = { content: '', status: helpers_1.STATUS.LOADING, queue: [] };
|
|
104
|
+
exports.cacheStore[src] = { content: '', status: helpers_1.STATUS.LOADING, queue: [] };
|
|
101
105
|
}
|
|
102
|
-
return fetch(src)
|
|
106
|
+
return fetch(src, fetchOptions)
|
|
103
107
|
.then(function (response) {
|
|
104
108
|
var contentType = response.headers.get('content-type');
|
|
105
109
|
var _a = __read((contentType || '').split(/ ?; ?/), 1), fileType = _a[0];
|
|
@@ -112,10 +116,15 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
112
116
|
return response.text();
|
|
113
117
|
})
|
|
114
118
|
.then(function (content) {
|
|
119
|
+
var currentSrc = _this.props.src;
|
|
120
|
+
// the current src don't match the previous one, skipping...
|
|
121
|
+
if (src !== currentSrc) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
115
124
|
_this.handleLoad(content);
|
|
116
125
|
/* istanbul ignore else */
|
|
117
126
|
if (cacheRequests) {
|
|
118
|
-
var cache = cacheStore[src];
|
|
127
|
+
var cache = exports.cacheStore[src];
|
|
119
128
|
/* istanbul ignore else */
|
|
120
129
|
if (cache) {
|
|
121
130
|
cache.content = content;
|
|
@@ -131,13 +140,13 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
131
140
|
_this.handleError(error);
|
|
132
141
|
/* istanbul ignore else */
|
|
133
142
|
if (cacheRequests) {
|
|
134
|
-
var cache = cacheStore[src];
|
|
143
|
+
var cache = exports.cacheStore[src];
|
|
135
144
|
/* istanbul ignore else */
|
|
136
145
|
if (cache) {
|
|
137
146
|
cache.queue.forEach(function (cb) {
|
|
138
147
|
cb(error);
|
|
139
148
|
});
|
|
140
|
-
delete cacheStore[src];
|
|
149
|
+
delete exports.cacheStore[src];
|
|
141
150
|
}
|
|
142
151
|
}
|
|
143
152
|
});
|
|
@@ -149,7 +158,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
149
158
|
_this.state = {
|
|
150
159
|
content: '',
|
|
151
160
|
element: null,
|
|
152
|
-
hasCache: !!props.cacheRequests && !!cacheStore[props.src],
|
|
161
|
+
hasCache: !!props.cacheRequests && !!exports.cacheStore[props.src],
|
|
153
162
|
status: helpers_1.STATUS.PENDING,
|
|
154
163
|
};
|
|
155
164
|
_this.hash = props.uniqueHash || helpers_1.randomString(8);
|
|
@@ -222,7 +231,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
222
231
|
if (!uniquifyIDs) {
|
|
223
232
|
return node;
|
|
224
233
|
}
|
|
225
|
-
|
|
234
|
+
__spreadArray([], __read(node.children)).map(function (d) {
|
|
226
235
|
if (d.attributes && d.attributes.length) {
|
|
227
236
|
var attributes_1 = Object.values(d.attributes).map(function (a) {
|
|
228
237
|
var attr = a;
|
|
@@ -305,7 +314,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
305
314
|
status: helpers_1.STATUS.LOADING,
|
|
306
315
|
}, function () {
|
|
307
316
|
var _a = _this.props, cacheRequests = _a.cacheRequests, src = _a.src;
|
|
308
|
-
var cache = cacheRequests && cacheStore[src];
|
|
317
|
+
var cache = cacheRequests && exports.cacheStore[src];
|
|
309
318
|
if (cache) {
|
|
310
319
|
/* istanbul ignore else */
|
|
311
320
|
if (cache.status === helpers_1.STATUS.LOADING) {
|
|
@@ -335,7 +344,7 @@ var InlineSVG = /** @class */ (function (_super) {
|
|
|
335
344
|
InlineSVG.prototype.render = function () {
|
|
336
345
|
var _a = this.state, element = _a.element, status = _a.status;
|
|
337
346
|
var _b = this.props, _c = _b.children, children = _c === void 0 ? null : _c, innerRef = _b.innerRef, _d = _b.loader, loader = _d === void 0 ? null : _d;
|
|
338
|
-
var elementProps = helpers_1.removeProperties(this.props, 'baseURL', 'cacheRequests', 'children', 'description', 'innerRef', 'loader', 'onError', 'onLoad', 'preProcessor', 'src', 'title', 'uniqueHash', 'uniquifyIDs');
|
|
347
|
+
var elementProps = helpers_1.removeProperties(this.props, 'baseURL', 'cacheRequests', 'children', 'description', 'fetchOptions', 'innerRef', 'loader', 'onError', 'onLoad', 'preProcessor', 'src', 'title', 'uniqueHash', 'uniquifyIDs');
|
|
339
348
|
if (!helpers_1.canUseDOM()) {
|
|
340
349
|
return loader;
|
|
341
350
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface Props extends Omit<React.SVGProps<SVGElement>, 'onLoad' | 'onEr
|
|
|
9
9
|
cacheRequests?: boolean;
|
|
10
10
|
children?: React.ReactNode;
|
|
11
11
|
description?: string;
|
|
12
|
+
fetchOptions?: RequestInit;
|
|
12
13
|
innerRef?: React.Ref<SVGElement>;
|
|
13
14
|
loader?: React.ReactNode;
|
|
14
15
|
onError?: ErrorCallback;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-inlinesvg",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "An SVG loader for React",
|
|
5
5
|
"author": "Gil Barbara <gilbarbara@gmail.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -36,52 +36,53 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"exenv": "^1.2.2",
|
|
39
|
-
"react-from-dom": "^0.
|
|
39
|
+
"react-from-dom": "^0.6.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
+
"@gilbarbara/helpers": "^0.2.0",
|
|
42
43
|
"@gilbarbara/tsconfig": "^0.1.0",
|
|
43
|
-
"@size-limit/preset-small-lib": "^4.
|
|
44
|
+
"@size-limit/preset-small-lib": "^4.10.2",
|
|
44
45
|
"@types/enzyme": "^3.10.8",
|
|
45
46
|
"@types/enzyme-adapter-react-16": "^1.0.6",
|
|
46
47
|
"@types/exenv": "^1.2.0",
|
|
47
48
|
"@types/fetch-mock": "^7.3.3",
|
|
48
|
-
"@types/jest": "^26.0.
|
|
49
|
-
"@types/node": "^
|
|
50
|
-
"@types/node-fetch": "^2.5.
|
|
51
|
-
"@types/react": "^
|
|
52
|
-
"@types/react-dom": "^
|
|
53
|
-
"@typescript-eslint/eslint-plugin": "^4.
|
|
54
|
-
"@typescript-eslint/parser": "^4.
|
|
49
|
+
"@types/jest": "^26.0.23",
|
|
50
|
+
"@types/node": "^15.0.1",
|
|
51
|
+
"@types/node-fetch": "^2.5.10",
|
|
52
|
+
"@types/react": "^17.0.4",
|
|
53
|
+
"@types/react-dom": "^17.0.3",
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "^4.22.0",
|
|
55
|
+
"@typescript-eslint/parser": "^4.22.0",
|
|
55
56
|
"del-cli": "^3.0.1",
|
|
56
57
|
"enzyme": "^3.11.0",
|
|
57
|
-
"enzyme-adapter-react-16": "^1.15.
|
|
58
|
-
"eslint": "^7.
|
|
58
|
+
"enzyme-adapter-react-16": "^1.15.6",
|
|
59
|
+
"eslint": "^7.25.0",
|
|
59
60
|
"eslint-config-airbnb": "^18.2.1",
|
|
60
|
-
"eslint-config-prettier": "^
|
|
61
|
+
"eslint-config-prettier": "^8.3.0",
|
|
61
62
|
"eslint-plugin-import": "^2.22.1",
|
|
62
63
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
|
63
|
-
"eslint-plugin-prettier": "^3.
|
|
64
|
-
"eslint-plugin-react": "^7.
|
|
64
|
+
"eslint-plugin-prettier": "^3.4.0",
|
|
65
|
+
"eslint-plugin-react": "^7.23.2",
|
|
65
66
|
"eslint-plugin-react-hooks": "^4.2.0",
|
|
66
67
|
"http-server": "^0.12.3",
|
|
67
|
-
"husky": "^4.3.
|
|
68
|
+
"husky": "^4.3.8",
|
|
68
69
|
"jest": "^26.6.3",
|
|
69
70
|
"jest-chain": "^1.1.5",
|
|
70
71
|
"jest-enzyme": "^7.1.2",
|
|
71
72
|
"jest-extended": "^0.11.5",
|
|
72
73
|
"jest-fetch-mock": "^3.0.3",
|
|
73
74
|
"jest-serializer-html": "^7.0.0",
|
|
74
|
-
"jest-watch-typeahead": "^0.6.
|
|
75
|
+
"jest-watch-typeahead": "^0.6.3",
|
|
75
76
|
"node-fetch": "^2.6.1",
|
|
76
77
|
"prettier": "^2.2.1",
|
|
77
78
|
"react": "^16.14.0",
|
|
78
79
|
"react-dom": "^16.14.0",
|
|
79
|
-
"repo-tools": "^0.2.
|
|
80
|
-
"size-limit": "^4.
|
|
81
|
-
"start-server-and-test": "^1.
|
|
82
|
-
"ts-jest": "^26.
|
|
80
|
+
"repo-tools": "^0.2.2",
|
|
81
|
+
"size-limit": "^4.10.2",
|
|
82
|
+
"start-server-and-test": "^1.12.1",
|
|
83
|
+
"ts-jest": "^26.5.5",
|
|
83
84
|
"ts-node": "^9.1.1",
|
|
84
|
-
"typescript": "^4.
|
|
85
|
+
"typescript": "^4.2.4"
|
|
85
86
|
},
|
|
86
87
|
"scripts": {
|
|
87
88
|
"build": "npm run clean && npm run build:cjs && npm run build:esm",
|
|
@@ -96,7 +97,7 @@
|
|
|
96
97
|
"test:watch": "jest --watchAll --verbose",
|
|
97
98
|
"lint": "eslint --ext .ts,.tsx src test",
|
|
98
99
|
"format": "prettier \"**/*.{js,jsx,json,yml,yaml,css,less,scss,ts,tsx,md,graphql,mdx}\" --write",
|
|
99
|
-
"validate": "npm run lint && npm run test && npm run build &&
|
|
100
|
+
"validate": "npm run lint && npm run test && npm run build && npm run size",
|
|
100
101
|
"size": "size-limit",
|
|
101
102
|
"prepublishOnly": "npm run validate"
|
|
102
103
|
},
|
package/src/index.tsx
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from './helpers';
|
|
12
12
|
import { FetchError, Props, State, StorageItem } from './types';
|
|
13
13
|
|
|
14
|
-
const cacheStore: { [key: string]: StorageItem } = Object.create(null);
|
|
14
|
+
export const cacheStore: { [key: string]: StorageItem } = Object.create(null);
|
|
15
15
|
|
|
16
16
|
export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
17
17
|
constructor(props: Props) {
|
|
@@ -221,7 +221,6 @@ export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
|
221
221
|
() => {
|
|
222
222
|
const { cacheRequests, src } = this.props;
|
|
223
223
|
const cache = cacheRequests && cacheStore[src];
|
|
224
|
-
|
|
225
224
|
if (cache) {
|
|
226
225
|
/* istanbul ignore else */
|
|
227
226
|
if (cache.status === STATUS.LOADING) {
|
|
@@ -292,14 +291,14 @@ export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
|
292
291
|
};
|
|
293
292
|
|
|
294
293
|
private request = () => {
|
|
295
|
-
const { cacheRequests, src } = this.props;
|
|
294
|
+
const { cacheRequests, fetchOptions, src } = this.props;
|
|
296
295
|
|
|
297
296
|
try {
|
|
298
297
|
if (cacheRequests) {
|
|
299
298
|
cacheStore[src] = { content: '', status: STATUS.LOADING, queue: [] };
|
|
300
299
|
}
|
|
301
300
|
|
|
302
|
-
return fetch(src)
|
|
301
|
+
return fetch(src, fetchOptions)
|
|
303
302
|
.then((response) => {
|
|
304
303
|
const contentType = response.headers.get('content-type');
|
|
305
304
|
const [fileType] = (contentType || '').split(/ ?; ?/);
|
|
@@ -315,6 +314,13 @@ export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
|
315
314
|
return response.text();
|
|
316
315
|
})
|
|
317
316
|
.then((content) => {
|
|
317
|
+
const { src: currentSrc } = this.props;
|
|
318
|
+
|
|
319
|
+
// the current src don't match the previous one, skipping...
|
|
320
|
+
if (src !== currentSrc) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
|
|
318
324
|
this.handleLoad(content);
|
|
319
325
|
|
|
320
326
|
/* istanbul ignore else */
|
|
@@ -365,6 +371,7 @@ export default class InlineSVG extends React.PureComponent<Props, State> {
|
|
|
365
371
|
'cacheRequests',
|
|
366
372
|
'children',
|
|
367
373
|
'description',
|
|
374
|
+
'fetchOptions',
|
|
368
375
|
'innerRef',
|
|
369
376
|
'loader',
|
|
370
377
|
'onError',
|
package/src/types.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface Props extends Omit<React.SVGProps<SVGElement>, 'onLoad' | 'onEr
|
|
|
12
12
|
cacheRequests?: boolean;
|
|
13
13
|
children?: React.ReactNode;
|
|
14
14
|
description?: string;
|
|
15
|
+
fetchOptions?: RequestInit;
|
|
15
16
|
innerRef?: React.Ref<SVGElement>;
|
|
16
17
|
loader?: React.ReactNode;
|
|
17
18
|
onError?: ErrorCallback;
|