You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-11-23 22:36:32 +02:00
This commit is contained in:
@@ -16,7 +16,7 @@ import { NpmPackage } from './lib/types';
|
|||||||
import gitCompareUrl from './lib/gitCompareUrl';
|
import gitCompareUrl from './lib/gitCompareUrl';
|
||||||
import commandUpdateRelease from './commands/updateRelease';
|
import commandUpdateRelease from './commands/updateRelease';
|
||||||
import { isJoplinPluginPackage, readJsonFile } from './lib/utils';
|
import { isJoplinPluginPackage, readJsonFile } from './lib/utils';
|
||||||
import { applyManifestOverrides, getObsoleteManifests, readManifestOverrides } from './lib/overrideUtils';
|
import { applyManifestOverrides, getObsoleteManifests, getSupersededPackages, readManifestOverrides } from './lib/overrideUtils';
|
||||||
import { execCommand } from '@joplin/utils';
|
import { execCommand } from '@joplin/utils';
|
||||||
|
|
||||||
function pluginInfoFromSearchResults(results: any[]): NpmPackage[] {
|
function pluginInfoFromSearchResults(results: any[]): NpmPackage[] {
|
||||||
@@ -139,18 +139,24 @@ function chdir(path: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function processNpmPackage(npmPackage: NpmPackage, repoDir: string, dryRun: boolean) {
|
async function processNpmPackage(npmPackage: NpmPackage, repoDir: string, dryRun: boolean) {
|
||||||
const tempDir = `${repoDir}/temp`;
|
|
||||||
|
|
||||||
await fs.mkdirp(tempDir);
|
|
||||||
|
|
||||||
const originalPluginManifests = await readManifests(repoDir);
|
const originalPluginManifests = await readManifests(repoDir);
|
||||||
const manifestOverrides = await readManifestOverrides(repoDir);
|
const manifestOverrides = await readManifestOverrides(repoDir);
|
||||||
|
const supersededPackages = getSupersededPackages(manifestOverrides);
|
||||||
|
|
||||||
|
if (supersededPackages.includes(npmPackage.name)) {
|
||||||
|
console.log('Skipping superseded package', npmPackage.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const obsoleteManifests = getObsoleteManifests(manifestOverrides);
|
const obsoleteManifests = getObsoleteManifests(manifestOverrides);
|
||||||
const existingManifests = {
|
const existingManifests = {
|
||||||
...originalPluginManifests,
|
...originalPluginManifests,
|
||||||
...obsoleteManifests,
|
...obsoleteManifests,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const tempDir = `${repoDir}/temp`;
|
||||||
|
await fs.mkdirp(tempDir);
|
||||||
|
|
||||||
const packageTempDir = `${tempDir}/packages`;
|
const packageTempDir = `${tempDir}/packages`;
|
||||||
|
|
||||||
await fs.mkdirp(packageTempDir);
|
await fs.mkdirp(packageTempDir);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { applyManifestOverrides, getObsoleteManifests, ManifestOverrides } from './overrideUtils';
|
import { applyManifestOverrides, getObsoleteManifests, getSupersededPackages, ManifestOverrides } from './overrideUtils';
|
||||||
|
|
||||||
describe('overrideUtils', () => {
|
describe('overrideUtils', () => {
|
||||||
|
|
||||||
@@ -92,4 +92,16 @@ describe('overrideUtils', () => {
|
|||||||
expect(updatedManifests['joplin.plugin.ambrt.backlinksToNote']._recommended).toBe(undefined);
|
expect(updatedManifests['joplin.plugin.ambrt.backlinksToNote']._recommended).toBe(undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should get superseded packages', () => {
|
||||||
|
const manifestOverrides = {
|
||||||
|
'joplin.plugin.benji.favorites': {
|
||||||
|
_superseded_package: 'joplin-plugin-benji-favorites',
|
||||||
|
},
|
||||||
|
'io.github.jackgruber.copytags': {
|
||||||
|
_recommended: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const supersededPackages = getSupersededPackages(manifestOverrides);
|
||||||
|
expect(supersededPackages).toMatchObject(['joplin-plugin-benji-favorites']);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { readJsonFile } from './utils';
|
|||||||
export interface ManifestOverride {
|
export interface ManifestOverride {
|
||||||
_obsolete?: boolean;
|
_obsolete?: boolean;
|
||||||
_recommended?: boolean;
|
_recommended?: boolean;
|
||||||
|
_superseded_package?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ManifestOverrides = Record<string, ManifestOverride>;
|
export type ManifestOverrides = Record<string, ManifestOverride>;
|
||||||
@@ -49,3 +50,16 @@ function pluginManifestOverridesPath(repoDir: string): string {
|
|||||||
export async function readManifestOverrides(repoDir: string): Promise<ManifestOverrides> {
|
export async function readManifestOverrides(repoDir: string): Promise<ManifestOverrides> {
|
||||||
return readJsonFile(pluginManifestOverridesPath(repoDir), {});
|
return readJsonFile(pluginManifestOverridesPath(repoDir), {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const getSupersededPackages = (manifsetOverrides: ManifestOverrides): string[] => {
|
||||||
|
const supersededPackages = [];
|
||||||
|
|
||||||
|
for (const id in manifsetOverrides) {
|
||||||
|
const supersededPackage = manifsetOverrides[id]._superseded_package;
|
||||||
|
if (supersededPackage) {
|
||||||
|
supersededPackages.push(supersededPackage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return supersededPackages;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user