@ezs/basics 2.5.0 → 2.5.2

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.
@@ -4,23 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = URLRequest;
7
-
8
7
  var _lodash = _interopRequireDefault(require("lodash.set"));
9
-
10
8
  var _debug = _interopRequireDefault(require("debug"));
11
-
12
9
  var _url = require("url");
13
-
14
10
  var _nodeAbortController = _interopRequireDefault(require("node-abort-controller"));
15
-
16
11
  var _parseHeaders = _interopRequireDefault(require("parse-headers"));
17
-
18
12
  var _asyncRetry = _interopRequireDefault(require("async-retry"));
19
-
20
13
  var _request = _interopRequireDefault(require("./request"));
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  /**
25
16
  * Take `Object` as parameters of URL, throw each chunk from the result
26
17
  *
@@ -62,7 +53,6 @@ async function URLRequest(data, feed) {
62
53
  if (this.isLast()) {
63
54
  return feed.close();
64
55
  }
65
-
66
56
  const url = this.getParam('url');
67
57
  const json = Boolean(this.getParam('json', true));
68
58
  const target = [].concat(this.getParam('target')).filter(Boolean).shift();
@@ -81,30 +71,25 @@ async function URLRequest(data, feed) {
81
71
  const options = {
82
72
  retries
83
73
  };
84
-
85
74
  if (url) {
86
75
  cURL.search = new _url.URLSearchParams(data);
87
76
  }
88
-
89
77
  const onError = e => {
90
78
  controller.abort();
91
-
92
79
  if (noerror) {
93
80
  (0, _debug.default)('ezs')(`Ignore item #${this.getIndex()} [URLRequest] <${e}>`);
94
81
  return feed.send(data);
95
82
  }
96
-
97
83
  (0, _debug.default)('ezs')(`Break item #${this.getIndex()} [URLRequest] <${e}>`);
98
84
  return feed.send(e);
99
85
  };
100
-
101
86
  try {
102
87
  const response = await (0, _asyncRetry.default)((0, _request.default)(cURL.href, parameters), options);
103
88
  const func = json ? 'json' : 'text';
104
89
  const value = await response[func]();
105
-
106
90
  if (target) {
107
- const result = typeof data === 'object' ? { ...data
91
+ const result = typeof data === 'object' ? {
92
+ ...data
108
93
  } : {
109
94
  url: data
110
95
  };
@@ -112,7 +97,6 @@ async function URLRequest(data, feed) {
112
97
  inserts.forEach(i => (0, _lodash.default)(result, i, response.headers.get(i)));
113
98
  return feed.send(result);
114
99
  }
115
-
116
100
  inserts.forEach(i => (0, _lodash.default)(value, i, response.headers.get(i)));
117
101
  return feed.send(value);
118
102
  } catch (e) {
package/lib/url-stream.js CHANGED
@@ -4,23 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = URLStream;
7
-
8
7
  var _debug = _interopRequireDefault(require("debug"));
9
-
10
8
  var _url = require("url");
11
-
12
9
  var _nodeAbortController = _interopRequireDefault(require("node-abort-controller"));
13
-
14
10
  var _JSONStream = _interopRequireDefault(require("JSONStream"));
15
-
16
11
  var _parseHeaders = _interopRequireDefault(require("parse-headers"));
17
-
18
12
  var _asyncRetry = _interopRequireDefault(require("async-retry"));
19
-
20
13
  var _request = _interopRequireDefault(require("./request"));
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  /**
25
16
  * Take `String` as URL, throw each chunk from the result or
26
17
  * Take `Object` as parameters of URL, throw each chunk from the result
@@ -91,7 +82,6 @@ async function URLStream(data, feed) {
91
82
  if (this.isLast()) {
92
83
  return feed.close();
93
84
  }
94
-
95
85
  const url = this.getParam('url');
96
86
  const path = this.getParam('path', '*');
97
87
  const retries = Number(this.getParam('retries', 5));
@@ -108,23 +98,18 @@ async function URLStream(data, feed) {
108
98
  const options = {
109
99
  retries
110
100
  };
111
-
112
101
  if (url) {
113
102
  cURL.search = new _url.URLSearchParams(data);
114
103
  }
115
-
116
104
  const onError = e => {
117
105
  controller.abort();
118
-
119
106
  if (noerror) {
120
107
  (0, _debug.default)('ezs')(`Ignore item #${this.getIndex()} [URLStream] <${e}>`);
121
108
  return feed.send(data);
122
109
  }
123
-
124
110
  (0, _debug.default)('ezs')(`Break item #${this.getIndex()} [URLStream] <${e}>`);
125
111
  return feed.send(e);
126
112
  };
127
-
128
113
  try {
129
114
  const response = await (0, _asyncRetry.default)((0, _request.default)(cURL.href, parameters), options);
130
115
  const output = path ? response.body.pipe(_JSONStream.default.parse(path)) : response.body;
package/lib/url-string.js CHANGED
@@ -4,16 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _url = require("url");
9
-
10
8
  function URLString(data, feed) {
11
9
  if (this.isLast()) {
12
10
  return feed.close();
13
11
  }
14
-
15
12
  return feed.send((0, _url.format)(data));
16
13
  }
14
+
17
15
  /**
18
16
  * Take an `Object` representing an URL and stringify it.
19
17
  *
@@ -22,8 +20,6 @@ function URLString(data, feed) {
22
20
  * @name URLString
23
21
  * @returns {String}
24
22
  */
25
-
26
-
27
23
  var _default = {
28
24
  URLString
29
25
  };
@@ -4,22 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _xmlMapping = _interopRequireDefault(require("xml-mapping"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  function XMLConvert(data, feed) {
13
10
  if (this.isLast()) {
14
11
  return feed.close();
15
12
  }
16
-
17
13
  const func = this.getParam('invert', false) ? 'dump' : 'load';
18
14
  const opts = {
19
15
  header: this.getParam('prologue', false)
20
16
  };
21
17
  feed.send(_xmlMapping.default[func](data, opts));
22
18
  }
19
+
23
20
  /**
24
21
  * Convert each chunk as XML String to JSON Object
25
22
  *
@@ -90,8 +87,6 @@ function XMLConvert(data, feed) {
90
87
  * @param {String} [prologue=false] add XML prologue
91
88
  * @returns {Object}
92
89
  */
93
-
94
-
95
90
  var _default = {
96
91
  XMLConvert
97
92
  };
package/lib/xml-parse.js CHANGED
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _xmlSplitter = _interopRequireDefault(require("xml-splitter"));
9
-
10
8
  var _streamWrite = _interopRequireDefault(require("stream-write"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  function XMLParse(data, feed) {
15
11
  if (!this.handle) {
16
12
  const separator = this.getParam('separator', '/');
17
13
  this.handle = new _xmlSplitter.default(separator);
18
14
  this.handle.on('data', obj => feed.write(obj));
19
15
  }
20
-
21
16
  if (!this.isLast()) {
22
17
  (0, _streamWrite.default)(this.handle.stream, data, () => feed.end());
23
18
  } else {
@@ -33,6 +28,7 @@ function XMLParse(data, feed) {
33
28
  */
34
29
  }
35
30
  }
31
+
36
32
  /**
37
33
  * Take `String` as XML input, parse it and split it in multi document at each path found
38
34
  *
@@ -60,8 +56,6 @@ function XMLParse(data, feed) {
60
56
  * @param {String} [separator="/"] choose a character for flatten keys
61
57
  * @returns {Object}
62
58
  */
63
-
64
-
65
59
  var _default = {
66
60
  XMLParse
67
61
  };
package/lib/xml-string.js CHANGED
@@ -4,35 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _xmlMapping = _interopRequireDefault(require("xml-mapping"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  function XMLString(data, feed) {
13
10
  const rootElement = this.getParam('rootElement', 'items');
14
11
  const contentElement = this.getParam('contentElement', 'item');
15
-
16
12
  if (this.isLast()) {
17
13
  const endTag = rootElement.length > 0 ? `</${rootElement}>` : '';
18
14
  if (endTag) feed.write(endTag);
19
15
  return feed.close();
20
16
  }
21
-
22
17
  if (this.isFirst()) {
23
18
  const prologue = this.getParam('prologue', false) ? '<?xml version="1.0" encoding="UTF-8"?>\n' : '';
24
19
  const rootNamespace = [].concat(this.getParam('rootNamespace')).filter(Boolean).map(ns => ns.replace('://', '§§§')).map(ns => ns.split(':')).map(ns => ns[1] ? [`:${ns[0]}`, ns[1]] : ['', ns[0]]).map(ns => [ns[0], ns[1].replace('§§§', '://').trim()]).reduce((prev, cur) => `${prev} xmlns${cur[0]}="${encodeURI(cur[1])}"`, '');
25
20
  const beginTag = rootElement.length > 0 ? `${prologue}<${rootElement}${rootNamespace}>` : '';
26
-
27
21
  if (beginTag) {
28
22
  feed.write(beginTag);
29
23
  }
30
24
  }
31
-
32
25
  feed.send(_xmlMapping.default.dump({
33
26
  [contentElement]: data
34
27
  }));
35
28
  }
29
+
36
30
  /**
37
31
  * Transform an `Object` into an XML string.
38
32
  *
@@ -58,8 +52,6 @@ function XMLString(data, feed) {
58
52
  * @param {Boolean} [prologue=false] Add XML prologue `<?xml`
59
53
  * @returns {String}
60
54
  */
61
-
62
-
63
55
  var _default = {
64
56
  XMLString
65
57
  };
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = ZIPExtract;
7
-
8
7
  var _unzipper = _interopRequireDefault(require("unzipper"));
9
-
10
8
  var _micromatch = _interopRequireDefault(require("micromatch"));
11
-
12
9
  var _streamWrite = _interopRequireDefault(require("stream-write"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  /**
17
12
  * Take the content of a zip file, extract some files.
18
13
  * The JSON object is sent to the output stream for each file.
@@ -31,7 +26,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
31
26
  */
32
27
  function ZIPExtract(data, feed) {
33
28
  const filesPatern = this.getParam('path', '**/*.json');
34
-
35
29
  if (this.isFirst()) {
36
30
  const {
37
31
  ezs
@@ -46,12 +40,10 @@ function ZIPExtract(data, feed) {
46
40
  value: content
47
41
  }, () => entry.autodrain());
48
42
  }
49
-
50
43
  return entry.autodrain();
51
44
  }).promise();
52
45
  this.whenFinish = feed.flow(this.output);
53
46
  }
54
-
55
47
  if (this.isLast()) {
56
48
  this.whenEnd.finally(() => this.output.end());
57
49
  this.whenFinish.finally(() => feed.close());
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ezs/basics",
3
3
  "description": "Basics statements for EZS",
4
- "version": "2.5.0",
4
+ "version": "2.5.2",
5
5
  "author": "Nicolas Thouvenin <nthouvenin@gmail.com>",
6
6
  "bugs": "https://github.com/Inist-CNRS/ezs/issues",
7
7
  "dependencies": {
@@ -33,8 +33,7 @@
33
33
  "tmp-filepath": "2.0.0",
34
34
  "unzipper": "0.10.11",
35
35
  "xml-mapping": "1.7.2",
36
- "xml-splitter": "1.2.1",
37
- "yajson-stream": "1.3.3"
36
+ "xml-splitter": "1.2.1"
38
37
  },
39
38
  "devDependencies": {
40
39
  "pako": "2.0.4"
@@ -42,7 +41,7 @@
42
41
  "directories": {
43
42
  "test": "test"
44
43
  },
45
- "gitHead": "c2694cd502cc4daaf7b9faa74eca46f7893771d8",
44
+ "gitHead": "8fe234cec9142250dc5d73c37c3370c6ca3e0d70",
46
45
  "homepage": "https://github.com/Inist-CNRS/ezs/tree/master/packages/basics#readme",
47
46
  "keywords": [
48
47
  "ezs"