mirror of
https://github.com/TryGhost/Ghost-Admin.git
synced 2023-12-14 02:33:04 +01:00
6d13041fe5
no issue - Ghost-Admin is our primary API client, we should keep it in sync with the canary API branch to dog food our API changes
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
let makeRoute = function (root, args) {
|
|
let slashAtStart = /^\//;
|
|
let slashAtEnd = /\/$/;
|
|
let parts = Array.prototype.slice.call(args, 0);
|
|
let route = root.replace(slashAtEnd, '');
|
|
|
|
parts.forEach((part) => {
|
|
if (part) {
|
|
route = [route, part.replace(slashAtStart, '').replace(slashAtEnd, '')].join('/');
|
|
}
|
|
});
|
|
|
|
return route += '/';
|
|
};
|
|
|
|
export default function () {
|
|
let path = window.location.pathname;
|
|
let subdir = path.substr(0, path.search('/ghost/'));
|
|
let adminRoot = `${subdir}/ghost/`;
|
|
let assetRoot = `${subdir}/ghost/assets/`;
|
|
let apiRoot = `${subdir}/ghost/api/canary/admin`;
|
|
|
|
function assetUrl(src) {
|
|
return subdir + src;
|
|
}
|
|
|
|
return {
|
|
adminRoot,
|
|
assetRoot,
|
|
apiRoot,
|
|
subdir,
|
|
blogRoot: `${subdir}/`,
|
|
count: 'https://count.ghost.org/',
|
|
|
|
url: {
|
|
admin() {
|
|
return makeRoute(adminRoot, arguments);
|
|
},
|
|
|
|
api() {
|
|
return makeRoute(apiRoot, arguments);
|
|
},
|
|
|
|
join() {
|
|
if (arguments.length > 1) {
|
|
return makeRoute(arguments[0], Array.prototype.slice.call(arguments, 1));
|
|
} else if (arguments.length === 1) {
|
|
let [arg] = arguments;
|
|
return arg.slice(-1) === '/' ? arg : `${arg}/`;
|
|
}
|
|
return '/';
|
|
},
|
|
|
|
asset: assetUrl
|
|
}
|
|
};
|
|
}
|