Skip to content

Commit 2a6d6dd

Browse files
committed
chore: use parcel v2 for development and bundling
1 parent 68edf64 commit 2a6d6dd

18 files changed

+6532
-10286
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
node_modules/
22
examples-dist/
33
dist/
4-
.cache/
4+
.parcel-cache/
55
.rpt2_cache/
66
.vscode/
77
coverage/

.parcelrc

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"extends": "@parcel/config-default",
3+
"transformers": {
4+
"*.{js,mjs,jsm,jsx,es6,cjs,ts,tsx}": ["parcel-transformer-replace", "..."]
5+
}
6+
}

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ matrix:
66
- node_js: "10"
77
- node_js: "8"
88

9-
script: "npm test -- --coverage"
9+
script: "yarn test -- --coverage"
1010
after_success: cat ./coverage/lcov.info | npx coveralls
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "parcel-transformer-replace",
3+
"version": "1.0.0",
4+
"main": "./transformer.js",
5+
"dependencies": {
6+
"@parcel/plugin": "^2.0.0"
7+
},
8+
"engines": {
9+
"parcel": "^2.0.0"
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const { Transformer } = require('@parcel/plugin');
2+
const pkg = require('../../package.json');
3+
4+
module.exports.default = new Transformer({
5+
async transform({ asset }) {
6+
const code = await asset.getCode();
7+
// TODO consider adding a source map. Currently, we put the variable length to the exact same size to not make the code jump, but this is a bit odd and error prone...
8+
const result = code.replace(/_VERS_/gm, pkg.version);
9+
10+
asset.setCode(result);
11+
return [asset];
12+
},
13+
});

examples/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
</head>
88
<body>
99
<div id="root"></div>
10-
<script src="./index.tsx"></script>
10+
<script type="module" src="./index.tsx"></script>
1111
</body>
1212
</html>

lib/ConnectViewport.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import * as React from 'react';
22

3-
import { IScroll, IDimensions } from './index';
3+
import { Scroll, Dimensions } from './types';
44
import ObserveViewport from './ObserveViewport';
55
import { PriorityType } from './types';
66

77
interface InjectedProps {
8-
scroll?: IScroll | null;
9-
dimensions?: IDimensions | null;
8+
scroll?: Scroll | null;
9+
dimensions?: Dimensions | null;
1010
}
1111

1212
type OmitValues = 'scroll' | 'dimensions';

lib/ViewportProvider.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export const ViewportContext = React.createContext({
5454
) => {},
5555
getCurrentViewport: createFallbackViewportRequester(),
5656
hasRootProviderAsParent: false,
57-
version: '__VERSION__',
57+
version: '_VERS_',
5858
});
5959

6060
const maxIterations = (priority: 'highest' | 'high' | 'normal' | 'low') => {
@@ -285,7 +285,7 @@ export default class ViewportProvider extends React.PureComponent<
285285
return this.getCurrentDefaultViewport();
286286
},
287287
hasRootProviderAsParent: true,
288-
version: '__VERSION__',
288+
version: '_VERS_',
289289
};
290290

291291
renderChildren = (props: {
@@ -295,11 +295,11 @@ export default class ViewportProvider extends React.PureComponent<
295295
if (props.hasRootProviderAsParent) {
296296
if (
297297
process.env.NODE_ENV !== 'production' &&
298-
props.version !== '__VERSION__'
298+
props.version !== '_VERS_'
299299
) {
300300
console.warn(
301301
`react-viewport-utils: Two different versions of the react-viewport-utils library are used in the same react tree. This can lead to unexpected results as the versions might not be compatible.
302-
The <ViewportProvider> of version ${props.version} is currently used, another <ViewportProvider> of version __VERSION__ was detected but is ignored.
302+
The <ViewportProvider> of version ${props.version} is currently used, another <ViewportProvider> of version _VERS_ was detected but is ignored.
303303
This is most probably due to some dependencies that use different versions of the react-viewport-utils library. You can check if an update is possible.`,
304304
);
305305
}

lib/hooks.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export function useViewportEffect<T>(
6363
notifyDimensions: () => !memoOptions.disableDimensionsUpdates,
6464
notifyOnlyWhenIdle: () => Boolean(memoOptions.deferUpdateUntilIdle),
6565
priority: () => memoOptions.priority || 'normal',
66-
recalculateLayoutBeforeUpdate: (...args: any) =>
66+
recalculateLayoutBeforeUpdate: (...args) =>
6767
memoOptions.recalculateLayoutBeforeUpdate
6868
? memoOptions.recalculateLayoutBeforeUpdate(...args)
6969
: null,
@@ -79,7 +79,7 @@ export function useViewportEffect<T>(
7979
export const useViewport = (options: FullOptions = {}): Viewport => {
8080
const { getCurrentViewport } = useContext(ViewportContext);
8181
const [state, setViewport] = useState(getCurrentViewport());
82-
useViewportEffect(viewport => setViewport(viewport), options);
82+
useViewportEffect((viewport) => setViewport(viewport), options);
8383

8484
return state;
8585
};

lib/index.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ export {
1414
useRectEffect,
1515
} from './hooks';
1616
export { requestAnimationFrame, cancelAnimationFrame } from './utils';
17-
export {
18-
Rect as IRect,
19-
Scroll as IScroll,
20-
Dimensions as IDimensions,
17+
export type {
2118
Rect,
2219
Scroll,
2320
Dimensions,
21+
IRect,
22+
IScroll,
23+
IDimensions,
2424
} from './types';
2525

26-
export const VERSION = '__VERSION__';
26+
export const VERSION = '_VERS_';

lib/types.ts

+13
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,19 @@ export interface Rect {
3131
width: number;
3232
}
3333

34+
/**
35+
* @deprecated Better use Dimensions
36+
*/
37+
export interface IDimensions extends Dimensions {}
38+
/**
39+
* @deprecated Better use Scroll
40+
*/
41+
export interface IScroll extends Scroll {}
42+
/**
43+
* @deprecated Better use Rect
44+
*/
45+
export interface IRect extends Rect {}
46+
3447
export interface Viewport {
3548
scroll: Scroll;
3649
dimensions: Dimensions;

lib/utils.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ export const requestAnimationFrame = ((): RequestAnimationFrameType => {
165165
if (typeof window !== 'undefined') {
166166
const nativeRAF =
167167
window.requestAnimationFrame ||
168-
window.webkitRequestAnimationFrame ||
168+
(<any>window).webkitRequestAnimationFrame ||
169169
(<any>window).mozRequestAnimationFrame;
170170
if (nativeRAF) {
171171
return nativeRAF.bind(window);
@@ -182,7 +182,7 @@ export const cancelAnimationFrame = ((): ((handle: number) => void) => {
182182
if (typeof window !== 'undefined') {
183183
const nativeCAF =
184184
window.cancelAnimationFrame ||
185-
window.webkitCancelAnimationFrame ||
185+
(<any>window).webkitCancelAnimationFrame ||
186186
(<any>window).webkitCancelRequestAnimationFrame;
187187
if (nativeCAF) {
188188
return nativeCAF.bind(window);

0 commit comments

Comments
 (0)