mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { rtrimSlashes } from '@joplin/lib/path-utils';
|
|
|
|
function removeBranch(commit: string): string {
|
|
if (!commit) return '';
|
|
|
|
if (commit.indexOf(':') >= 0) {
|
|
const s = commit.split(':');
|
|
return s[1];
|
|
}
|
|
|
|
return commit;
|
|
}
|
|
|
|
const formatRepoUrl = (url: string): string => {
|
|
if (!url) return url;
|
|
if (url.endsWith('.git')) return url.substring(0, url.length - 4);
|
|
return url;
|
|
};
|
|
|
|
export default function(manifest: any, previousManifest: any = null): string {
|
|
// "repository_url": "https://github.com/JackGruber/joplin-plugin-copytags",
|
|
// "_publish_commit": "master:b52b01f6d3b709a811ac214253636a7c207c87dd",
|
|
|
|
// https://github.com/JackGruber/joplin-plugin-copytags/compare/9ec4a476a54440ac43422c34e179dcabfca1e5a0..b52b01f6d3b709a811ac214253636a7c207c87dd
|
|
|
|
const repoUrl: string = formatRepoUrl(manifest.repository_url);
|
|
const commit: string = removeBranch(manifest._publish_commit);
|
|
const previousCommit: string = previousManifest ? removeBranch(previousManifest._publish_commit) : '';
|
|
|
|
if (!repoUrl) return null;
|
|
if (!commit && !previousCommit) return repoUrl;
|
|
if (commit && !previousCommit) return `${rtrimSlashes(repoUrl)}/tree/${commit}`;
|
|
|
|
return `${rtrimSlashes(repoUrl)}/compare/${previousCommit}..${commit}`;
|
|
}
|