From 423709dd2302a2a89fc1cf5b55b8c6e76445c945 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Mon, 3 Apr 2023 20:37:49 +0200 Subject: [PATCH] Add deprecation warning Polymer (#16044) --- src/util/legacy-support.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/util/legacy-support.js b/src/util/legacy-support.js index ab77431315..c94ffffdb0 100644 --- a/src/util/legacy-support.js +++ b/src/util/legacy-support.js @@ -7,6 +7,29 @@ import { html } from "@polymer/polymer/lib/utils/html-tag"; import { PolymerElement } from "@polymer/polymer/polymer-element"; import { Polymer } from "@polymer/polymer/polymer-legacy"; +const message = + "WARNING: Polymer will be removed from window in Home Assistant 2023.5. More info: https://developers.home-assistant.io/blog/2023/04/04/deprecating_polymer"; + +const handler = { + get(target, prop, receiver) { + // eslint-disable-next-line no-console + console.warn(message); + document + .querySelector("home-assistant") + .dispatchEvent(new CustomEvent("write_log", { detail: { message } })); + return Reflect.get(target, prop, receiver); + }, + apply: function (target, thisArg, argumentsList) { + // eslint-disable-next-line no-console + console.warn(message); + document + .querySelector("home-assistant") + .dispatchEvent(new CustomEvent("write_log", { detail: { message } })); + return Reflect.apply(target, thisArg, argumentsList); + }, +}; + Polymer.Element = PolymerElement; Polymer.html = html; -window.Polymer = Polymer; + +window.Polymer = new Proxy(Polymer, handler);