PluginProbe
Gutenberg / 18.9.0
Gutenberg v18.9.0
24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 All 403 releases
gutenberg / build / deprecated / index.js

index.js in Gutenberg 18.9.0, at build/deprecated/index.js

123 lines 4.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ "use strict";
3 /******/ // The require scope
4 /******/ var __webpack_require__ = {};
5 /******/
6 /************************************************************************/
7 /******/ /* webpack/runtime/define property getters */
8 /******/ (() => {
9 /******/ // define getter functions for harmony exports
10 /******/ __webpack_require__.d = (exports, definition) => {
11 /******/ for(var key in definition) {
12 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
13 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
14 /******/ }
15 /******/ }
16 /******/ };
17 /******/ })();
18 /******/
19 /******/ /* webpack/runtime/hasOwnProperty shorthand */
20 /******/ (() => {
21 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
22 /******/ })();
23 /******/
24 /************************************************************************/
25 var __webpack_exports__ = {};
26
27 // EXPORTS
28 __webpack_require__.d(__webpack_exports__, {
29 "default": () => (/* binding */ deprecated)
30 });
31
32 // UNUSED EXPORTS: logged
33
34 ;// CONCATENATED MODULE: external ["wp","hooks"]
35 const external_wp_hooks_namespaceObject = window["wp"]["hooks"];
36 ;// CONCATENATED MODULE: ./packages/deprecated/build-module/index.js
37 /**
38 * WordPress dependencies
39 */
40
41
42 /**
43 * Object map tracking messages which have been logged, for use in ensuring a
44 * message is only logged once.
45 *
46 * @type {Record<string, true | undefined>}
47 */
48 const logged = Object.create(null);
49
50 /**
51 * Logs a message to notify developers about a deprecated feature.
52 *
53 * @param {string} feature Name of the deprecated feature.
54 * @param {Object} [options] Personalisation options
55 * @param {string} [options.since] Version in which the feature was deprecated.
56 * @param {string} [options.version] Version in which the feature will be removed.
57 * @param {string} [options.alternative] Feature to use instead
58 * @param {string} [options.plugin] Plugin name if it's a plugin feature
59 * @param {string} [options.link] Link to documentation
60 * @param {string} [options.hint] Additional message to help transition away from the deprecated feature.
61 *
62 * @example
63 * ```js
64 * import deprecated from '@wordpress/deprecated';
65 *
66 * deprecated( 'Eating meat', {
67 * since: '2019.01.01'
68 * version: '2020.01.01',
69 * alternative: 'vegetables',
70 * plugin: 'the earth',
71 * hint: 'You may find it beneficial to transition gradually.',
72 * } );
73 *
74 * // Logs: 'Eating meat is deprecated since version 2019.01.01 and will be removed from the earth in version 2020.01.01. Please use vegetables instead. Note: You may find it beneficial to transition gradually.'
75 * ```
76 */
77 function deprecated(feature, options = {}) {
78 const {
79 since,
80 version,
81 alternative,
82 plugin,
83 link,
84 hint
85 } = options;
86 const pluginMessage = plugin ? ` from ${plugin}` : '';
87 const sinceMessage = since ? ` since version ${since}` : '';
88 const versionMessage = version ? ` and will be removed${pluginMessage} in version ${version}` : '';
89 const useInsteadMessage = alternative ? ` Please use ${alternative} instead.` : '';
90 const linkMessage = link ? ` See: ${link}` : '';
91 const hintMessage = hint ? ` Note: ${hint}` : '';
92 const message = `${feature} is deprecated${sinceMessage}${versionMessage}.${useInsteadMessage}${linkMessage}${hintMessage}`;
93
94 // Skip if already logged.
95 if (message in logged) {
96 return;
97 }
98
99 /**
100 * Fires whenever a deprecated feature is encountered
101 *
102 * @param {string} feature Name of the deprecated feature.
103 * @param {?Object} options Personalisation options
104 * @param {string} options.since Version in which the feature was deprecated.
105 * @param {?string} options.version Version in which the feature will be removed.
106 * @param {?string} options.alternative Feature to use instead
107 * @param {?string} options.plugin Plugin name if it's a plugin feature
108 * @param {?string} options.link Link to documentation
109 * @param {?string} options.hint Additional message to help transition away from the deprecated feature.
110 * @param {?string} message Message sent to console.warn
111 */
112 (0,external_wp_hooks_namespaceObject.doAction)('deprecated', feature, options, message);
113
114 // eslint-disable-next-line no-console
115 console.warn(message);
116 logged[message] = true;
117 }
118
119 /** @typedef {import('utility-types').NonUndefined<Parameters<typeof deprecated>[1]>} DeprecatedOptions */
120
121 (window.wp = window.wp || {}).deprecated = __webpack_exports__["default"];
122 /******/ })()
123 ;