@orion-js/file-manager 3.9.3 → 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.
- package/lib/File/index.js +2 -28
- package/lib/File/schema.d.ts +5 -0
- package/lib/File/schema.js +19 -1
- package/lib/credentials.d.ts +2 -1
- package/lib/resolvers/completeUpload.js +6 -3
- package/lib/resolvers/generateImageInfo.d.ts +2 -0
- package/lib/resolvers/generateImageInfo.js +48 -0
- package/package.json +2 -2
package/lib/File/index.js
CHANGED
|
@@ -9,9 +9,7 @@ const pick_1 = __importDefault(require("lodash/pick"));
|
|
|
9
9
|
const omit_1 = __importDefault(require("lodash/omit"));
|
|
10
10
|
const schema_1 = require("./schema");
|
|
11
11
|
const typed_model_1 = require("@orion-js/typed-model");
|
|
12
|
-
const
|
|
13
|
-
const credentials_1 = require("../credentials");
|
|
14
|
-
const lodash_1 = require("lodash");
|
|
12
|
+
const generateImageInfo_1 = require("../resolvers/generateImageInfo");
|
|
15
13
|
const schema = (0, typed_model_1.getModelForClass)(schema_1.FileSchema).getSchema();
|
|
16
14
|
exports.default = (0, models_1.createModel)({
|
|
17
15
|
name: 'File',
|
|
@@ -25,31 +23,7 @@ exports.default = (0, models_1.createModel)({
|
|
|
25
23
|
const file = await Files_1.Files.findOne({ _id: fileId });
|
|
26
24
|
if (!file)
|
|
27
25
|
return null;
|
|
28
|
-
|
|
29
|
-
const options = (0, credentials_1.getFileManagerOptions)();
|
|
30
|
-
if (!file.resizedData && options.getResizedImages) {
|
|
31
|
-
try {
|
|
32
|
-
file.resizedData = await options.getResizedImages(file);
|
|
33
|
-
if (!(0, lodash_1.isEmpty)(file.resizedData)) {
|
|
34
|
-
await Files_1.Files.updateOne(file, { $set: { resizedData: file.resizedData } });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
console.error('Error getting resized images', error);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (!file.colorsData && options.getImageColors) {
|
|
42
|
-
try {
|
|
43
|
-
file.colorsData = await options.getImageColors(file);
|
|
44
|
-
if (!(0, lodash_1.isEmpty)(file.colorsData)) {
|
|
45
|
-
await Files_1.Files.updateOne(file, { $set: { colorsData: file.colorsData } });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
console.error('Error getting image colors', error);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
26
|
+
await (0, generateImageInfo_1.generateImageInfo)(file);
|
|
53
27
|
const keys = Object.keys((0, omit_1.default)(schema, 'createdBy', 'createdAt', 'status'));
|
|
54
28
|
const data = (0, pick_1.default)(file, keys);
|
|
55
29
|
return data;
|
package/lib/File/schema.d.ts
CHANGED
|
@@ -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
|
}
|
package/lib/File/schema.js
CHANGED
|
@@ -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)
|
package/lib/credentials.d.ts
CHANGED
|
@@ -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
|
}
|
|
@@ -6,17 +6,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const resolvers_1 = require("@orion-js/resolvers");
|
|
7
7
|
const File_1 = __importDefault(require("../File"));
|
|
8
8
|
const Files_1 = require("../Files");
|
|
9
|
+
const generateImageInfo_1 = require("./generateImageInfo");
|
|
9
10
|
exports.default = (0, resolvers_1.resolver)({
|
|
10
11
|
params: {
|
|
11
12
|
fileId: {
|
|
12
|
-
type: 'ID'
|
|
13
|
-
}
|
|
13
|
+
type: 'ID',
|
|
14
|
+
},
|
|
14
15
|
},
|
|
15
16
|
returns: File_1.default,
|
|
16
17
|
mutation: true,
|
|
17
18
|
async resolve({ fileId }, viewer) {
|
|
18
19
|
const file = await Files_1.Files.findOne({ createdBy: viewer.userId, _id: fileId });
|
|
19
20
|
await Files_1.Files.updateOne(file, { $set: { status: 'uploaded' } });
|
|
21
|
+
// mientras el usuario sigue editando el formulario, se generan los resizes y colores
|
|
22
|
+
(0, generateImageInfo_1.generateImageInfo)(file);
|
|
20
23
|
return file;
|
|
21
|
-
}
|
|
24
|
+
},
|
|
22
25
|
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateImageInfo = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const credentials_1 = require("../credentials");
|
|
6
|
+
const isImage_1 = require("../File/resolvers/isImage");
|
|
7
|
+
const Files_1 = require("../Files");
|
|
8
|
+
async function generateImageInfo(file) {
|
|
9
|
+
if (!file._id)
|
|
10
|
+
return;
|
|
11
|
+
const options = (0, credentials_1.getFileManagerOptions)();
|
|
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
|
+
}
|
|
24
|
+
if (!file.resizedData && options.getResizedImages) {
|
|
25
|
+
try {
|
|
26
|
+
file.resizedData = await options.getResizedImages(file);
|
|
27
|
+
if (!(0, lodash_1.isEmpty)(file.resizedData)) {
|
|
28
|
+
await Files_1.Files.updateOne(file._id, { $set: { resizedData: file.resizedData } });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.error('Error getting resized images', error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (!file.colorsData && options.getImageColors) {
|
|
36
|
+
try {
|
|
37
|
+
file.colorsData = await options.getImageColors(file);
|
|
38
|
+
if (!(0, lodash_1.isEmpty)(file.colorsData)) {
|
|
39
|
+
await Files_1.Files.updateOne(file._id, { $set: { colorsData: file.colorsData } });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error('Error getting image colors', error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.generateImageInfo = generateImageInfo;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orion-js/file-manager",
|
|
3
|
-
"version": "3.9.
|
|
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": "
|
|
39
|
+
"gitHead": "d8f629a931e623f0efdc94a47ef75f19f759fe6a"
|
|
40
40
|
}
|