@uiw/react-shields
Version:
Shields.io for react component, Quality metadata badges for open source projects.
57 lines • 1.85 kB
JavaScript
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;