You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-16 00:14:34 +02:00
Chore: Refactor renderer package: Limit dependency on @joplin/lib
and improve type safety (#9701)
This commit is contained in:
@ -7,9 +7,9 @@ import markdownUtils from '../markdownUtils';
|
||||
import { _ } from '../locale';
|
||||
import { ResourceEntity, ResourceLocalStateEntity, ResourceOcrStatus, SqlQuery } from '../services/database/types';
|
||||
import ResourceLocalState from './ResourceLocalState';
|
||||
const pathUtils = require('../path-utils');
|
||||
import * as pathUtils from '../path-utils';
|
||||
import { safeFilename } from '../path-utils';
|
||||
const { mime } = require('../mime-utils.js');
|
||||
const { filename, safeFilename } = require('../path-utils');
|
||||
const { FsDriverDummy } = require('../fs-driver-dummy.js');
|
||||
import JoplinError from '../JoplinError';
|
||||
import itemCanBeEncrypted from './utils/itemCanBeEncrypted';
|
||||
@ -23,6 +23,7 @@ import { RecognizeResultLine } from '../services/ocr/utils/types';
|
||||
import eventManager, { EventName } from '../eventManager';
|
||||
import { unique } from '../array';
|
||||
import isSqliteSyntaxError from '../services/database/isSqliteSyntaxError';
|
||||
import { internalUrl, isResourceUrl, isSupportedImageMimeType, resourceFilename, resourceFullPath, resourcePathToId, resourceRelativePath, resourceUrlToId } from './utils/resourceUtils';
|
||||
|
||||
export default class Resource extends BaseItem {
|
||||
|
||||
@ -56,8 +57,7 @@ export default class Resource extends BaseItem {
|
||||
}
|
||||
|
||||
public static isSupportedImageMimeType(type: string) {
|
||||
const imageMimeTypes = ['image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp', 'image/avif'];
|
||||
return imageMimeTypes.indexOf(type.toLowerCase()) >= 0;
|
||||
return isSupportedImageMimeType(type);
|
||||
}
|
||||
|
||||
public static fetchStatuses(resourceIds: string[]): Promise<any[]> {
|
||||
@ -121,10 +121,7 @@ export default class Resource extends BaseItem {
|
||||
}
|
||||
|
||||
public static filename(resource: ResourceEntity, encryptedBlob = false) {
|
||||
let extension = encryptedBlob ? 'crypted' : resource.file_extension;
|
||||
if (!extension) extension = resource.mime ? mime.toFileExtension(resource.mime) : '';
|
||||
extension = extension ? `.${extension}` : '';
|
||||
return resource.id + extension;
|
||||
return resourceFilename(resource, encryptedBlob);
|
||||
}
|
||||
|
||||
public static friendlySafeFilename(resource: ResourceEntity) {
|
||||
@ -137,11 +134,11 @@ export default class Resource extends BaseItem {
|
||||
}
|
||||
|
||||
public static relativePath(resource: ResourceEntity, encryptedBlob = false) {
|
||||
return `${Setting.value('resourceDirName')}/${this.filename(resource, encryptedBlob)}`;
|
||||
return resourceRelativePath(resource, this.baseRelativeDirectoryPath(), encryptedBlob);
|
||||
}
|
||||
|
||||
public static fullPath(resource: ResourceEntity, encryptedBlob = false) {
|
||||
return `${Setting.value('resourceDir')}/${this.filename(resource, encryptedBlob)}`;
|
||||
return resourceFullPath(resource, this.baseDirectoryPath(), encryptedBlob);
|
||||
}
|
||||
|
||||
public static async isReady(resource: ResourceEntity) {
|
||||
@ -270,11 +267,11 @@ export default class Resource extends BaseItem {
|
||||
}
|
||||
|
||||
public static internalUrl(resource: ResourceEntity) {
|
||||
return `:/${resource.id}`;
|
||||
return internalUrl(resource);
|
||||
}
|
||||
|
||||
public static pathToId(path: string) {
|
||||
return filename(path);
|
||||
return resourcePathToId(path);
|
||||
}
|
||||
|
||||
public static async content(resource: ResourceEntity) {
|
||||
@ -282,12 +279,11 @@ export default class Resource extends BaseItem {
|
||||
}
|
||||
|
||||
public static isResourceUrl(url: string) {
|
||||
return url && url.length === 34 && url[0] === ':' && url[1] === '/';
|
||||
return isResourceUrl(url);
|
||||
}
|
||||
|
||||
public static urlToId(url: string) {
|
||||
if (!this.isResourceUrl(url)) throw new Error(`Not a valid resource URL: ${url}`);
|
||||
return url.substr(2);
|
||||
return resourceUrlToId(url);
|
||||
}
|
||||
|
||||
public static async localState(resourceOrId: any): Promise<ResourceLocalStateEntity> {
|
||||
|
Reference in New Issue
Block a user