From 2ab00998763409b8ba4cd0f27d7caa3c51201361 Mon Sep 17 00:00:00 2001 From: a11delavar Date: Fri, 22 Mar 2024 02:07:54 +0100 Subject: [PATCH 1/4] Add "isServer" check in observers' constructors --- packages/labs/observers/src/intersection-controller.ts | 4 ++++ packages/labs/observers/src/mutation-controller.ts | 4 ++++ packages/labs/observers/src/performance-controller.ts | 4 ++++ packages/labs/observers/src/resize-controller.ts | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/packages/labs/observers/src/intersection-controller.ts b/packages/labs/observers/src/intersection-controller.ts index 7332559843..d700d9e30c 100644 --- a/packages/labs/observers/src/intersection-controller.ts +++ b/packages/labs/observers/src/intersection-controller.ts @@ -3,6 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ +import {isServer} from 'lit'; import { ReactiveController, ReactiveControllerHost, @@ -94,6 +95,9 @@ export class IntersectionController implements ReactiveController { } this._skipInitial = skipInitial ?? this._skipInitial; this.callback = callback; + if (isServer) { + return; + } // Check browser support. if (!window.IntersectionObserver) { console.warn( diff --git a/packages/labs/observers/src/mutation-controller.ts b/packages/labs/observers/src/mutation-controller.ts index 530734818f..a1345b56e7 100644 --- a/packages/labs/observers/src/mutation-controller.ts +++ b/packages/labs/observers/src/mutation-controller.ts @@ -3,6 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ +import {isServer} from 'lit'; import { ReactiveController, ReactiveControllerHost, @@ -94,6 +95,9 @@ export class MutationController implements ReactiveController { this._config = config; this._skipInitial = skipInitial ?? this._skipInitial; this.callback = callback; + if (isServer) { + return; + } // Check browser support. if (!window.MutationObserver) { console.warn( diff --git a/packages/labs/observers/src/performance-controller.ts b/packages/labs/observers/src/performance-controller.ts index c48b3eddd5..f3f8c68da9 100644 --- a/packages/labs/observers/src/performance-controller.ts +++ b/packages/labs/observers/src/performance-controller.ts @@ -3,6 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ +import {isServer} from 'lit'; import { ReactiveController, ReactiveControllerHost, @@ -80,6 +81,9 @@ export class PerformanceController implements ReactiveController { this._config = config; this._skipInitial = skipInitial ?? this._skipInitial; this.callback = callback; + if (isServer) { + return; + } // Check browser support. if (!window.PerformanceObserver) { console.warn( diff --git a/packages/labs/observers/src/resize-controller.ts b/packages/labs/observers/src/resize-controller.ts index 8bc908198f..622fdbabd4 100644 --- a/packages/labs/observers/src/resize-controller.ts +++ b/packages/labs/observers/src/resize-controller.ts @@ -3,6 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ +import {isServer} from 'lit'; import { ReactiveController, ReactiveControllerHost, @@ -93,6 +94,9 @@ export class ResizeController implements ReactiveController { this._config = config; this._skipInitial = skipInitial ?? this._skipInitial; this.callback = callback; + if (isServer) { + return; + } // Check browser support. if (!window.ResizeObserver) { console.warn( From 196a8d4ff5d49a093adf147d8164e6628511e5ef Mon Sep 17 00:00:00 2001 From: a11delavar Date: Fri, 22 Mar 2024 02:18:52 +0100 Subject: [PATCH 2/4] Add changeset --- .changeset/bright-yaks-wink.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/bright-yaks-wink.md diff --git a/.changeset/bright-yaks-wink.md b/.changeset/bright-yaks-wink.md new file mode 100644 index 0000000000..688d723724 --- /dev/null +++ b/.changeset/bright-yaks-wink.md @@ -0,0 +1,5 @@ +--- +'@lit-labs/observers': patch +--- + +Do not initialize observers to prevent failing in SSR environment. From 3c4aed745ddbf30e218c27e3a10489b4a9568e56 Mon Sep 17 00:00:00 2001 From: a11delavar Date: Fri, 22 Mar 2024 22:38:09 +0100 Subject: [PATCH 3/4] Try to fix incorrect package import causing tests to fail --- packages/labs/observers/package.json | 1 + packages/labs/observers/src/intersection-controller.ts | 2 +- packages/labs/observers/src/mutation-controller.ts | 2 +- packages/labs/observers/src/performance-controller.ts | 2 +- packages/labs/observers/src/resize-controller.ts | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/labs/observers/package.json b/packages/labs/observers/package.json index 4584fe3d45..f9f5632847 100644 --- a/packages/labs/observers/package.json +++ b/packages/labs/observers/package.json @@ -168,6 +168,7 @@ "@types/trusted-types": "^2.0.2" }, "dependencies": { + "lit-html": "^2.4.0", "@lit/reactive-element": "^1.0.0 || ^2.0.0" }, "publishConfig": { diff --git a/packages/labs/observers/src/intersection-controller.ts b/packages/labs/observers/src/intersection-controller.ts index d700d9e30c..2c00a272ed 100644 --- a/packages/labs/observers/src/intersection-controller.ts +++ b/packages/labs/observers/src/intersection-controller.ts @@ -3,7 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -import {isServer} from 'lit'; +import {isServer} from 'lit-html/is-server.js'; import { ReactiveController, ReactiveControllerHost, diff --git a/packages/labs/observers/src/mutation-controller.ts b/packages/labs/observers/src/mutation-controller.ts index a1345b56e7..bb042c98b1 100644 --- a/packages/labs/observers/src/mutation-controller.ts +++ b/packages/labs/observers/src/mutation-controller.ts @@ -3,7 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -import {isServer} from 'lit'; +import {isServer} from 'lit-html/is-server.js'; import { ReactiveController, ReactiveControllerHost, diff --git a/packages/labs/observers/src/performance-controller.ts b/packages/labs/observers/src/performance-controller.ts index f3f8c68da9..b2096bd1a9 100644 --- a/packages/labs/observers/src/performance-controller.ts +++ b/packages/labs/observers/src/performance-controller.ts @@ -3,7 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -import {isServer} from 'lit'; +import {isServer} from 'lit-html/is-server.js'; import { ReactiveController, ReactiveControllerHost, diff --git a/packages/labs/observers/src/resize-controller.ts b/packages/labs/observers/src/resize-controller.ts index 622fdbabd4..e65b4f59d2 100644 --- a/packages/labs/observers/src/resize-controller.ts +++ b/packages/labs/observers/src/resize-controller.ts @@ -3,7 +3,7 @@ * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -import {isServer} from 'lit'; +import {isServer} from 'lit-html/is-server.js'; import { ReactiveController, ReactiveControllerHost, From 13e9db788f4a8d5f6bbb7a6b54577ec48a67add5 Mon Sep 17 00:00:00 2001 From: a11delavar Date: Wed, 1 May 2024 19:41:31 +0200 Subject: [PATCH 4/4] Allow lit-html 3.x as a dependency as well --- package-lock.json | 3 ++- packages/labs/observers/package.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index cc93897d45..cdff788c2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27716,7 +27716,8 @@ "version": "2.0.2", "license": "BSD-3-Clause", "dependencies": { - "@lit/reactive-element": "^1.0.0 || ^2.0.0" + "@lit/reactive-element": "^1.0.0 || ^2.0.0", + "lit-html": "^2.4.0 || ^3.0.0" }, "devDependencies": { "@lit-internal/scripts": "^1.0.1", diff --git a/packages/labs/observers/package.json b/packages/labs/observers/package.json index f9f5632847..dbe9aebb4d 100644 --- a/packages/labs/observers/package.json +++ b/packages/labs/observers/package.json @@ -168,7 +168,7 @@ "@types/trusted-types": "^2.0.2" }, "dependencies": { - "lit-html": "^2.4.0", + "lit-html": "^2.4.0 || ^3.0.0", "@lit/reactive-element": "^1.0.0 || ^2.0.0" }, "publishConfig": {