@quatrain/worker 1.1.24 → 1.1.25

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/FileSystem.js CHANGED
@@ -91,7 +91,7 @@ class FileSystem {
91
91
  static uploadFile(filename, meta, mime = 'video/mp4') {
92
92
  // try to get more file metadata
93
93
  meta = { ...meta, ...FileSystem.getInfo(filename) };
94
- Worker_1.Worker.info(`Uploading file ${filename} with size ${meta.size} bytes to ${meta.uploadUrl}`);
94
+ Worker_1.Worker.info(`Uploading file ${filename} to ${meta.uploadUrl}`);
95
95
  return new Promise((resolve, reject) => {
96
96
  try {
97
97
  let done = 0; // total bytes uploaded
@@ -120,7 +120,10 @@ class FileSystem {
120
120
  },
121
121
  })
122
122
  .then(() => resolve({ ...meta, size, uploadUrl: undefined }))
123
- .catch((err) => reject(err));
123
+ .catch((err) => {
124
+ Worker_1.Worker.error(`An error occured while uploading ${filename}: ${err.message}`);
125
+ reject(err);
126
+ });
124
127
  }
125
128
  catch (err) {
126
129
  Worker_1.Worker.error(err);
@@ -0,0 +1,11 @@
1
+ export declare class Helpers {
2
+ static FFMPEG: string;
3
+ /**
4
+ * Generate a thubnail from a video file at given frame position
5
+ * @param videoPath path to video file
6
+ * @param frame frame to extract thumbnail from
7
+ * @param width width of thumbnail (4/3 ratio)
8
+ * @returns
9
+ */
10
+ static generateVideoThumbnail: (videoPath: string, frame?: number, width?: number) => Promise<any>;
11
+ }
package/lib/Helpers.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Helpers = void 0;
7
+ const Worker_1 = require("./Worker");
8
+ const path_1 = __importDefault(require("path"));
9
+ class Helpers {
10
+ static FFMPEG = '/usr/bin/ffmpeg';
11
+ /**
12
+ * Generate a thubnail from a video file at given frame position
13
+ * @param videoPath path to video file
14
+ * @param frame frame to extract thumbnail from
15
+ * @param width width of thumbnail (4/3 ratio)
16
+ * @returns
17
+ */
18
+ static generateVideoThumbnail = async (videoPath, frame = 0, width = 320) => {
19
+ const resolution = `${width}x${Math.ceil(width * 0.75)}`;
20
+ const outputPath = path_1.default.resolve(videoPath.split('.')[0], `_${frame}_${resolution}.jpg`);
21
+ const ffmpegParams = [
22
+ '-i',
23
+ videoPath,
24
+ '-vframes',
25
+ '1',
26
+ '-vf',
27
+ `select=gte(n\,${frame})`,
28
+ '-s',
29
+ resolution,
30
+ '-ss',
31
+ '1',
32
+ outputPath,
33
+ '-y',
34
+ ];
35
+ Worker_1.Worker.info(`Generating Thumbnail : ${outputPath}`);
36
+ return await Worker_1.Worker.execPromise(Helpers.FFMPEG, ffmpegParams);
37
+ };
38
+ }
39
+ exports.Helpers = Helpers;
package/lib/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Worker } from './Worker';
2
2
  import { FileSystem } from './FileSystem';
3
+ import { Helpers } from './Helpers';
3
4
  import { HandlerParameters } from './types/HandlerParameters';
4
5
  import { ModeEnum } from './types/ModeEnum';
5
- export { Worker, FileSystem, ModeEnum, HandlerParameters };
6
+ export { Worker, FileSystem, Helpers, ModeEnum, HandlerParameters };
package/lib/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModeEnum = exports.FileSystem = exports.Worker = void 0;
3
+ exports.ModeEnum = exports.Helpers = exports.FileSystem = exports.Worker = void 0;
4
4
  const Worker_1 = require("./Worker");
5
5
  Object.defineProperty(exports, "Worker", { enumerable: true, get: function () { return Worker_1.Worker; } });
6
6
  const FileSystem_1 = require("./FileSystem");
7
7
  Object.defineProperty(exports, "FileSystem", { enumerable: true, get: function () { return FileSystem_1.FileSystem; } });
8
+ const Helpers_1 = require("./Helpers");
9
+ Object.defineProperty(exports, "Helpers", { enumerable: true, get: function () { return Helpers_1.Helpers; } });
8
10
  const ModeEnum_1 = require("./types/ModeEnum");
9
11
  Object.defineProperty(exports, "ModeEnum", { enumerable: true, get: function () { return ModeEnum_1.ModeEnum; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/worker",
3
- "version": "1.1.24",
3
+ "version": "1.1.25",
4
4
  "description": "Container Worker helpers",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@quatrain/core": "^1.1.19",
29
- "@quatrain/queue": "^1.1.15",
29
+ "@quatrain/queue": "^1.1.16",
30
30
  "axios": "^1.7.7",
31
31
  "fluent-ffmpeg": "^2.1.2",
32
32
  "fs-extra": "^11.2.0",