@nexrender/core 1.60.11 → 1.61.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexrender/core",
3
- "version": "1.60.11",
3
+ "version": "1.61.0",
4
4
  "main": "src/index.js",
5
5
  "author": "Inlife",
6
6
  "homepage": "https://www.nexrender.com",
@@ -43,5 +43,5 @@
43
43
  "publishConfig": {
44
44
  "access": "public"
45
45
  },
46
- "gitHead": "50f8168326645ea39d97035b5548dfd73a0b32fc"
46
+ "gitHead": "99fd5549ea07d74a864ca160cded9e6147a61ec6"
47
47
  }
@@ -253,6 +253,12 @@ nexrender.changeValueForKeypath = function (layer, keys, val) {
253
253
  change(layer, keys, val);
254
254
  };
255
255
 
256
+ nexrender.log = function(message) {
257
+ if (gAECommandLineRenderer && gAECommandLineRenderer.log_file) {
258
+ gAECommandLineRenderer.log_file.writeln("NX:" + message);
259
+ }
260
+ }
261
+
256
262
 
257
263
  /* end of nexrender script */
258
264
  /* start of custom user script */
@@ -16,11 +16,19 @@ const download = (job, settings, asset) => {
16
16
 
17
17
  settings.logger.log(`[${job.uid}] > Downloading asset ${asset.src}...`);
18
18
 
19
- // eslint-disable-next-line
20
- const uri = global.URL ? new URL(asset.src) : url.parse(asset.src)
21
- const protocol = uri.protocol.replace(/:$/, '');
19
+ let uri;
20
+ let protocol;
22
21
  let destName = '';
23
22
 
23
+ try {
24
+ // eslint-disable-next-line
25
+ uri = global.URL ? new URL(asset.src) : url.parse(asset.src)
26
+ protocol = uri.protocol.replace(/:$/, '');
27
+ } catch (error) {
28
+ settings.logger.log(`[download] error parsing asset ${asset.src}: ${error}`);
29
+ return Promise.reject(error);
30
+ }
31
+
24
32
  /* if asset doesnt have a file name, make up a random one */
25
33
  if (protocol === 'data' && !asset.layerName) {
26
34
  destName = Math.random().toString(36).substring(2);
@@ -181,10 +189,15 @@ const download = (job, settings, asset) => {
181
189
  module.exports = function(job, settings) {
182
190
  settings.logger.log(`[${job.uid}] downloading assets...`)
183
191
 
184
- const promises = [].concat(
185
- download(job, settings, job.template),
186
- job.assets.map(asset => download(job, settings, asset))
187
- )
192
+ try {
193
+ const promises = [].concat(
194
+ download(job, settings, job.template),
195
+ job.assets.map(asset => download(job, settings, asset))
196
+ )
188
197
 
189
- return Promise.all(promises).then(() => job);
198
+ return Promise.all(promises).then(() => job);
199
+ } catch (error) {
200
+ settings.logger.log(`[download] error downloading assets: ${error}`);
201
+ return Promise.reject(error);
202
+ }
190
203
  }
@@ -18,8 +18,22 @@ const EnhancedScript = require('./EnhancedScript')
18
18
  * @return string (String) The compiled script with parameter injection outside its original scope to avoid user-defined defaults collision.
19
19
  */
20
20
  const wrapEnhancedScript = (job, settings, { dest, src, parameters = [], keyword, defaults, /* ...asset */ }) => {
21
- const enhancedScript = new EnhancedScript(dest, src, parameters, keyword, defaults, job.uid, settings.logger);
21
+ const builtInParameters = [
22
+ { type: 'string', key: 'nxWorkpath', value: job.workpath },
23
+ { type: 'string', key: 'nxUID', value: job.uid },
24
+ ];
25
+
26
+ const enhancedScript = new EnhancedScript(
27
+ dest,
28
+ src,
29
+ [...builtInParameters, ...parameters],
30
+ keyword,
31
+ defaults,
32
+ job.uid,
33
+ settings.logger
34
+ );
35
+
22
36
  return enhancedScript.build();
23
37
  }
24
38
 
25
- module.exports = wrapEnhancedScript
39
+ module.exports = wrapEnhancedScript