UNPKG

@uiw/react-shields

Version:

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

106 lines (105 loc) 3.54 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["base", "platform", "type", "scope", "packageName", "dependency", "dependencyScope", "version", "registryUri"]; import React from 'react'; import { Internal } from '../common/Base'; /** * NPM Version * * `/npm/v/:packageName` * npm: npm badge * * `/npm/v/:scope/:packageName` * npm (scoped): npm (scoped) badge * * `/npm/v/:packageName/:tag` * npm (tag): npm (tag) badge * * `/npm/v/:packageName/:tag?registry_uri=https%3A%2F%2Fregistry.npmjs.com` * npm (custom registry): npm (custom registry) badge * * `/npm/v/:scope/:packageName/:tag` * npm (scoped with tag): npm (scoped with tag) badge * * `/npm/dependency-version/:packageName/peer/:dependency` * npm peer dependency version: npm peer dependency version badge * * `/npm/dependency-version/:scope?/:packageName/dev/:dependencyScope?/:dependency` * npm peer dependency version (scoped): npm peer dependency version (scoped) badge * * `/npm/dependency-version/:packageName/dev/:dependency` * npm dev dependency version: npm dev dependency version badge * * `/npm/dependency-version/:scope?/:packageName/dev/:dependencyScope?/:dependency` * npm dev dependency version (scoped): npm dev dependency version (scoped) badge * * `/npm/dependency-version/:packageName/:dependency` * npm (prod) dependency version: npm (prod) dependency version badge * * `/npm/dependency-version/:scope?/:packageName/:dependencyScope?/:dependency` * npm (prod) dependency version (scoped): npm (prod) dependency version (scoped) badge * * `/npm/types/:packageName` * npm type definitions: npm type definitions badge */ import { jsx as _jsx } from "react/jsx-runtime"; var Version = /*#__PURE__*/React.forwardRef((props, ref) => { var { base = 'https://img.shields.io', platform = 'npm', type = 'version', scope, packageName, dependency, dependencyScope, version, registryUri } = props, other = _objectWithoutPropertiesLoose(props, _excluded); var getUrl = () => { if (platform !== 'npm' || !packageName) return ''; var url = ''; var baseData = [base, platform]; if (type === 'version' && packageName) { baseData.push('v'); if (scope) { baseData.push(scope); } baseData.push(packageName); if (version) { baseData.push(version); } url = baseData.join('/'); if (registryUri) { url = url + "?registry_uri=" + registryUri; } } else if (type === 'peer-dependency' && packageName && dependency) { baseData.push('dependency-version'); if (scope) { baseData.push(scope); } url = [...baseData, packageName, 'peer', dependency].join('/'); } else if (type === 'dev-dependency' && packageName && dependency) { baseData.push('dependency-version'); if (scope) { baseData.push(scope); } baseData.concat([packageName, 'dev']); if (dependencyScope) { baseData.push(dependencyScope); } baseData.push(dependency); url = baseData.join('/'); } else if (packageName && dependency) { baseData.concat([packageName, dependency]); url = baseData.join('/'); } return url; }; return /*#__PURE__*/_jsx(Internal, _extends({ imgSrc: getUrl(), ref: ref }, other)); }); Version.displayName = 'Version'; export default Version;