Skip to content

Commit 11a93e6

Browse files
authored
Upgrade next.js to 12 and related packages (#5042)
* Upgrade next.js and source-map-loader * Add changeset * Upgrade eslint and typescript * improve reliability of iframe test * fix lint
1 parent f96b659 commit 11a93e6

31 files changed

+798
-1377
lines changed

.changeset/large-experts-know.md

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
'slate': patch
3+
'slate-history': patch
4+
'slate-hyperscript': patch
5+
'slate-react': patch
6+
---
7+
8+
Upgrade next.js and source-map-loader packages

cypress/integration/examples/iframe.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
// Taken from https://www.cypress.io/blog/2020/02/12/working-with-iframes-in-cypress/
22
const getIframeDocument = () => {
3-
return cy
4-
.get('iframe')
5-
.its('0.contentDocument')
6-
.should('exist')
3+
return (
4+
cy
5+
// adding the wait here because the IFrame component re-renders a bunch of times at startup which can mess up this test.
6+
.wait(1000)
7+
.get('iframe')
8+
.its('0.contentDocument')
9+
.should('exist')
10+
)
711
}
812

913
const getIframeBody = () => {

package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@
6262
"@types/node": "^16.11.26",
6363
"@types/react": "^16.9.13",
6464
"@types/react-dom": "^16.9.4",
65-
"@typescript-eslint/eslint-plugin": "^2.9.0",
66-
"@typescript-eslint/parser": "^2.9.0",
65+
"@typescript-eslint/eslint-plugin": "^5.30.5",
66+
"@typescript-eslint/parser": "^5.30.5",
6767
"babel-eslint": "^10.0.3",
6868
"babel-jest": "27.0.6",
6969
"babel-plugin-dev-expression": "^0.2.2",
7070
"babel-plugin-module-resolver": "^3.1.1",
7171
"cypress": "^8.3.0",
72-
"eslint": "^6.7.1",
73-
"eslint-config-prettier": "^6.7.0",
72+
"eslint": "^7.32.0",
73+
"eslint-config-prettier": "^7.2.0",
7474
"eslint-plugin-import": "^2.18.2",
7575
"eslint-plugin-prettier": "^3.1.1",
7676
"eslint-plugin-react": "^7.16.0",
@@ -83,7 +83,7 @@
8383
"lint-staged": ">=10",
8484
"lodash": "^4.17.4",
8585
"mocha": "^6.2.0",
86-
"next": "^10.2.3",
86+
"next": "^12.2.0",
8787
"npm-run-all": "^4.1.2",
8888
"prettier": "^1.19.1",
8989
"prismjs": "^1.5.1",
@@ -109,9 +109,9 @@
109109
"slate-history": "workspace:*",
110110
"slate-hyperscript": "workspace:*",
111111
"slate-react": "workspace:*",
112-
"source-map-loader": "^0.2.4",
112+
"source-map-loader": "^4.0.0",
113113
"ts-jest": "^27.1.3",
114-
"typescript": "3.9.7"
114+
"typescript": "4.0.5"
115115
},
116116
"simple-git-hooks": {
117117
"pre-commit": "yarn lint-staged"

packages/slate-history/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"lodash": "^4.17.21",
2222
"slate": "^0.81.0",
2323
"slate-hyperscript": "^0.77.0",
24-
"source-map-loader": "^0.2.4"
24+
"source-map-loader": "^4.0.0"
2525
},
2626
"peerDependencies": {
2727
"slate": ">=0.65.3"

packages/slate-history/src/history-editor.ts

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export interface HistoryEditor extends BaseEditor {
1919
redo: () => void
2020
}
2121

22+
// eslint-disable-next-line no-redeclare
2223
export const HistoryEditor = {
2324
/**
2425
* Check if a value is a `HistoryEditor` object.

packages/slate-history/src/history.ts

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export interface History {
1111
undos: Operation[][]
1212
}
1313

14+
// eslint-disable-next-line no-redeclare
1415
export const History = {
1516
/**
1617
* Check if a value is a `History` object.

packages/slate-hyperscript/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"devDependencies": {
2020
"@babel/runtime": "^7.7.4",
2121
"slate": "^0.81.0",
22-
"source-map-loader": "^0.2.4"
22+
"source-map-loader": "^4.0.0"
2323
},
2424
"peerDependencies": {
2525
"slate": ">=0.65.3"

packages/slate-react/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"react-test-renderer": ">=16.8.0",
3636
"slate": "^0.81.0",
3737
"slate-hyperscript": "^0.77.0",
38-
"source-map-loader": "^0.2.4"
38+
"source-map-loader": "^4.0.0"
3939
},
4040
"peerDependencies": {
4141
"react": ">=16.8.0",

packages/slate-react/src/components/editable.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1479,6 +1479,7 @@ const defaultScrollSelectionIntoView = (
14791479
scrollIntoView(leafEl, {
14801480
scrollMode: 'if-needed',
14811481
})
1482+
// @ts-expect-error an unorthodox delete D:
14821483
delete leafEl.getBoundingClientRect
14831484
}
14841485
}

packages/slate-react/src/plugin/react-editor.ts

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ export interface ReactEditor extends BaseEditor {
5151
hasRange: (editor: ReactEditor, range: Range) => boolean
5252
}
5353

54+
// eslint-disable-next-line no-redeclare
5455
export const ReactEditor = {
5556
/**
5657
* Check if the user is currently composing inside the editor.

packages/slate/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"@babel/runtime": "^7.7.4",
2323
"lodash": "^4.17.21",
2424
"slate-hyperscript": "^0.77.0",
25-
"source-map-loader": "^0.2.4"
25+
"source-map-loader": "^4.0.0"
2626
},
2727
"keywords": [
2828
"canvas",

packages/slate/src/interfaces/editor.ts

+1
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ export interface EditorInterface {
326326

327327
const IS_EDITOR_CACHE = new WeakMap<object, boolean>()
328328

329+
// eslint-disable-next-line no-redeclare
329330
export const Editor: EditorInterface = {
330331
/**
331332
* Get the ancestor above a location in the document.

packages/slate/src/interfaces/element.ts

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const isElement = (value: any): value is Element => {
3737
)
3838
}
3939

40+
// eslint-disable-next-line no-redeclare
4041
export const Element: ElementInterface = {
4142
/**
4243
* Check if a value implements the 'Ancestor' interface.

packages/slate/src/interfaces/location.ts

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export interface LocationInterface {
1515
isLocation: (value: any) => value is Location
1616
}
1717

18+
// eslint-disable-next-line no-redeclare
1819
export const Location: LocationInterface = {
1920
/**
2021
* Check if a value implements the `Location` interface.
@@ -36,6 +37,7 @@ export interface SpanInterface {
3637
isSpan: (value: any) => value is Span
3738
}
3839

40+
// eslint-disable-next-line no-redeclare
3941
export const Span: SpanInterface = {
4042
/**
4143
* Check if a value implements the `Span` interface.

packages/slate/src/interfaces/node.ts

+1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ export interface NodeInterface {
102102

103103
const IS_NODE_LIST_CACHE = new WeakMap<any[], boolean>()
104104

105+
// eslint-disable-next-line no-redeclare
105106
export const Node: NodeInterface = {
106107
/**
107108
* Get the node at a specific path, asserting that it's an ancestor node.

packages/slate/src/interfaces/operation.ts

+1
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ export interface OperationInterface {
147147
inverse: (op: Operation) => Operation
148148
}
149149

150+
// eslint-disable-next-line no-redeclare
150151
export const Operation: OperationInterface = {
151152
/**
152153
* Check of a value is a `NodeOperation` object.

packages/slate/src/interfaces/path-ref.ts

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export interface PathRefInterface {
1616
transform: (ref: PathRef, op: Operation) => void
1717
}
1818

19+
// eslint-disable-next-line no-redeclare
1920
export const PathRef: PathRefInterface = {
2021
/**
2122
* Transform the path ref's current value by an operation.

packages/slate/src/interfaces/path.ts

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export interface PathInterface {
5353
) => Path | null
5454
}
5555

56+
// eslint-disable-next-line no-redeclare
5657
export const Path: PathInterface = {
5758
/**
5859
* Get a list of ancestor paths for a given path.

packages/slate/src/interfaces/point-ref.ts

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export interface PointRefInterface {
1717
transform: (ref: PointRef, op: Operation) => void
1818
}
1919

20+
// eslint-disable-next-line no-redeclare
2021
export const PointRef: PointRefInterface = {
2122
/**
2223
* Transform the point ref's current value by an operation.

packages/slate/src/interfaces/point.ts

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export interface PointInterface {
3434
) => Point | null
3535
}
3636

37+
// eslint-disable-next-line no-redeclare
3738
export const Point: PointInterface = {
3839
/**
3940
* Compare a point to another, returning an integer indicating whether the

packages/slate/src/interfaces/range-ref.ts

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export interface RangeRefInterface {
1616
transform: (ref: RangeRef, op: Operation) => void
1717
}
1818

19+
// eslint-disable-next-line no-redeclare
1920
export const RangeRef: RangeRefInterface = {
2021
/**
2122
* Transform the range ref's current value by an operation.

packages/slate/src/interfaces/range.ts

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export interface RangeInterface {
4444
) => Range | null
4545
}
4646

47+
// eslint-disable-next-line no-redeclare
4748
export const Range: RangeInterface = {
4849
/**
4950
* Get the start and end points of a range, in the order in which they appear

packages/slate/src/interfaces/scrubber.ts

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ let _scrubber: Scrubber | undefined = undefined
2222
* });
2323
*
2424
*/
25+
// eslint-disable-next-line no-redeclare
2526
export const Scrubber: ScrubberInterface = {
2627
setScrubber(scrubber: Scrubber | undefined): void {
2728
_scrubber = scrubber

packages/slate/src/interfaces/text.ts

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export interface TextInterface {
2828
decorations: (node: Text, decorations: Range[]) => Text[]
2929
}
3030

31+
// eslint-disable-next-line no-redeclare
3132
export const Text: TextInterface = {
3233
/**
3334
* Check if two text nodes are equal.

packages/slate/src/transforms/general.ts

+1
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ const applyToDraft = (editor: Editor, selection: Selection, op: Operation) => {
313313
return selection
314314
}
315315

316+
// eslint-disable-next-line no-redeclare
316317
export const GeneralTransforms: GeneralTransforms = {
317318
/**
318319
* Transform the editor by an operation.

packages/slate/src/transforms/node.ts

+1
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ export interface NodeTransforms {
127127
) => void
128128
}
129129

130+
// eslint-disable-next-line no-redeclare
130131
export const NodeTransforms: NodeTransforms = {
131132
/**
132133
* Insert nodes at a specific location in the Editor.

packages/slate/src/transforms/selection.ts

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export interface SelectionTransforms {
2929
setSelection: (editor: Editor, props: Partial<Range>) => void
3030
}
3131

32+
// eslint-disable-next-line no-redeclare
3233
export const SelectionTransforms: SelectionTransforms = {
3334
/**
3435
* Collapse the selection.

packages/slate/src/transforms/text.ts

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export interface TextTransforms {
4646
) => void
4747
}
4848

49+
// eslint-disable-next-line no-redeclare
4950
export const TextTransforms: TextTransforms = {
5051
/**
5152
* Delete content in the editor.

site/next-env.d.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
/// <reference types="next" />
2-
/// <reference types="next/types/global" />
2+
/// <reference types="next/image-types/global" />
3+
4+
// NOTE: This file should not be edited
5+
// see https://nextjs.org/docs/basic-features/typescript for more information.

site/next.config.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ module.exports = {
55
webpack: config => {
66
config.module.rules.push({
77
test: /\.js$/,
8-
loader: require.resolve('source-map-loader'),
98
enforce: 'pre',
109
exclude: [/node_modules\/@next/, /node_modules\/next/],
10+
use: [
11+
{
12+
loader: require.resolve('source-map-loader'),
13+
},
14+
],
1115
})
1216
return config
1317
},

0 commit comments

Comments
 (0)