0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-01-27 22:59:51 -05:00

fix: 🐛 several api don't accept scope package

This commit is contained in:
Meeeeow 2017-12-02 22:27:00 +08:00 committed by juanpicado
parent 1ffd4d7c5f
commit f983fa3860
4 changed files with 19 additions and 10 deletions

View file

@ -73,7 +73,7 @@ module.exports = function(config, auth, storage) {
});
// Get package readme
route.get('/package/readme(/@:scope?)?/:package/:version?', can('access'), function(req, res, next) {
route.get('/package/readme/(@:scope/)?:package/:version?', can('access'), function(req, res, next) {
let packageName = req.params.package;
if (req.params.scope) {
packageName = `@${req.params.scope}/${packageName}`;
@ -147,9 +147,14 @@ module.exports = function(config, auth, storage) {
res.redirect(base);
});
route.get('/sidebar(/@:scope?)?/:package', function(req, res, next) {
route.get('/sidebar/(@:scope/)?:package', function(req, res, next) {
let packageName = req.params.package;
if (req.params.scope) {
packageName = `@${req.params.scope}/${packageName}`;
}
storage.get_package({
name: req.params.package,
name: packageName,
keepUpLinkData: true,
req,
callback: function(err, info) {

View file

@ -7,7 +7,6 @@ import Readme from '../Readme';
import classes from './packageDetail.scss';
const PackageDetail = (props) => {
const displayState = (readMe) => {
if (isNil(readMe)) {
return;

View file

@ -22,9 +22,14 @@ export default class Detail extends React.Component {
notFound: false,
};
get packageName() {
let params = this.props.match.params;
return `${(params.scope && '@' + params.scope + '/') || ''}${params.package}`;
}
async componentDidMount() {
try {
const resp = await API.get(`package/readme/${this.props.match.params.package}`);
const resp = await API.get(`package/readme/${this.packageName}`);
this.setState({
readMe: resp.data
});
@ -37,15 +42,14 @@ export default class Detail extends React.Component {
render() {
if (this.state.notFound) {
return <NotFound
pkg={this.props.match.params.package}/>;
return <NotFound pkg={this.packageName}/>;
} else if (isEmpty(this.state.readMe)) {
return <Loading text={loadingMessage} />;
}
return (
<div className={classes.twoColumn}>
<PackageDetail readMe={this.state.readMe} package={this.props.match.params.package}/>
<PackageSidebar packageName={this.props.match.params.package} />
<PackageDetail readMe={this.state.readMe} package={this.packageName}/>
<PackageSidebar packageName={this.packageName} />
</div>
);
}

View file

@ -13,7 +13,8 @@ const RouterApp = () => {
<div className="container">
<Switch>
<Route exact path="/(search/:keyword)?" component={ Home } />
<Route path="/detail/:package*" component={Detail} />
<Route exact path="/detail/@:scope/:package" component={Detail} />
<Route exact path="/detail/:package" component={Detail} />
</Switch>
</div>
</div>