0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-02-10 23:39:31 -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 // 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; let packageName = req.params.package;
if (req.params.scope) { if (req.params.scope) {
packageName = `@${req.params.scope}/${packageName}`; packageName = `@${req.params.scope}/${packageName}`;
@ -147,9 +147,14 @@ module.exports = function(config, auth, storage) {
res.redirect(base); 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({ storage.get_package({
name: req.params.package, name: packageName,
keepUpLinkData: true, keepUpLinkData: true,
req, req,
callback: function(err, info) { callback: function(err, info) {

View file

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

View file

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

View file

@ -13,7 +13,8 @@ const RouterApp = () => {
<div className="container"> <div className="container">
<Switch> <Switch>
<Route exact path="/(search/:keyword)?" component={ Home } /> <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> </Switch>
</div> </div>
</div> </div>