@orion-js/file-manager 3.9.4 → 3.9.5

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.
@@ -5,6 +5,10 @@ export declare class FileSchemaResizeData {
5
5
  largeURL?: string;
6
6
  extraLargeURL?: string;
7
7
  }
8
+ export declare class FileSchemaDimensionsData {
9
+ width?: number;
10
+ height?: number;
11
+ }
8
12
  export declare class FileSchemaColorsData {
9
13
  vibrant?: string;
10
14
  lightVibrant?: string;
@@ -26,6 +30,7 @@ export declare class FileSchema {
26
30
  status?: string;
27
31
  createdBy?: string;
28
32
  createdAt?: Date;
33
+ dimensions?: FileSchemaDimensionsData;
29
34
  resizedData?: FileSchemaResizeData;
30
35
  colorsData?: FileSchemaColorsData;
31
36
  }
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.FileSchema = exports.FileSchemaColorsData = exports.FileSchemaResizeData = void 0;
12
+ exports.FileSchema = exports.FileSchemaColorsData = exports.FileSchemaDimensionsData = exports.FileSchemaResizeData = void 0;
13
13
  const typed_model_1 = require("@orion-js/typed-model");
14
14
  let FileSchemaResizeData = class FileSchemaResizeData {
15
15
  };
@@ -37,6 +37,20 @@ FileSchemaResizeData = __decorate([
37
37
  (0, typed_model_1.TypedSchema)()
38
38
  ], FileSchemaResizeData);
39
39
  exports.FileSchemaResizeData = FileSchemaResizeData;
40
+ let FileSchemaDimensionsData = class FileSchemaDimensionsData {
41
+ };
42
+ __decorate([
43
+ (0, typed_model_1.Prop)({ optional: true }),
44
+ __metadata("design:type", Number)
45
+ ], FileSchemaDimensionsData.prototype, "width", void 0);
46
+ __decorate([
47
+ (0, typed_model_1.Prop)({ optional: true }),
48
+ __metadata("design:type", Number)
49
+ ], FileSchemaDimensionsData.prototype, "height", void 0);
50
+ FileSchemaDimensionsData = __decorate([
51
+ (0, typed_model_1.TypedSchema)()
52
+ ], FileSchemaDimensionsData);
53
+ exports.FileSchemaDimensionsData = FileSchemaDimensionsData;
40
54
  let FileSchemaColorsData = class FileSchemaColorsData {
41
55
  };
42
56
  __decorate([
@@ -120,6 +134,10 @@ __decorate([
120
134
  (0, typed_model_1.Prop)({ optional: true }),
121
135
  __metadata("design:type", Date)
122
136
  ], FileSchema.prototype, "createdAt", void 0);
137
+ __decorate([
138
+ (0, typed_model_1.Prop)({ optional: true, type: (0, typed_model_1.getModelForClass)(FileSchemaDimensionsData) }),
139
+ __metadata("design:type", FileSchemaDimensionsData)
140
+ ], FileSchema.prototype, "dimensions", void 0);
123
141
  __decorate([
124
142
  (0, typed_model_1.Prop)({ optional: true, type: (0, typed_model_1.getModelForClass)(FileSchemaResizeData) }),
125
143
  __metadata("design:type", FileSchemaResizeData)
@@ -1,4 +1,4 @@
1
- import { FileSchema, FileSchemaColorsData, FileSchemaResizeData } from './File/schema';
1
+ import { FileSchema, FileSchemaColorsData, FileSchemaDimensionsData, FileSchemaResizeData } from './File/schema';
2
2
  export interface FileManagerOptions {
3
3
  accessKeyId: string;
4
4
  secretAccessKey: string;
@@ -9,6 +9,7 @@ export interface FileManagerOptions {
9
9
  basePath: string;
10
10
  endpoint?: string;
11
11
  s3ForcePathStyle?: boolean;
12
+ getImageDimensions?: (file: FileSchema) => Promise<FileSchemaDimensionsData>;
12
13
  getResizedImages?: (file: FileSchema) => Promise<FileSchemaResizeData>;
13
14
  getImageColors?: (file: FileSchema) => Promise<FileSchemaColorsData>;
14
15
  }
@@ -10,6 +10,17 @@ async function generateImageInfo(file) {
10
10
  return;
11
11
  const options = (0, credentials_1.getFileManagerOptions)();
12
12
  if ((0, isImage_1.isImage)(file)) {
13
+ if (!file.dimensions && options.getImageDimensions) {
14
+ try {
15
+ file.dimensions = await options.getImageDimensions(file);
16
+ if (!(0, lodash_1.isEmpty)(file.dimensions)) {
17
+ await Files_1.Files.updateOne(file._id, { $set: { dimensions: file.dimensions } });
18
+ }
19
+ }
20
+ catch (error) {
21
+ console.error('Error getting image dimensions', error);
22
+ }
23
+ }
13
24
  if (!file.resizedData && options.getResizedImages) {
14
25
  try {
15
26
  file.resizedData = await options.getResizedImages(file);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/file-manager",
3
- "version": "3.9.4",
3
+ "version": "3.9.5",
4
4
  "main": "lib/index.js",
5
5
  "author": "nicolaslopezj",
6
6
  "license": "MIT",
@@ -36,5 +36,5 @@
36
36
  "publishConfig": {
37
37
  "access": "public"
38
38
  },
39
- "gitHead": "f50af675ec07b1c2aedfba1f7554f70ad72a4967"
39
+ "gitHead": "d8f629a931e623f0efdc94a47ef75f19f759fe6a"
40
40
  }