isomorfeus-preact 10.7.3 → 10.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/lib/preact/version.rb +1 -1
  3. data/node_modules/.package-lock.json +5 -7
  4. data/node_modules/preact/compat/LICENSE +21 -0
  5. data/node_modules/preact/compat/client.js +11 -5
  6. data/node_modules/preact/compat/client.mjs +7 -3
  7. data/node_modules/preact/compat/dist/compat.js +2 -2
  8. data/node_modules/preact/compat/dist/compat.js.map +1 -1
  9. data/node_modules/preact/compat/dist/compat.mjs +2 -2
  10. data/node_modules/preact/compat/dist/compat.module.js +2 -2
  11. data/node_modules/preact/compat/dist/compat.module.js.map +1 -1
  12. data/node_modules/preact/compat/dist/compat.umd.js +2 -2
  13. data/node_modules/preact/compat/dist/compat.umd.js.map +1 -1
  14. data/node_modules/preact/compat/package.json +47 -17
  15. data/node_modules/preact/compat/src/render.js +238 -229
  16. data/node_modules/preact/debug/LICENSE +21 -0
  17. data/node_modules/preact/debug/dist/debug.js +2 -2
  18. data/node_modules/preact/debug/dist/debug.js.map +1 -1
  19. data/node_modules/preact/debug/dist/debug.mjs +2 -2
  20. data/node_modules/preact/debug/dist/debug.module.js +2 -2
  21. data/node_modules/preact/debug/dist/debug.module.js.map +1 -1
  22. data/node_modules/preact/debug/dist/debug.umd.js +2 -2
  23. data/node_modules/preact/debug/dist/debug.umd.js.map +1 -1
  24. data/node_modules/preact/debug/package.json +24 -16
  25. data/node_modules/preact/debug/src/debug.js +437 -444
  26. data/node_modules/preact/devtools/LICENSE +21 -0
  27. data/node_modules/preact/devtools/dist/devtools.js +2 -2
  28. data/node_modules/preact/devtools/dist/devtools.js.map +1 -1
  29. data/node_modules/preact/devtools/dist/devtools.mjs +2 -2
  30. data/node_modules/preact/devtools/dist/devtools.module.js +2 -2
  31. data/node_modules/preact/devtools/dist/devtools.module.js.map +1 -1
  32. data/node_modules/preact/devtools/dist/devtools.umd.js +2 -2
  33. data/node_modules/preact/devtools/dist/devtools.umd.js.map +1 -1
  34. data/node_modules/preact/devtools/package.json +9 -0
  35. data/node_modules/preact/devtools/src/devtools.js +10 -10
  36. data/node_modules/preact/dist/preact.js +1 -1
  37. data/node_modules/preact/dist/preact.js.map +1 -1
  38. data/node_modules/preact/dist/preact.min.js +1 -1
  39. data/node_modules/preact/dist/preact.min.js.map +1 -1
  40. data/node_modules/preact/dist/preact.mjs +1 -1
  41. data/node_modules/preact/dist/preact.module.js +1 -1
  42. data/node_modules/preact/dist/preact.module.js.map +1 -1
  43. data/node_modules/preact/dist/preact.umd.js +1 -1
  44. data/node_modules/preact/dist/preact.umd.js.map +1 -1
  45. data/node_modules/preact/hooks/LICENSE +21 -0
  46. data/node_modules/preact/hooks/dist/hooks.js +2 -2
  47. data/node_modules/preact/hooks/dist/hooks.js.map +1 -1
  48. data/node_modules/preact/hooks/dist/hooks.mjs +2 -2
  49. data/node_modules/preact/hooks/dist/hooks.module.js +2 -2
  50. data/node_modules/preact/hooks/dist/hooks.module.js.map +1 -1
  51. data/node_modules/preact/hooks/dist/hooks.umd.js +2 -2
  52. data/node_modules/preact/hooks/dist/hooks.umd.js.map +1 -1
  53. data/node_modules/preact/hooks/package.json +33 -24
  54. data/node_modules/preact/hooks/src/index.js +417 -391
  55. data/node_modules/preact/hooks/src/internal.d.ts +3 -0
  56. data/node_modules/preact/jsx-runtime/LICENSE +21 -0
  57. data/node_modules/preact/jsx-runtime/package.json +9 -0
  58. data/node_modules/preact/package.json +304 -304
  59. data/node_modules/preact/src/diff/index.js +20 -6
  60. data/node_modules/preact/test-utils/package.json +26 -17
  61. data/package.json +1 -1
  62. metadata +9 -11
  63. data/node_modules/preact/compat/dist/compat.mjs.map +0 -1
  64. data/node_modules/preact/debug/dist/debug.mjs.map +0 -1
  65. data/node_modules/preact/devtools/dist/devtools.mjs.map +0 -1
  66. data/node_modules/preact/dist/preact.mjs.map +0 -1
  67. data/node_modules/preact/hooks/dist/hooks.mjs.map +0 -1
  68. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs.map +0 -1
  69. data/node_modules/preact/test-utils/dist/testUtils.mjs.map +0 -1
@@ -1,304 +1,304 @@
1
- {
2
- "name": "preact",
3
- "amdName": "preact",
4
- "version": "10.7.3",
5
- "private": false,
6
- "description": "Fast 3kb React-compatible Virtual DOM library.",
7
- "main": "dist/preact.js",
8
- "module": "dist/preact.module.js",
9
- "umd:main": "dist/preact.umd.js",
10
- "unpkg": "dist/preact.min.js",
11
- "source": "src/index.js",
12
- "exports": {
13
- ".": {
14
- "types": "./src/index.d.ts",
15
- "browser": "./dist/preact.module.js",
16
- "umd": "./dist/preact.umd.js",
17
- "import": "./dist/preact.mjs",
18
- "require": "./dist/preact.js"
19
- },
20
- "./compat": {
21
- "types": "./compat/src/index.d.ts",
22
- "browser": "./compat/dist/compat.module.js",
23
- "umd": "./compat/dist/compat.umd.js",
24
- "import": "./compat/dist/compat.mjs",
25
- "require": "./compat/dist/compat.js"
26
- },
27
- "./debug": {
28
- "browser": "./debug/dist/debug.module.js",
29
- "umd": "./debug/dist/debug.umd.js",
30
- "import": "./debug/dist/debug.mjs",
31
- "require": "./debug/dist/debug.js"
32
- },
33
- "./devtools": {
34
- "types": "./devtools/src/index.d.ts",
35
- "browser": "./devtools/dist/devtools.module.js",
36
- "umd": "./devtools/dist/devtools.umd.js",
37
- "import": "./devtools/dist/devtools.mjs",
38
- "require": "./devtools/dist/devtools.js"
39
- },
40
- "./hooks": {
41
- "types": "./hooks/src/index.d.ts",
42
- "browser": "./hooks/dist/hooks.module.js",
43
- "umd": "./hooks/dist/hooks.umd.js",
44
- "import": "./hooks/dist/hooks.mjs",
45
- "require": "./hooks/dist/hooks.js"
46
- },
47
- "./test-utils": {
48
- "types": "./test-utils/src/index.d.ts",
49
- "browser": "./test-utils/dist/testUtils.module.js",
50
- "umd": "./test-utils/dist/testUtils.umd.js",
51
- "import": "./test-utils/dist/testUtils.mjs",
52
- "require": "./test-utils/dist/testUtils.js"
53
- },
54
- "./jsx-runtime": {
55
- "types": "./jsx-runtime/src/index.d.ts",
56
- "browser": "./jsx-runtime/dist/jsxRuntime.module.js",
57
- "umd": "./jsx-runtime/dist/jsxRuntime.umd.js",
58
- "import": "./jsx-runtime/dist/jsxRuntime.mjs",
59
- "require": "./jsx-runtime/dist/jsxRuntime.js"
60
- },
61
- "./jsx-dev-runtime": {
62
- "browser": "./jsx-runtime/dist/jsxRuntime.module.js",
63
- "umd": "./jsx-runtime/dist/jsxRuntime.umd.js",
64
- "import": "./jsx-runtime/dist/jsxRuntime.mjs",
65
- "require": "./jsx-runtime/dist/jsxRuntime.js"
66
- },
67
- "./compat/client": {
68
- "import": "./compat/client.mjs",
69
- "require": "./compat/client.js"
70
- },
71
- "./compat/server": {
72
- "browser": "./compat/server.browser.js",
73
- "import": "./compat/server.mjs",
74
- "require": "./compat/server.js"
75
- },
76
- "./compat/jsx-runtime": {
77
- "import": "./compat/jsx-runtime.mjs",
78
- "require": "./compat/jsx-runtime.js"
79
- },
80
- "./compat/jsx-dev-runtime": {
81
- "import": "./compat/jsx-dev-runtime.mjs",
82
- "require": "./compat/jsx-dev-runtime.js"
83
- },
84
- "./compat/scheduler": {
85
- "import": "./compat/scheduler.mjs",
86
- "require": "./compat/scheduler.js"
87
- },
88
- "./package.json": "./package.json",
89
- "./compat/package.json": "./compat/package.json",
90
- "./debug/package.json": "./debug/package.json",
91
- "./devtools/package.json": "./devtools/package.json",
92
- "./hooks/package.json": "./hooks/package.json",
93
- "./test-utils/package.json": "./test-utils/package.json",
94
- "./jsx-runtime/package.json": "./jsx-runtime/package.json"
95
- },
96
- "license": "MIT",
97
- "funding": {
98
- "type": "opencollective",
99
- "url": "https://opencollective.com/preact"
100
- },
101
- "types": "src/index.d.ts",
102
- "scripts": {
103
- "prepare": "run-s build && check-export-map",
104
- "build": "npm-run-all --parallel build:*",
105
- "build:core": "microbundle build --raw",
106
- "build:core-min": "microbundle build --raw -f iife src/cjs.js -o dist/preact.min.js",
107
- "build:debug": "microbundle build --raw --cwd debug",
108
- "build:devtools": "microbundle build --raw --cwd devtools",
109
- "build:hooks": "microbundle build --raw --cwd hooks",
110
- "build:test-utils": "microbundle build --raw --cwd test-utils",
111
- "build:compat": "microbundle build src/index.js src/scheduler.js --raw --cwd compat --globals 'preact/hooks=preactHooks'",
112
- "build:jsx": "microbundle build --raw --cwd jsx-runtime",
113
- "postbuild": "node ./config/node-13-exports.js && node ./config/compat-entries.js",
114
- "dev": "microbundle watch --raw --format cjs",
115
- "dev:hooks": "microbundle watch --raw --format cjs --cwd hooks",
116
- "dev:compat": "microbundle watch --raw --format cjs --cwd compat --globals 'preact/hooks=preactHooks'",
117
- "test": "npm-run-all build lint test:unit",
118
- "test:unit": "run-p test:mocha test:karma:minify test:ts",
119
- "test:ts": "run-p test:ts:*",
120
- "test:ts:core": "tsc -p test/ts/ && mocha --require \"@babel/register\" test/ts/**/*-test.js",
121
- "test:ts:compat": "tsc -p compat/test/ts/",
122
- "test:mocha": "mocha --recursive --require \"@babel/register\" test/shared test/node",
123
- "test:mocha:watch": "npm run test:mocha -- --watch",
124
- "test:karma": "cross-env COVERAGE=true BABEL_NO_MODULES=true karma start karma.conf.js --single-run",
125
- "test:karma:minify": "cross-env COVERAGE=true MINIFY=true BABEL_NO_MODULES=true karma start karma.conf.js --single-run",
126
- "test:karma:watch": "cross-env BABEL_NO_MODULES=true karma start karma.conf.js --no-single-run",
127
- "test:karma:hooks": "cross-env COVERAGE=false BABEL_NO_MODULES=true karma start karma.conf.js --grep=hooks/test/browser/**.js --no-single-run",
128
- "test:karma:test-utils": "cross-env PERFORMANCE=false COVERAGE=false BABEL_NO_MODULES=true karma start karma.conf.js --grep=test-utils/test/shared/**.js --no-single-run",
129
- "test:karma:bench": "cross-env PERFORMANCE=true COVERAGE=false BABEL_NO_MODULES=true karma start karma.conf.js --grep=test/benchmarks/**.js --single-run",
130
- "benchmark": "npm run test:karma:bench -- no-single-run",
131
- "lint": "eslint src test debug compat hooks test-utils"
132
- },
133
- "eslintConfig": {
134
- "extends": [
135
- "developit",
136
- "prettier"
137
- ],
138
- "settings": {
139
- "react": {
140
- "pragma": "createElement"
141
- }
142
- },
143
- "rules": {
144
- "camelcase": [
145
- 1,
146
- {
147
- "allow": [
148
- "__test__*",
149
- "unstable_*",
150
- "UNSAFE_*"
151
- ]
152
- }
153
- ],
154
- "no-unused-vars": [
155
- 2,
156
- {
157
- "args": "none",
158
- "varsIgnorePattern": "^h|React$"
159
- }
160
- ],
161
- "prefer-rest-params": 0,
162
- "prefer-spread": 0,
163
- "no-cond-assign": 0,
164
- "react/jsx-no-bind": 0,
165
- "react/no-danger": "off",
166
- "react/prefer-stateless-function": 0,
167
- "react/sort-comp": 0,
168
- "jest/valid-expect": 0,
169
- "jest/no-disabled-tests": 0,
170
- "jest/no-test-callback": 0,
171
- "jest/expect-expect": 0,
172
- "jest/no-standalone-expect": 0,
173
- "jest/no-export": 0,
174
- "react/no-find-dom-node": 0
175
- }
176
- },
177
- "eslintIgnore": [
178
- "test/fixtures",
179
- "test/ts/",
180
- "*.ts",
181
- "dist"
182
- ],
183
- "prettier": {
184
- "singleQuote": true,
185
- "trailingComma": "none",
186
- "useTabs": true,
187
- "tabWidth": 2
188
- },
189
- "lint-staged": {
190
- "**/*.{js,jsx,ts,tsx,yml}": [
191
- "prettier --write"
192
- ]
193
- },
194
- "husky": {
195
- "hooks": {
196
- "pre-commit": "lint-staged"
197
- }
198
- },
199
- "files": [
200
- "src",
201
- "dist",
202
- "compat/dist",
203
- "compat/src",
204
- "compat/client.js",
205
- "compat/client.mjs",
206
- "compat/server.browser.js",
207
- "compat/server.js",
208
- "compat/server.mjs",
209
- "compat/scheduler.js",
210
- "compat/scheduler.mjs",
211
- "compat/test-utils.js",
212
- "compat/jsx-runtime.js",
213
- "compat/jsx-runtime.mjs",
214
- "compat/jsx-dev-runtime.js",
215
- "compat/jsx-dev-runtime.mjs",
216
- "compat/package.json",
217
- "debug/dist",
218
- "debug/src",
219
- "debug/package.json",
220
- "devtools/dist",
221
- "devtools/src",
222
- "devtools/package.json",
223
- "hooks/dist",
224
- "hooks/src",
225
- "hooks/package.json",
226
- "jsx-runtime/dist",
227
- "jsx-runtime/src",
228
- "jsx-runtime/package.json",
229
- "test-utils/src",
230
- "test-utils/package.json",
231
- "test-utils/dist"
232
- ],
233
- "keywords": [
234
- "preact",
235
- "react",
236
- "ui",
237
- "user interface",
238
- "virtual dom",
239
- "vdom",
240
- "components",
241
- "dom diff",
242
- "front-end",
243
- "framework"
244
- ],
245
- "authors": [
246
- "The Preact Authors (https://github.com/preactjs/preact/contributors)"
247
- ],
248
- "repository": "preactjs/preact",
249
- "bugs": "https://github.com/preactjs/preact/issues",
250
- "homepage": "https://preactjs.com",
251
- "devDependencies": {
252
- "@actions/github": "^5.0.0",
253
- "@actions/glob": "^0.2.0",
254
- "@babel/core": "^7.7.0",
255
- "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
256
- "@babel/plugin-transform-react-jsx": "^7.7.0",
257
- "@babel/plugin-transform-react-jsx-source": "^7.7.4",
258
- "@babel/preset-env": "^7.7.1",
259
- "@babel/register": "^7.7.0",
260
- "@types/chai": "^4.1.2",
261
- "@types/mocha": "^5.0.0",
262
- "@types/node": "^14.14.10",
263
- "babel-plugin-istanbul": "^6.0.0",
264
- "babel-plugin-transform-async-to-promises": "^0.8.15",
265
- "babel-plugin-transform-rename-properties": "0.1.0",
266
- "benchmark": "^2.1.4",
267
- "chai": "^4.1.2",
268
- "check-export-map": "^1.3.0",
269
- "coveralls": "^3.0.0",
270
- "cross-env": "^7.0.2",
271
- "diff": "^5.0.0",
272
- "errorstacks": "^2.4.0",
273
- "esbuild": "^0.14.25",
274
- "eslint": "5.15.1",
275
- "eslint-config-developit": "^1.1.1",
276
- "eslint-config-prettier": "^6.5.0",
277
- "eslint-plugin-react": "7.12.4",
278
- "husky": "^4.3.0",
279
- "karma": "^6.3.16",
280
- "karma-chai-sinon": "^0.1.5",
281
- "karma-chrome-launcher": "^3.1.0",
282
- "karma-coverage": "^2.1.0",
283
- "karma-esbuild": "^2.2.4",
284
- "karma-mocha": "^2.0.1",
285
- "karma-mocha-reporter": "^2.2.5",
286
- "karma-sauce-launcher": "^4.3.4",
287
- "karma-sinon": "^1.0.5",
288
- "karma-sourcemap-loader": "^0.3.7",
289
- "kolorist": "^1.2.10",
290
- "lint-staged": "^10.5.2",
291
- "lodash": "^4.17.20",
292
- "microbundle": "^0.11.0",
293
- "mocha": "^8.2.1",
294
- "npm-merge-driver-install": "^1.1.1",
295
- "npm-run-all": "^4.0.0",
296
- "prettier": "^1.18.2",
297
- "prop-types": "^15.7.2",
298
- "sade": "^1.7.4",
299
- "sinon": "^9.2.3",
300
- "sinon-chai": "^3.5.0",
301
- "typescript": "4.4.2",
302
- "undici": "^4.12.0"
303
- }
304
- }
1
+ {
2
+ "name": "preact",
3
+ "amdName": "preact",
4
+ "version": "10.8.2",
5
+ "private": false,
6
+ "description": "Fast 3kb React-compatible Virtual DOM library.",
7
+ "main": "dist/preact.js",
8
+ "module": "dist/preact.module.js",
9
+ "umd:main": "dist/preact.umd.js",
10
+ "unpkg": "dist/preact.min.js",
11
+ "source": "src/index.js",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./src/index.d.ts",
15
+ "browser": "./dist/preact.module.js",
16
+ "umd": "./dist/preact.umd.js",
17
+ "import": "./dist/preact.mjs",
18
+ "require": "./dist/preact.js"
19
+ },
20
+ "./compat": {
21
+ "types": "./compat/src/index.d.ts",
22
+ "browser": "./compat/dist/compat.module.js",
23
+ "umd": "./compat/dist/compat.umd.js",
24
+ "import": "./compat/dist/compat.mjs",
25
+ "require": "./compat/dist/compat.js"
26
+ },
27
+ "./debug": {
28
+ "browser": "./debug/dist/debug.module.js",
29
+ "umd": "./debug/dist/debug.umd.js",
30
+ "import": "./debug/dist/debug.mjs",
31
+ "require": "./debug/dist/debug.js"
32
+ },
33
+ "./devtools": {
34
+ "types": "./devtools/src/index.d.ts",
35
+ "browser": "./devtools/dist/devtools.module.js",
36
+ "umd": "./devtools/dist/devtools.umd.js",
37
+ "import": "./devtools/dist/devtools.mjs",
38
+ "require": "./devtools/dist/devtools.js"
39
+ },
40
+ "./hooks": {
41
+ "types": "./hooks/src/index.d.ts",
42
+ "browser": "./hooks/dist/hooks.module.js",
43
+ "umd": "./hooks/dist/hooks.umd.js",
44
+ "import": "./hooks/dist/hooks.mjs",
45
+ "require": "./hooks/dist/hooks.js"
46
+ },
47
+ "./test-utils": {
48
+ "types": "./test-utils/src/index.d.ts",
49
+ "browser": "./test-utils/dist/testUtils.module.js",
50
+ "umd": "./test-utils/dist/testUtils.umd.js",
51
+ "import": "./test-utils/dist/testUtils.mjs",
52
+ "require": "./test-utils/dist/testUtils.js"
53
+ },
54
+ "./jsx-runtime": {
55
+ "types": "./jsx-runtime/src/index.d.ts",
56
+ "browser": "./jsx-runtime/dist/jsxRuntime.module.js",
57
+ "umd": "./jsx-runtime/dist/jsxRuntime.umd.js",
58
+ "import": "./jsx-runtime/dist/jsxRuntime.mjs",
59
+ "require": "./jsx-runtime/dist/jsxRuntime.js"
60
+ },
61
+ "./jsx-dev-runtime": {
62
+ "browser": "./jsx-runtime/dist/jsxRuntime.module.js",
63
+ "umd": "./jsx-runtime/dist/jsxRuntime.umd.js",
64
+ "import": "./jsx-runtime/dist/jsxRuntime.mjs",
65
+ "require": "./jsx-runtime/dist/jsxRuntime.js"
66
+ },
67
+ "./compat/client": {
68
+ "import": "./compat/client.mjs",
69
+ "require": "./compat/client.js"
70
+ },
71
+ "./compat/server": {
72
+ "browser": "./compat/server.browser.js",
73
+ "import": "./compat/server.mjs",
74
+ "require": "./compat/server.js"
75
+ },
76
+ "./compat/jsx-runtime": {
77
+ "import": "./compat/jsx-runtime.mjs",
78
+ "require": "./compat/jsx-runtime.js"
79
+ },
80
+ "./compat/jsx-dev-runtime": {
81
+ "import": "./compat/jsx-dev-runtime.mjs",
82
+ "require": "./compat/jsx-dev-runtime.js"
83
+ },
84
+ "./compat/scheduler": {
85
+ "import": "./compat/scheduler.mjs",
86
+ "require": "./compat/scheduler.js"
87
+ },
88
+ "./package.json": "./package.json",
89
+ "./compat/package.json": "./compat/package.json",
90
+ "./debug/package.json": "./debug/package.json",
91
+ "./devtools/package.json": "./devtools/package.json",
92
+ "./hooks/package.json": "./hooks/package.json",
93
+ "./test-utils/package.json": "./test-utils/package.json",
94
+ "./jsx-runtime/package.json": "./jsx-runtime/package.json"
95
+ },
96
+ "license": "MIT",
97
+ "funding": {
98
+ "type": "opencollective",
99
+ "url": "https://opencollective.com/preact"
100
+ },
101
+ "types": "src/index.d.ts",
102
+ "scripts": {
103
+ "prepare": "run-s build && check-export-map",
104
+ "build": "npm-run-all --parallel build:*",
105
+ "build:core": "microbundle build --raw",
106
+ "build:core-min": "microbundle build --raw -f iife src/cjs.js -o dist/preact.min.js",
107
+ "build:debug": "microbundle build --raw --cwd debug",
108
+ "build:devtools": "microbundle build --raw --cwd devtools",
109
+ "build:hooks": "microbundle build --raw --cwd hooks",
110
+ "build:test-utils": "microbundle build --raw --cwd test-utils",
111
+ "build:compat": "microbundle build src/index.js src/scheduler.js --raw --cwd compat --globals 'preact/hooks=preactHooks'",
112
+ "build:jsx": "microbundle build --raw --cwd jsx-runtime",
113
+ "postbuild": "node ./config/node-13-exports.js && node ./config/compat-entries.js",
114
+ "dev": "microbundle watch --raw --format cjs",
115
+ "dev:hooks": "microbundle watch --raw --format cjs --cwd hooks",
116
+ "dev:compat": "microbundle watch --raw --format cjs --cwd compat --globals 'preact/hooks=preactHooks'",
117
+ "test": "npm-run-all build lint test:unit",
118
+ "test:unit": "run-p test:mocha test:karma:minify test:ts",
119
+ "test:ts": "run-p test:ts:*",
120
+ "test:ts:core": "tsc -p test/ts/ && mocha --require \"@babel/register\" test/ts/**/*-test.js",
121
+ "test:ts:compat": "tsc -p compat/test/ts/",
122
+ "test:mocha": "mocha --recursive --require \"@babel/register\" test/shared test/node",
123
+ "test:mocha:watch": "npm run test:mocha -- --watch",
124
+ "test:karma": "cross-env COVERAGE=true BABEL_NO_MODULES=true karma start karma.conf.js --single-run",
125
+ "test:karma:minify": "cross-env COVERAGE=true MINIFY=true BABEL_NO_MODULES=true karma start karma.conf.js --single-run",
126
+ "test:karma:watch": "cross-env BABEL_NO_MODULES=true karma start karma.conf.js --no-single-run",
127
+ "test:karma:hooks": "cross-env COVERAGE=false BABEL_NO_MODULES=true karma start karma.conf.js --grep=hooks/test/browser/**.js --no-single-run",
128
+ "test:karma:test-utils": "cross-env PERFORMANCE=false COVERAGE=false BABEL_NO_MODULES=true karma start karma.conf.js --grep=test-utils/test/shared/**.js --no-single-run",
129
+ "test:karma:bench": "cross-env PERFORMANCE=true COVERAGE=false BABEL_NO_MODULES=true karma start karma.conf.js --grep=test/benchmarks/**.js --single-run",
130
+ "benchmark": "npm run test:karma:bench -- no-single-run",
131
+ "lint": "eslint src test debug compat hooks test-utils"
132
+ },
133
+ "eslintConfig": {
134
+ "extends": [
135
+ "developit",
136
+ "prettier"
137
+ ],
138
+ "settings": {
139
+ "react": {
140
+ "pragma": "createElement"
141
+ }
142
+ },
143
+ "rules": {
144
+ "camelcase": [
145
+ 1,
146
+ {
147
+ "allow": [
148
+ "__test__*",
149
+ "unstable_*",
150
+ "UNSAFE_*"
151
+ ]
152
+ }
153
+ ],
154
+ "no-unused-vars": [
155
+ 2,
156
+ {
157
+ "args": "none",
158
+ "varsIgnorePattern": "^h|React$"
159
+ }
160
+ ],
161
+ "prefer-rest-params": 0,
162
+ "prefer-spread": 0,
163
+ "no-cond-assign": 0,
164
+ "react/jsx-no-bind": 0,
165
+ "react/no-danger": "off",
166
+ "react/prefer-stateless-function": 0,
167
+ "react/sort-comp": 0,
168
+ "jest/valid-expect": 0,
169
+ "jest/no-disabled-tests": 0,
170
+ "jest/no-test-callback": 0,
171
+ "jest/expect-expect": 0,
172
+ "jest/no-standalone-expect": 0,
173
+ "jest/no-export": 0,
174
+ "react/no-find-dom-node": 0
175
+ }
176
+ },
177
+ "eslintIgnore": [
178
+ "test/fixtures",
179
+ "test/ts/",
180
+ "*.ts",
181
+ "dist"
182
+ ],
183
+ "prettier": {
184
+ "singleQuote": true,
185
+ "trailingComma": "none",
186
+ "useTabs": true,
187
+ "tabWidth": 2
188
+ },
189
+ "lint-staged": {
190
+ "**/*.{js,jsx,ts,tsx,yml}": [
191
+ "prettier --write"
192
+ ]
193
+ },
194
+ "husky": {
195
+ "hooks": {
196
+ "pre-commit": "lint-staged"
197
+ }
198
+ },
199
+ "files": [
200
+ "src",
201
+ "dist",
202
+ "compat/dist",
203
+ "compat/src",
204
+ "compat/client.js",
205
+ "compat/client.mjs",
206
+ "compat/server.browser.js",
207
+ "compat/server.js",
208
+ "compat/server.mjs",
209
+ "compat/scheduler.js",
210
+ "compat/scheduler.mjs",
211
+ "compat/test-utils.js",
212
+ "compat/jsx-runtime.js",
213
+ "compat/jsx-runtime.mjs",
214
+ "compat/jsx-dev-runtime.js",
215
+ "compat/jsx-dev-runtime.mjs",
216
+ "compat/package.json",
217
+ "debug/dist",
218
+ "debug/src",
219
+ "debug/package.json",
220
+ "devtools/dist",
221
+ "devtools/src",
222
+ "devtools/package.json",
223
+ "hooks/dist",
224
+ "hooks/src",
225
+ "hooks/package.json",
226
+ "jsx-runtime/dist",
227
+ "jsx-runtime/src",
228
+ "jsx-runtime/package.json",
229
+ "test-utils/src",
230
+ "test-utils/package.json",
231
+ "test-utils/dist"
232
+ ],
233
+ "keywords": [
234
+ "preact",
235
+ "react",
236
+ "ui",
237
+ "user interface",
238
+ "virtual dom",
239
+ "vdom",
240
+ "components",
241
+ "dom diff",
242
+ "front-end",
243
+ "framework"
244
+ ],
245
+ "authors": [
246
+ "The Preact Authors (https://github.com/preactjs/preact/contributors)"
247
+ ],
248
+ "repository": "preactjs/preact",
249
+ "bugs": "https://github.com/preactjs/preact/issues",
250
+ "homepage": "https://preactjs.com",
251
+ "devDependencies": {
252
+ "@actions/github": "^5.0.0",
253
+ "@actions/glob": "^0.2.0",
254
+ "@babel/core": "^7.7.0",
255
+ "@babel/plugin-proposal-object-rest-spread": "^7.6.2",
256
+ "@babel/plugin-transform-react-jsx": "^7.7.0",
257
+ "@babel/plugin-transform-react-jsx-source": "^7.7.4",
258
+ "@babel/preset-env": "^7.7.1",
259
+ "@babel/register": "^7.7.0",
260
+ "@types/chai": "^4.1.2",
261
+ "@types/mocha": "^5.0.0",
262
+ "@types/node": "^14.14.10",
263
+ "babel-plugin-istanbul": "^6.0.0",
264
+ "babel-plugin-transform-async-to-promises": "^0.8.15",
265
+ "babel-plugin-transform-rename-properties": "0.1.0",
266
+ "benchmark": "^2.1.4",
267
+ "chai": "^4.1.2",
268
+ "check-export-map": "^1.3.0",
269
+ "coveralls": "^3.0.0",
270
+ "cross-env": "^7.0.2",
271
+ "diff": "^5.0.0",
272
+ "errorstacks": "^2.4.0",
273
+ "esbuild": "^0.14.25",
274
+ "eslint": "5.15.1",
275
+ "eslint-config-developit": "^1.1.1",
276
+ "eslint-config-prettier": "^6.5.0",
277
+ "eslint-plugin-react": "7.12.4",
278
+ "husky": "^4.3.0",
279
+ "karma": "^6.3.16",
280
+ "karma-chai-sinon": "^0.1.5",
281
+ "karma-chrome-launcher": "^3.1.0",
282
+ "karma-coverage": "^2.1.0",
283
+ "karma-esbuild": "^2.2.4",
284
+ "karma-mocha": "^2.0.1",
285
+ "karma-mocha-reporter": "^2.2.5",
286
+ "karma-sauce-launcher": "^4.3.4",
287
+ "karma-sinon": "^1.0.5",
288
+ "karma-sourcemap-loader": "^0.3.7",
289
+ "kolorist": "^1.2.10",
290
+ "lint-staged": "^10.5.2",
291
+ "lodash": "^4.17.20",
292
+ "microbundle": "^0.11.0",
293
+ "mocha": "^8.2.1",
294
+ "npm-merge-driver-install": "^1.1.1",
295
+ "npm-run-all": "^4.0.0",
296
+ "prettier": "^1.18.2",
297
+ "prop-types": "^15.7.2",
298
+ "sade": "^1.7.4",
299
+ "sinon": "^9.2.3",
300
+ "sinon-chai": "^3.5.0",
301
+ "typescript": "4.4.2",
302
+ "undici": "^4.12.0"
303
+ }
304
+ }
@@ -170,15 +170,29 @@ export function diff(
170
170
 
171
171
  c.context = componentContext;
172
172
  c.props = newProps;
173
- c.state = c._nextState;
174
-
175
- if ((tmp = options._render)) tmp(newVNode);
176
-
177
- c._dirty = false;
178
173
  c._vnode = newVNode;
179
174
  c._parentDom = parentDom;
180
175
 
181
- tmp = c.render(c.props, c.state, c.context);
176
+ let renderHook = options._render,
177
+ count = 0;
178
+ if ('prototype' in newType && newType.prototype.render) {
179
+ c.state = c._nextState;
180
+ c._dirty = false;
181
+
182
+ if (renderHook) renderHook(newVNode);
183
+
184
+ tmp = c.render(c.props, c.state, c.context);
185
+ } else {
186
+ do {
187
+ c._dirty = false;
188
+ if (renderHook) renderHook(newVNode);
189
+
190
+ tmp = c.render(c.props, c.state, c.context);
191
+
192
+ // Handle setState called in render, see #2553
193
+ c.state = c._nextState;
194
+ } while (c._dirty && ++count < 25);
195
+ }
182
196
 
183
197
  // Handle setState called in render, see #2553
184
198
  c.state = c._nextState;