@punks/backend-entity-manager 0.0.216 → 0.0.218
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/abstractions/media.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/plugins/media/aws-s3/provider/media.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/services/media/index.d.ts +2 -1
- package/dist/esm/index.js +22 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/abstractions/media.d.ts +7 -0
- package/dist/esm/types/platforms/nest/plugins/media/aws-s3/provider/media.d.ts +1 -0
- package/dist/esm/types/platforms/nest/services/media/index.d.ts +2 -1
- package/dist/index.d.ts +10 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ export type IMediaProvider = {
|
|
|
13
13
|
mediaDelete(input: MediaReference): Promise<void>;
|
|
14
14
|
mediaDownload(input: MediaReference): Promise<Buffer>;
|
|
15
15
|
getFileName(input: MediaReference): string;
|
|
16
|
+
getProviderId(): string;
|
|
16
17
|
};
|
|
17
18
|
export type MediaReferenceRecord = {
|
|
18
19
|
id: string;
|
|
@@ -26,6 +27,7 @@ export type MediaReferenceCreateInput = {
|
|
|
26
27
|
fileName: string;
|
|
27
28
|
contentType?: string;
|
|
28
29
|
folderId?: string;
|
|
30
|
+
providerId: string;
|
|
29
31
|
};
|
|
30
32
|
export type IMediaReferenceRepository = {
|
|
31
33
|
getReference(file: MediaReference): Promise<MediaReferenceRecord>;
|
|
@@ -49,6 +51,7 @@ export type IMediaFolderRepository = {
|
|
|
49
51
|
folderMove(id: string, parentId?: string): Promise<void>;
|
|
50
52
|
folderDelete(id: string): Promise<void>;
|
|
51
53
|
foldersList(parentId?: string): Promise<MediaFolderRecord[]>;
|
|
54
|
+
folderFind(name: string, parentId?: string): Promise<MediaFolderRecord>;
|
|
52
55
|
};
|
|
53
56
|
export type MediaFolderCreateInput = {
|
|
54
57
|
folderName: string;
|
|
@@ -70,10 +73,14 @@ export type MediaInfo = {
|
|
|
70
73
|
ref: string;
|
|
71
74
|
fileName: string;
|
|
72
75
|
};
|
|
76
|
+
export type MediaFolderEnsureInput = {
|
|
77
|
+
path: string[];
|
|
78
|
+
};
|
|
73
79
|
export type IMediaLibraryManager = {
|
|
74
80
|
mediaUpload(input: MediaUploadInput): Promise<MediaReference>;
|
|
75
81
|
mediaDelete(input: MediaReference): Promise<void>;
|
|
76
82
|
mediaDownload(input: MediaReference): Promise<Buffer>;
|
|
83
|
+
folderEnsure(input: MediaFolderEnsureInput): Promise<MediaFolderReference>;
|
|
77
84
|
folderCreate(input: MediaFolderCreateInput): Promise<MediaFolderReference>;
|
|
78
85
|
folderDelete(input: MediaFolderReference): Promise<void>;
|
|
79
86
|
folderMove(input: MediaFolderMoveInput): Promise<void>;
|
|
@@ -3,6 +3,7 @@ import { IMediaProvider, MediaReference, MediaUploadInput } from "../../../../..
|
|
|
3
3
|
export declare class AwsS3MediaProvider implements IMediaProvider {
|
|
4
4
|
private readonly client;
|
|
5
5
|
constructor();
|
|
6
|
+
getProviderId(): string;
|
|
6
7
|
getFileName(input: MediaReference): string;
|
|
7
8
|
mediaUpload(input: MediaUploadInput): Promise<MediaReference>;
|
|
8
9
|
mediaDelete(input: MediaReference): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { IMediaLibraryManager, MediaFolderCreateInput, MediaFolderMoveInput, MediaFolderReference, MediaFolderRenameInput, MediaInfo, MediaReference, MediaUploadInput } from "../../../../abstractions";
|
|
2
|
+
import { IMediaLibraryManager, MediaFolderCreateInput, MediaFolderEnsureInput, MediaFolderMoveInput, MediaFolderReference, MediaFolderRenameInput, MediaInfo, MediaReference, MediaUploadInput } from "../../../../abstractions";
|
|
3
3
|
import { EntityManagerRegistry } from "../../ioc";
|
|
4
4
|
export declare class MediaLibraryService implements IMediaLibraryManager {
|
|
5
5
|
private readonly registry;
|
|
@@ -7,6 +7,7 @@ export declare class MediaLibraryService implements IMediaLibraryManager {
|
|
|
7
7
|
mediaUpload(input: MediaUploadInput): Promise<MediaReference>;
|
|
8
8
|
mediaDelete(input: MediaReference): Promise<void>;
|
|
9
9
|
mediaDownload(input: MediaReference): Promise<Buffer>;
|
|
10
|
+
folderEnsure(input: MediaFolderEnsureInput): Promise<MediaFolderReference>;
|
|
10
11
|
folderCreate(input: MediaFolderCreateInput): Promise<MediaFolderReference>;
|
|
11
12
|
folderMove(input: MediaFolderMoveInput): Promise<void>;
|
|
12
13
|
folderRename(input: MediaFolderRenameInput): Promise<void>;
|
package/dist/esm/index.js
CHANGED
|
@@ -21277,6 +21277,7 @@ let MediaLibraryService = class MediaLibraryService {
|
|
|
21277
21277
|
fileName: input.fileName,
|
|
21278
21278
|
contentType: input.contentType,
|
|
21279
21279
|
folderId: input.folderId,
|
|
21280
|
+
providerId: this.defaultMediaProvider.getProviderId(),
|
|
21280
21281
|
});
|
|
21281
21282
|
return reference;
|
|
21282
21283
|
}
|
|
@@ -21287,6 +21288,24 @@ let MediaLibraryService = class MediaLibraryService {
|
|
|
21287
21288
|
async mediaDownload(input) {
|
|
21288
21289
|
return await this.getMediaProvider(this.parseReferenceProviderId(input)).mediaDownload(input);
|
|
21289
21290
|
}
|
|
21291
|
+
async folderEnsure(input) {
|
|
21292
|
+
let parentFolder;
|
|
21293
|
+
let folder;
|
|
21294
|
+
for (const folderName of input.path) {
|
|
21295
|
+
folder = await this.mediaFolderRepository.folderFind(folderName, parentFolder?.id);
|
|
21296
|
+
if (!folder) {
|
|
21297
|
+
folder = await this.mediaFolderRepository.folderCreate({
|
|
21298
|
+
name: folderName,
|
|
21299
|
+
parentId: parentFolder?.id,
|
|
21300
|
+
});
|
|
21301
|
+
}
|
|
21302
|
+
parentFolder = folder;
|
|
21303
|
+
}
|
|
21304
|
+
if (!folder) {
|
|
21305
|
+
throw new Error("Cannot create folder");
|
|
21306
|
+
}
|
|
21307
|
+
return folder;
|
|
21308
|
+
}
|
|
21290
21309
|
async folderCreate(input) {
|
|
21291
21310
|
return await this.mediaFolderRepository.folderCreate({
|
|
21292
21311
|
name: input.folderName,
|
|
@@ -28957,6 +28976,9 @@ let AwsS3MediaProvider = class AwsS3MediaProvider {
|
|
|
28957
28976
|
constructor() {
|
|
28958
28977
|
this.client = createClient$1(awsMediaSettings.value);
|
|
28959
28978
|
}
|
|
28979
|
+
getProviderId() {
|
|
28980
|
+
return "awsS3";
|
|
28981
|
+
}
|
|
28960
28982
|
getFileName(input) {
|
|
28961
28983
|
const parsedRef = parseRef(input.ref);
|
|
28962
28984
|
return parsedRef.path.split("/").pop() ?? "";
|