warframe-worldstate-data 2.24.10 → 3.0.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.
- package/.lintstagedrc.yml +5 -5
- package/.mocharc.yml +7 -1
- package/biome.json +51 -0
- package/data/languages.json +9 -0
- package/data/synthTargets.json +1 -1
- package/dist/data/arcanes.json +461 -0
- package/dist/data/archonShards.json +224 -0
- package/dist/data/conclaveData.json +425 -0
- package/dist/data/cs/arcanes.json +461 -0
- package/dist/data/cs/archonShards.json +224 -0
- package/dist/data/cs/conclaveData.json +425 -0
- package/dist/data/cs/eventsData.json +27 -0
- package/dist/data/cs/factionsData.json +26 -0
- package/dist/data/cs/fissureModifiers.json +26 -0
- package/dist/data/cs/languages.json +19240 -0
- package/dist/data/cs/missionTypes.json +77 -0
- package/dist/data/cs/operationTypes.json +6 -0
- package/dist/data/cs/persistentEnemyData.json +21 -0
- package/dist/data/cs/solNodes.json +2237 -0
- package/dist/data/cs/sortieData.json +4253 -0
- package/dist/data/cs/steelPath.json +114 -0
- package/dist/data/cs/syndicatesData.json +86 -0
- package/dist/data/cs/synthTargets.json +1262 -0
- package/dist/data/cs/tutorials.json +17 -0
- package/dist/data/cs/upgradeTypes.json +14 -0
- package/dist/data/de/arcanes.json +461 -0
- package/dist/data/de/archonShards.json +224 -0
- package/dist/data/de/conclaveData.json +425 -0
- package/dist/data/de/eventsData.json +27 -0
- package/dist/data/de/factionsData.json +26 -0
- package/dist/data/de/fissureModifiers.json +26 -0
- package/dist/data/de/languages.json +19240 -0
- package/dist/data/de/missionTypes.json +77 -0
- package/dist/data/de/operationTypes.json +6 -0
- package/dist/data/de/persistentEnemyData.json +21 -0
- package/dist/data/de/solNodes.json +2237 -0
- package/dist/data/de/sortieData.json +4253 -0
- package/dist/data/de/steelPath.json +114 -0
- package/dist/data/de/syndicatesData.json +86 -0
- package/dist/data/de/synthTargets.json +1262 -0
- package/dist/data/de/tutorials.json +17 -0
- package/dist/data/de/upgradeTypes.json +14 -0
- package/dist/data/es/arcanes.json +461 -0
- package/dist/data/es/archonShards.json +224 -0
- package/dist/data/es/conclaveData.json +425 -0
- package/dist/data/es/eventsData.json +27 -0
- package/dist/data/es/factionsData.json +26 -0
- package/dist/data/es/fissureModifiers.json +26 -0
- package/dist/data/es/languages.json +19240 -0
- package/dist/data/es/missionTypes.json +77 -0
- package/dist/data/es/operationTypes.json +6 -0
- package/dist/data/es/persistentEnemyData.json +21 -0
- package/dist/data/es/solNodes.json +2237 -0
- package/dist/data/es/sortieData.json +4253 -0
- package/dist/data/es/steelPath.json +114 -0
- package/dist/data/es/syndicatesData.json +86 -0
- package/dist/data/es/synthTargets.json +1262 -0
- package/dist/data/es/tutorials.json +17 -0
- package/dist/data/es/upgradeTypes.json +14 -0
- package/dist/data/eventsData.json +27 -0
- package/dist/data/factionsData.json +26 -0
- package/dist/data/fissureModifiers.json +26 -0
- package/dist/data/fr/arcanes.json +461 -0
- package/dist/data/fr/archonShards.json +224 -0
- package/dist/data/fr/conclaveData.json +425 -0
- package/dist/data/fr/eventsData.json +27 -0
- package/dist/data/fr/factionsData.json +26 -0
- package/dist/data/fr/fissureModifiers.json +26 -0
- package/dist/data/fr/languages.json +19240 -0
- package/dist/data/fr/missionTypes.json +77 -0
- package/dist/data/fr/operationTypes.json +6 -0
- package/dist/data/fr/persistentEnemyData.json +21 -0
- package/dist/data/fr/solNodes.json +2237 -0
- package/dist/data/fr/sortieData.json +4253 -0
- package/dist/data/fr/steelPath.json +114 -0
- package/dist/data/fr/syndicatesData.json +86 -0
- package/dist/data/fr/synthTargets.json +1262 -0
- package/dist/data/fr/tutorials.json +17 -0
- package/dist/data/fr/upgradeTypes.json +14 -0
- package/dist/data/index.html +13 -0
- package/dist/data/it/arcanes.json +461 -0
- package/dist/data/it/archonShards.json +224 -0
- package/dist/data/it/conclaveData.json +425 -0
- package/dist/data/it/eventsData.json +27 -0
- package/dist/data/it/factionsData.json +26 -0
- package/dist/data/it/fissureModifiers.json +26 -0
- package/dist/data/it/languages.json +19240 -0
- package/dist/data/it/missionTypes.json +77 -0
- package/dist/data/it/operationTypes.json +6 -0
- package/dist/data/it/persistentEnemyData.json +21 -0
- package/dist/data/it/solNodes.json +2237 -0
- package/dist/data/it/sortieData.json +4253 -0
- package/dist/data/it/steelPath.json +114 -0
- package/dist/data/it/syndicatesData.json +86 -0
- package/dist/data/it/synthTargets.json +1262 -0
- package/dist/data/it/tutorials.json +17 -0
- package/dist/data/it/upgradeTypes.json +14 -0
- package/dist/data/ko/arcanes.json +461 -0
- package/dist/data/ko/archonShards.json +224 -0
- package/dist/data/ko/conclaveData.json +425 -0
- package/dist/data/ko/eventsData.json +27 -0
- package/dist/data/ko/factionsData.json +26 -0
- package/dist/data/ko/fissureModifiers.json +26 -0
- package/dist/data/ko/languages.json +19240 -0
- package/dist/data/ko/missionTypes.json +77 -0
- package/dist/data/ko/operationTypes.json +6 -0
- package/dist/data/ko/persistentEnemyData.json +21 -0
- package/dist/data/ko/solNodes.json +2237 -0
- package/dist/data/ko/sortieData.json +4253 -0
- package/dist/data/ko/steelPath.json +114 -0
- package/dist/data/ko/syndicatesData.json +86 -0
- package/dist/data/ko/synthTargets.json +1262 -0
- package/dist/data/ko/tutorials.json +17 -0
- package/dist/data/ko/upgradeTypes.json +14 -0
- package/dist/data/languages.json +19249 -0
- package/dist/data/missionTypes.json +77 -0
- package/dist/data/operationTypes.json +6 -0
- package/dist/data/persistentEnemyData.json +21 -0
- package/dist/data/pl/arcanes.json +461 -0
- package/dist/data/pl/archonShards.json +224 -0
- package/dist/data/pl/conclaveData.json +425 -0
- package/dist/data/pl/eventsData.json +27 -0
- package/dist/data/pl/factionsData.json +26 -0
- package/dist/data/pl/fissureModifiers.json +26 -0
- package/dist/data/pl/languages.json +19240 -0
- package/dist/data/pl/missionTypes.json +77 -0
- package/dist/data/pl/operationTypes.json +6 -0
- package/dist/data/pl/persistentEnemyData.json +21 -0
- package/dist/data/pl/solNodes.json +2237 -0
- package/dist/data/pl/sortieData.json +4253 -0
- package/dist/data/pl/steelPath.json +114 -0
- package/dist/data/pl/syndicatesData.json +86 -0
- package/dist/data/pl/synthTargets.json +1262 -0
- package/dist/data/pl/tutorials.json +17 -0
- package/dist/data/pl/upgradeTypes.json +14 -0
- package/dist/data/pt/arcanes.json +461 -0
- package/dist/data/pt/archonShards.json +224 -0
- package/dist/data/pt/conclaveData.json +425 -0
- package/dist/data/pt/eventsData.json +27 -0
- package/dist/data/pt/factionsData.json +26 -0
- package/dist/data/pt/fissureModifiers.json +26 -0
- package/dist/data/pt/languages.json +19240 -0
- package/dist/data/pt/missionTypes.json +77 -0
- package/dist/data/pt/operationTypes.json +6 -0
- package/dist/data/pt/persistentEnemyData.json +21 -0
- package/dist/data/pt/solNodes.json +2237 -0
- package/dist/data/pt/sortieData.json +4253 -0
- package/dist/data/pt/steelPath.json +114 -0
- package/dist/data/pt/syndicatesData.json +86 -0
- package/dist/data/pt/synthTargets.json +1262 -0
- package/dist/data/pt/tutorials.json +17 -0
- package/dist/data/pt/upgradeTypes.json +14 -0
- package/dist/data/ru/arcanes.json +461 -0
- package/dist/data/ru/archonShards.json +224 -0
- package/dist/data/ru/conclaveData.json +425 -0
- package/dist/data/ru/eventsData.json +27 -0
- package/dist/data/ru/factionsData.json +26 -0
- package/dist/data/ru/fissureModifiers.json +26 -0
- package/dist/data/ru/languages.json +19240 -0
- package/dist/data/ru/missionTypes.json +77 -0
- package/dist/data/ru/operationTypes.json +6 -0
- package/dist/data/ru/persistentEnemyData.json +21 -0
- package/dist/data/ru/solNodes.json +2237 -0
- package/dist/data/ru/sortieData.json +4253 -0
- package/dist/data/ru/steelPath.json +114 -0
- package/dist/data/ru/syndicatesData.json +86 -0
- package/dist/data/ru/synthTargets.json +1262 -0
- package/dist/data/ru/tutorials.json +17 -0
- package/dist/data/ru/upgradeTypes.json +14 -0
- package/dist/data/solNodes.json +2237 -0
- package/dist/data/sortieData.json +4253 -0
- package/dist/data/sr/arcanes.json +461 -0
- package/dist/data/sr/archonShards.json +224 -0
- package/dist/data/sr/conclaveData.json +425 -0
- package/dist/data/sr/eventsData.json +27 -0
- package/dist/data/sr/factionsData.json +26 -0
- package/dist/data/sr/fissureModifiers.json +26 -0
- package/dist/data/sr/languages.json +19240 -0
- package/dist/data/sr/missionTypes.json +77 -0
- package/dist/data/sr/operationTypes.json +6 -0
- package/dist/data/sr/persistentEnemyData.json +21 -0
- package/dist/data/sr/solNodes.json +2237 -0
- package/dist/data/sr/sortieData.json +4253 -0
- package/dist/data/sr/steelPath.json +114 -0
- package/dist/data/sr/syndicatesData.json +86 -0
- package/dist/data/sr/synthTargets.json +1262 -0
- package/dist/data/sr/tutorials.json +17 -0
- package/dist/data/sr/upgradeTypes.json +14 -0
- package/dist/data/steelPath.json +33 -0
- package/dist/data/syndicatesData.json +86 -0
- package/dist/data/synthTargets.json +1262 -0
- package/dist/data/tr/arcanes.json +461 -0
- package/dist/data/tr/archonShards.json +224 -0
- package/dist/data/tr/conclaveData.json +425 -0
- package/dist/data/tr/eventsData.json +27 -0
- package/dist/data/tr/factionsData.json +26 -0
- package/dist/data/tr/fissureModifiers.json +26 -0
- package/dist/data/tr/languages.json +19240 -0
- package/dist/data/tr/missionTypes.json +77 -0
- package/dist/data/tr/operationTypes.json +6 -0
- package/dist/data/tr/persistentEnemyData.json +21 -0
- package/dist/data/tr/solNodes.json +2237 -0
- package/dist/data/tr/sortieData.json +4253 -0
- package/dist/data/tr/steelPath.json +114 -0
- package/dist/data/tr/syndicatesData.json +86 -0
- package/dist/data/tr/synthTargets.json +1262 -0
- package/dist/data/tr/tutorials.json +17 -0
- package/dist/data/tr/upgradeTypes.json +14 -0
- package/dist/data/tutorials.json +17 -0
- package/dist/data/uk/arcanes.json +461 -0
- package/dist/data/uk/archonShards.json +224 -0
- package/dist/data/uk/conclaveData.json +425 -0
- package/dist/data/uk/eventsData.json +27 -0
- package/dist/data/uk/factionsData.json +26 -0
- package/dist/data/uk/fissureModifiers.json +26 -0
- package/dist/data/uk/languages.json +19240 -0
- package/dist/data/uk/missionTypes.json +77 -0
- package/dist/data/uk/operationTypes.json +6 -0
- package/dist/data/uk/persistentEnemyData.json +21 -0
- package/dist/data/uk/solNodes.json +2237 -0
- package/dist/data/uk/sortieData.json +4253 -0
- package/dist/data/uk/steelPath.json +114 -0
- package/dist/data/uk/syndicatesData.json +86 -0
- package/dist/data/uk/synthTargets.json +1262 -0
- package/dist/data/uk/tutorials.json +17 -0
- package/dist/data/uk/upgradeTypes.json +14 -0
- package/dist/data/upgradeTypes.json +14 -0
- package/dist/data/zh/arcanes.json +461 -0
- package/dist/data/zh/archonShards.json +224 -0
- package/dist/data/zh/conclaveData.json +425 -0
- package/dist/data/zh/eventsData.json +27 -0
- package/dist/data/zh/factionsData.json +26 -0
- package/dist/data/zh/fissureModifiers.json +26 -0
- package/dist/data/zh/languages.json +19240 -0
- package/dist/data/zh/missionTypes.json +77 -0
- package/dist/data/zh/operationTypes.json +6 -0
- package/dist/data/zh/persistentEnemyData.json +21 -0
- package/dist/data/zh/solNodes.json +2237 -0
- package/dist/data/zh/sortieData.json +4253 -0
- package/dist/data/zh/steelPath.json +114 -0
- package/dist/data/zh/syndicatesData.json +86 -0
- package/dist/data/zh/synthTargets.json +1262 -0
- package/dist/data/zh/tutorials.json +17 -0
- package/dist/data/zh/upgradeTypes.json +14 -0
- package/dist/exports-D0bYygo0.d.ts +122 -0
- package/dist/exports-DOwA1rwv.js +78 -0
- package/dist/exports.d.ts +3 -0
- package/dist/exports.js +4 -0
- package/dist/integrity-Cp6DXUCT.js +15 -0
- package/dist/integrity-hhdd4nAB.d.ts +9 -0
- package/dist/safeImport-BXmqy9V4.js +21 -0
- package/dist/safeImport.d.ts +10 -0
- package/dist/safeImport.js +3 -0
- package/dist/timeDate-B78E0z0S.js +74 -0
- package/dist/timeDate-BZaZFq86.d.ts +48 -0
- package/dist/tools/integrity.d.ts +2 -0
- package/dist/tools/integrity.js +3 -0
- package/dist/tools/timeDate.d.ts +2 -0
- package/dist/tools/timeDate.js +3 -0
- package/dist/tools/translation.d.ts +4 -0
- package/dist/tools/translation.js +5 -0
- package/dist/tools/utilities.d.ts +6 -0
- package/dist/tools/utilities.js +7 -0
- package/dist/translation-BbEpzl6v.js +342 -0
- package/dist/translation-CMA-O2tP.d.ts +292 -0
- package/dist/types-Clh1x9kB.d.ts +94 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +0 -0
- package/exports.ts +153 -0
- package/package.json +31 -18
- package/{safeImport.js → safeImport.ts} +8 -4
- package/tools/integrity.ts +16 -0
- package/tools/sortLanguages.ts +44 -0
- package/tools/{timeDate.js → timeDate.ts} +12 -8
- package/tools/{translation.js → translation.ts} +79 -52
- package/tools/utilities.ts +3 -0
- package/tsconfig.json +13 -0
- package/tsdown.config.ts +15 -0
- package/types.ts +69 -0
- package/.eslintignore +0 -3
- package/.eslintrc.yml +0 -19
- package/exports.js +0 -144
- package/tools/integrity.js +0 -15
- package/tools/utilities.js +0 -3
@@ -1,11 +1,12 @@
|
|
1
|
-
import data from '../exports
|
1
|
+
import data, { WorldstateLangBundle, type Locale } from '../exports';
|
2
|
+
import { ArchonShard, SolNode, Conclave, SteelPath } from '../types';
|
2
3
|
|
3
4
|
/**
|
4
5
|
* Rough Titlecase!
|
5
6
|
* @param {string} str string to be titlecased
|
6
7
|
* @returns {string} titlecased string
|
7
8
|
*/
|
8
|
-
export const toTitleCase = (str) => {
|
9
|
+
export const toTitleCase = (str: string): string => {
|
9
10
|
return str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase());
|
10
11
|
};
|
11
12
|
|
@@ -14,17 +15,18 @@ export const toTitleCase = (str) => {
|
|
14
15
|
* @param {string} str localization resource key
|
15
16
|
* @returns {string} human-readable string
|
16
17
|
*/
|
17
|
-
export const splitResourceName = (str) =>
|
18
|
+
export const splitResourceName = (str: string): string =>
|
18
19
|
str
|
19
20
|
.split(/([A-Z]?[^A-Z]*)/g)
|
20
21
|
.filter(Boolean)
|
21
22
|
.join(' ');
|
22
23
|
|
23
|
-
export const lastResourceName = (str) => (
|
24
|
+
export const lastResourceName = (str: string | undefined) => (str ? str.split?.('/').reverse()[0] : str);
|
24
25
|
|
25
|
-
const i18n = (locale = 'en') => data[locale] || data;
|
26
|
+
const i18n = (locale: Locale = 'en') => data[locale] || data;
|
26
27
|
|
27
|
-
const keyInData = (key
|
28
|
+
const keyInData = <T>(key: keyof WorldstateLangBundle, dataOverride?: Locale): T =>
|
29
|
+
key in i18n(dataOverride) ? (i18n(dataOverride)[key] as T) : (key as T);
|
28
30
|
|
29
31
|
/**
|
30
32
|
*
|
@@ -32,7 +34,9 @@ const keyInData = (key, dataOverride) => (key in i18n(dataOverride) ? i18n(dataO
|
|
32
34
|
* @param {string} dataOverride locale for use with translation
|
33
35
|
* @returns {Object | undefined}
|
34
36
|
*/
|
35
|
-
export const archonShard = (color, dataOverride = 'en') =>
|
37
|
+
export const archonShard = (color: string, dataOverride: Locale = 'en') => {
|
38
|
+
return keyInData<Record<string, ArchonShard>>('archonShards', dataOverride)[color] as ArchonShard;
|
39
|
+
};
|
36
40
|
|
37
41
|
/**
|
38
42
|
*
|
@@ -40,7 +44,8 @@ export const archonShard = (color, dataOverride = 'en') => keyInData('archonShar
|
|
40
44
|
* @param {string} dataOverride locale for use with translation
|
41
45
|
* @returns {string}
|
42
46
|
*/
|
43
|
-
export const archonShardColor = (color, dataOverride = 'en') =>
|
47
|
+
export const archonShardColor = (color: string, dataOverride: Locale = 'en'): string =>
|
48
|
+
archonShard(color, dataOverride)?.value ?? color;
|
44
49
|
|
45
50
|
/**
|
46
51
|
*
|
@@ -49,7 +54,7 @@ export const archonShardColor = (color, dataOverride = 'en') => archonShard(colo
|
|
49
54
|
* @param {string} dataOverride locale for use with translation
|
50
55
|
* @returns {string}
|
51
56
|
*/
|
52
|
-
export const archonShardUpgradeType = (color, upgradeType, dataOverride = 'en') =>
|
57
|
+
export const archonShardUpgradeType = (color: string, upgradeType: string, dataOverride: Locale = 'en'): string =>
|
53
58
|
archonShard(color, dataOverride)?.upgradeTypes[upgradeType]?.value ?? lastResourceName(upgradeType);
|
54
59
|
|
55
60
|
/**
|
@@ -58,10 +63,11 @@ export const archonShardUpgradeType = (color, upgradeType, dataOverride = 'en')
|
|
58
63
|
* @param {string} dataOverride locale for use with translation
|
59
64
|
* @returns {string} faction name
|
60
65
|
*/
|
61
|
-
export const faction = (key, dataOverride = 'en') =>
|
66
|
+
export const faction = (key: string, dataOverride: Locale = 'en'): string =>
|
67
|
+
keyInData<Record<string, { value: string }>>('factions', dataOverride)[key]?.value ?? key;
|
62
68
|
|
63
|
-
const solNode = (key, thing, dataOverride = 'en') =>
|
64
|
-
keyInData('solNodes', dataOverride)?.[key]?.[thing] ?? lastResourceName(key) ?? key;
|
69
|
+
const solNode = (key: string, thing: keyof SolNode, dataOverride: Locale = 'en') =>
|
70
|
+
keyInData<Record<string, SolNode>>('solNodes', dataOverride)?.[key]?.[thing] ?? lastResourceName(key) ?? key;
|
65
71
|
|
66
72
|
/**
|
67
73
|
*
|
@@ -69,7 +75,7 @@ const solNode = (key, thing, dataOverride = 'en') =>
|
|
69
75
|
* @param {string} dataOverride locale for use with translation
|
70
76
|
* @returns {string} node name
|
71
77
|
*/
|
72
|
-
export const node = (key, dataOverride = 'en') => solNode(key, 'value', dataOverride);
|
78
|
+
export const node = (key: string, dataOverride: Locale = 'en'): string => solNode(key, 'value', dataOverride);
|
73
79
|
|
74
80
|
/**
|
75
81
|
*
|
@@ -77,14 +83,14 @@ export const node = (key, dataOverride = 'en') => solNode(key, 'value', dataOver
|
|
77
83
|
* @param {string} dataOverride locale for use with translation
|
78
84
|
* @returns {string} mission type of the node
|
79
85
|
*/
|
80
|
-
export const nodeMissionType = (key, dataOverride = 'en') => solNode(key, 'type', dataOverride);
|
86
|
+
export const nodeMissionType = (key: string, dataOverride: Locale = 'en'): string => solNode(key, 'type', dataOverride);
|
81
87
|
/**
|
82
88
|
*
|
83
89
|
* @param {string} key - The data key
|
84
90
|
* @param {string} dataOverride locale for use with translation
|
85
91
|
* @returns {string} faction that controls the node
|
86
92
|
*/
|
87
|
-
export const nodeEnemy = (key, dataOverride = 'en') => {
|
93
|
+
export const nodeEnemy = (key: string, dataOverride: Locale = 'en'): string => {
|
88
94
|
return key in i18n(dataOverride).solNodes ? i18n(dataOverride).solNodes[key].enemy : (lastResourceName(key) ?? key);
|
89
95
|
};
|
90
96
|
|
@@ -94,12 +100,12 @@ export const nodeEnemy = (key, dataOverride = 'en') => {
|
|
94
100
|
* @param {string} dataOverride locale for use with translation
|
95
101
|
* @returns {string} localization for language string
|
96
102
|
*/
|
97
|
-
export const languageString = (key, dataOverride = 'en') => {
|
98
|
-
const lowerKey = String(key).toLowerCase();
|
103
|
+
export const languageString = (key: string, dataOverride: Locale = 'en'): string => {
|
104
|
+
const lowerKey: string = String(key).toLowerCase();
|
99
105
|
return (
|
100
|
-
|
101
|
-
|
102
|
-
(key ? toTitleCase(splitResourceName(lastResourceName(String(key)))) : key)
|
106
|
+
i18n(dataOverride).languages[lowerKey]?.value ??
|
107
|
+
i18n(dataOverride).languages[key]?.value ??
|
108
|
+
(key ? toTitleCase(splitResourceName(lastResourceName(String(key)) ?? '')) : key)
|
103
109
|
);
|
104
110
|
};
|
105
111
|
|
@@ -109,12 +115,12 @@ export const languageString = (key, dataOverride = 'en') => {
|
|
109
115
|
* @param {string} dataOverride locale for use with translation
|
110
116
|
* @returns {string} localization for language description
|
111
117
|
*/
|
112
|
-
export const languageDesc = (key, dataOverride = 'en') => {
|
118
|
+
export const languageDesc = (key: string, dataOverride: Locale = 'en'): string => {
|
113
119
|
const lowerKey = String(key).toLowerCase();
|
114
120
|
return (
|
115
121
|
i18n(dataOverride).languages[lowerKey]?.desc ??
|
116
122
|
i18n(dataOverride).languages[key]?.desc ??
|
117
|
-
(key ? `[PH] ${toTitleCase(splitResourceName(lastResourceName(String(key))))} Desc` : key)
|
123
|
+
(key ? `[PH] ${toTitleCase(splitResourceName(lastResourceName(String(key)) ?? ''))} Desc` : key)
|
118
124
|
);
|
119
125
|
};
|
120
126
|
|
@@ -124,12 +130,13 @@ export const languageDesc = (key, dataOverride = 'en') => {
|
|
124
130
|
* @param {string} dataOverride locale for use with translation
|
125
131
|
* @returns {string} translation for mission type
|
126
132
|
*/
|
127
|
-
export const missionType = (key, dataOverride = 'en') => {
|
133
|
+
export const missionType = (key: string, dataOverride: Locale = 'en'): string => {
|
128
134
|
const keyBased = key && typeof key === 'string' && toTitleCase((key ?? '').replace(/^MT_/, ''));
|
129
|
-
return key in i18n(dataOverride).missionTypes ? i18n(dataOverride).missionTypes[key].value : keyBased;
|
135
|
+
return key in i18n(dataOverride).missionTypes ? i18n(dataOverride).missionTypes[key].value : (keyBased as string);
|
130
136
|
};
|
131
137
|
|
132
|
-
const conclave = (key, thing, dataOverride = 'en') =>
|
138
|
+
const conclave = (key: string, thing: keyof Conclave, dataOverride: Locale = 'en') =>
|
139
|
+
keyInData<Conclave>('conclave', dataOverride)?.[thing]?.[key];
|
133
140
|
|
134
141
|
/**
|
135
142
|
*
|
@@ -137,17 +144,20 @@ const conclave = (key, thing, dataOverride = 'en') => keyInData('conclave', data
|
|
137
144
|
* @param {string} dataOverride locale for use with translation
|
138
145
|
* @returns {string} conclave mode
|
139
146
|
*/
|
140
|
-
export const conclaveMode = (key, dataOverride = 'en') =>
|
147
|
+
export const conclaveMode = (key: string, dataOverride: Locale = 'en'): string =>
|
148
|
+
(conclave(key, 'modes', dataOverride) as { value: string })?.value ?? key;
|
141
149
|
|
142
150
|
/**
|
143
151
|
*
|
144
152
|
* @param {string} key - The data key
|
145
153
|
* @param {string} dataOverride locale for use with translation
|
146
|
-
* @returns {string} conclave category
|
154
|
+
* @returns {{ value: string; description: string }} conclave category
|
147
155
|
*/
|
148
|
-
export const conclaveCategory = (key, dataOverride = 'en') =>
|
156
|
+
export const conclaveCategory = (key: string, dataOverride: Locale = 'en'): string =>
|
157
|
+
(conclave(key, 'categories', dataOverride) as { value: string; description: string })?.value ?? key;
|
149
158
|
|
150
|
-
const fissure = (key, dataOverride = 'en') =>
|
159
|
+
const fissure = (key: string, dataOverride: Locale = 'en') =>
|
160
|
+
keyInData<Record<string, { value: string; num: number }>>('fissureModifiers', dataOverride)?.[key] ?? key;
|
151
161
|
|
152
162
|
/**
|
153
163
|
*
|
@@ -155,7 +165,8 @@ const fissure = (key, dataOverride = 'en') => keyInData('fissureModifiers', data
|
|
155
165
|
* @param {string} dataOverride locale for use with translation
|
156
166
|
* @returns {string} fissure modifier data
|
157
167
|
*/
|
158
|
-
export const fissureModifier = (key, dataOverride = 'en') =>
|
168
|
+
export const fissureModifier = (key: string, dataOverride: Locale = 'en'): string =>
|
169
|
+
fissure(key, dataOverride)?.value ?? key;
|
159
170
|
|
160
171
|
/**
|
161
172
|
*
|
@@ -163,7 +174,8 @@ export const fissureModifier = (key, dataOverride = 'en') => fissure(key, dataOv
|
|
163
174
|
* @param {string} dataOverride locale for use with translation
|
164
175
|
* @returns {number | string} fissure tier
|
165
176
|
*/
|
166
|
-
export const fissureTier = (key, dataOverride = 'en')
|
177
|
+
export const fissureTier = (key: string, dataOverride: Locale = 'en'): number | string =>
|
178
|
+
fissure(key, dataOverride).num ?? key;
|
167
179
|
|
168
180
|
/**
|
169
181
|
*
|
@@ -171,7 +183,8 @@ export const fissureTier = (key, dataOverride = 'en') => fissure(key, dataOverri
|
|
171
183
|
* @param {string} dataOverride locale for use with translation
|
172
184
|
* @returns {string} syndicate name
|
173
185
|
*/
|
174
|
-
export const syndicate = (key, dataOverride = 'en') =>
|
186
|
+
export const syndicate = (key: string, dataOverride: Locale = 'en'): string =>
|
187
|
+
i18n(dataOverride).syndicates[key]?.name ?? key;
|
175
188
|
|
176
189
|
/**
|
177
190
|
*
|
@@ -179,9 +192,10 @@ export const syndicate = (key, dataOverride = 'en') => i18n(dataOverride).syndic
|
|
179
192
|
* @param {string} dataOverride locale for use with translation
|
180
193
|
* @returns {string} upgrade type
|
181
194
|
*/
|
182
|
-
export const upgrade = (key, dataOverride = 'en') =>
|
195
|
+
export const upgrade = (key: string, dataOverride: Locale = 'en'): string =>
|
196
|
+
i18n(dataOverride).upgradeTypes[key]?.value ?? key;
|
183
197
|
|
184
|
-
const oppo = (key, dataOverride = 'en') => i18n(dataOverride).operationTypes[key];
|
198
|
+
const oppo = (key: string, dataOverride: Locale = 'en') => i18n(dataOverride).operationTypes[key];
|
185
199
|
|
186
200
|
/**
|
187
201
|
*
|
@@ -189,7 +203,7 @@ const oppo = (key, dataOverride = 'en') => i18n(dataOverride).operationTypes[key
|
|
189
203
|
* @param {string} dataOverride locale for use with translation
|
190
204
|
* @returns {string} mathematical operation value
|
191
205
|
*/
|
192
|
-
export const operation = (key, dataOverride = 'en') => oppo(key, dataOverride)?.value ?? key;
|
206
|
+
export const operation = (key: string, dataOverride: Locale = 'en'): string => oppo(key, dataOverride)?.value ?? key;
|
193
207
|
|
194
208
|
/**
|
195
209
|
*
|
@@ -197,23 +211,25 @@ export const operation = (key, dataOverride = 'en') => oppo(key, dataOverride)?.
|
|
197
211
|
* @param {string} dataOverride locale for use with translation
|
198
212
|
* @returns {string} symbol of mathematical operation
|
199
213
|
*/
|
200
|
-
export const operationSymbol = (key, dataOverride = 'en') =>
|
214
|
+
export const operationSymbol = (key: string, dataOverride: Locale = 'en'): string =>
|
215
|
+
oppo(key, dataOverride)?.symbol ?? key;
|
201
216
|
|
202
|
-
const sortie = (key, dataOverride = 'en') => i18n(dataOverride).sortie.bosses[key];
|
217
|
+
const sortie = (key: string, dataOverride: Locale = 'en') => i18n(dataOverride).sortie.bosses[key];
|
203
218
|
|
204
219
|
/**
|
205
220
|
* @param {string} key - The data key
|
206
221
|
* @param {string} dataOverride locale for use with translation
|
207
222
|
* @returns {string} sortie boss name
|
208
223
|
*/
|
209
|
-
export const sortieBoss = (key, dataOverride = 'en') => sortie(key, dataOverride)?.name ?? key;
|
224
|
+
export const sortieBoss = (key: string, dataOverride: Locale = 'en'): string => sortie(key, dataOverride)?.name ?? key;
|
210
225
|
|
211
226
|
/**
|
212
227
|
* @param {string} key - The data key
|
213
228
|
* @param {string} dataOverride locale for use with translation
|
214
229
|
* @returns {string} faction for a sortie based on the boss
|
215
230
|
*/
|
216
|
-
export const sortieFaction = (key, dataOverride = 'en') =>
|
231
|
+
export const sortieFaction = (key: string, dataOverride: Locale = 'en'): string =>
|
232
|
+
sortie(key, dataOverride)?.faction ?? key;
|
217
233
|
|
218
234
|
/**
|
219
235
|
*
|
@@ -221,14 +237,16 @@ export const sortieFaction = (key, dataOverride = 'en') => sortie(key, dataOverr
|
|
221
237
|
* @param {string} dataOverride locale for use with translation
|
222
238
|
* @returns {string} sortie modifier data
|
223
239
|
*/
|
224
|
-
export const sortieModifier = (key, dataOverride = 'en') =>
|
240
|
+
export const sortieModifier = (key: string, dataOverride: Locale = 'en'): string =>
|
241
|
+
i18n(dataOverride).sortie.modifierTypes?.[key] ?? key;
|
225
242
|
|
226
243
|
/**
|
227
244
|
* @param {string} key - The data key
|
228
245
|
* @param {string} dataOverride locale for use with translation
|
229
246
|
* @returns {string} sortie modifier description
|
230
247
|
*/
|
231
|
-
export const sortieModDesc = (key, dataOverride = 'en') =>
|
248
|
+
export const sortieModDesc = (key: string, dataOverride: Locale = 'en'): string =>
|
249
|
+
i18n(dataOverride).sortie.modifierDescriptions?.[key] ?? key;
|
232
250
|
|
233
251
|
/**
|
234
252
|
* Retrieve the localized region for a given key
|
@@ -236,7 +254,8 @@ export const sortieModDesc = (key, dataOverride = 'en') => i18n(dataOverride).so
|
|
236
254
|
* @param {string} dataOverride - The locale to use for translations
|
237
255
|
* @returns {string} localized region name
|
238
256
|
*/
|
239
|
-
export const region = (key, dataOverride = 'en')
|
257
|
+
export const region = (key: number, dataOverride: Locale = 'en'): string | number =>
|
258
|
+
(key && i18n(dataOverride).persistentEnemy?.regions[key]) ?? key;
|
240
259
|
|
241
260
|
/**
|
242
261
|
* Retrieve conclave challenge name for the given key and locale
|
@@ -248,10 +267,17 @@ export const region = (key, dataOverride = 'en') => (key && i18n(dataOverride).p
|
|
248
267
|
* standing: number,
|
249
268
|
* }} - The conclave challenge name for the given key
|
250
269
|
*/
|
251
|
-
export const conclaveChallenge = (
|
252
|
-
|
253
|
-
|
254
|
-
|
270
|
+
export const conclaveChallenge = (
|
271
|
+
key: string,
|
272
|
+
dataOverride: Locale = 'en'
|
273
|
+
): {
|
274
|
+
title: string;
|
275
|
+
description: string;
|
276
|
+
standing: number;
|
277
|
+
} => {
|
278
|
+
const splitKey = lastResourceName(String(key))!;
|
279
|
+
|
280
|
+
if (splitKey !== undefined && i18n(dataOverride).conclave?.challenges?.[splitKey]) {
|
255
281
|
return i18n(dataOverride).conclave.challenges[splitKey];
|
256
282
|
}
|
257
283
|
return {
|
@@ -266,9 +292,10 @@ export const conclaveChallenge = (key, dataOverride = 'en') => {
|
|
266
292
|
* @param {string} dataOverride - The locale to use for translations
|
267
293
|
* @returns {string} - The steel path data for the given key
|
268
294
|
*/
|
269
|
-
export const steelPath = (dataOverride = 'en') =>
|
295
|
+
export const steelPath = (dataOverride: Locale = 'en'): SteelPath =>
|
296
|
+
(i18n(dataOverride) || /* istanbul ignore next */ data).steelPath;
|
270
297
|
|
271
|
-
const valMapping = (key, map) => {
|
298
|
+
const valMapping = (key: string, map: Record<string, string>) => {
|
272
299
|
let val = 'None';
|
273
300
|
Object.keys(map).forEach((k) => {
|
274
301
|
if (key.includes(k)) {
|
@@ -290,7 +317,7 @@ const focusMap = {
|
|
290
317
|
* @param {string} focus The focus school to translate
|
291
318
|
* @returns {string} The translated focus school
|
292
319
|
*/
|
293
|
-
export const translateFocus = (focus = '') => valMapping(focus, focusMap);
|
320
|
+
export const translateFocus = (focus: string = ''): string => valMapping(focus, focusMap);
|
294
321
|
|
295
322
|
const polarityMap = {
|
296
323
|
AP_ATTACK: 'Madurai',
|
@@ -307,7 +334,7 @@ const polarityMap = {
|
|
307
334
|
* @param {string?} pol The polarity to translate
|
308
335
|
* @returns {string} The translated polarity
|
309
336
|
*/
|
310
|
-
export const translatePolarity = (pol = '') => valMapping(pol, polarityMap);
|
337
|
+
export const translatePolarity = (pol: string = ''): string => valMapping(pol, polarityMap);
|
311
338
|
|
312
339
|
const eventTypeMap = {
|
313
340
|
CET_CHALLENGE: 'To Do',
|
@@ -321,14 +348,14 @@ const eventTypeMap = {
|
|
321
348
|
* @param {string} key Unique event type
|
322
349
|
* @returns {string}
|
323
350
|
*/
|
324
|
-
export const translateCalendarEvent = (key) => valMapping(key, eventTypeMap);
|
351
|
+
export const translateCalendarEvent = (key: string): string => valMapping(key, eventTypeMap);
|
325
352
|
|
326
353
|
/**
|
327
354
|
* Translate the given season name to a non-unique string
|
328
355
|
* @param {string} season Unique season name
|
329
356
|
* @returns {string}
|
330
357
|
*/
|
331
|
-
export const translateSeason = (season) => toTitleCase(season.replace('CST_', ''));
|
358
|
+
export const translateSeason = (season: string): string => toTitleCase(season.replace('CST_', ''));
|
332
359
|
|
333
360
|
/**
|
334
361
|
* An object containing functions to convert in-game names to their localizations
|
package/tsconfig.json
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"exclude": [
|
3
|
+
"node_modules"
|
4
|
+
],
|
5
|
+
"compilerOptions": {
|
6
|
+
"module": "esnext",
|
7
|
+
"target": "es2024", // set to the *lowest* target you support
|
8
|
+
"strict": true,
|
9
|
+
"moduleResolution": "bundler",
|
10
|
+
"esModuleInterop": true,
|
11
|
+
"isolatedModules": true,
|
12
|
+
}
|
13
|
+
}
|
package/tsdown.config.ts
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
import { defineConfig } from 'tsdown';
|
2
|
+
|
3
|
+
export default defineConfig({
|
4
|
+
entry: [
|
5
|
+
'exports.ts',
|
6
|
+
'safeImport.ts',
|
7
|
+
'types.ts',
|
8
|
+
'./tools/integrity.ts',
|
9
|
+
'./tools/timeDate.ts',
|
10
|
+
'./tools/translation.ts',
|
11
|
+
'./tools/utilities.ts',
|
12
|
+
],
|
13
|
+
copy: ['./data'],
|
14
|
+
dts: true
|
15
|
+
});
|
package/types.ts
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
export interface Arcane {
|
2
|
+
regex: string;
|
3
|
+
name: string;
|
4
|
+
effect: string;
|
5
|
+
rarity: string;
|
6
|
+
location: string;
|
7
|
+
thumbnail: string;
|
8
|
+
}
|
9
|
+
|
10
|
+
export interface ArchonShard {
|
11
|
+
value: string;
|
12
|
+
upgradeTypes: Record<string, { value: string }>;
|
13
|
+
}
|
14
|
+
|
15
|
+
export interface Conclave {
|
16
|
+
modes: Record<string, { value: string }>;
|
17
|
+
categories: Record<string, { value: string; description: string }>;
|
18
|
+
challenges: Record<string, { title: string; description: string; standing: number }>;
|
19
|
+
affectors: Record<string, { title: string; description: string; standing: number }>;
|
20
|
+
}
|
21
|
+
|
22
|
+
export interface Events {
|
23
|
+
tags: Record<string, { value: string }>;
|
24
|
+
scoreVariables: Record<string, { value: { value: string } }>;
|
25
|
+
scoreMaxTags: Record<string, { value: { value: string } }>;
|
26
|
+
}
|
27
|
+
|
28
|
+
export interface SteelPath {
|
29
|
+
rotation: SteelPathOffering[];
|
30
|
+
evergreen: SteelPathOffering[];
|
31
|
+
}
|
32
|
+
interface SteelPathOffering {
|
33
|
+
name: string;
|
34
|
+
cost: string;
|
35
|
+
}
|
36
|
+
|
37
|
+
export interface SynthesisTarget {
|
38
|
+
name: string;
|
39
|
+
locations: SynthesisTargetLocation[];
|
40
|
+
}
|
41
|
+
|
42
|
+
interface SynthesisTargetLocation {
|
43
|
+
last_verified: string;
|
44
|
+
level: string;
|
45
|
+
spawn_rate: string;
|
46
|
+
mission: string;
|
47
|
+
planet: string;
|
48
|
+
type: string;
|
49
|
+
faction: string;
|
50
|
+
}
|
51
|
+
|
52
|
+
export interface SolNode {
|
53
|
+
value: string;
|
54
|
+
enemy: string;
|
55
|
+
type: string;
|
56
|
+
}
|
57
|
+
|
58
|
+
interface SortieEndState {
|
59
|
+
bossName: string;
|
60
|
+
regions: { name: string; missions: string[] }[];
|
61
|
+
}
|
62
|
+
|
63
|
+
export interface SortieData {
|
64
|
+
modifierTypes: Record<string, string>;
|
65
|
+
modifierDescriptions: Record<string, string>;
|
66
|
+
bosses: Record<string, { name: string; faction: string }>;
|
67
|
+
endStates: SortieEndState[];
|
68
|
+
modifiers: string[];
|
69
|
+
}
|
package/.eslintignore
DELETED
package/.eslintrc.yml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
parser: '@babel/eslint-parser'
|
2
|
-
parserOptions:
|
3
|
-
ecmaFeatures:
|
4
|
-
modules: true
|
5
|
-
ecmaVersion: 6
|
6
|
-
sourceType: module
|
7
|
-
extends: '@wfcd/eslint-config/esm'
|
8
|
-
overrides:
|
9
|
-
- files:
|
10
|
-
- tools/*.js
|
11
|
-
rules:
|
12
|
-
no-console: 'off'
|
13
|
-
import/no-extraneous-dependencies:
|
14
|
-
- error
|
15
|
-
- devDependencies:
|
16
|
-
- '**/*.test.{js,cjs,mjs}'
|
17
|
-
- '**/*.spec.{js,cjs,mjs}'
|
18
|
-
- 'build/**/*.{js,cjs,mjs}'
|
19
|
-
- 'tools/**/*.{js,cjs,mjs}'
|
package/exports.js
DELETED
@@ -1,144 +0,0 @@
|
|
1
|
-
import safeImport from './safeImport.js';
|
2
|
-
|
3
|
-
const locales = ['de', 'es', 'fr', 'it', 'ko', 'pl', 'pt', 'ru', 'zh', 'cs', 'sr', 'uk'];
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Synthesis target information
|
7
|
-
* @typedef {Object} SynthesisTarget
|
8
|
-
* @property {string} name Name of the target
|
9
|
-
* @property {Object[]} locations Array of verified locations
|
10
|
-
* @property {string} locations.last_verified Date string for the last verified date
|
11
|
-
* @property {string} locations.level Level range for enemies on the node.
|
12
|
-
* @property {string} locations.spawn_rate Plain text Spawn rate for enemy.
|
13
|
-
* @property {string} locations.mission Mission node for the location
|
14
|
-
* @property {string} locations.planet Planet the node is on
|
15
|
-
* @property {string} locations.type Mission type at this location
|
16
|
-
* @property {string} locations.faction Enemy faction that spawns in this location
|
17
|
-
*/
|
18
|
-
|
19
|
-
/**
|
20
|
-
* Arcane Data
|
21
|
-
* @typedef {Object} Arcane
|
22
|
-
* @deprecated
|
23
|
-
* @property {string} regex regex string to allow mapping
|
24
|
-
* @property {string} name name of Arcane
|
25
|
-
* @property {string} effect what the arcane does
|
26
|
-
* @property {string} rarity How rare the arcane is
|
27
|
-
* @property {string} location Where it drops
|
28
|
-
* @property {string} thumbnail Wiki thumbnail url
|
29
|
-
* @property {string} info Wiki Page URL
|
30
|
-
*/
|
31
|
-
|
32
|
-
/**
|
33
|
-
* Conclave Data
|
34
|
-
* @typedef {Object} Conclave
|
35
|
-
*/
|
36
|
-
|
37
|
-
/**
|
38
|
-
* Steel Path Offering
|
39
|
-
* @typedef {Object} SteelPathOffering
|
40
|
-
* @property {string} name The item being offered
|
41
|
-
* @property {string} cost The cost of the item
|
42
|
-
*/
|
43
|
-
/**
|
44
|
-
* Steel Path
|
45
|
-
* @typedef {Object} SteelPath
|
46
|
-
* @property {Array<SteelPathOffering>} rotation A list of offerings for the Steel Path
|
47
|
-
* @property {Array<SteelPathOffering>} evergreen Constantly available list of items
|
48
|
-
*/
|
49
|
-
|
50
|
-
/**
|
51
|
-
* Bundles all the data for a particular language
|
52
|
-
* @typedef {Object} WorldstateLangBundle
|
53
|
-
* @property {Arcane[]} arcanes Deprecated: Array of arcane data
|
54
|
-
* @property {Conclave} conclave Data for translating PvP categories and types
|
55
|
-
* @property {Object} events Deprecated: Data for converting event tags to useable event data.
|
56
|
-
* Deprecated in favor of keeping values in languages.json
|
57
|
-
* @property {Object} factions Faction universal name to plain-usage name
|
58
|
-
* @property {Object} fissureModifiers Map of fissures to "Warframeified" tier names and numbers
|
59
|
-
* @property {Object} languages Map of "internal" Warframe strings to useable language strings
|
60
|
-
* @property {Object} missionTypes Map of Mission Type identifiers to their corresponding values
|
61
|
-
* @property {Object} operationTypes Global modifiers for applying operations to things like
|
62
|
-
* credits, affinity, etc.
|
63
|
-
* @property {Object} persistentEnemy Region mapping for indicies to planets
|
64
|
-
* @property {Object} solNodes Nodes in the Sol system, with enemy type and node information
|
65
|
-
* @property {Object} sortie Sortie-specific mapping for modifier type, description, and boss
|
66
|
-
* @property {Array<Object>} tutorials Official tutorials.
|
67
|
-
* Not many have been released in a long time.
|
68
|
-
* @property {Object} upgradeTypes Global upgrade types that are modified by #operationTypes
|
69
|
-
* @property {Array<SynthesisTarget>} synthTargets Synthesis target data for
|
70
|
-
* optimal locations to find targets.
|
71
|
-
* @property {Object<string, Record<'name', string>>} syndicates Syndicate data
|
72
|
-
* @property {SteelPath} steelPath Steel Path mission type translations
|
73
|
-
*/
|
74
|
-
|
75
|
-
const makeBundle = async () => {
|
76
|
-
/**
|
77
|
-
* English United States translations bundle,
|
78
|
-
* default translations
|
79
|
-
* @type {WorldstateLangBundle}
|
80
|
-
*/
|
81
|
-
const enUS = {
|
82
|
-
arcanes: await safeImport('./data/arcanes.json'),
|
83
|
-
archonShards: await safeImport('./data/archonShards.json'),
|
84
|
-
conclave: await safeImport('./data/conclaveData.json'),
|
85
|
-
events: await safeImport('./data/eventsData.json'),
|
86
|
-
factions: await safeImport('./data/factionsData.json'),
|
87
|
-
fissureModifiers: await safeImport('./data/fissureModifiers.json'),
|
88
|
-
languages: await safeImport('./data/languages.json'),
|
89
|
-
missionTypes: await safeImport('./data/missionTypes.json'),
|
90
|
-
operationTypes: await safeImport('./data/operationTypes.json'),
|
91
|
-
persistentEnemy: await safeImport('./data/persistentEnemyData.json'),
|
92
|
-
solNodes: await safeImport('./data/solNodes.json'),
|
93
|
-
sortie: await safeImport('./data/sortieData.json'),
|
94
|
-
syndicates: await safeImport('./data/syndicatesData.json'),
|
95
|
-
tutorials: await safeImport('./data/tutorials.json'),
|
96
|
-
upgradeTypes: await safeImport('./data/upgradeTypes.json'),
|
97
|
-
synthTargets: await safeImport('./data/synthTargets.json'),
|
98
|
-
steelPath: await safeImport('./data/steelPath.json'),
|
99
|
-
};
|
100
|
-
/* eslint-enable global-require */
|
101
|
-
|
102
|
-
const bundle = {
|
103
|
-
/**
|
104
|
-
* English United States translations
|
105
|
-
* @type {WorldstateLangBundle}
|
106
|
-
*/
|
107
|
-
en_US: enUS,
|
108
|
-
en: enUS,
|
109
|
-
...enUS,
|
110
|
-
locales,
|
111
|
-
};
|
112
|
-
|
113
|
-
// eslint-disable-next-line no-restricted-syntax
|
114
|
-
for await (const locale of locales) {
|
115
|
-
/**
|
116
|
-
* Translations bundle for $locale
|
117
|
-
* @type {WorldstateLangBundle}
|
118
|
-
*/
|
119
|
-
bundle[locale] = {
|
120
|
-
arcanes: await safeImport(`./data/${locale}/arcanes.json`, enUS.arcanes),
|
121
|
-
archonShards: await safeImport('./data/archonShards.json', enUS.archonShards),
|
122
|
-
conclave: await safeImport(`./data/${locale}/conclaveData.json`, enUS.conclave),
|
123
|
-
events: await safeImport(`./data/${locale}/eventsData.json`, enUS.events),
|
124
|
-
factions: await safeImport(`./data/${locale}/factionsData.json`, enUS.factions),
|
125
|
-
fissureModifiers: await safeImport(`./data/${locale}/fissureModifiers.json`, enUS.fissureModifiers),
|
126
|
-
languages: await safeImport(`./data/${locale}/languages.json`, enUS.languages),
|
127
|
-
missionTypes: await safeImport(`./data/${locale}/missionTypes.json`, enUS.missionTypes),
|
128
|
-
operationTypes: await safeImport(`./data/${locale}/operationTypes.json`, enUS.operationTypes),
|
129
|
-
persistentEnemy: await safeImport(`./data/${locale}/persistentEnemyData.json`, enUS.persistentEnemy),
|
130
|
-
solNodes: await safeImport(`./data/${locale}/solNodes.json`, enUS.solNodes),
|
131
|
-
sortie: await safeImport(`./data/${locale}/sortieData.json`, enUS.sortie),
|
132
|
-
syndicates: await safeImport(`./data/${locale}/syndicatesData.json`, enUS.syndicates),
|
133
|
-
tutorials: await safeImport(`./data/${locale}/tutorials.json`, enUS.tutorials),
|
134
|
-
upgradeTypes: await safeImport(`./data/${locale}/upgradeTypes.json`, enUS.upgradeTypes),
|
135
|
-
synthTargets: await safeImport(`./data/${locale}/synthTargets.json`, enUS.synthTargets),
|
136
|
-
steelPath: await safeImport(`./data/${locale}/steelPath.json`, enUS.steelPath),
|
137
|
-
};
|
138
|
-
}
|
139
|
-
|
140
|
-
locales.push('en');
|
141
|
-
return bundle;
|
142
|
-
};
|
143
|
-
|
144
|
-
export default await makeBundle();
|
package/tools/integrity.js
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @description Insist that the provided data has the required properties.
|
3
|
-
* @param {Object} thing to encourage to have data
|
4
|
-
* @param {string[]} args arguments to ensure
|
5
|
-
*/
|
6
|
-
/* eslint-disable-line import/prefer-default-export */ export const insist = (thing, ...args) => {
|
7
|
-
if (!thing || !Object.keys(thing).length) {
|
8
|
-
throw new TypeError(`The provided data does not have the required properties.`);
|
9
|
-
}
|
10
|
-
args.forEach((arg) => {
|
11
|
-
if (!thing[arg]) {
|
12
|
-
throw new TypeError(`The provided data does not have the required properties.`);
|
13
|
-
}
|
14
|
-
});
|
15
|
-
};
|
package/tools/utilities.js
DELETED