UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

82 lines (77 loc) 1.68 kB
'use strict'; var React = require('react'); const noop = () => {}; // eslint-disable-next-line import/no-mutable-exports exports.deprecate = noop; if (process.env.NODE_ENV !== "production") { exports.deprecate = ({ name, message, version }) => { Deprecations.deprecate({ name, message, version }); }; } // eslint-disable-next-line import/no-mutable-exports exports.useDeprecation = null; if (process.env.NODE_ENV !== "production") { exports.useDeprecation = ({ name, message, version }) => { const ref = React.useRef(false); const logDeprecation = React.useCallback(() => { if (!ref.current) { ref.current = true; exports.deprecate({ name, message, version }); } }, [name, message, version]); return logDeprecation; }; } else { exports.useDeprecation = () => { return noop; }; } class Deprecations { static instance = null; static get() { if (!Deprecations.instance) { Deprecations.instance = new Deprecations(); } return Deprecations.instance; } constructor() { this.deprecations = []; } static deprecate({ name, message, version }) { const msg = `WARNING! ${name} is deprecated and will be removed in version ${version}. ${message}`; // eslint-disable-next-line no-console console.warn(msg); this.get().deprecations.push({ name, message, version }); } static getDeprecations() { return this.get().deprecations; } static clearDeprecations() { this.get().deprecations.length = 0; } } exports.Deprecations = Deprecations;