DEV: Prefix deprecation notices and api warnings with theme name/id

This commit is contained in:
David Taylor 2022-02-11 09:17:24 +00:00
parent af24c10314
commit c4e34047a1
2 changed files with 19 additions and 3 deletions

View File

@ -11,5 +11,13 @@ export default function deprecated(msg, opts = {}) {
if (opts.raiseError) { if (opts.raiseError) {
throw msg; throw msg;
} }
console.warn(msg); // eslint-disable-line no-console
let consolePrefix = "";
if (window.Discourse) {
// This module doesn't exist in pretty-text/wizard/etc.
consolePrefix =
require("discourse/lib/source-identifier").consolePrefix() || "";
}
console.warn(consolePrefix, msg); //eslint-disable-line no-console
} }

View File

@ -92,6 +92,7 @@ import {
} from "discourse/widgets/search-menu-results"; } from "discourse/widgets/search-menu-results";
import { CUSTOM_USER_SEARCH_OPTIONS } from "select-kit/components/user-chooser"; import { CUSTOM_USER_SEARCH_OPTIONS } from "select-kit/components/user-chooser";
import { downloadCalendar } from "discourse/lib/download-calendar"; import { downloadCalendar } from "discourse/lib/download-calendar";
import { consolePrefix } from "discourse/lib/source-identifier";
// If you add any methods to the API ensure you bump up the version number // If you add any methods to the API ensure you bump up the version number
// based on Semantic Versioning 2.0.0. Please update the changelog at // based on Semantic Versioning 2.0.0. Please update the changelog at
@ -104,6 +105,7 @@ function canModify(klass, type, resolverName, changes) {
if (!changes.pluginId) { if (!changes.pluginId) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.warn( console.warn(
consolePrefix(),
"To prevent errors in tests, add a `pluginId` key to your `modifyClass` call. This will ensure the modification is only applied once." "To prevent errors in tests, add a `pluginId` key to your `modifyClass` call. This will ensure the modification is only applied once."
); );
return true; return true;
@ -166,6 +168,7 @@ class PluginApi {
if (this.container.cache[resolverName]) { if (this.container.cache[resolverName]) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.warn( console.warn(
consolePrefix(),
`"${resolverName}" was already cached in the container. Changes won't be applied.` `"${resolverName}" was already cached in the container. Changes won't be applied.`
); );
} }
@ -174,7 +177,10 @@ class PluginApi {
if (!klass) { if (!klass) {
if (!opts.ignoreMissing) { if (!opts.ignoreMissing) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.warn(`"${resolverName}" was not found by modifyClass`); console.warn(
consolePrefix(),
`"${resolverName}" was not found by modifyClass`
);
} }
return; return;
} }
@ -981,6 +987,7 @@ class PluginApi {
if (!item["name"]) { if (!item["name"]) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.warn( console.warn(
consolePrefix(),
"A 'name' is required when adding a Navigation Bar Item.", "A 'name' is required when adding a Navigation Bar Item.",
item item
); );
@ -1643,7 +1650,7 @@ function getPluginApi(version) {
return pluginApi; return pluginApi;
} else { } else {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.warn(`Plugin API v${version} is not supported`); console.warn(consolePrefix(), `Plugin API v${version} is not supported`);
} }
} }
@ -1670,6 +1677,7 @@ function decorate(klass, evt, cb, id) {
if (!id) { if (!id) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.warn( console.warn(
consolePrefix(),
"`decorateCooked` should be supplied with an `id` option to avoid memory leaks in test mode. The id will be used to ensure the decorator is only applied once." "`decorateCooked` should be supplied with an `id` option to avoid memory leaks in test mode. The id will be used to ensure the decorator is only applied once."
); );
} else { } else {