namefully 1.0.9 → 1.2.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.
Files changed (189) hide show
  1. package/LICENSE +21 -674
  2. package/dist/example/index.js +2734 -0
  3. package/dist/lib/config.d.ts +121 -0
  4. package/dist/lib/config.js +189 -0
  5. package/dist/lib/config.js.map +1 -0
  6. package/dist/lib/constants.d.ts +4 -0
  7. package/dist/lib/constants.js +31 -0
  8. package/dist/lib/constants.js.map +1 -0
  9. package/dist/lib/error.d.ts +172 -0
  10. package/dist/lib/error.js +210 -0
  11. package/dist/lib/error.js.map +1 -0
  12. package/dist/lib/{usecases/index.d.ts → example/example.d.ts} +0 -0
  13. package/dist/lib/full-name.d.ts +71 -0
  14. package/dist/lib/full-name.js +147 -0
  15. package/dist/lib/full-name.js.map +1 -0
  16. package/dist/lib/index.d.ts +16 -6
  17. package/dist/lib/index.js +29 -8
  18. package/dist/lib/index.js.map +1 -1
  19. package/dist/lib/name.d.ts +177 -0
  20. package/dist/lib/name.js +322 -0
  21. package/dist/lib/name.js.map +1 -0
  22. package/dist/lib/namefully.d.ts +303 -208
  23. package/dist/lib/namefully.js +603 -442
  24. package/dist/lib/namefully.js.map +1 -1
  25. package/dist/lib/parser.d.ts +46 -0
  26. package/dist/lib/parser.js +173 -0
  27. package/dist/lib/parser.js.map +1 -0
  28. package/dist/lib/src/config.d.ts +121 -0
  29. package/dist/lib/src/constants.d.ts +4 -0
  30. package/dist/lib/src/error.d.ts +172 -0
  31. package/dist/lib/src/full-name.d.ts +71 -0
  32. package/dist/lib/src/index.d.ts +16 -6
  33. package/dist/lib/src/name.d.ts +177 -0
  34. package/dist/lib/src/namefully.d.ts +303 -208
  35. package/dist/lib/src/parser.d.ts +46 -0
  36. package/dist/lib/src/types.d.ts +127 -0
  37. package/dist/lib/src/utils.d.ts +63 -0
  38. package/dist/lib/src/validator.d.ts +66 -0
  39. package/dist/lib/types.d.ts +127 -0
  40. package/dist/lib/types.js +181 -0
  41. package/dist/lib/types.js.map +1 -0
  42. package/dist/lib/utils.d.ts +63 -0
  43. package/dist/lib/utils.js +138 -0
  44. package/dist/lib/utils.js.map +1 -0
  45. package/dist/lib/validator.d.ts +66 -0
  46. package/dist/lib/validator.js +332 -0
  47. package/dist/lib/validator.js.map +1 -0
  48. package/dist/umd/namefully.js +2191 -2111
  49. package/dist/umd/namefully.js.map +1 -1
  50. package/dist/umd/namefully.min.js +1 -1
  51. package/dist/umd/namefully.min.js.LICENSE.txt +8 -20
  52. package/dist/umd/namefully.min.js.map +1 -1
  53. package/package.json +50 -53
  54. package/readme.md +151 -175
  55. package/changelog.md +0 -114
  56. package/dist/lib/core/constants.d.ts +0 -26
  57. package/dist/lib/core/constants.js +0 -42
  58. package/dist/lib/core/constants.js.map +0 -1
  59. package/dist/lib/core/index.d.ts +0 -9
  60. package/dist/lib/core/index.js +0 -13
  61. package/dist/lib/core/index.js.map +0 -1
  62. package/dist/lib/core/parsers/array-name.parser.d.ts +0 -42
  63. package/dist/lib/core/parsers/array-name.parser.js +0 -84
  64. package/dist/lib/core/parsers/array-name.parser.js.map +0 -1
  65. package/dist/lib/core/parsers/array-string.parser.d.ts +0 -48
  66. package/dist/lib/core/parsers/array-string.parser.js +0 -96
  67. package/dist/lib/core/parsers/array-string.parser.js.map +0 -1
  68. package/dist/lib/core/parsers/index.d.ts +0 -11
  69. package/dist/lib/core/parsers/index.js +0 -11
  70. package/dist/lib/core/parsers/index.js.map +0 -1
  71. package/dist/lib/core/parsers/nama.parser.d.ts +0 -34
  72. package/dist/lib/core/parsers/nama.parser.js +0 -75
  73. package/dist/lib/core/parsers/nama.parser.js.map +0 -1
  74. package/dist/lib/core/parsers/parser.d.ts +0 -29
  75. package/dist/lib/core/parsers/parser.js +0 -3
  76. package/dist/lib/core/parsers/parser.js.map +0 -1
  77. package/dist/lib/core/parsers/string.parser.d.ts +0 -61
  78. package/dist/lib/core/parsers/string.parser.js +0 -63
  79. package/dist/lib/core/parsers/string.parser.js.map +0 -1
  80. package/dist/lib/core/utils/utils.d.ts +0 -14
  81. package/dist/lib/core/utils/utils.js +0 -67
  82. package/dist/lib/core/utils/utils.js.map +0 -1
  83. package/dist/lib/models/enums.d.ts +0 -91
  84. package/dist/lib/models/enums.js +0 -98
  85. package/dist/lib/models/enums.js.map +0 -1
  86. package/dist/lib/models/firstname.d.ts +0 -41
  87. package/dist/lib/models/firstname.js +0 -59
  88. package/dist/lib/models/firstname.js.map +0 -1
  89. package/dist/lib/models/index.d.ts +0 -12
  90. package/dist/lib/models/index.js +0 -15
  91. package/dist/lib/models/index.js.map +0 -1
  92. package/dist/lib/models/lastname.d.ts +0 -44
  93. package/dist/lib/models/lastname.js +0 -86
  94. package/dist/lib/models/lastname.js.map +0 -1
  95. package/dist/lib/models/misc.d.ts +0 -80
  96. package/dist/lib/models/misc.js +0 -3
  97. package/dist/lib/models/misc.js.map +0 -1
  98. package/dist/lib/models/name.d.ts +0 -48
  99. package/dist/lib/models/name.js +0 -72
  100. package/dist/lib/models/name.js.map +0 -1
  101. package/dist/lib/models/summary.d.ts +0 -23
  102. package/dist/lib/models/summary.js +0 -60
  103. package/dist/lib/models/summary.js.map +0 -1
  104. package/dist/lib/src/core/constants.d.ts +0 -26
  105. package/dist/lib/src/core/index.d.ts +0 -9
  106. package/dist/lib/src/core/parsers/array-name.parser.d.ts +0 -42
  107. package/dist/lib/src/core/parsers/array-string.parser.d.ts +0 -48
  108. package/dist/lib/src/core/parsers/index.d.ts +0 -11
  109. package/dist/lib/src/core/parsers/nama.parser.d.ts +0 -34
  110. package/dist/lib/src/core/parsers/parser.d.ts +0 -29
  111. package/dist/lib/src/core/parsers/string.parser.d.ts +0 -61
  112. package/dist/lib/src/core/utils/utils.d.ts +0 -14
  113. package/dist/lib/src/models/enums.d.ts +0 -91
  114. package/dist/lib/src/models/firstname.d.ts +0 -41
  115. package/dist/lib/src/models/index.d.ts +0 -12
  116. package/dist/lib/src/models/lastname.d.ts +0 -44
  117. package/dist/lib/src/models/misc.d.ts +0 -80
  118. package/dist/lib/src/models/name.d.ts +0 -48
  119. package/dist/lib/src/models/summary.d.ts +0 -23
  120. package/dist/lib/src/validators/array-name.validator.d.ts +0 -25
  121. package/dist/lib/src/validators/array-string.validator.d.ts +0 -43
  122. package/dist/lib/src/validators/common/validation-error.d.ts +0 -19
  123. package/dist/lib/src/validators/common/validation-rule.d.ts +0 -69
  124. package/dist/lib/src/validators/common/validation-type.d.ts +0 -24
  125. package/dist/lib/src/validators/firstname.validator.d.ts +0 -20
  126. package/dist/lib/src/validators/fullname.validator.d.ts +0 -21
  127. package/dist/lib/src/validators/index.d.ts +0 -21
  128. package/dist/lib/src/validators/lastname.validator.d.ts +0 -20
  129. package/dist/lib/src/validators/middlename.validator.d.ts +0 -20
  130. package/dist/lib/src/validators/nama.validator.d.ts +0 -21
  131. package/dist/lib/src/validators/namon.validator.d.ts +0 -20
  132. package/dist/lib/src/validators/prefix.validator.d.ts +0 -14
  133. package/dist/lib/src/validators/string-name.validator.d.ts +0 -20
  134. package/dist/lib/src/validators/suffix.validator.d.ts +0 -14
  135. package/dist/lib/src/validators/validator.d.ts +0 -13
  136. package/dist/lib/usecases/compress.usecase.d.ts +0 -8
  137. package/dist/lib/usecases/constants.d.ts +0 -7
  138. package/dist/lib/usecases/describe.usecase.d.ts +0 -12
  139. package/dist/lib/usecases/format.usecase.d.ts +0 -6
  140. package/dist/lib/usecases/namefully.usecase.d.ts +0 -14
  141. package/dist/lib/usecases/shorten.usecase.d.ts +0 -6
  142. package/dist/lib/validators/array-name.validator.d.ts +0 -25
  143. package/dist/lib/validators/array-name.validator.js +0 -82
  144. package/dist/lib/validators/array-name.validator.js.map +0 -1
  145. package/dist/lib/validators/array-string.validator.d.ts +0 -43
  146. package/dist/lib/validators/array-string.validator.js +0 -80
  147. package/dist/lib/validators/array-string.validator.js.map +0 -1
  148. package/dist/lib/validators/common/validation-error.d.ts +0 -19
  149. package/dist/lib/validators/common/validation-error.js +0 -26
  150. package/dist/lib/validators/common/validation-error.js.map +0 -1
  151. package/dist/lib/validators/common/validation-rule.d.ts +0 -69
  152. package/dist/lib/validators/common/validation-rule.js +0 -73
  153. package/dist/lib/validators/common/validation-rule.js.map +0 -1
  154. package/dist/lib/validators/common/validation-type.d.ts +0 -24
  155. package/dist/lib/validators/common/validation-type.js +0 -28
  156. package/dist/lib/validators/common/validation-type.js.map +0 -1
  157. package/dist/lib/validators/firstname.validator.d.ts +0 -20
  158. package/dist/lib/validators/firstname.validator.js +0 -29
  159. package/dist/lib/validators/firstname.validator.js.map +0 -1
  160. package/dist/lib/validators/fullname.validator.d.ts +0 -21
  161. package/dist/lib/validators/fullname.validator.js +0 -38
  162. package/dist/lib/validators/fullname.validator.js.map +0 -1
  163. package/dist/lib/validators/index.d.ts +0 -21
  164. package/dist/lib/validators/index.js +0 -35
  165. package/dist/lib/validators/index.js.map +0 -1
  166. package/dist/lib/validators/lastname.validator.d.ts +0 -20
  167. package/dist/lib/validators/lastname.validator.js +0 -29
  168. package/dist/lib/validators/lastname.validator.js.map +0 -1
  169. package/dist/lib/validators/middlename.validator.d.ts +0 -20
  170. package/dist/lib/validators/middlename.validator.js +0 -38
  171. package/dist/lib/validators/middlename.validator.js.map +0 -1
  172. package/dist/lib/validators/nama.validator.d.ts +0 -21
  173. package/dist/lib/validators/nama.validator.js +0 -43
  174. package/dist/lib/validators/nama.validator.js.map +0 -1
  175. package/dist/lib/validators/namon.validator.d.ts +0 -20
  176. package/dist/lib/validators/namon.validator.js +0 -29
  177. package/dist/lib/validators/namon.validator.js.map +0 -1
  178. package/dist/lib/validators/prefix.validator.d.ts +0 -14
  179. package/dist/lib/validators/prefix.validator.js +0 -31
  180. package/dist/lib/validators/prefix.validator.js.map +0 -1
  181. package/dist/lib/validators/string-name.validator.d.ts +0 -20
  182. package/dist/lib/validators/string-name.validator.js +0 -29
  183. package/dist/lib/validators/string-name.validator.js.map +0 -1
  184. package/dist/lib/validators/suffix.validator.d.ts +0 -14
  185. package/dist/lib/validators/suffix.validator.js +0 -31
  186. package/dist/lib/validators/suffix.validator.js.map +0 -1
  187. package/dist/lib/validators/validator.d.ts +0 -13
  188. package/dist/lib/validators/validator.js +0 -9
  189. package/dist/lib/validators/validator.js.map +0 -1
package/changelog.md DELETED
@@ -1,114 +0,0 @@
1
- # Changelog
2
-
3
- This file contains the documentation on the notable changes and bug fixes, and
4
- is formatted following this [standard](https://keepachangelog.com/en/1.0.0/).
5
- This project also adheres to [Semantic Versioning](https://semver.org/).
6
-
7
- ## [1.0.9] - 2020-05-18
8
-
9
- **Added**:
10
-
11
- - Add support for Cyrillic and Greek alphabet
12
-
13
- **Fixed**:
14
-
15
- - Fix validation rules (regex) for specific fields
16
-
17
- ## [1.0.8] - 2020-04-18
18
-
19
- **Added**:
20
-
21
- - Add short API equivalent for `compress` => `zip`
22
- - Add `lastnameFormat` option to config and surname subparts handling
23
- - Refactor return values for `describe` (object instead of string)
24
- - Add support for titling when compressing or zipping
25
-
26
- **Fixed**:
27
-
28
- - Fix missing bypass for fullname validator
29
- - Fix logic for name parts handling in `Firstname` class
30
-
31
- ## [1.0.7] - 2020-03-28
32
-
33
- **Added**:
34
-
35
- - Add `titling` option to config
36
- - Add support for prefixes and suffixes when formatting names
37
- - including a clear cut for (de)-capitalized official names
38
-
39
- **Fixed**:
40
-
41
- - Fix wrong ending reference for suffixes
42
-
43
- ## [1.0.6] - 2020-03-20
44
-
45
- **Added**:
46
-
47
- - Add support for Latin (European and Spanish) names
48
- - Add a bypass to skip validation rules (regex)
49
-
50
- ## [1.0.5] - 2020-03-17
51
-
52
- **Fixed**:
53
-
54
- - Fix non-relative paths related error
55
-
56
- ## [1.0.4] - 2020-03-17
57
-
58
- **Added**:
59
-
60
- - Add optional parameters for the `getFullname` and `getInitials` API;
61
- - Users can forcefully alter order of appearance the full name and initials;
62
- - Add optional parameters for the `describe` API;
63
- - Users can either decide to describe the full name or some specific name parts;
64
- - Introduce new option in `Namefully` creation;
65
- - `ending` accepts a separator for to mark an ending suffix;
66
- - Add some jsdoc comments to document the API;
67
- - Add some aliases to the API.
68
-
69
- **Fixed**:
70
-
71
- - Fix validation error for string array input using wrong/insufficient entries;
72
- - Fix options in `Namefully` creation;
73
- - `orderedBy` accepts now two name parts only (first or last name);
74
- - `separator` works as the splitting name factor;
75
- - Fix the order of appearance for the full name and `compress` API.
76
-
77
- ## [1.0.3] - 2020-03-11
78
-
79
- **Fixed**:
80
-
81
- - Fix typescript compilation for ES2015, UMD
82
- - Fix `namefully` version
83
-
84
- ## [1.0.2] - 2020-03-11
85
-
86
- **Added**:
87
-
88
- - Add use cases
89
- - Add test coverage
90
- - Add setup CI/CD
91
- - Add support for UMD
92
- - Make validation error message more explicit
93
-
94
- ## [1.0.1] - 2020-03-07
95
-
96
- **Fixed**:
97
-
98
- - Fix typo in readme
99
- - Fix build system for npm
100
-
101
- ## [1.0.0] - 2020-03-07
102
-
103
- Initial version
104
-
105
- [1.0.9]: https://github.com/ralflorent/namefully/compare/v1.0.8...v1.0.9
106
- [1.0.8]: https://github.com/ralflorent/namefully/compare/v1.0.7...v1.0.8
107
- [1.0.7]: https://github.com/ralflorent/namefully/compare/v1.0.6...v1.0.7
108
- [1.0.6]: https://github.com/ralflorent/namefully/compare/v1.0.5...v1.0.6
109
- [1.0.5]: https://github.com/ralflorent/namefully/compare/v1.0.4...v1.0.5
110
- [1.0.4]: https://github.com/ralflorent/namefully/compare/v1.0.3...v1.0.4
111
- [1.0.3]: https://github.com/ralflorent/namefully/compare/v1.0.2...v1.0.3
112
- [1.0.2]: https://github.com/ralflorent/namefully/compare/v1.0.1...v1.0.2
113
- [1.0.1]: https://github.com/ralflorent/namefully/compare/v1.0.0...v1.0.1
114
- [1.0.0]: https://github.com/ralflorent/namefully/releases/tag/v1.0.0
@@ -1,26 +0,0 @@
1
- /**
2
- * Constants
3
- *
4
- * Created on March 07, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Config, NameIndex } from '../models/index';
8
- /**
9
- * The current version of `Namefully`.
10
- * @constant
11
- */
12
- export declare const version = "1.0.9";
13
- /**
14
- * CONFIG constant
15
- * @constant
16
- * @type {Config}
17
- * @default
18
- */
19
- export declare const CONFIG: Config;
20
- /**
21
- * NAME_INDEX constant
22
- * @constant
23
- * @type {NameIndex}
24
- * @default
25
- */
26
- export declare const NAME_INDEX: NameIndex;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Constants
5
- *
6
- * Created on March 07, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const index_1 = require("../models/index");
10
- /**
11
- * The current version of `Namefully`.
12
- * @constant
13
- */
14
- exports.version = '1.0.9';
15
- /**
16
- * CONFIG constant
17
- * @constant
18
- * @type {Config}
19
- * @default
20
- */
21
- exports.CONFIG = {
22
- orderedBy: 'firstname',
23
- separator: index_1.Separator.SPACE,
24
- titling: 'uk',
25
- ending: index_1.Separator.SPACE,
26
- bypass: false,
27
- lastnameFormat: 'father',
28
- };
29
- /**
30
- * NAME_INDEX constant
31
- * @constant
32
- * @type {NameIndex}
33
- * @default
34
- */
35
- exports.NAME_INDEX = {
36
- prefix: 0,
37
- firstname: 1,
38
- middlename: 2,
39
- lastname: 3,
40
- suffix: 4,
41
- };
42
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/constants.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,2CAA+D;AAE/D;;;GAGG;AACU,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;;GAKG;AACU,QAAA,MAAM,GAAW;IAC1B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,iBAAS,CAAC,KAAK;IAC1B,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,iBAAS,CAAC,KAAK;IACvB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,QAAQ;CAC3B,CAAA;AAED;;;;;GAKG;AACU,QAAA,UAAU,GAAc;IACjC,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;CACZ,CAAA"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Make all the locals available
3
- *
4
- * Created on March 06, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- export * from './parsers/index';
8
- export * from './utils/utils';
9
- export * from './constants';
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- /**
5
- * Make all the locals available
6
- *
7
- * Created on March 06, 2020
8
- * @author Ralph Florent <ralflornt@gmail.com>
9
- */
10
- tslib_1.__exportStar(require("./parsers/index"), exports);
11
- tslib_1.__exportStar(require("./utils/utils"), exports);
12
- tslib_1.__exportStar(require("./constants"), exports);
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,0DAAgC;AAChC,wDAA8B;AAC9B,sDAA4B"}
@@ -1,42 +0,0 @@
1
- /**
2
- * An array `Name` parser
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Name, Fullname, LastnameFormat } from '../../models/index';
8
- import { Parser } from './parser';
9
- /**
10
- * Represents a `Name[]` parser
11
- * @class
12
- * @implements {Parser<Name[]>}
13
- * @classdesc
14
- * This parser parses an array of the class `Name` while checking that every part
15
- * plays the role they are supposed to play. The class `Name` is a ready-made
16
- * recipe that saves the how-to parsing for a raw data input.
17
- *
18
- * **NOTE**:
19
- * In this specific case, the user is expected to carefully set each name part
20
- * and submit a high-quality data. Why is this parser if the data is already
21
- * shaped as wanted? Well, it is better to be safe than sorry, so we implement a
22
- * double-check of these values and reconfirm a cleaner data. Remember, namefully
23
- * works like a trapdoor, once the data is set and confirmed safe, no editing is
24
- * possible.
25
- */
26
- export default class ArrayNameParser implements Parser<Name[]> {
27
- raw: Name[];
28
- /**
29
- * Create a parser ready to parse the raw data
30
- * @param {Name[]} raw data
31
- */
32
- constructor(raw: Name[]);
33
- /**
34
- * Parses the raw data into a full name
35
- * @returns {Fullname}
36
- */
37
- parse(options: {
38
- bypass: boolean;
39
- lastnameFormat: LastnameFormat;
40
- }): Fullname;
41
- private distribute;
42
- }
@@ -1,84 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * An array `Name` parser
5
- *
6
- * Created on March 15, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const index_1 = require("../../models/index");
10
- const index_2 = require("../../validators/index");
11
- /**
12
- * Represents a `Name[]` parser
13
- * @class
14
- * @implements {Parser<Name[]>}
15
- * @classdesc
16
- * This parser parses an array of the class `Name` while checking that every part
17
- * plays the role they are supposed to play. The class `Name` is a ready-made
18
- * recipe that saves the how-to parsing for a raw data input.
19
- *
20
- * **NOTE**:
21
- * In this specific case, the user is expected to carefully set each name part
22
- * and submit a high-quality data. Why is this parser if the data is already
23
- * shaped as wanted? Well, it is better to be safe than sorry, so we implement a
24
- * double-check of these values and reconfirm a cleaner data. Remember, namefully
25
- * works like a trapdoor, once the data is set and confirmed safe, no editing is
26
- * possible.
27
- */
28
- class ArrayNameParser {
29
- /**
30
- * Create a parser ready to parse the raw data
31
- * @param {Name[]} raw data
32
- */
33
- constructor(raw) {
34
- this.raw = raw;
35
- }
36
- /**
37
- * Parses the raw data into a full name
38
- * @returns {Fullname}
39
- */
40
- parse(options) {
41
- const { bypass, lastnameFormat } = options;
42
- // validate first
43
- if (!bypass)
44
- new index_2.ArrayNameValidator().validate(this.raw);
45
- // then distribute all the elements accordingly
46
- const fullname = this.distribute(lastnameFormat);
47
- // finally return high quality of data
48
- return fullname;
49
- }
50
- distribute(lastnameFormat) {
51
- const fullname = {
52
- firstname: null,
53
- lastname: null,
54
- middlename: [],
55
- prefix: null,
56
- suffix: null,
57
- };
58
- this.raw.forEach(name => {
59
- switch (name.type) {
60
- case index_1.Namon.PREFIX:
61
- fullname.prefix = name.namon;
62
- break;
63
- case index_1.Namon.FIRST_NAME:
64
- fullname.firstname = new index_1.Firstname(name.namon);
65
- break;
66
- case index_1.Namon.LAST_NAME:
67
- if (name instanceof index_1.Lastname)
68
- fullname.lastname = new index_1.Lastname(name.father, name.mother, lastnameFormat);
69
- else
70
- fullname.lastname = new index_1.Lastname(name.namon, null, lastnameFormat);
71
- break;
72
- case index_1.Namon.MIDDLE_NAME:
73
- fullname.middlename.push(name);
74
- break;
75
- case index_1.Namon.SUFFIX:
76
- fullname.suffix = name.namon;
77
- break;
78
- }
79
- });
80
- return fullname;
81
- }
82
- }
83
- exports.default = ArrayNameParser;
84
- //# sourceMappingURL=array-name.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-name.parser.js","sourceRoot":"","sources":["../../../../src/core/parsers/array-name.parser.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,8CAAgH;AAChH,kDAA4D;AAI5D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAqB,eAAe;IAEhC;;;OAGG;IACH,YAAmB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAElC;;;OAGG;IACH,KAAK,CAAC,OAA4D;QAC9D,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAC3C,iBAAiB;QACjB,IAAI,CAAC,MAAM;YAAE,IAAI,0BAAkB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzD,+CAA+C;QAC/C,MAAM,QAAQ,GAAa,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAE3D,sCAAsC;QACtC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,UAAU,CAAC,cAA8B;QAE7C,MAAM,QAAQ,GAAa;YACvB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;SACf,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpB,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACf,KAAK,aAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAe,CAAC;oBACvC,MAAM;gBACV,KAAK,aAAK,CAAC,UAAU;oBACjB,QAAQ,CAAC,SAAS,GAAG,IAAI,iBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC/C,MAAM;gBACV,KAAK,aAAK,CAAC,SAAS;oBAChB,IAAI,IAAI,YAAY,gBAAQ;wBACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;;wBAE1E,QAAQ,CAAC,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;oBACvE,MAAM;gBACV,KAAK,aAAK,CAAC,WAAW;oBAClB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBACV,KAAK,aAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAe,CAAC;oBACvC,MAAM;aACb;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AA3DD,kCA2DC"}
@@ -1,48 +0,0 @@
1
- /**
2
- * An array of string parser
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Fullname, NameOrder } from '../../models/index';
8
- import { Parser } from './parser';
9
- /**
10
- * Represents an array string parser
11
- * @class
12
- * @implements {Parser<string[]>}
13
- * @classdesc
14
- * This parser parses an array of string name following a specific order based
15
- * on the count of elements. It is expected that the array has to be between two
16
- * and five elements. Also, the order of appearance set in the configuration
17
- * influences how this parsing is carried out.
18
- *
19
- * Ordered by first name, the parser works as follows:
20
- * - 2 elements: firstname lastname
21
- * - 3 elements: firstname middlename lastname
22
- * - 4 elements: prefix firstname middlename lastname
23
- * - 5 elements: prefix firstname middlename lastname suffix
24
- *
25
- * Ordered by last name, the parser works as follows:
26
- * - 2 elements: lastname firstname
27
- * - 3 elements: lastname firstname middlename
28
- * - 4 elements: prefix lastname firstname middlename
29
- * - 5 elements: prefix lastname firstname middlename suffix
30
- *
31
- */
32
- export default class ArrayStringParser implements Parser<string[]> {
33
- raw: string[];
34
- /**
35
- * Create a parser ready to parse the raw data
36
- * @param {Array<string>} raw data
37
- */
38
- constructor(raw: string[]);
39
- /**
40
- * Parses the raw data into a full name
41
- * @returns {Fullname}
42
- */
43
- parse(options: {
44
- orderedBy: NameOrder;
45
- bypass: boolean;
46
- }): Fullname;
47
- private distribute;
48
- }
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * An array of string parser
5
- *
6
- * Created on March 15, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const index_1 = require("../../models/index");
10
- const index_2 = require("../../validators/index");
11
- const index_3 = require("../../core/index");
12
- /**
13
- * Represents an array string parser
14
- * @class
15
- * @implements {Parser<string[]>}
16
- * @classdesc
17
- * This parser parses an array of string name following a specific order based
18
- * on the count of elements. It is expected that the array has to be between two
19
- * and five elements. Also, the order of appearance set in the configuration
20
- * influences how this parsing is carried out.
21
- *
22
- * Ordered by first name, the parser works as follows:
23
- * - 2 elements: firstname lastname
24
- * - 3 elements: firstname middlename lastname
25
- * - 4 elements: prefix firstname middlename lastname
26
- * - 5 elements: prefix firstname middlename lastname suffix
27
- *
28
- * Ordered by last name, the parser works as follows:
29
- * - 2 elements: lastname firstname
30
- * - 3 elements: lastname firstname middlename
31
- * - 4 elements: prefix lastname firstname middlename
32
- * - 5 elements: prefix lastname firstname middlename suffix
33
- *
34
- */
35
- class ArrayStringParser {
36
- /**
37
- * Create a parser ready to parse the raw data
38
- * @param {Array<string>} raw data
39
- */
40
- constructor(raw) {
41
- this.raw = raw;
42
- }
43
- /**
44
- * Parses the raw data into a full name
45
- * @returns {Fullname}
46
- */
47
- parse(options) {
48
- // given this setting
49
- const { orderedBy, bypass } = options;
50
- // validate first
51
- const raw = this.raw.map(n => n.trim()); // cleanup
52
- const index = index_3.organizeNameIndex(orderedBy, raw.length);
53
- if (!bypass)
54
- new index_2.ArrayStringValidator(index).validate(raw);
55
- // then distribute all the elements accordingly
56
- const fullname = this.distribute(raw, index);
57
- // finally return high quality of data
58
- return fullname;
59
- }
60
- distribute(raw, index) {
61
- const fullname = {
62
- firstname: null,
63
- lastname: null,
64
- middlename: [],
65
- prefix: null,
66
- suffix: null,
67
- };
68
- switch (raw.length) {
69
- case 2: // first name + last name
70
- fullname.firstname = new index_1.Firstname(raw[index.firstname]);
71
- fullname.lastname = new index_1.Lastname(raw[index.lastname]);
72
- break;
73
- case 3: // first name + middle name + last name
74
- fullname.firstname = new index_1.Firstname(raw[index.firstname]);
75
- fullname.middlename.push(new index_1.Name(raw[index.middlename], index_1.Namon.MIDDLE_NAME));
76
- fullname.lastname = new index_1.Lastname(raw[index.lastname]);
77
- break;
78
- case 4: // prefix + first name + middle name + last name
79
- fullname.prefix = raw[index.prefix];
80
- fullname.firstname = new index_1.Firstname(raw[index.firstname]);
81
- fullname.middlename.push(new index_1.Name(raw[index.middlename], index_1.Namon.MIDDLE_NAME));
82
- fullname.lastname = new index_1.Lastname(raw[index.lastname]);
83
- break;
84
- case 5: // prefix + first name + middle name + last name + suffix
85
- fullname.prefix = raw[index.prefix];
86
- fullname.firstname = new index_1.Firstname(raw[index.firstname]);
87
- fullname.middlename.push(new index_1.Name(raw[index.middlename], index_1.Namon.MIDDLE_NAME));
88
- fullname.lastname = new index_1.Lastname(raw[index.lastname]);
89
- fullname.suffix = raw[index.suffix];
90
- break;
91
- }
92
- return fullname;
93
- }
94
- }
95
- exports.default = ArrayStringParser;
96
- //# sourceMappingURL=array-string.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-string.parser.js","sourceRoot":"","sources":["../../../../src/core/parsers/array-string.parser.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Export the local parsers
3
- *
4
- * Created on March 03, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- export * from './parser';
8
- export { default as ArrayNameParser } from './array-name.parser';
9
- export { default as ArrayStringParser } from './array-string.parser';
10
- export { default as NamaParser } from './nama.parser';
11
- export { default as StringParser } from './string.parser';
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var array_name_parser_1 = require("./array-name.parser");
4
- exports.ArrayNameParser = array_name_parser_1.default;
5
- var array_string_parser_1 = require("./array-string.parser");
6
- exports.ArrayStringParser = array_string_parser_1.default;
7
- var nama_parser_1 = require("./nama.parser");
8
- exports.NamaParser = nama_parser_1.default;
9
- var string_parser_1 = require("./string.parser");
10
- exports.StringParser = string_parser_1.default;
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/parsers/index.ts"],"names":[],"mappings":";;AAOA,yDAAiE;AAAxD,8CAAA,OAAO,CAAmB;AACnC,6DAAqE;AAA5D,kDAAA,OAAO,CAAqB;AACrC,6CAAsD;AAA7C,mCAAA,OAAO,CAAc;AAC9B,iDAA0D;AAAjD,uCAAA,OAAO,CAAgB"}
@@ -1,34 +0,0 @@
1
- /**
2
- * A `Nama` (JSON signature) parser
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Nama, Fullname } from '../../models/index';
8
- import { Parser } from './parser';
9
- /**
10
- * Represents a `Nama` parser
11
- * @class
12
- * @implements {Parser<Nama>}
13
- * @classdesc
14
- * This parser parses a JSON signature of the name parts provided as string
15
- * values. This is to facilitate a developer's life that holds users' info in a
16
- * JSON format. In other words, the developer only needs to provide similar info
17
- * and the rest will follow.
18
- */
19
- export default class NamaParser implements Parser<Nama> {
20
- raw: Nama;
21
- /**
22
- * Create a parser ready to parse the raw data
23
- * @param {Nama} raw data as JSON object
24
- */
25
- constructor(raw: Nama);
26
- /**
27
- * Parses the raw data into a full name
28
- * @returns {Fullname}
29
- */
30
- parse(options: {
31
- bypass: boolean;
32
- }): Fullname;
33
- private distribute;
34
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * A `Nama` (JSON signature) parser
5
- *
6
- * Created on March 15, 2020
7
- * @author Ralph Florent <ralflornt@gmail.com>
8
- */
9
- const index_1 = require("../../models/index");
10
- const index_2 = require("../../validators/index");
11
- /**
12
- * Represents a `Nama` parser
13
- * @class
14
- * @implements {Parser<Nama>}
15
- * @classdesc
16
- * This parser parses a JSON signature of the name parts provided as string
17
- * values. This is to facilitate a developer's life that holds users' info in a
18
- * JSON format. In other words, the developer only needs to provide similar info
19
- * and the rest will follow.
20
- */
21
- class NamaParser {
22
- /**
23
- * Create a parser ready to parse the raw data
24
- * @param {Nama} raw data as JSON object
25
- */
26
- constructor(raw) {
27
- this.raw = raw;
28
- }
29
- /**
30
- * Parses the raw data into a full name
31
- * @returns {Fullname}
32
- */
33
- parse(options) {
34
- // validate first
35
- if (!options.bypass)
36
- new index_2.NamaValidator().validate(this.raw);
37
- // then distribute all the elements accordingly
38
- const fullname = this.distribute();
39
- // finally return high quality of data
40
- return fullname;
41
- }
42
- distribute() {
43
- const fullname = {
44
- firstname: null,
45
- lastname: null,
46
- middlename: [],
47
- prefix: null,
48
- suffix: null,
49
- };
50
- for (const entry of Object.entries(this.raw)) {
51
- const key = entry[0];
52
- const value = entry[1];
53
- switch (key) {
54
- case index_1.Namon.FIRST_NAME:
55
- fullname.firstname = new index_1.Firstname(value);
56
- break;
57
- case index_1.Namon.LAST_NAME:
58
- fullname.lastname = new index_1.Lastname(value);
59
- break;
60
- case index_1.Namon.MIDDLE_NAME:
61
- fullname.middlename.push(new index_1.Name(value, index_1.Namon.MIDDLE_NAME));
62
- break;
63
- case index_1.Namon.PREFIX:
64
- fullname.prefix = value;
65
- break;
66
- case index_1.Namon.SUFFIX:
67
- fullname.suffix = value;
68
- break;
69
- }
70
- }
71
- return fullname;
72
- }
73
- }
74
- exports.default = NamaParser;
75
- //# sourceMappingURL=nama.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nama.parser.js","sourceRoot":"","sources":["../../../../src/core/parsers/nama.parser.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,8CAAsG;AACtG,kDAAuD;AAIvD;;;;;;;;;GASG;AACH,MAAqB,UAAU;IAE3B;;;OAGG;IACH,YAAmB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAI,CAAC;IAEjC;;;OAGG;IACH,KAAK,CAAC,OAA4B;QAE9B,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,IAAI,qBAAa,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5D,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEnC,sCAAsC;QACtC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,UAAU;QACd,MAAM,QAAQ,GAAa;YACvB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;SACf,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAe,CAAC;YACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;YACjC,QAAQ,GAAG,EAAE;gBACT,KAAK,aAAK,CAAC,UAAU;oBACjB,QAAQ,CAAC,SAAS,GAAG,IAAI,iBAAS,CAAC,KAAK,CAAC,CAAC;oBAC1C,MAAM;gBACV,KAAK,aAAK,CAAC,SAAS;oBAChB,QAAQ,CAAC,QAAQ,GAAG,IAAI,gBAAQ,CAAC,KAAK,CAAC,CAAC;oBACxC,MAAM;gBACV,KAAK,aAAK,CAAC,WAAW;oBAClB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAI,CAAC,KAAK,EAAE,aAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC7D,MAAM;gBACV,KAAK,aAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,KAAe,CAAC;oBAClC,MAAM;gBACV,KAAK,aAAK,CAAC,MAAM;oBACb,QAAQ,CAAC,MAAM,GAAG,KAAe,CAAC;oBAClC,MAAM;aACb;SACJ;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAxDD,6BAwDC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * A `Parser` contract
3
- *
4
- * Created on March 15, 2020
5
- * @author Ralph Florent <ralflornt@gmail.com>
6
- */
7
- import { Fullname, Separator, NameOrder, LastnameFormat } from '../../models/index';
8
- /**
9
- * Interface for JSON signature that represents a generic parser
10
- * @interface
11
- */
12
- export interface Parser<T> {
13
- /**
14
- * raw data to be parsed
15
- * @type {T}
16
- */
17
- raw: T;
18
- /**
19
- * Parses the raw data into a full name
20
- * @param {Config} [options]
21
- * @returns {Fullname}
22
- */
23
- parse(options?: Partial<{
24
- orderedBy: NameOrder;
25
- separator: Separator;
26
- bypass: boolean;
27
- lastnameFormat: LastnameFormat;
28
- }>): Fullname;
29
- }