UNPKG

@uiw/react-shields

Version:

Shields.io for react component, Quality metadata badges for open source projects.

57 lines 1.85 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["base", "platform", "format", "packageName", "scope", "version"]; import React from 'react'; import { Internal } from '../common/Base'; import { jsx as _jsx } from "react/jsx-runtime"; /** * Npm Size * * `/bundlephobia/:format/:packageName` * npm bundle size: npm bundle size badge * * `/bundlephobia/:format/:scope/:packageName` * npm bundle size (scoped): npm bundle size (scoped) badge * * `/bundlephobia/:format/:packageName/:version` * npm bundle size (version): npm bundle size (version) badge * * `/bundlephobia/:format/:scope/:packageName/:version` * npm bundle size (scoped version): npm bundle size (scoped version) badge * */ var Size = /*#__PURE__*/React.forwardRef((props, ref) => { var { base = 'https://img.shields.io', platform = 'npm', format = 'min', packageName, scope, version } = props, other = _objectWithoutPropertiesLoose(props, _excluded); var getUrl = () => { if (platform !== 'npm') return ''; var baseData = [base, 'bundlephobia']; var url = ''; if (packageName && format) { url = [...baseData, format, packageName].join('/'); } if (packageName && format && scope) { url = [...baseData, format, scope, packageName].join('/'); } if (packageName && format && scope && version) { url = [...baseData, format, scope, packageName, version].join('/'); } if (packageName && format && version) { url = [...baseData, format, packageName, version].join('/'); } return url; }; return /*#__PURE__*/_jsx(Internal, _extends({ imgSrc: getUrl(), ref: ref }, other)); }); Size.displayName = 'Size'; export default Size;