@dchighs/dbgames 0.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.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/client.d.ts +10 -0
  4. package/dist/client.js +30 -0
  5. package/dist/dbgames.d.ts +28 -0
  6. package/dist/dbgames.js +175 -0
  7. package/dist/enums/alphabet.enum.d.ts +28 -0
  8. package/dist/enums/alphabet.enum.js +32 -0
  9. package/dist/enums/dragon-element.enum.d.ts +22 -0
  10. package/dist/enums/dragon-element.enum.js +26 -0
  11. package/dist/enums/dragon-rarity.enum.d.ts +8 -0
  12. package/dist/enums/dragon-rarity.enum.js +12 -0
  13. package/dist/enums/dragons-sort-by.enum.d.ts +10 -0
  14. package/dist/enums/dragons-sort-by.enum.js +14 -0
  15. package/dist/enums/index.d.ts +5 -0
  16. package/dist/enums/index.js +21 -0
  17. package/dist/enums/order-by.enum.d.ts +4 -0
  18. package/dist/enums/order-by.enum.js +8 -0
  19. package/dist/helpers/regex.helper.d.ts +7 -0
  20. package/dist/helpers/regex.helper.js +10 -0
  21. package/dist/index.d.ts +4 -0
  22. package/dist/index.js +23 -0
  23. package/dist/interfaces/dragons-list.interface.d.ts +24 -0
  24. package/dist/interfaces/dragons-list.interface.js +2 -0
  25. package/dist/interfaces/full-data-dragon.interface.d.ts +34 -0
  26. package/dist/interfaces/full-data-dragon.interface.js +2 -0
  27. package/dist/interfaces/index.d.ts +3 -0
  28. package/dist/interfaces/index.js +19 -0
  29. package/dist/interfaces/preview-dragon.interface.d.ts +21 -0
  30. package/dist/interfaces/preview-dragon.interface.js +2 -0
  31. package/dist/parsing-models/dragon-page.model.d.ts +70 -0
  32. package/dist/parsing-models/dragon-page.model.js +73 -0
  33. package/dist/parsing-models/dragon.model.d.ts +48 -0
  34. package/dist/parsing-models/dragon.model.js +51 -0
  35. package/dist/parsing-models/dragons-page.model.d.ts +54 -0
  36. package/dist/parsing-models/dragons-page.model.js +12 -0
  37. package/dist/transforming-models/dragon-page.model.d.ts +2 -0
  38. package/dist/transforming-models/dragon-page.model.js +257 -0
  39. package/dist/transforming-models/dragon.model.d.ts +2 -0
  40. package/dist/transforming-models/dragon.model.js +166 -0
  41. package/dist/transforming-models/dragons-page.model.d.ts +2 -0
  42. package/dist/transforming-models/dragons-page.model.js +12 -0
  43. package/dist/utils/extract-attack-id-from-name-key.util.d.ts +1 -0
  44. package/dist/utils/extract-attack-id-from-name-key.util.js +15 -0
  45. package/dist/utils/extract-dragon-page-slug.util.d.ts +1 -0
  46. package/dist/utils/extract-dragon-page-slug.util.js +10 -0
  47. package/dist/utils/extract-page-number-from-url.util.d.ts +1 -0
  48. package/dist/utils/extract-page-number-from-url.util.js +15 -0
  49. package/dist/utils/index.d.ts +7 -0
  50. package/dist/utils/index.js +23 -0
  51. package/dist/utils/pick-keys.util.d.ts +1 -0
  52. package/dist/utils/pick-keys.util.js +10 -0
  53. package/dist/utils/string-duration-to-seconds.util.d.ts +1 -0
  54. package/dist/utils/string-duration-to-seconds.util.js +22 -0
  55. package/dist/utils/string-time-to-seconds.util.d.ts +1 -0
  56. package/dist/utils/string-time-to-seconds.util.js +11 -0
  57. package/dist/utils/value-of-enum.util.d.ts +1 -0
  58. package/dist/utils/value-of-enum.util.js +2 -0
  59. package/package.json +46 -0
@@ -0,0 +1,70 @@
1
+ import { HtmlExtractionModel } from "@xcrap/extractor";
2
+ export declare const dragonPageExtractionModel: HtmlExtractionModel<{
3
+ heading: {
4
+ query: import("@xcrap/extractor").BuildedQuery;
5
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
6
+ };
7
+ description: {
8
+ query: import("@xcrap/extractor").BuildedQuery;
9
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
10
+ };
11
+ rarity: {
12
+ query: import("@xcrap/extractor").BuildedQuery;
13
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
14
+ };
15
+ elements: {
16
+ query: import("@xcrap/extractor").BuildedQuery;
17
+ multiple: true;
18
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
19
+ };
20
+ hatchingTime: {
21
+ query: import("@xcrap/extractor").BuildedQuery;
22
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
23
+ };
24
+ breedingTime: {
25
+ query: import("@xcrap/extractor").BuildedQuery;
26
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
27
+ };
28
+ goldProductionInfo: {
29
+ query: import("@xcrap/extractor").BuildedQuery;
30
+ default: null;
31
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
32
+ };
33
+ hatchingExperience: {
34
+ query: import("@xcrap/extractor").BuildedQuery;
35
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
36
+ default: null;
37
+ };
38
+ firstImageUrl: {
39
+ query: import("@xcrap/extractor").BuildedQuery;
40
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
41
+ default: null;
42
+ };
43
+ xpOnHatching: {
44
+ query: import("@xcrap/extractor").BuildedQuery;
45
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
46
+ default: null;
47
+ };
48
+ allAttacks: {
49
+ query: import("@xcrap/extractor").BuildedQuery;
50
+ multiple: true;
51
+ model: HtmlExtractionModel<{
52
+ name: {
53
+ query: import("@xcrap/extractor").BuildedQuery;
54
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
55
+ };
56
+ element: {
57
+ query: import("@xcrap/extractor").BuildedQuery;
58
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
59
+ };
60
+ trainingTime: {
61
+ query: import("@xcrap/extractor").BuildedQuery;
62
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
63
+ };
64
+ power: {
65
+ query: import("@xcrap/extractor").BuildedQuery;
66
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
67
+ };
68
+ }>;
69
+ };
70
+ }>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dragonPageExtractionModel = void 0;
4
+ const extractor_1 = require("@xcrap/extractor");
5
+ exports.dragonPageExtractionModel = new extractor_1.HtmlExtractionModel({
6
+ heading: {
7
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) .subtitle:first-child"),
8
+ extractor: (0, extractor_1.extract)("textContent"),
9
+ },
10
+ description: {
11
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) .col-sm-12.rhs.text-data"),
12
+ extractor: (0, extractor_1.extract)("innerText"),
13
+ },
14
+ rarity: {
15
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) .rarity .iconized-text"),
16
+ extractor: (0, extractor_1.extract)("innerText"),
17
+ },
18
+ elements: {
19
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) .element"),
20
+ multiple: true,
21
+ extractor: (0, extractor_1.extract)("innerText"),
22
+ },
23
+ hatchingTime: {
24
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) tr:nth-child(4) .iconized-text"),
25
+ extractor: (0, extractor_1.extract)("innerText"),
26
+ },
27
+ breedingTime: {
28
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) tr:nth-child(3) .iconized-text"),
29
+ extractor: (0, extractor_1.extract)("innerText"),
30
+ },
31
+ goldProductionInfo: {
32
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) tr:nth-child(5) .iconized-text"),
33
+ default: null,
34
+ extractor: (0, extractor_1.extract)("innerText"),
35
+ },
36
+ hatchingExperience: {
37
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) tr:nth-child(6) .iconized-text"),
38
+ extractor: (0, extractor_1.extract)("innerText"),
39
+ default: null,
40
+ },
41
+ firstImageUrl: {
42
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) .col-xs-4:nth-child(1) .entityimg"),
43
+ extractor: (0, extractor_1.extract)("src"),
44
+ default: null,
45
+ },
46
+ xpOnHatching: {
47
+ query: (0, extractor_1.css)(".result-data:has(.entitytabledata) tr:nth-child(6) .iconized-text"),
48
+ extractor: (0, extractor_1.extract)("innerText"),
49
+ default: null,
50
+ },
51
+ allAttacks: {
52
+ query: (0, extractor_1.css)(".result-data:has(.text-right) > .row > .col-sm-12 > table > tbody > tr:not(:has(.subtitle))"),
53
+ multiple: true,
54
+ model: new extractor_1.HtmlExtractionModel({
55
+ name: {
56
+ query: (0, extractor_1.css)("td:nth-child(1)"),
57
+ extractor: (0, extractor_1.extract)("innerText"),
58
+ },
59
+ element: {
60
+ query: (0, extractor_1.css)("td:nth-child(2) a"),
61
+ extractor: (0, extractor_1.extract)("innerText"),
62
+ },
63
+ trainingTime: {
64
+ query: (0, extractor_1.css)("td:nth-child(3) .text-center"),
65
+ extractor: (0, extractor_1.extract)("innerText"),
66
+ },
67
+ power: {
68
+ query: (0, extractor_1.css)("td:nth-child(3) .text-right"),
69
+ extractor: (0, extractor_1.extract)("innerText"),
70
+ },
71
+ }),
72
+ },
73
+ });
@@ -0,0 +1,48 @@
1
+ import { HtmlExtractionModel } from "@xcrap/extractor";
2
+ export declare const dragonExtractionModel: HtmlExtractionModel<{
3
+ heading: {
4
+ query: import("@xcrap/extractor").BuildedQuery;
5
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
6
+ };
7
+ description: {
8
+ query: import("@xcrap/extractor").BuildedQuery;
9
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
10
+ };
11
+ rarity: {
12
+ query: import("@xcrap/extractor").BuildedQuery;
13
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
14
+ };
15
+ elements: {
16
+ query: import("@xcrap/extractor").BuildedQuery;
17
+ multiple: true;
18
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
19
+ };
20
+ hatchingTime: {
21
+ query: import("@xcrap/extractor").BuildedQuery;
22
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
23
+ };
24
+ breedingTime: {
25
+ query: import("@xcrap/extractor").BuildedQuery;
26
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
27
+ };
28
+ goldProductionInfo: {
29
+ query: import("@xcrap/extractor").BuildedQuery;
30
+ default: null;
31
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
32
+ };
33
+ hatchingExperience: {
34
+ query: import("@xcrap/extractor").BuildedQuery;
35
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
36
+ default: null;
37
+ };
38
+ firstImageUrl: {
39
+ query: import("@xcrap/extractor").BuildedQuery;
40
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
41
+ default: null;
42
+ };
43
+ xpOnHatching: {
44
+ query: import("@xcrap/extractor").BuildedQuery;
45
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
46
+ default: null;
47
+ };
48
+ }>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dragonExtractionModel = void 0;
4
+ const extractor_1 = require("@xcrap/extractor");
5
+ exports.dragonExtractionModel = new extractor_1.HtmlExtractionModel({
6
+ heading: {
7
+ query: (0, extractor_1.css)(".subtitle:first-child"),
8
+ extractor: (0, extractor_1.extract)("textContent"),
9
+ },
10
+ description: {
11
+ query: (0, extractor_1.css)(".col-sm-12.rhs.text-data"),
12
+ extractor: (0, extractor_1.extract)("innerText"),
13
+ },
14
+ rarity: {
15
+ query: (0, extractor_1.css)(".rarity .iconized-text"),
16
+ extractor: (0, extractor_1.extract)("innerText"),
17
+ },
18
+ elements: {
19
+ query: (0, extractor_1.css)(".element"),
20
+ multiple: true,
21
+ extractor: (0, extractor_1.extract)("innerText"),
22
+ },
23
+ hatchingTime: {
24
+ query: (0, extractor_1.css)("tr:nth-child(4) .iconized-text"),
25
+ extractor: (0, extractor_1.extract)("innerText"),
26
+ },
27
+ breedingTime: {
28
+ query: (0, extractor_1.css)("tr:nth-child(3) .iconized-text"),
29
+ extractor: (0, extractor_1.extract)("innerText"),
30
+ },
31
+ goldProductionInfo: {
32
+ query: (0, extractor_1.css)("tr:nth-child(5) .iconized-text"),
33
+ default: null,
34
+ extractor: (0, extractor_1.extract)("innerText"),
35
+ },
36
+ hatchingExperience: {
37
+ query: (0, extractor_1.css)("tr:nth-child(6) .iconized-text"),
38
+ extractor: (0, extractor_1.extract)("innerText"),
39
+ default: null,
40
+ },
41
+ firstImageUrl: {
42
+ query: (0, extractor_1.css)(".col-xs-4:nth-child(1) .entityimg"),
43
+ extractor: (0, extractor_1.extract)("src"),
44
+ default: null,
45
+ },
46
+ xpOnHatching: {
47
+ query: (0, extractor_1.css)("tr:nth-child(6) .iconized-text"),
48
+ extractor: (0, extractor_1.extract)("innerText"),
49
+ default: null,
50
+ },
51
+ });
@@ -0,0 +1,54 @@
1
+ import { HtmlExtractionModel } from "@xcrap/extractor";
2
+ export declare const dragonsPageExtractionModel: HtmlExtractionModel<{
3
+ dragons: {
4
+ query: import("@xcrap/extractor").BuildedQuery;
5
+ multiple: true;
6
+ model: HtmlExtractionModel<{
7
+ heading: {
8
+ query: import("@xcrap/extractor").BuildedQuery;
9
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
10
+ };
11
+ description: {
12
+ query: import("@xcrap/extractor").BuildedQuery;
13
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
14
+ };
15
+ rarity: {
16
+ query: import("@xcrap/extractor").BuildedQuery;
17
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
18
+ };
19
+ elements: {
20
+ query: import("@xcrap/extractor").BuildedQuery;
21
+ multiple: true;
22
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
23
+ };
24
+ hatchingTime: {
25
+ query: import("@xcrap/extractor").BuildedQuery;
26
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
27
+ };
28
+ breedingTime: {
29
+ query: import("@xcrap/extractor").BuildedQuery;
30
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
31
+ };
32
+ goldProductionInfo: {
33
+ query: import("@xcrap/extractor").BuildedQuery;
34
+ default: null;
35
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
36
+ };
37
+ hatchingExperience: {
38
+ query: import("@xcrap/extractor").BuildedQuery;
39
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
40
+ default: null;
41
+ };
42
+ firstImageUrl: {
43
+ query: import("@xcrap/extractor").BuildedQuery;
44
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
45
+ default: null;
46
+ };
47
+ xpOnHatching: {
48
+ query: import("@xcrap/extractor").BuildedQuery;
49
+ extractor: import("@xcrap/extractor").ExtractorFunction<string | Promise<string | undefined> | undefined>;
50
+ default: null;
51
+ };
52
+ }>;
53
+ };
54
+ }>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dragonsPageExtractionModel = void 0;
4
+ const extractor_1 = require("@xcrap/extractor");
5
+ const dragon_model_1 = require("./dragon.model");
6
+ exports.dragonsPageExtractionModel = new extractor_1.HtmlExtractionModel({
7
+ dragons: {
8
+ query: (0, extractor_1.css)(".result-data:has(.col-sm-12.rhs.text-data)"),
9
+ multiple: true,
10
+ model: dragon_model_1.dragonExtractionModel,
11
+ },
12
+ });
@@ -0,0 +1,2 @@
1
+ import { TransformingModel } from "@xcrap/transformer";
2
+ export declare const dragonPageTransformingModel: TransformingModel;
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dragonPageTransformingModel = void 0;
4
+ const transformer_1 = require("@xcrap/transformer");
5
+ const dc_core_1 = require("@dchighs/dc-core");
6
+ const utils_1 = require("../utils");
7
+ const regex_helper_1 = require("../helpers/regex.helper");
8
+ const attackTransformingModel = new transformer_1.TransformingModel({
9
+ name: [
10
+ (0, transformer_1.transform)({
11
+ key: "name",
12
+ transformer: transformer_1.StringTransformer.trim,
13
+ }),
14
+ (0, transformer_1.transform)({
15
+ key: "name",
16
+ condition: (value) => value === "Judo Kick",
17
+ transformer: () => "Judo Throw",
18
+ }),
19
+ (0, transformer_1.transform)({
20
+ key: "name",
21
+ condition: (value) => value === "Karate Brick Break",
22
+ transformer: () => "Brick Break",
23
+ }),
24
+ (0, transformer_1.transform)({
25
+ key: "name",
26
+ condition: (value) => value === "Head Butt",
27
+ transformer: () => "Headbutt",
28
+ }),
29
+ (0, transformer_1.transform)({
30
+ key: "name",
31
+ condition: (value) => value === "Original Pain",
32
+ transformer: () => "Archaic Pain",
33
+ }),
34
+ ],
35
+ type: [
36
+ (0, transformer_1.transform)({
37
+ key: "element",
38
+ transformer: transformer_1.StringTransformer.trim,
39
+ }),
40
+ (0, transformer_1.transform)({
41
+ key: "type",
42
+ transformer: transformer_1.StringTransformer.toLowerCase,
43
+ }),
44
+ ],
45
+ element: [
46
+ (0, transformer_1.transform)({
47
+ key: "element",
48
+ transformer: transformer_1.StringTransformer.trim,
49
+ }),
50
+ (0, transformer_1.transform)({
51
+ key: "element",
52
+ transformer: transformer_1.StringTransformer.toLowerCase,
53
+ }),
54
+ (0, transformer_1.transform)({
55
+ key: "element",
56
+ transformer: (element) => dc_core_1.elementSettings[element].acronym,
57
+ }),
58
+ ],
59
+ ui_damage: [
60
+ (0, transformer_1.transform)({
61
+ key: "power",
62
+ transformer: transformer_1.StringTransformer.toNumber,
63
+ }),
64
+ ],
65
+ training_time: [
66
+ (0, transformer_1.transform)({
67
+ key: "trainingTime",
68
+ transformer: utils_1.stringDurationToSeconds,
69
+ }),
70
+ ],
71
+ }).after({
72
+ delete: ["power", "trainingTime"],
73
+ });
74
+ exports.dragonPageTransformingModel = new transformer_1.TransformingModel({
75
+ id: [
76
+ (0, transformer_1.transform)({
77
+ key: "heading",
78
+ transformer: transformer_1.StringTransformer.extract(regex_helper_1.regexHelper.dragonId, 1),
79
+ }),
80
+ (0, transformer_1.transform)({
81
+ key: "id",
82
+ transformer: transformer_1.StringTransformer.toNumber,
83
+ }),
84
+ ],
85
+ name: [
86
+ (0, transformer_1.transform)({
87
+ key: "heading",
88
+ transformer: transformer_1.StringTransformer.extract(regex_helper_1.regexHelper.dragonName, 1),
89
+ }),
90
+ ],
91
+ name_key: [
92
+ (0, transformer_1.transform)({
93
+ key: "id",
94
+ transformer: (id) => `tid_unit_${id}_name`,
95
+ }),
96
+ ],
97
+ description: [
98
+ (0, transformer_1.transform)({
99
+ key: "description",
100
+ transformer: transformer_1.StringTransformer.trim,
101
+ }),
102
+ ],
103
+ description_key: [
104
+ (0, transformer_1.transform)({
105
+ key: "id",
106
+ transformer: (id) => `tid_unit_${id}_description`,
107
+ }),
108
+ ],
109
+ dragon_rarity: [
110
+ (0, transformer_1.transform)({
111
+ key: "rarity",
112
+ transformer: transformer_1.StringTransformer.toUpperCase,
113
+ }),
114
+ (0, transformer_1.transform)({
115
+ key: "dragon_rarity",
116
+ transformer: transformer_1.StringTransformer.substr(0, 1),
117
+ }),
118
+ ],
119
+ tempAttacks: [
120
+ (0, transformer_1.transform)({
121
+ key: "allAttacks",
122
+ transformer: transformer_1.ArrayTransformer.slice(0, 4),
123
+ }),
124
+ ],
125
+ attacks: {
126
+ key: "tempAttacks",
127
+ multiple: true,
128
+ model: attackTransformingModel,
129
+ },
130
+ attributes: [
131
+ (0, transformer_1.transform)({
132
+ key: "elements",
133
+ transformer: transformer_1.ArrayTransformer.map(transformer_1.StringTransformer.toLowerCase),
134
+ }),
135
+ (0, transformer_1.transform)({
136
+ key: "attributes",
137
+ transformer: (elements) => {
138
+ return elements.map((element) => dc_core_1.elementSettings[element].acronym);
139
+ },
140
+ }),
141
+ ],
142
+ tempTrainableAttacks: [
143
+ (0, transformer_1.transform)({
144
+ key: "allAttacks",
145
+ transformer: transformer_1.ArrayTransformer.slice(4, 8),
146
+ }),
147
+ ],
148
+ trainable_attacks: {
149
+ key: "tempTrainableAttacks",
150
+ multiple: true,
151
+ model: attackTransformingModel,
152
+ },
153
+ img_name: [
154
+ (0, transformer_1.transform)({
155
+ key: "firstImageUrl",
156
+ condition: (value) => !!value,
157
+ transformer: dc_core_1.DragonStaticFileUrlParser.getImageName,
158
+ }),
159
+ (0, transformer_1.transform)({
160
+ key: "firstImageUrl",
161
+ condition: (value) => !value,
162
+ transformer: () => null,
163
+ }),
164
+ ],
165
+ hatching_time: [
166
+ (0, transformer_1.transform)({
167
+ key: "hatchingTime",
168
+ condition: (value) => value !== null,
169
+ transformer: transformer_1.StringTransformer.trim,
170
+ }),
171
+ (0, transformer_1.transform)({
172
+ key: "hatching_time",
173
+ condition: (value) => value !== null,
174
+ transformer: utils_1.stringTimeToSeconds,
175
+ }),
176
+ ],
177
+ breeding_time: [
178
+ (0, transformer_1.transform)({
179
+ key: "breedingTime",
180
+ condition: (value) => value !== null,
181
+ transformer: transformer_1.StringTransformer.trim,
182
+ }),
183
+ (0, transformer_1.transform)({
184
+ key: "breeding_time",
185
+ condition: (value) => value !== null,
186
+ transformer: utils_1.stringTimeToSeconds,
187
+ }),
188
+ ],
189
+ xp: [
190
+ (0, transformer_1.transform)({
191
+ key: "xpOnHatching",
192
+ condition: (value) => !!value,
193
+ transformer: transformer_1.StringTransformer.replace(/,/g, ""),
194
+ }),
195
+ (0, transformer_1.transform)({
196
+ key: "xp",
197
+ condition: (value) => !!value,
198
+ transformer: transformer_1.StringTransformer.toNumber,
199
+ }),
200
+ (0, transformer_1.transform)({
201
+ key: "xp",
202
+ condition: (value) => !value,
203
+ transformer: () => null,
204
+ }),
205
+ ],
206
+ starting_coins: [
207
+ (0, transformer_1.transform)({
208
+ key: "goldProductionInfo",
209
+ condition: (value) => !!value,
210
+ transformer: transformer_1.StringTransformer.extract(regex_helper_1.regexHelper.dragonStartingCoins, 1),
211
+ }),
212
+ (0, transformer_1.transform)({
213
+ key: "starting_coins",
214
+ condition: (value) => !!value,
215
+ transformer: transformer_1.StringTransformer.toNumber,
216
+ }),
217
+ (0, transformer_1.transform)({
218
+ key: "goldProductionInfo",
219
+ condition: (value) => !value,
220
+ transformer: () => null,
221
+ }),
222
+ ],
223
+ coins_added: [
224
+ (0, transformer_1.transform)({
225
+ key: "goldProductionInfo",
226
+ condition: (value) => !!value,
227
+ transformer: transformer_1.StringTransformer.extract(regex_helper_1.regexHelper.dragonCoinsIncome, 1),
228
+ }),
229
+ (0, transformer_1.transform)({
230
+ key: "coins_added",
231
+ condition: (value) => !!value,
232
+ transformer: transformer_1.StringTransformer.toNumber,
233
+ }),
234
+ (0, transformer_1.transform)({
235
+ key: "goldProductionInfo",
236
+ condition: (value) => !value,
237
+ transformer: () => null,
238
+ }),
239
+ ],
240
+ }).after({
241
+ delete: [
242
+ "heading",
243
+ "goldProductionInfo",
244
+ "hatchingExperience",
245
+ "xpOnHatching",
246
+ "firstImageUrl",
247
+ "elements",
248
+ "tempAttacks",
249
+ "allAttacks",
250
+ "tempTrainableAttacks",
251
+ "hatchingTime",
252
+ "breedingTime",
253
+ ],
254
+ append: {
255
+ group_type: "DRAGON",
256
+ },
257
+ });
@@ -0,0 +1,2 @@
1
+ import { TransformingModel } from "@xcrap/transformer";
2
+ export declare const dragonTransformingModel: TransformingModel;