@cumulus/ingest 20.3.0 → 21.0.0-echo10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"url-path-template.d.ts","sourceRoot":"","sources":["src/url-path-template.js"],"names":[],"mappings":"AAuEA;;;;;;;GAOG;AACH,8CALU,MAAM,WAEN,MAAM,GACJ,MAAM,CAmBjB"}
1
+ {"version":3,"file":"url-path-template.d.ts","sourceRoot":"","sources":["src/url-path-template.js"],"names":[],"mappings":"AAiFA;;;;;;;GAOG;AACH,8CALU,MAAM,WAEN,MAAM,GACJ,MAAM,CAiBjB"}
@@ -3,35 +3,47 @@ const get = require('lodash/get');
3
3
  const moment = require('moment');
4
4
  const path = require('path');
5
5
  /**
6
- * evaluate the operation specified in template
7
- *
8
- * @param {string} name - the name of the operation
9
- * @param {Object} args - the args (in array) of the operation
10
- * @returns {string} - the return value of the operation
11
- **/
12
- function evaluateOperation(name, args) {
13
- const valueStr = args[0];
6
+ * evaluate the operation specified in template
7
+ *
8
+ * @param {string} name - the name of the operation
9
+ * @param {object} args - the args (in array) of the operation
10
+ * @param {object} context - the metadata used in the template
11
+ * @returns {string} - the return value of the operation
12
+ */
13
+ function evaluateOperation(name, args, context) {
14
+ // args[0] is either an object path or a constant
15
+ // e.g. extractPath(file.path) or extractPath('/a/b/c')
16
+ // assume args[0] is an object path if it starts with a key of context
17
+ const isObjectPath = Object.keys(context).includes(args[0].split('.')[0]);
18
+ const jsonPathValue = get(context, args[0], isObjectPath ? undefined : args[0]);
19
+ if (name !== 'defaultTo' && !jsonPathValue)
20
+ throw new Error(`Could not resolve path ${args[0]}`);
14
21
  switch (name) {
15
22
  case 'extractYear': {
16
- return new Date(valueStr).getUTCFullYear();
23
+ return new Date(jsonPathValue).getUTCFullYear();
17
24
  }
18
25
  case 'extractMonth': {
19
- return (new Date(valueStr).getUTCMonth() + 1).toString();
26
+ return (new Date(jsonPathValue).getUTCMonth() + 1).toString();
20
27
  }
21
28
  case 'extractDate': {
22
- return new Date(valueStr).getUTCDate().toString();
29
+ return new Date(jsonPathValue).getUTCDate().toString();
23
30
  }
24
31
  case 'extractHour': {
25
- return new Date(valueStr).getUTCHours().toString();
32
+ return new Date(jsonPathValue).getUTCHours().toString();
26
33
  }
27
34
  case 'dateFormat': {
28
- return moment.utc(valueStr).format(args[1]);
35
+ return moment.utc(jsonPathValue).format(args[1]);
29
36
  }
30
37
  case 'substring': {
31
- return String.prototype.substring.apply(String(valueStr), args.slice(1));
38
+ return String.prototype.substring.apply(String(jsonPathValue), args.slice(1));
32
39
  }
33
40
  case 'extractPath': {
34
- return path.dirname(valueStr);
41
+ return path.dirname(jsonPathValue);
42
+ }
43
+ case 'defaultTo': {
44
+ const isObjectPathSecondArg = Object.keys(context).includes(args[1].split('.')[0]);
45
+ const jsonPathValueSecondArg = get(context, args[1], isObjectPathSecondArg ? undefined : args[1]);
46
+ return jsonPathValue || jsonPathValueSecondArg;
35
47
  }
36
48
  default:
37
49
  throw new Error(`Could not support operation ${name}`);
@@ -40,7 +52,7 @@ function evaluateOperation(name, args) {
40
52
  /**
41
53
  * retrieve the actual value of the matched string and return it
42
54
  *
43
- * @param {Object} context - the metadata used in the template
55
+ * @param {object} context - the metadata used in the template
44
56
  * @param {string} submatch - the parenthesized submatch string
45
57
  * @returns {string} - the value of the matched string
46
58
  */
@@ -52,15 +64,7 @@ function templateReplacer(context, submatch) {
52
64
  if (submatch.match(expressionRegex)) {
53
65
  const name = matches[1];
54
66
  const args = matches[2].split(/\s*,\s*/);
55
- // args[0] is either an object path or a constant
56
- // e.g. extractPath(file.path) or extractPath('/a/b/c')
57
- // assume args[0] is an object path if it starts with a key of context
58
- const isObjectPath = Object.keys(context).includes(args[0].split('.')[0]);
59
- const jsonPathValue = get(context, args[0], isObjectPath ? undefined : args[0]);
60
- if (!jsonPathValue)
61
- throw new Error(`Could not resolve path ${args[0]}`);
62
- args[0] = jsonPathValue;
63
- return evaluateOperation(name, args);
67
+ return evaluateOperation(name, args, context);
64
68
  }
65
69
  const jsonPathValue = get(context, submatch);
66
70
  if (!jsonPathValue)
@@ -1 +1 @@
1
- {"version":3,"file":"url-path-template.js","sourceRoot":"","sources":["src/url-path-template.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"url-path-template.js","sourceRoot":"","sources":["src/url-path-template.js"],"names":[],"mappings":"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"}