@cumulus/ingest 13.0.0 → 13.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"url-path-template.d.ts","sourceRoot":"","sources":["src/url-path-template.js"],"names":[],"mappings":"AA+DA;;;;;;;GAOG;AACH,8CALU,MAAM,WAEN,MAAM,GACJ,MAAM,CAajB"}
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,6 +1,7 @@
1
1
  "use strict";
2
2
  const get = require('lodash/get');
3
3
  const moment = require('moment');
4
+ const path = require('path');
4
5
  /**
5
6
  * evaluate the operation specified in template
6
7
  *
@@ -29,6 +30,9 @@ function evaluateOperation(name, args) {
29
30
  case 'substring': {
30
31
  return String.prototype.substring.apply(String(valueStr), args.slice(1));
31
32
  }
33
+ case 'extractPath': {
34
+ return path.dirname(valueStr);
35
+ }
32
36
  default:
33
37
  throw new Error(`Could not support operation ${name}`);
34
38
  }
@@ -44,17 +48,21 @@ function templateReplacer(context, submatch) {
44
48
  // parse the string to get the operation and arguments
45
49
  const expressionRegex = /([^(]+)\(([^)]+)\)/;
46
50
  const matches = submatch.match(expressionRegex);
47
- // submatch contains operation
51
+ // submatch contains operation and args
48
52
  if (submatch.match(expressionRegex)) {
49
53
  const name = matches[1];
50
54
  const args = matches[2].split(/\s*,\s*/);
51
- const jsonPathValue = get(context, args[0], null);
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]);
52
60
  if (!jsonPathValue)
53
61
  throw new Error(`Could not resolve path ${args[0]}`);
54
62
  args[0] = jsonPathValue;
55
63
  return evaluateOperation(name, args);
56
64
  }
57
- const jsonPathValue = get(context, submatch, null);
65
+ const jsonPathValue = get(context, submatch);
58
66
  if (!jsonPathValue)
59
67
  throw new Error(`Could not resolve path ${submatch}`);
60
68
  return jsonPathValue;
@@ -68,10 +76,14 @@ function templateReplacer(context, submatch) {
68
76
  * @returns {string} - the url path for the file
69
77
  **/
70
78
  function urlPathTemplate(pathTemplate, context) {
71
- const templateRegex = /{([^}]+)}/g;
79
+ const templateRegex = /{([^{}]+)}/g;
72
80
  try {
73
81
  // match: The matched substring, submatch: The parenthesized submatch string
74
- return pathTemplate.replace(templateRegex, (match, submatch) => templateReplacer(context, submatch));
82
+ const replacedPath = pathTemplate.replace(templateRegex, (match, submatch) => templateReplacer(context, submatch));
83
+ if (replacedPath.match(templateRegex)) {
84
+ return urlPathTemplate(replacedPath, context);
85
+ }
86
+ return replacedPath;
75
87
  }
76
88
  catch (error) {
77
89
  throw new Error(`Could not resolve path template "${pathTemplate}" with error "${error.toString()}"`);
@@ -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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"}