gedcom.json 1.0.0 → 1.0.4

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/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # gedcom.json
2
2
 
3
- [![Build Status](https://travis-ci.com/Jisco/gedcom.json.png?branch=master)](https://travis-ci.com/Jisco/gedcom.json) [![codecov](https://codecov.io/gh/Jisco/gedcom.json/branch/master/graph/badge.svg?token=MQ5CNQYFPU)](https://codecov.io/gh/Jisco/gedcom.json) [![Known Vulnerabilities](https://snyk.io/test/github/Jisco/gedcom.json/badge.svg?targetFile=package.json)](https://snyk.io/test/github/Jisco/gedcom.json?targetFile=package.json)
3
+ <!-- [![Build Status](https://travis-ci.com/Jisco/gedcom.json.png?branch=master)](https://travis-ci.com/Jisco/gedcom.json) -->
4
+ [![codecov](https://codecov.io/gh/Jisco/gedcom.json/branch/master/graph/badge.svg?token=MQ5CNQYFPU)](https://codecov.io/gh/Jisco/gedcom.json) [![Known Vulnerabilities](https://snyk.io/test/github/Jisco/gedcom.json/badge.svg?targetFile=package.json)](https://snyk.io/test/github/Jisco/gedcom.json?targetFile=package.json)
4
5
 
5
6
  Live example: [CodeSandbox](https://codesandbox.io/s/blissful-elbakyan-tofq8?file=/index.html)
6
7
 
@@ -30,7 +31,7 @@ I am aware that there are already several parsers for the gedcom format. However
30
31
 
31
32
  ##### Via commandline
32
33
 
33
- Just run npx ts-node src/index.ts with the wanted flags. Eg if you run "npm run demo:JSON" it will execute "ts-node src/index.ts --path 'examples/simpsons.get'" and will print out the Simpsons GEDCOM examplke file as JSON object in the console. With "npm run demoFile:JSON" it will do the same but prints the JSON object in a 'test.json' file.
34
+ Just run npx ts-node src/console.ts with the wanted flags. Eg if you run "npm run demo:JSON" it will execute "ts-node src/console.ts --path 'examples/simpsons.get'" and will print out the Simpsons GEDCOM examplke file as JSON object in the console. With "npm run demoFile:JSON" it will do the same but prints the JSON object in a 'test.json' file.
34
35
 
35
36
  | Flag | Description |
36
37
  | ---------------- | ------------------------------------------------------------ |
@@ -39,6 +40,7 @@ Just run npx ts-node src/index.ts with the wanted flags. Eg if you run "npm run
39
40
  | --out *xxx.json* | File path to print into |
40
41
  | --path *xxx.ged* | Set the path to the GEDCOM file |
41
42
  | --silent | Don't print anything to the console |
43
+ | --showProgress | Print the progress during processing the file |
42
44
 
43
45
  ##### Via Node or JS
44
46
 
@@ -14,6 +14,11 @@ function Convert(argv) {
14
14
  if (argv.opt) {
15
15
  options.SetConfigFile(argv.opt);
16
16
  }
17
+ if (argv.showProgress) {
18
+ options.SetProgressFunction((linesCount, lineNumber) => {
19
+ process.stdout.write(`\rProgress: parsing line ${lineNumber} from ${linesCount}`);
20
+ });
21
+ }
17
22
  let silent = false;
18
23
  if (argv.silent) {
19
24
  silent = true;
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/ToJSON/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/ToJSON/console.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ class Parsing {
17
17
  if (!this.options.GetText()) {
18
18
  return new ParsingResult_1.default({});
19
19
  }
20
- return parsing_1.ParseText(this.options.GetText(), this.options.GetConfig());
20
+ return parsing_1.ParseText(this.options.GetText(), this.options.GetConfig(), this.options.GetProgressFunction());
21
21
  }
22
22
  ParseTextAsync() {
23
23
  if (!this.options.GetText()) {
@@ -26,7 +26,7 @@ class Parsing {
26
26
  });
27
27
  }
28
28
  return new Promise((resolve, reject) => {
29
- resolve(parsing_1.ParseText(this.options.GetText(), this.options.GetConfig()));
29
+ resolve(parsing_1.ParseText(this.options.GetText(), this.options.GetConfig(), this.options.GetProgressFunction()));
30
30
  });
31
31
  }
32
32
  ParseFile(doneCallback, errorCallback) {
@@ -34,7 +34,7 @@ class Parsing {
34
34
  if (!filePath) {
35
35
  return;
36
36
  }
37
- parsing_1.ParseFile(filePath, this.options.GetConfig(), doneCallback, errorCallback);
37
+ parsing_1.ParseFile(filePath, this.options.GetConfig(), doneCallback, errorCallback, this.options.GetProgressFunction());
38
38
  }
39
39
  ParseFileAsync() {
40
40
  if (!this.options.GetFilePath()) {
@@ -1 +1 @@
1
- {"version":3,"file":"Parsing.js","sourceRoot":"","sources":["../../../src/ToJSON/models/Parsing.ts"],"names":[],"mappings":";;;;;AAAA,gDAA0D;AAC1D,sEAA8C;AAC9C,oEAA4C;AAE5C,MAAqB,OAAO;IACxB,YAAY,cAA+B;QACvC,IAAI,CAAC,OAAO,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI,wBAAc,EAAE,CAAC;IAC1D,CAAC;IAID,MAAM,CAAC,MAAc,EAAE,IAAY;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;YACzB,OAAO,IAAI,uBAAa,CAAC,EAAE,CAAC,CAAC;SAChC;QAED,OAAO,mBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;YACzB,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,OAAO,CAAC,mBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,YAA6C,EAAE,aAAuB;QAC5E,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;QAED,mBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAC/E,CAAC;IAED,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;YAC7B,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAnDD,0BAmDC"}
1
+ {"version":3,"file":"Parsing.js","sourceRoot":"","sources":["../../../src/ToJSON/models/Parsing.ts"],"names":[],"mappings":";;;;;AAAA,gDAA0D;AAC1D,sEAA8C;AAC9C,oEAA4C;AAE5C,MAAqB,OAAO;IACxB,YAAY,cAA+B;QACvC,IAAI,CAAC,OAAO,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI,wBAAc,EAAE,CAAC;IAC1D,CAAC;IAID,MAAM,CAAC,MAAc,EAAE,IAAY;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;YACzB,OAAO,IAAI,uBAAa,CAAC,EAAE,CAAC,CAAC;SAChC;QAED,OAAO,mBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;YACzB,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,OAAO,CAAC,mBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,YAA6C,EAAE,aAAuB;QAC5E,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;QAED,mBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;YAC7B,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClD,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;QAED,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAnDD,0BAmDC"}
@@ -23,6 +23,12 @@ class ParsingOptions {
23
23
  var _a;
24
24
  return (_a = this.config) !== null && _a !== void 0 ? _a : require('fs').readFileSync('options/version551.yaml', 'utf8');
25
25
  }
26
+ SetProgressFunction(func) {
27
+ this.progressFunction = func;
28
+ }
29
+ GetProgressFunction() {
30
+ return this.progressFunction;
31
+ }
26
32
  }
27
33
  exports.default = ParsingOptions;
28
34
  //# sourceMappingURL=ParsingOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParsingOptions.js","sourceRoot":"","sources":["../../../src/ToJSON/models/ParsingOptions.ts"],"names":[],"mappings":";;AAAA,MAAqB,cAAc;IAK/B,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,SAAS;;QACL,aAAO,IAAI,CAAC,MAAM,mCAAI,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;CACJ;AAhCD,iCAgCC"}
1
+ {"version":3,"file":"ParsingOptions.js","sourceRoot":"","sources":["../../../src/ToJSON/models/ParsingOptions.ts"],"names":[],"mappings":";;AAAA,MAAqB,cAAc;IAM/B,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,SAAS;;QACL,aAAO,IAAI,CAAC,MAAM,mCAAI,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,mBAAmB,CAAC,IAAsD;QACtE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACJ;AAzCD,iCAyCC"}
@@ -21,9 +21,10 @@ let stats = new Statistics_1.default();
21
21
  *
22
22
  * @param text - The text
23
23
  * @param parsingOptions - The parsing options
24
+ * @param invokeProgressFunction - Set function that is called before each line, to show progress in some way
24
25
  * @returns An object which includes the parsed object and parsing statistics
25
26
  */
26
- function ParseText(text, parsingOptions) {
27
+ function ParseText(text, parsingOptions, invokeProgressFunction) {
27
28
  if (!text || !parsingOptions) {
28
29
  return new ParsingResult_1.default({});
29
30
  }
@@ -46,7 +47,10 @@ function ParseText(text, parsingOptions) {
46
47
  }
47
48
  lineNumber++;
48
49
  };
49
- forEach_1.default(lines, line => {
50
+ forEach_1.default(lines, (line, index) => {
51
+ if (invokeProgressFunction) {
52
+ invokeProgressFunction(lines.length, index);
53
+ }
50
54
  ProcessNewLine(lastLevel, lineNumber, line, nextLine);
51
55
  });
52
56
  let result = processLine_1.GetResult();
@@ -61,10 +65,31 @@ exports.ParseText = ParseText;
61
65
  * @param parsingOptions - The parsing options
62
66
  * @param doneCallback - Returns the resulting object when file is readed completly
63
67
  * @param errorCallback - Returns file reading errors
68
+ * @param invokeProgressFunction - Set function that is called before each line, to show progress in some way
64
69
  * @returns An object which includes the parsed object and parsing statistics
65
70
  */
66
71
  /* istanbul ignore next */ // maybe later ;)
67
- function ParseFile(path, parsingOptions, doneCallback, errorCallback) {
72
+ function ParseFile(path, parsingOptions, doneCallback, errorCallback, invokeProgressFunction) {
73
+ // if no progress should be shown, it is not necessary to get the line count of the file at first
74
+ if (!invokeProgressFunction) {
75
+ ExecuteParseFile(path, parsingOptions, doneCallback, errorCallback, 0);
76
+ return;
77
+ }
78
+ // read first time to get lines count
79
+ let linesCountLr = new LineByLineReader(path);
80
+ let linesCount = 0;
81
+ linesCountLr.on('line', function (line) {
82
+ linesCountLr.pause();
83
+ linesCount++;
84
+ linesCountLr.resume();
85
+ });
86
+ linesCountLr.on('end', function () {
87
+ ExecuteParseFile(path, parsingOptions, doneCallback, errorCallback, linesCount, invokeProgressFunction);
88
+ });
89
+ }
90
+ exports.ParseFile = ParseFile;
91
+ /* istanbul ignore next */ // maybe later ;)
92
+ function ExecuteParseFile(path, parsingOptions, doneCallback, errorCallback, linesCount, invokeProgressFunction) {
68
93
  let lr = new LineByLineReader(path);
69
94
  let lastLevel = 0;
70
95
  let lineNumber = 1;
@@ -83,6 +108,9 @@ function ParseFile(path, parsingOptions, doneCallback, errorCallback) {
83
108
  if (lastLine) {
84
109
  lastLevel = lastLine.Level;
85
110
  }
111
+ if (invokeProgressFunction) {
112
+ invokeProgressFunction(linesCount, lineNumber);
113
+ }
86
114
  lineNumber++;
87
115
  lr.resume();
88
116
  };
@@ -102,7 +130,6 @@ function ParseFile(path, parsingOptions, doneCallback, errorCallback) {
102
130
  doneCallback(new ParsingResult_1.default(result, stats));
103
131
  });
104
132
  }
105
- exports.ParseFile = ParseFile;
106
133
  /**
107
134
  * Function that processes a text line
108
135
  * @param lastLevel level of the last level
@@ -1 +1 @@
1
- {"version":3,"file":"parsing.js","sourceRoot":"","sources":["../../../src/ToJSON/parsing/parsing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsing.js","sourceRoot":"","sources":["../../../src/ToJSON/parsing/parsing.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ const TagDefinition_1 = __importDefault(require("../models/TagDefinition"));
15
15
  const LineParsingResult_1 = __importDefault(require("../models/LineParsingResult"));
16
16
  const parseDate_1 = require("./parseDate");
17
17
  const eachDeep = require('deepdash/eachDeep');
18
+ let parsingOptions;
18
19
  /**
19
20
  * Store for file\text processing
20
21
  * @internal
@@ -28,7 +29,6 @@ function ResetProcessing() {
28
29
  parsingOptions = {};
29
30
  }
30
31
  exports.ResetProcessing = ResetProcessing;
31
- let parsingOptions;
32
32
  function SetParsingOptions(options) {
33
33
  parsingOptions = options;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processLine.js","sourceRoot":"","sources":["../../../src/ToJSON/parsing/processLine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processLine.js","sourceRoot":"","sources":["../../../src/ToJSON/parsing/processLine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gedcom.json",
3
- "version": "1.0.0",
3
+ "version": "1.0.4",
4
4
  "description": "Convert GEDCOM Files to an JSON File or an JavaScript-Object and vice versa",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -8,10 +8,11 @@
8
8
  "clean": "tsc --build ./tsconfig.json --clean",
9
9
  "demo:JSON": "ts-node src/console.ts --path 'examples/simpsons.ged'",
10
10
  "demoFile:JSON": "ts-node src/console.ts --path 'examples/simpsons.ged' --out 'test.json'",
11
+ "demoFileWithProgress:JSON": "ts-node src/console.ts --path 'examples/royal92.ged' --out 'test.json' --showProgress",
11
12
  "test": "nyc mocha",
12
13
  "test:watch": "mocha --watch --watch-files src, tests/**/*.ts",
13
14
  "doc": "typedoc --out docs src",
14
- "publish": "npm run build && np"
15
+ "npm-publish": "npm run build && np"
15
16
  },
16
17
  "keywords": [
17
18
  "gedcom",
@@ -49,15 +50,16 @@
49
50
  "typescript": "^4.1.3"
50
51
  },
51
52
  "dependencies": {
52
- "dayjs": "^1.10.4",
53
- "deepdash": "^5.3.5",
53
+ "dayjs": "^1.10.7",
54
+ "deepdash": "^5.3.9",
54
55
  "fclone": "^1.0.11",
56
+ "glob-parent": ">=6.0.2",
55
57
  "hebcal": "^2.3.2",
56
58
  "js-yaml": "^3.14.1",
57
59
  "julian-gregorian": "^1.0.0",
58
60
  "line-by-line": "^0.1.6",
59
61
  "lodash": "^4.17.21",
60
- "object-path": "^0.11.5",
62
+ "object-path": "^0.11.8",
61
63
  "yargs": "^16.2.0"
62
64
  }
63
65
  }
@@ -12,6 +12,12 @@ export function Convert(argv:any) {
12
12
  options.SetConfigFile(argv.opt as string);
13
13
  }
14
14
 
15
+ if (argv.showProgress) {
16
+ options.SetProgressFunction((linesCount: number, lineNumber:number) => {
17
+ process.stdout.write(`\rProgress: parsing line ${lineNumber} from ${linesCount}`);
18
+ });
19
+ }
20
+
15
21
  let silent = false;
16
22
  if (argv.silent) {
17
23
  silent = true;
@@ -18,7 +18,7 @@ export default class Parsing {
18
18
  return new ParsingResult({});
19
19
  }
20
20
 
21
- return ParseText(this.options.GetText(), this.options.GetConfig());
21
+ return ParseText(this.options.GetText(), this.options.GetConfig(), this.options.GetProgressFunction());
22
22
  }
23
23
 
24
24
  ParseTextAsync(): Promise<ParsingResult> {
@@ -29,7 +29,7 @@ export default class Parsing {
29
29
  }
30
30
 
31
31
  return new Promise<ParsingResult>((resolve, reject) => {
32
- resolve(ParseText(this.options.GetText(), this.options.GetConfig()));
32
+ resolve(ParseText(this.options.GetText(), this.options.GetConfig(), this.options.GetProgressFunction()));
33
33
  });
34
34
  }
35
35
 
@@ -39,7 +39,7 @@ export default class Parsing {
39
39
  return;
40
40
  }
41
41
 
42
- ParseFile(filePath, this.options.GetConfig(), doneCallback, errorCallback);
42
+ ParseFile(filePath, this.options.GetConfig(), doneCallback, errorCallback, this.options.GetProgressFunction());
43
43
  }
44
44
 
45
45
  ParseFileAsync(): Promise<ParsingResult> {
@@ -2,6 +2,7 @@ export default class ParsingOptions {
2
2
  private text?: string;
3
3
  private filePath?: string;
4
4
  private config?: string;
5
+ private progressFunction?: (linesCount: number, actualLine: number) => void;
5
6
 
6
7
  SetText(text: string) {
7
8
  this.text = text;
@@ -30,4 +31,12 @@ export default class ParsingOptions {
30
31
  GetConfig() {
31
32
  return this.config ?? require('fs').readFileSync('options/version551.yaml', 'utf8');
32
33
  }
34
+
35
+ SetProgressFunction(func: (linesCount: number, actualLine: number) => void) {
36
+ this.progressFunction = func;
37
+ }
38
+
39
+ GetProgressFunction() : ((linesCount: number, actualLine: number) => void) | undefined {
40
+ return this.progressFunction;
41
+ }
33
42
  }
@@ -20,9 +20,14 @@ let stats = new Statistics();
20
20
  *
21
21
  * @param text - The text
22
22
  * @param parsingOptions - The parsing options
23
+ * @param invokeProgressFunction - Set function that is called before each line, to show progress in some way
23
24
  * @returns An object which includes the parsed object and parsing statistics
24
25
  */
25
- export function ParseText(text?: string, parsingOptions?: string): ParsingResult {
26
+ export function ParseText(
27
+ text?: string,
28
+ parsingOptions?: string,
29
+ invokeProgressFunction?: (linesCount: number, actualLine: number) => void): ParsingResult {
30
+
26
31
  if (!text || !parsingOptions){
27
32
  return new ParsingResult({});
28
33
  }
@@ -51,8 +56,12 @@ export function ParseText(text?: string, parsingOptions?: string): ParsingResult
51
56
  lineNumber++;
52
57
  };
53
58
 
54
- forEach(lines, line => {
55
- ProcessNewLine(lastLevel, lineNumber, line, nextLine);
59
+ forEach(lines, (line, index) => {
60
+ if (invokeProgressFunction) {
61
+ invokeProgressFunction(lines.length, index);
62
+ }
63
+
64
+ ProcessNewLine(lastLevel, lineNumber, line, nextLine);
56
65
  });
57
66
 
58
67
  let result = GetResult();
@@ -67,11 +76,47 @@ export function ParseText(text?: string, parsingOptions?: string): ParsingResult
67
76
  * @param parsingOptions - The parsing options
68
77
  * @param doneCallback - Returns the resulting object when file is readed completly
69
78
  * @param errorCallback - Returns file reading errors
79
+ * @param invokeProgressFunction - Set function that is called before each line, to show progress in some way
70
80
  * @returns An object which includes the parsed object and parsing statistics
71
81
  */
82
+
72
83
  /* istanbul ignore next */ // maybe later ;)
73
- export function ParseFile(path: string, parsingOptions: string, doneCallback: (result: ParsingResult) => void, errorCallback: any) {
74
- let lr = new LineByLineReader(path);
84
+ export function ParseFile(
85
+ path: string,
86
+ parsingOptions: string,
87
+ doneCallback: (result: ParsingResult) => void,
88
+ errorCallback: any,
89
+ invokeProgressFunction?: ((linesCount: number, actualLine: number) => void) | undefined) {
90
+
91
+ // if no progress should be shown, it is not necessary to get the line count of the file at first
92
+ if (!invokeProgressFunction) {
93
+ ExecuteParseFile(path, parsingOptions, doneCallback, errorCallback, 0);
94
+ return;
95
+ }
96
+
97
+ // read first time to get lines count
98
+ let linesCountLr = new LineByLineReader(path);
99
+ let linesCount = 0;
100
+ linesCountLr.on('line', function (line: any) {
101
+ linesCountLr.pause();
102
+ linesCount++;
103
+ linesCountLr.resume();
104
+ });
105
+
106
+ linesCountLr.on('end', function () {
107
+ ExecuteParseFile(path, parsingOptions, doneCallback, errorCallback, linesCount, invokeProgressFunction);
108
+ });
109
+ }
110
+
111
+ /* istanbul ignore next */ // maybe later ;)
112
+ function ExecuteParseFile(
113
+ path: string,
114
+ parsingOptions: string,
115
+ doneCallback: (result: ParsingResult) => void,
116
+ errorCallback: any,
117
+ linesCount: number,
118
+ invokeProgressFunction?: ((linesCount: number, actualLine: number) => void) | undefined) {
119
+ let lr = new LineByLineReader(path);
75
120
  let lastLevel = 0;
76
121
  let lineNumber = 1;
77
122
  let yamlOptions: string | object | undefined = {};
@@ -93,6 +138,10 @@ export function ParseFile(path: string, parsingOptions: string, doneCallback: (r
93
138
  lastLevel = lastLine.Level;
94
139
  }
95
140
 
141
+ if (invokeProgressFunction) {
142
+ invokeProgressFunction(linesCount, lineNumber);
143
+ }
144
+
96
145
  lineNumber++;
97
146
  lr.resume();
98
147
  };
@@ -115,7 +164,7 @@ export function ParseFile(path: string, parsingOptions: string, doneCallback: (r
115
164
  // All lines are read, file is closed now.
116
165
  doneCallback(new ParsingResult(result, stats));
117
166
  });
118
- }
167
+ }
119
168
 
120
169
  /**
121
170
  * Function that processes a text line
@@ -15,6 +15,7 @@ import ParsingPath from '../models/ParsingPath';
15
15
  import { ClearDateTimeMergingInfos } from './parseDate';
16
16
 
17
17
  const eachDeep = require('deepdash/eachDeep');
18
+ let parsingOptions: any;
18
19
 
19
20
  /**
20
21
  * Store for file\text processing
@@ -30,7 +31,6 @@ export function ResetProcessing() {
30
31
  parsingOptions = {};
31
32
  }
32
33
 
33
- let parsingOptions: any;
34
34
  export function SetParsingOptions(options: any) {
35
35
  parsingOptions = options;
36
36
  }