diff --git a/.eslintrc.json b/.eslintrc.json
index c3a0d7b2f..737ca5bae 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -15,7 +15,7 @@
"prettier"
],
"parser": "@typescript-eslint/parser",
- "ignorePatterns": ["/plugins/*", "src/assets/typevalidation/output", "wasm_module/"],
+ "ignorePatterns": ["/plugins/*", "packages/data/typevalidation/output", "wasm_module/"],
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
diff --git a/.gitignore b/.gitignore
index 01a29f9f8..cfce9196f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -149,4 +149,4 @@ install.bat
.mf/
wasm_module/target/
-/src/assets/typevalidation/output
+/packages/data/typevalidation/output
diff --git a/package.json b/package.json
index 00cf3a49f..4fa2239e7 100644
--- a/package.json
+++ b/package.json
@@ -33,8 +33,8 @@
"checkStaged": "concurrently -g -c auto pnpm:testData pnpm:validateDataTypes pnpm:lint-staged",
"checkAll": "concurrently -g -c auto pnpm:testData pnpm:validateDataTypes pnpm:eslint pnpm:prettierCheck pnpm:typeCheck",
"updateMappings": "node updateMappings.js",
- "testData": "tsx ./src/assets/testData.js",
- "validateDataTypes": "typia generate --input ./src/assets/typevalidation/ --output ./src/assets/typevalidation/output && tsx ./src/assets/typevalidation/output",
+ "testData": "tsx ./packages/data/testData.js",
+ "validateDataTypes": "typia generate --input ./packages/data/typevalidation/ --output ./packages/data/typevalidation/output && tsx ./packages/data/typevalidation/output",
"extractLocale": "babel --config-file ./babel-extract.config.js 'src/**/*.{js,jsx,ts,tsx}' > /dev/null",
"extractLocaleEn": "babel --config-file ./babel-extract-en.config.js 'src/**/*.{js,jsx,ts,tsx}' > /dev/null && node cleanupLocale.js",
"extractLocaleCMD": "babel --config-file ./babel-extract.config.js \"src/**/*.{js,jsx,ts,tsx}\" > NUL",
@@ -60,6 +60,7 @@
"@reduxjs/toolkit": "^2.5.0",
"axios": "^1.7.9",
"comlink": "^4.4.2",
+ "data": "workspace:./packages/data",
"i18next": "^24.2.0",
"js-yaml": "^4.1.0",
"json-url": "^3.1.0",
diff --git a/src/assets/modifierdata/buffs.yaml b/packages/data/modifierdata/buffs.yaml
similarity index 100%
rename from src/assets/modifierdata/buffs.yaml
rename to packages/data/modifierdata/buffs.yaml
diff --git a/src/assets/modifierdata/elementalist.yaml b/packages/data/modifierdata/elementalist.yaml
similarity index 100%
rename from src/assets/modifierdata/elementalist.yaml
rename to packages/data/modifierdata/elementalist.yaml
diff --git a/src/assets/modifierdata/engineer.yaml b/packages/data/modifierdata/engineer.yaml
similarity index 100%
rename from src/assets/modifierdata/engineer.yaml
rename to packages/data/modifierdata/engineer.yaml
diff --git a/src/assets/modifierdata/food.yaml b/packages/data/modifierdata/food.yaml
similarity index 100%
rename from src/assets/modifierdata/food.yaml
rename to packages/data/modifierdata/food.yaml
diff --git a/src/assets/modifierdata/guardian.yaml b/packages/data/modifierdata/guardian.yaml
similarity index 100%
rename from src/assets/modifierdata/guardian.yaml
rename to packages/data/modifierdata/guardian.yaml
diff --git a/src/assets/modifierdata/index.ts b/packages/data/modifierdata/index.ts
similarity index 98%
rename from src/assets/modifierdata/index.ts
rename to packages/data/modifierdata/index.ts
index d858c2418..ff6cbd760 100644
--- a/src/assets/modifierdata/index.ts
+++ b/packages/data/modifierdata/index.ts
@@ -15,6 +15,8 @@ import Thief from './thief.yaml';
import utility from './utility.yaml';
import Warrior from './warrior.yaml';
+export * from './metadata';
+
// combines items in all sections into one object
const byId = (sections: Section[]) => {
const sectionsFlat = sections.flatMap(({ section, items }) =>
diff --git a/src/assets/modifierdata/mesmer.yaml b/packages/data/modifierdata/mesmer.yaml
similarity index 100%
rename from src/assets/modifierdata/mesmer.yaml
rename to packages/data/modifierdata/mesmer.yaml
diff --git a/src/assets/modifierdata/metadata.ts b/packages/data/modifierdata/metadata.ts
similarity index 100%
rename from src/assets/modifierdata/metadata.ts
rename to packages/data/modifierdata/metadata.ts
diff --git a/src/assets/modifierdata/necromancer.yaml b/packages/data/modifierdata/necromancer.yaml
similarity index 100%
rename from src/assets/modifierdata/necromancer.yaml
rename to packages/data/modifierdata/necromancer.yaml
diff --git a/src/assets/modifierdata/ranger.yaml b/packages/data/modifierdata/ranger.yaml
similarity index 100%
rename from src/assets/modifierdata/ranger.yaml
rename to packages/data/modifierdata/ranger.yaml
diff --git a/src/assets/modifierdata/relics.yaml b/packages/data/modifierdata/relics.yaml
similarity index 100%
rename from src/assets/modifierdata/relics.yaml
rename to packages/data/modifierdata/relics.yaml
diff --git a/src/assets/modifierdata/revenant.yaml b/packages/data/modifierdata/revenant.yaml
similarity index 100%
rename from src/assets/modifierdata/revenant.yaml
rename to packages/data/modifierdata/revenant.yaml
diff --git a/src/assets/modifierdata/runes.yaml b/packages/data/modifierdata/runes.yaml
similarity index 100%
rename from src/assets/modifierdata/runes.yaml
rename to packages/data/modifierdata/runes.yaml
diff --git a/src/assets/modifierdata/sigils.yaml b/packages/data/modifierdata/sigils.yaml
similarity index 100%
rename from src/assets/modifierdata/sigils.yaml
rename to packages/data/modifierdata/sigils.yaml
diff --git a/src/assets/modifierdata/thief.yaml b/packages/data/modifierdata/thief.yaml
similarity index 100%
rename from src/assets/modifierdata/thief.yaml
rename to packages/data/modifierdata/thief.yaml
diff --git a/src/assets/modifierdata/utility.yaml b/packages/data/modifierdata/utility.yaml
similarity index 100%
rename from src/assets/modifierdata/utility.yaml
rename to packages/data/modifierdata/utility.yaml
diff --git a/src/assets/modifierdata/warrior.yaml b/packages/data/modifierdata/warrior.yaml
similarity index 100%
rename from src/assets/modifierdata/warrior.yaml
rename to packages/data/modifierdata/warrior.yaml
diff --git a/src/assets/modifierdata/yaml.d.ts b/packages/data/modifierdata/yaml.d.ts
similarity index 87%
rename from src/assets/modifierdata/yaml.d.ts
rename to packages/data/modifierdata/yaml.d.ts
index 14f5f216c..92446f31b 100644
--- a/src/assets/modifierdata/yaml.d.ts
+++ b/packages/data/modifierdata/yaml.d.ts
@@ -2,3 +2,5 @@ declare module './*.yaml' {
const data: import('./metadata').ModifierData;
export default data;
}
+
+// export {};
diff --git a/packages/data/package.json b/packages/data/package.json
new file mode 100644
index 000000000..101e746f2
--- /dev/null
+++ b/packages/data/package.json
@@ -0,0 +1,15 @@
+{
+ "type": "module",
+ "exports": {
+ ".": "./index.ts",
+ "./modifierdata": "./modifierdata/index.ts",
+ "./presetdata": "./presetdata/index.ts",
+ "./presetdata/templateTransform": "./presetdata/templateTransform.ts"
+ },
+ "dependencies": {
+ "js-yaml": "^4.1.0"
+ },
+ "devDependencies": {
+ "typia": "^7.5.1"
+ }
+}
diff --git a/src/assets/presetdata/credit.yaml b/packages/data/presetdata/credit.yaml
similarity index 100%
rename from src/assets/presetdata/credit.yaml
rename to packages/data/presetdata/credit.yaml
diff --git a/packages/data/presetdata/index.ts b/packages/data/presetdata/index.ts
new file mode 100644
index 000000000..dfdea6ef7
--- /dev/null
+++ b/packages/data/presetdata/index.ts
@@ -0,0 +1,43 @@
+import creditData from './credit.yaml';
+import presetAffixes from './preset-affixes.yaml';
+import presetBuffs from './preset-buffs.yaml';
+import presetDistribution from './preset-distribution.yaml';
+import presetExtras from './preset-extras.yaml';
+import presetInfusions from './preset-infusions.yaml';
+import presetTraits from './preset-traits.yaml';
+import templates from './templates.yaml';
+
+export * from './metadata';
+
+// export interface PresetData {
+// templates: Templates;
+// presetBuffs: PresetBuffs;
+// presetAffixes: PresetAffixes;
+// presetDistribution: PresetDistribution;
+// presetExtras: PresetExtras;
+// presetInfusions: PresetInfusions;
+// presetTraits: PresetTraits;
+// creditData: CreditData;
+// }
+
+export {
+ templates,
+ presetBuffs,
+ presetAffixes,
+ presetDistribution,
+ presetExtras,
+ presetInfusions,
+ presetTraits,
+ creditData,
+};
+
+export default {
+ templates,
+ presetBuffs,
+ presetAffixes,
+ presetDistribution,
+ presetExtras,
+ presetInfusions,
+ presetTraits,
+ creditData,
+};
diff --git a/src/assets/presetdata/metadata.ts b/packages/data/presetdata/metadata.ts
similarity index 81%
rename from src/assets/presetdata/metadata.ts
rename to packages/data/presetdata/metadata.ts
index ca73b3b42..0960196ee 100644
--- a/src/assets/presetdata/metadata.ts
+++ b/packages/data/presetdata/metadata.ts
@@ -1,15 +1,15 @@
-import type { BuffsSlice } from '../../state/slices/buffs';
-import type { Distribution } from '../../state/slices/distribution';
-import type { ExtrasSlice } from '../../state/slices/extras';
-import type { PrioritiesSlice } from '../../state/slices/priorities';
-import type { SkillsSlice } from '../../state/slices/skills';
-import type { TraitsSlice } from '../../state/slices/traits';
+import type { BuffsSlice } from '../../../src/state/slices/buffs';
+import type { Distribution } from '../../../src/state/slices/distribution';
+import type { ExtrasSlice } from '../../../src/state/slices/extras';
+import type { PrioritiesSlice } from '../../../src/state/slices/priorities';
+import type { SkillsSlice } from '../../../src/state/slices/skills';
+import type { TraitsSlice } from '../../../src/state/slices/traits';
import type {
InfusionName,
ProfessionName,
ProfessionOrSpecializationName,
WeaponHandednessType,
-} from '../../utils/gw2-data';
+} from '../../../src/utils/gw2-data';
interface TemplateEntryBase {
name: string;
diff --git a/src/assets/presetdata/preset-affixes.yaml b/packages/data/presetdata/preset-affixes.yaml
similarity index 100%
rename from src/assets/presetdata/preset-affixes.yaml
rename to packages/data/presetdata/preset-affixes.yaml
diff --git a/src/assets/presetdata/preset-buffs.yaml b/packages/data/presetdata/preset-buffs.yaml
similarity index 100%
rename from src/assets/presetdata/preset-buffs.yaml
rename to packages/data/presetdata/preset-buffs.yaml
diff --git a/src/assets/presetdata/preset-distribution.yaml b/packages/data/presetdata/preset-distribution.yaml
similarity index 100%
rename from src/assets/presetdata/preset-distribution.yaml
rename to packages/data/presetdata/preset-distribution.yaml
diff --git a/src/assets/presetdata/preset-extras.yaml b/packages/data/presetdata/preset-extras.yaml
similarity index 100%
rename from src/assets/presetdata/preset-extras.yaml
rename to packages/data/presetdata/preset-extras.yaml
diff --git a/src/assets/presetdata/preset-infusions.yaml b/packages/data/presetdata/preset-infusions.yaml
similarity index 100%
rename from src/assets/presetdata/preset-infusions.yaml
rename to packages/data/presetdata/preset-infusions.yaml
diff --git a/src/assets/presetdata/preset-traits.yaml b/packages/data/presetdata/preset-traits.yaml
similarity index 100%
rename from src/assets/presetdata/preset-traits.yaml
rename to packages/data/presetdata/preset-traits.yaml
diff --git a/src/assets/presetdata/runes notes.txt b/packages/data/presetdata/runes notes.txt
similarity index 100%
rename from src/assets/presetdata/runes notes.txt
rename to packages/data/presetdata/runes notes.txt
diff --git a/src/assets/presetdata/templateTransform.ts b/packages/data/presetdata/templateTransform.ts
similarity index 93%
rename from src/assets/presetdata/templateTransform.ts
rename to packages/data/presetdata/templateTransform.ts
index 77d294c25..674b87379 100644
--- a/src/assets/presetdata/templateTransform.ts
+++ b/packages/data/presetdata/templateTransform.ts
@@ -1,5 +1,5 @@
-import type { PresetData } from '../../utils/data';
-import type { ProfessionName } from '../../utils/gw2-data';
+import type data from 'data/presetdata';
+import type { ProfessionName } from '../../../src/utils/gw2-data';
import type { TemplateEntry } from './metadata';
const defaultBoonTemplates = {
@@ -28,7 +28,7 @@ interface getBuildTemplateDataProps {
selectedTemplate: string;
isFractals: boolean;
profession: ProfessionName | '';
- data: PresetData;
+ data: typeof data;
}
export function getBuildTemplateData({
diff --git a/src/assets/presetdata/templates.yaml b/packages/data/presetdata/templates.yaml
similarity index 100%
rename from src/assets/presetdata/templates.yaml
rename to packages/data/presetdata/templates.yaml
diff --git a/packages/data/presetdata/yaml.d.ts b/packages/data/presetdata/yaml.d.ts
new file mode 100644
index 000000000..44fdaf574
--- /dev/null
+++ b/packages/data/presetdata/yaml.d.ts
@@ -0,0 +1,34 @@
+declare module './templates.yaml' {
+ const data: import('./metadata').Templates;
+ export default data;
+}
+declare module './preset-buffs.yaml' {
+ const data: import('./metadata').PresetBuffs;
+ export default data;
+}
+declare module './preset-affixes.yaml' {
+ const data: import('./metadata').PresetAffixes;
+ export default data;
+}
+declare module './preset-distribution.yaml' {
+ const data: import('./metadata').PresetDistribution;
+ export default data;
+}
+declare module './preset-extras.yaml' {
+ const data: import('./metadata').PresetExtras;
+ export default data;
+}
+declare module './preset-infusions.yaml' {
+ const data: import('./metadata').PresetInfusions;
+ export default data;
+}
+declare module './preset-traits.yaml' {
+ const data: import('./metadata').PresetTraits;
+ export default data;
+}
+declare module './credit.yaml' {
+ const data: import('./metadata').CreditData;
+ export default data;
+}
+
+export {};
diff --git a/src/assets/testData.js b/packages/data/testData.js
similarity index 99%
rename from src/assets/testData.js
rename to packages/data/testData.js
index 2a134b527..204a725a7 100644
--- a/src/assets/testData.js
+++ b/packages/data/testData.js
@@ -14,7 +14,7 @@ import {
relicsDict,
runesDict,
sigilDict,
-} from '../components/url-state/schema/SchemaDicts';
+} from '../../src/components/url-state/schema/SchemaDicts';
// import specializationData from '../utils/mapping/specializations.json' assert { type: 'json' };
import {
@@ -55,7 +55,7 @@ const schemaKeys = {
'buffs.yaml': buffsDict,
};
-const modifierDirectory = './src/assets/modifierdata/';
+const modifierDirectory = './packages/data/modifierdata/';
const allTraitIds = new Set();
const allExtrasIds = new Set();
@@ -487,7 +487,7 @@ function parseNumber(value, key, id) {
* test presets
*/
-const presetDirectory = './src/assets/presetdata/';
+const presetDirectory = './packages/data/presetdata/';
// const types = {
// name
diff --git a/src/assets/typevalidation/index.ts b/packages/data/typevalidation/index.ts
similarity index 96%
rename from src/assets/typevalidation/index.ts
rename to packages/data/typevalidation/index.ts
index 7f9dd135b..0da0a3403 100644
--- a/src/assets/typevalidation/index.ts
+++ b/packages/data/typevalidation/index.ts
@@ -26,8 +26,8 @@ const gentleAssert = (condition: boolean, message: string) => {
}
};
-const modifierDirectory = './src/assets/modifierdata/';
-const presetDirectory = './src/assets/presetdata/';
+const modifierDirectory = './packages/data/modifierdata/';
+const presetDirectory = './packages/data/presetdata/';
const testModifiers = async () => {
const files = (await fs.readdir(modifierDirectory)).filter(
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c2ed8298a..74a6e0c50 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -44,6 +44,9 @@ importers:
comlink:
specifier: ^4.4.2
version: 4.4.2
+ data:
+ specifier: workspace:./packages/data
+ version: link:packages/data
i18next:
specifier: ^24.2.0
version: 24.2.0(typescript@5.7.2)
@@ -211,6 +214,16 @@ importers:
specifier: ^3.99.0
version: 3.99.0(@cloudflare/workers-types@4.20241230.0)
+ packages/data:
+ dependencies:
+ js-yaml:
+ specifier: ^4.1.0
+ version: 4.1.0
+ devDependencies:
+ typia:
+ specifier: ^7.5.1
+ version: 7.5.1(@samchon/openapi@2.3.1)(typescript@5.7.2)
+
packages:
'@ampproject/remapping@2.3.0':
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 000000000..f88960cbe
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,2 @@
+packages:
+- 'packages/*'
diff --git a/src/components/BuildPage.tsx b/src/components/BuildPage.tsx
index 1e912ffeb..0d841f905 100644
--- a/src/components/BuildPage.tsx
+++ b/src/components/BuildPage.tsx
@@ -4,8 +4,8 @@ import { Box, Paper, Typography } from '@mui/material';
import * as React from 'react';
import { useSelector } from 'react-redux';
import { makeStyles } from 'tss-react/mui';
-import { buffModifiers, classModifiers } from '../assets/modifierdata';
-import type { ModifierItem } from '../assets/modifierdata/metadata';
+import { buffModifiers, classModifiers } from '../../packages/data/modifierdata';
+import type { ModifierItem } from '../../packages/data/modifierdata/metadata';
import { importStateCharacter } from '../state/async/buildPageThunks';
import { useAppDispatch } from '../state/redux-hooks';
import {
diff --git a/src/components/TemplateInfo.tsx b/src/components/TemplateInfo.tsx
index 0eede2f0f..3ac9bf3c2 100644
--- a/src/components/TemplateInfo.tsx
+++ b/src/components/TemplateInfo.tsx
@@ -1,12 +1,12 @@
import { Profession } from '@discretize/gw2-ui-new';
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
import { Link } from '@mui/material';
+import type { Credit, PresetDistributionEntry } from 'data/presetdata';
+import { creditData, presetDistribution } from 'data/presetdata';
import { Fragment } from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useSelector } from 'react-redux';
-import type { Credit, PresetDistributionEntry } from '../assets/presetdata/metadata';
import { getSelectedDistribution } from '../state/slices/distribution';
-import data from '../utils/data';
import Info from './baseComponents/Info';
const TemplateLabel = ({ preset }: { preset: PresetDistributionEntry }) => {
@@ -23,7 +23,7 @@ const TemplateLabel = ({ preset }: { preset: PresetDistributionEntry }) => {
};
const Author = ({ name }: { name: string }) => {
- const url = data.creditData[name]?.authorUrl;
+ const url = creditData[name]?.authorUrl;
return url ? (
{name}
@@ -45,7 +45,7 @@ const EndingLinks = ({ credit }: { credit: Credit[] }) =>
export default function TemplateInfo() {
const selectedDistribution = useSelector(getSelectedDistribution);
- const distributionData = data.presetDistribution.list.find(
+ const distributionData = presetDistribution.list.find(
(entry) => entry.name === selectedDistribution,
);
const credit = distributionData?.credit;
@@ -66,7 +66,7 @@ export default function TemplateInfo() {
)}
{credit
- .filter((entry) => data.creditData[entry.author]?.authorUrl && entry.url)
+ .filter((entry) => creditData[entry.author]?.authorUrl && entry.url)
.map((entry) => (
{' '}
diff --git a/src/components/baseComponents/Presets.tsx b/src/components/baseComponents/Presets.tsx
index 65688d66c..9baa5f6f1 100644
--- a/src/components/baseComponents/Presets.tsx
+++ b/src/components/baseComponents/Presets.tsx
@@ -3,7 +3,7 @@ import { Box, Chip, TextField, Typography } from '@mui/material';
import Autocomplete from '@mui/material/Autocomplete';
import { useTranslation } from 'react-i18next';
import { useSelector } from 'react-redux';
-import type { PresetEntry } from '../../assets/presetdata/metadata';
+import type { PresetEntry } from 'data/presetdata';
import { getProfession, getSelectedTemplate } from '../../state/slices/controlsSlice';
// this many chips are allowed before they will be put into a dropdown select
diff --git a/src/components/nav/NavAccordion.tsx b/src/components/nav/NavAccordion.tsx
index 1c8198714..c8ac512d7 100644
--- a/src/components/nav/NavAccordion.tsx
+++ b/src/components/nav/NavAccordion.tsx
@@ -3,10 +3,10 @@ import { Box, Chip } from '@mui/material';
import MuiAccordion from '@mui/material/Accordion';
import MuiAccordionDetails from '@mui/material/AccordionDetails';
import MuiAccordionSummary from '@mui/material/AccordionSummary';
+import { templates } from 'data/presetdata';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { makeStyles } from 'tss-react/mui';
-import data from '../../utils/data';
import type { ProfessionName } from '../../utils/gw2-data';
const useStyles = makeStyles()((theme) => ({
@@ -57,7 +57,7 @@ export default function NavAccordion({ handleTemplateSelect }: NavAccordionProps
setExpanded(newExpanded ? panel : '');
};
- return data.templates.list.map((prof) => (
+ return templates.list.map((prof) => (
{
const selectedSpecialization = useSelector(getSelectedSpecialization);
const selectedTemplateName = useSelector(getSelectedTemplate);
- const selectedTemplate = data.templates.list
+ const selectedTemplate = templates.list
.find((elem) => elem.class === profession)
?.builds?.find((elem) => elem.name === selectedTemplateName);
diff --git a/src/components/nav/ReapplyTemplateDialog.tsx b/src/components/nav/ReapplyTemplateDialog.tsx
index 15bd20473..75bde0d5e 100644
--- a/src/components/nav/ReapplyTemplateDialog.tsx
+++ b/src/components/nav/ReapplyTemplateDialog.tsx
@@ -6,16 +6,16 @@ import {
DialogContentText,
DialogTitle,
} from '@mui/material';
+import data from 'data/presetdata';
+import { getBuildTemplateData } from 'data/presetdata/templateTransform';
import { Trans } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import { getBuildTemplateData } from '../../assets/presetdata/templateTransform';
import {
getProfession,
getSelectedTemplate,
setBuildTemplate,
} from '../../state/slices/controlsSlice';
import { getGameMode } from '../../state/slices/userSettings';
-import data from '../../utils/data';
interface ReapplyTemplateDialogProps {
open: boolean;
diff --git a/src/components/sections/affixes/AffixesSection.tsx b/src/components/sections/affixes/AffixesSection.tsx
index ca1d0b0fe..83d2ec9b6 100644
--- a/src/components/sections/affixes/AffixesSection.tsx
+++ b/src/components/sections/affixes/AffixesSection.tsx
@@ -1,8 +1,9 @@
import { Box, Chip, FormControlLabel, Switch } from '@mui/material';
+import type { PresetAffixesEntry } from 'data/presetdata';
+import { presetAffixes } from 'data/presetdata';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import type { PresetAffixesEntry } from '../../../assets/presetdata/metadata';
import {
changeAffixes,
changeExclusion,
@@ -13,7 +14,6 @@ import {
getExclusionsEnabled,
getExoticsEnabled,
} from '../../../state/slices/priorities';
-import data from '../../../utils/data';
import { maxSlotsLength } from '../../../utils/gw2-data';
import Presets from '../../baseComponents/Presets';
import Section from '../../baseComponents/Section';
@@ -82,7 +82,7 @@ const AffixesSection = () => {
extraInfo={
<>
{
title={t('Buffs & Boons')}
extraInfo={
diff --git a/src/components/sections/distribution/DistributionSection.tsx b/src/components/sections/distribution/DistributionSection.tsx
index 4406bacc7..7ad17b5e9 100644
--- a/src/components/sections/distribution/DistributionSection.tsx
+++ b/src/components/sections/distribution/DistributionSection.tsx
@@ -1,12 +1,12 @@
/* eslint-disable react/no-unescaped-entities */
import { Box, Link } from '@mui/material';
+import type { PresetDistributionEntry } from 'data/presetdata';
+import { presetDistribution } from 'data/presetdata';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import type { PresetDistributionEntry } from '../../../assets/presetdata/metadata';
import { getProfession } from '../../../state/slices/controlsSlice';
import { changeAllDistributions } from '../../../state/slices/distribution';
-import data from '../../../utils/data';
import { SPECIALIZATIONS } from '../../../utils/gw2-data';
import Presets from '../../baseComponents/Presets';
import Section from '../../baseComponents/Section';
@@ -20,7 +20,7 @@ const DistributionSection = () => {
let distributionPresets;
if (profession) {
const eliteSpecializations = SPECIALIZATIONS[profession];
- distributionPresets = data.presetDistribution.list.filter((preset) => {
+ distributionPresets = presetDistribution.list.filter((preset) => {
if (preset.name === 'None') return false;
return (
!preset.profession ||
diff --git a/src/components/sections/extramodifiers/ExtraModifiers.tsx b/src/components/sections/extramodifiers/ExtraModifiers.tsx
index 6218c6b0d..600e8f741 100644
--- a/src/components/sections/extramodifiers/ExtraModifiers.tsx
+++ b/src/components/sections/extramodifiers/ExtraModifiers.tsx
@@ -7,10 +7,10 @@ import {
TextField,
Typography,
} from '@mui/material';
+import { exampleModifiers, exampleModifiersJson } from 'data/modifierdata';
import yaml from 'js-yaml';
import { Trans, useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import { exampleModifiers, exampleModifiersJson } from '../../../assets/modifierdata/metadata';
import {
changeExtraModifiers,
changeExtraModifiersError,
diff --git a/src/components/sections/extras/ExtraSelection.jsx b/src/components/sections/extras/ExtraSelection.jsx
index 585976382..aecdc8db0 100644
--- a/src/components/sections/extras/ExtraSelection.jsx
+++ b/src/components/sections/extras/ExtraSelection.jsx
@@ -18,11 +18,11 @@ import {
ListItemText,
Typography,
} from '@mui/material';
+import { allExtrasModifiersById, placeholderItem } from 'data/modifierdata';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
import { makeStyles } from 'tss-react/mui';
-import { allExtrasModifiersById, placeholderItem } from '../../../assets/modifierdata';
import {
changeExtraAmount,
changeExtraIds,
diff --git a/src/components/sections/extras/Extras.tsx b/src/components/sections/extras/Extras.tsx
index 468e7db7c..22ca9aa28 100644
--- a/src/components/sections/extras/Extras.tsx
+++ b/src/components/sections/extras/Extras.tsx
@@ -1,9 +1,9 @@
import { ConsumableEffect, Item } from '@discretize/gw2-ui-new';
import { Box, Typography } from '@mui/material';
+import { allExtrasModifiersById, extrasModifiers } from 'data/modifierdata';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import { allExtrasModifiersById, extrasModifiers } from '../../../assets/modifierdata';
import {
changeLifestealAmount,
getExtrasIds,
diff --git a/src/components/sections/extras/ExtrasSection.tsx b/src/components/sections/extras/ExtrasSection.tsx
index 176be9ca6..4854dbc84 100644
--- a/src/components/sections/extras/ExtrasSection.tsx
+++ b/src/components/sections/extras/ExtrasSection.tsx
@@ -10,10 +10,11 @@ import {
TextField,
Typography,
} from '@mui/material';
+import type { PresetExtrasEntry } from 'data/presetdata';
+import { presetExtras } from 'data/presetdata';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import type { PresetExtrasEntry } from '../../../assets/presetdata/metadata';
import {
changeJsHeuristicsEnabled,
changeJsHeuristicsTarget,
@@ -28,7 +29,6 @@ import {
getJsHeuristicsDefault,
getParsedJsHeuristicsTarget,
} from '../../../state/slices/extras';
-import data from '../../../utils/data';
import { SPECIALIZATIONS } from '../../../utils/gw2-data';
import Info from '../../baseComponents/Info';
import Presets from '../../baseComponents/Presets';
@@ -48,7 +48,7 @@ const ExtrasSection = () => {
let extrasPresets;
if (profession) {
const eliteSpecializations = SPECIALIZATIONS[profession];
- extrasPresets = data.presetExtras.list.filter((preset) => {
+ extrasPresets = presetExtras.list.filter((preset) => {
return (
!preset.profession ||
preset.profession === profession ||
diff --git a/src/components/sections/extras/ModalContent.jsx b/src/components/sections/extras/ModalContent.jsx
index e9442af72..e1444426e 100644
--- a/src/components/sections/extras/ModalContent.jsx
+++ b/src/components/sections/extras/ModalContent.jsx
@@ -13,11 +13,11 @@ import {
TextField,
Typography,
} from '@mui/material';
+import { placeholderItem } from 'data/modifierdata';
import React, { Fragment } from 'react';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
import { makeStyles } from 'tss-react/mui';
-import { placeholderItem } from '../../../assets/modifierdata';
import { changeExtraIds, getExtrasIds } from '../../../state/slices/extras';
import Label from '../../baseComponents/Label';
import { formatApiText, joinWith } from './helpers';
diff --git a/src/components/sections/infusions/InfusionsSection.tsx b/src/components/sections/infusions/InfusionsSection.tsx
index 665944c18..000c61f4d 100644
--- a/src/components/sections/infusions/InfusionsSection.tsx
+++ b/src/components/sections/infusions/InfusionsSection.tsx
@@ -1,10 +1,10 @@
+import type { PresetInfusionsEntry } from 'data/presetdata';
+import { presetInfusions } from 'data/presetdata';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import type { PresetInfusionsEntry } from '../../../assets/presetdata/metadata';
import { changeInfusionOptions } from '../../../state/slices/infusions';
import { getGameMode } from '../../../state/slices/userSettings';
-import data from '../../../utils/data';
import Presets from '../../baseComponents/Presets';
import Section from '../../baseComponents/Section';
import Infusions from './Infusions';
@@ -16,7 +16,7 @@ const InfusionsSection = () => {
const isFractals = gamemode === 'fractals';
- const infusionPresets = data.presetInfusions.list;
+ const infusionPresets = presetInfusions.list;
const onTemplateClickInfusions = React.useCallback(
(value: PresetInfusionsEntry) => dispatch(changeInfusionOptions(value.value)),
diff --git a/src/components/sections/results/ResultCharacter.jsx b/src/components/sections/results/ResultCharacter.jsx
index a11a8c601..029295f0c 100644
--- a/src/components/sections/results/ResultCharacter.jsx
+++ b/src/components/sections/results/ResultCharacter.jsx
@@ -1,6 +1,6 @@
import { Character, firstUppercase } from '@discretize/react-discretize-components';
import { FormControlLabel, Switch } from '@mui/material';
-import { allExtrasModifiersById } from '../../../assets/modifierdata';
+import { allExtrasModifiersById } from 'data/modifierdata';
import {
Classes,
INFUSION_IDS,
diff --git a/src/components/sections/results/ResultDetails.tsx b/src/components/sections/results/ResultDetails.tsx
index fbaed27bf..5e1d38016 100644
--- a/src/components/sections/results/ResultDetails.tsx
+++ b/src/components/sections/results/ResultDetails.tsx
@@ -1,9 +1,9 @@
import { TextDivider } from '@discretize/react-discretize-components';
import { Grid2 as Grid } from '@mui/material';
+import { buffModifiers } from 'data/modifierdata';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { useSelector } from 'react-redux';
-import { buffModifiers } from '../../../assets/modifierdata';
import { getSelectedCharacter } from '../../../state/slices/controlsSlice';
import { getGameMode } from '../../../state/slices/userSettings';
import { createAssumedBuffs } from '../../../utils/toLazyToType-usefulFunctions';
diff --git a/src/components/sections/results/SpecialDurations.tsx b/src/components/sections/results/SpecialDurations.tsx
index 61582b881..14508a804 100644
--- a/src/components/sections/results/SpecialDurations.tsx
+++ b/src/components/sections/results/SpecialDurations.tsx
@@ -1,8 +1,8 @@
import { Boon, Condition } from '@discretize/gw2-ui-new';
import { Table, TableBody, TableCell, TableRow, Typography } from '@mui/material';
+import { boons, damagingConditions } from 'data/modifierdata';
import { Trans } from 'react-i18next';
import { makeStyles } from 'tss-react/mui';
-import { boons, damagingConditions } from '../../../assets/modifierdata/metadata';
import type { Attributes } from '../../../state/optimizer/types/optimizerTypes';
// const boonDurations = boons.map((name) => `${name} Duration`);
diff --git a/src/components/sections/results/TemplateHelperSections.jsx b/src/components/sections/results/TemplateHelperSections.jsx
index 049330331..2cdb2faa2 100644
--- a/src/components/sections/results/TemplateHelperSections.jsx
+++ b/src/components/sections/results/TemplateHelperSections.jsx
@@ -7,10 +7,10 @@ import {
Grid2 as Grid,
Typography,
} from '@mui/material';
+import { allExtrasModifiersById, buffModifiers } from 'data/modifierdata';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useSelector } from 'react-redux';
-import { allExtrasModifiersById, buffModifiers } from '../../../assets/modifierdata';
import { getSkills, getWeapons } from '../../../state/slices/buildPage';
import { getTraitLines, getTraits } from '../../../state/slices/traits';
import { getGameMode } from '../../../state/slices/userSettings';
diff --git a/src/components/sections/results/gw2CombatBackend.js b/src/components/sections/results/gw2CombatBackend.js
index 58a07459f..c2376d43b 100644
--- a/src/components/sections/results/gw2CombatBackend.js
+++ b/src/components/sections/results/gw2CombatBackend.js
@@ -3,8 +3,7 @@
/* eslint-disable dot-notation */
/* eslint-disable import/prefer-default-export */
-import { allExtrasModifiersById, traitSectionsById } from '../../../assets/modifierdata/index';
-import { damagingConditions } from '../../../assets/modifierdata/metadata';
+import { allExtrasModifiersById, damagingConditions, traitSectionsById } from 'data/modifierdata';
const formatCharacterData = async (character) => {
const {
diff --git a/src/components/sections/results/table/ResultTableRow.tsx b/src/components/sections/results/table/ResultTableRow.tsx
index c0ad709bc..fef39f25a 100644
--- a/src/components/sections/results/table/ResultTableRow.tsx
+++ b/src/components/sections/results/table/ResultTableRow.tsx
@@ -3,11 +3,10 @@ import StarRoundedIcon from '@mui/icons-material/StarRounded';
import { Typography } from '@mui/material';
import TableCell from '@mui/material/TableCell';
import TableRow from '@mui/material/TableRow';
+import { allExtrasModifiersById, percents, placeholderItem } from 'data/modifierdata';
import React, { Fragment } from 'react';
import isEqual from 'react-fast-compare';
import { useDispatch } from 'react-redux';
-import { allExtrasModifiersById, placeholderItem } from '../../../../assets/modifierdata';
-import { percents } from '../../../../assets/modifierdata/metadata';
import type { Character } from '../../../../state/optimizer/types/optimizerTypes';
import type { DisplayAttributes } from '../../../../state/slices/controlsSlice';
import { changeSelectedCharacter, toggleSaved } from '../../../../state/slices/controlsSlice';
diff --git a/src/components/sections/skills/Skills.tsx b/src/components/sections/skills/Skills.tsx
index 64d40860c..e9e199c0f 100644
--- a/src/components/sections/skills/Skills.tsx
+++ b/src/components/sections/skills/Skills.tsx
@@ -1,8 +1,8 @@
import { Skill } from '@discretize/gw2-ui-new';
import { Box, Typography } from '@mui/material';
+import type { ModifierItem } from 'data/modifierdata';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import type { ModifierItem } from '../../../assets/modifierdata/metadata';
import { getSkills, setSkillAmount, toggleSkill } from '../../../state/slices/skills';
import { AmountInput } from '../../baseComponents/AmountInput';
import CheckboxComponent from '../../baseComponents/CheckboxComponent';
diff --git a/src/components/sections/skills/SkillsSection.tsx b/src/components/sections/skills/SkillsSection.tsx
index 735c2a29e..3f181bbfc 100644
--- a/src/components/sections/skills/SkillsSection.tsx
+++ b/src/components/sections/skills/SkillsSection.tsx
@@ -1,6 +1,6 @@
+import { classModifiers } from 'data/modifierdata';
import { useTranslation } from 'react-i18next';
import { useSelector } from 'react-redux';
-import { classModifiers } from '../../../assets/modifierdata';
import { getProfession } from '../../../state/slices/controlsSlice';
import Section from '../../baseComponents/Section';
import Skills from './Skills';
diff --git a/src/components/sections/traits/Traits.tsx b/src/components/sections/traits/Traits.tsx
index 4f1d99426..bf672ee7a 100644
--- a/src/components/sections/traits/Traits.tsx
+++ b/src/components/sections/traits/Traits.tsx
@@ -1,11 +1,11 @@
import { Specialization, Trait, TraitLine } from '@discretize/gw2-ui-new';
import WarningAmberIcon from '@mui/icons-material/WarningAmber';
import { Box, FormControl, Input, InputLabel, MenuItem, Select, Typography } from '@mui/material';
+import type { ModifierItem, Section } from 'data/modifierdata';
+import { classModifiers, traitSectionsById } from 'data/modifierdata';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import { classModifiers, traitSectionsById } from '../../../assets/modifierdata';
-import type { ModifierItem, Section } from '../../../assets/modifierdata/metadata';
import { getProfession } from '../../../state/slices/controlsSlice';
import {
changeTrait,
diff --git a/src/components/sections/traits/TraitsSection.tsx b/src/components/sections/traits/TraitsSection.tsx
index 80d0320f0..8315e45f3 100644
--- a/src/components/sections/traits/TraitsSection.tsx
+++ b/src/components/sections/traits/TraitsSection.tsx
@@ -1,12 +1,12 @@
import { Box, FormControlLabel, Switch } from '@mui/material';
+import type { PresetTraitsEntry } from 'data/presetdata';
+import { presetTraits } from 'data/presetdata';
import React from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';
-import type { PresetTraitsEntry } from '../../../assets/presetdata/metadata';
import { getProfession } from '../../../state/slices/controlsSlice';
import { changeSkills } from '../../../state/slices/skills';
import { changeTraits, getShowAllTraits, toggleShowAll } from '../../../state/slices/traits';
-import data from '../../../utils/data';
import { SPECIALIZATIONS } from '../../../utils/gw2-data';
import Presets from '../../baseComponents/Presets';
import Section from '../../baseComponents/Section';
@@ -22,7 +22,7 @@ const TraitsSection = () => {
let traitsPresets;
if (profession) {
const eliteSpecializations = SPECIALIZATIONS[profession];
- traitsPresets = data.presetTraits.list.filter((preset) => {
+ traitsPresets = presetTraits.list.filter((preset) => {
return (
!preset.profession ||
preset.profession === profession ||
diff --git a/src/global.d.ts b/src/global.d.ts
index 8be4d72bc..255b61790 100644
--- a/src/global.d.ts
+++ b/src/global.d.ts
@@ -1,7 +1,2 @@
-declare module '*.yaml' {
- const data: unknown;
- export default data;
-}
-
declare module '@discretize/object-compression';
declare module 'json-url';
diff --git a/src/state/optimizer-parallel/worker/worker.ts b/src/state/optimizer-parallel/worker/worker.ts
index e0e216aa3..83744f7c8 100644
--- a/src/state/optimizer-parallel/worker/worker.ts
+++ b/src/state/optimizer-parallel/worker/worker.ts
@@ -1,10 +1,10 @@
/* eslint-disable camelcase */
+import { allExtrasModifiersById } from 'data/modifierdata';
import init, {
calculate,
calculate_heuristics_only,
calculate_with_heuristics,
} from '../../../../wasm_module/pkg'; // eslint-disable-line
-import { allExtrasModifiersById } from '../../../assets/modifierdata';
import type { AffixName } from '../../../utils/gw2-data';
import { objectEntries } from '../../../utils/usefulFunctions';
import type {
diff --git a/src/state/optimizer/optimizerCore.ts b/src/state/optimizer/optimizerCore.ts
index 639356403..174e8c5d1 100644
--- a/src/state/optimizer/optimizerCore.ts
+++ b/src/state/optimizer/optimizerCore.ts
@@ -4,7 +4,7 @@
/* eslint-disable no-console */
/* eslint-disable dot-notation */
-import { allAttributePointKeys } from '../../assets/modifierdata/metadata';
+import { allAttributePointKeys } from 'data/modifierdata';
import type { ConditionName, DamagingConditionName, IndicatorName } from '../../utils/gw2-data';
import {
INFUSION_BONUS,
diff --git a/src/state/optimizer/optimizerSetup.ts b/src/state/optimizer/optimizerSetup.ts
index 57fe70973..67a6424c5 100644
--- a/src/state/optimizer/optimizerSetup.ts
+++ b/src/state/optimizer/optimizerSetup.ts
@@ -15,13 +15,13 @@ import type {
DamageMode,
DamageValue,
Percent,
-} from '../../assets/modifierdata/metadata';
+} from 'data/modifierdata';
import {
allAttributeCoefficientKeys,
allAttributePercentKeys,
allAttributePointKeys,
allConversionAfterBuffsSourceKeys,
-} from '../../assets/modifierdata/metadata';
+} from 'data/modifierdata';
import type { AffixName, ForcedSlotName, GearAttributeName } from '../../utils/gw2-data';
import {
allSlotData,
diff --git a/src/state/optimizer/types/optimizerSetupTypes.ts b/src/state/optimizer/types/optimizerSetupTypes.ts
index b5e08d7e9..bdfda7050 100644
--- a/src/state/optimizer/types/optimizerSetupTypes.ts
+++ b/src/state/optimizer/types/optimizerSetupTypes.ts
@@ -6,7 +6,7 @@ import type {
ConversionDestinationKey,
ConversionSourceKey,
Modifiers as YamlModifiers,
-} from '../../../assets/modifierdata/metadata';
+} from 'data/modifierdata';
import type { ExtrasCombination } from '../../slices/extras';
export interface ExtrasCombinationEntry {
diff --git a/src/state/slices/buffs.ts b/src/state/slices/buffs.ts
index e2886b875..cff8a85d5 100644
--- a/src/state/slices/buffs.ts
+++ b/src/state/slices/buffs.ts
@@ -1,6 +1,6 @@
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
-import { buffModifiersById } from '../../assets/modifierdata';
+import { buffModifiersById } from 'data/modifierdata';
import type { AppliedModifier } from '../optimizer/types/optimizerSetupTypes';
import type { RootState } from '../store';
import { changeAll, setBuildTemplate } from './controlsSlice';
diff --git a/src/state/slices/controlsSlice.ts b/src/state/slices/controlsSlice.ts
index 91b711ef1..5fc8f65e3 100644
--- a/src/state/slices/controlsSlice.ts
+++ b/src/state/slices/controlsSlice.ts
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSelector, createSlice, original } from '@reduxjs/toolkit';
-import type { getBuildTemplateData } from '../../assets/presetdata/templateTransform';
+import type { getBuildTemplateData } from 'data/presetdata/templateTransform';
import type { ProfessionName, ProfessionOrSpecializationName } from '../../utils/gw2-data';
import type { ParseFunction } from '../../utils/usefulFunctions';
import { objectKeys, parseNumber } from '../../utils/usefulFunctions';
diff --git a/src/state/slices/extras.ts b/src/state/slices/extras.ts
index 88c5a1216..ab2853953 100644
--- a/src/state/slices/extras.ts
+++ b/src/state/slices/extras.ts
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSelector, createSlice, original } from '@reduxjs/toolkit';
-import { allExtrasModifiersById } from '../../assets/modifierdata';
+import { allExtrasModifiersById } from 'data/modifierdata';
import { mapValues, objectEntries, parseNumber } from '../../utils/usefulFunctions';
import type { AppliedModifier } from '../optimizer/types/optimizerSetupTypes';
import type { RootState } from '../store';
diff --git a/src/state/slices/skills.ts b/src/state/slices/skills.ts
index 009ae941d..0dc4311d2 100644
--- a/src/state/slices/skills.ts
+++ b/src/state/slices/skills.ts
@@ -1,6 +1,6 @@
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
-import { allClassModifiersById } from '../../assets/modifierdata';
+import { allClassModifiersById } from 'data/modifierdata';
import type { AppliedModifier } from '../optimizer/types/optimizerSetupTypes';
import type { RootState } from '../store';
import { changeAll, changeProfession, setBuildTemplate } from './controlsSlice';
diff --git a/src/state/slices/traits.ts b/src/state/slices/traits.ts
index 84f2c50d3..05946f779 100644
--- a/src/state/slices/traits.ts
+++ b/src/state/slices/traits.ts
@@ -1,10 +1,6 @@
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
-import {
- allClassModifiersById,
- classModifiers,
- traitSectionsById,
-} from '../../assets/modifierdata';
+import { allClassModifiersById, classModifiers, traitSectionsById } from 'data/modifierdata';
import { SPECIALIZATIONS } from '../../utils/gw2-data';
import { enumArrayIncludes } from '../../utils/usefulFunctions';
import type { AppliedModifier } from '../optimizer/types/optimizerSetupTypes';
diff --git a/src/utils/data.ts b/src/utils/data.ts
deleted file mode 100644
index 741d579b9..000000000
--- a/src/utils/data.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import type {
- CreditData,
- PresetAffixes,
- PresetBuffs,
- PresetDistribution,
- PresetExtras,
- PresetInfusions,
- PresetTraits,
- Templates,
-} from '../assets/presetdata/metadata';
-
-import creditData from '../assets/presetdata/credit.yaml';
-import presetAffixes from '../assets/presetdata/preset-affixes.yaml';
-import presetBuffs from '../assets/presetdata/preset-buffs.yaml';
-import presetDistribution from '../assets/presetdata/preset-distribution.yaml';
-import presetExtras from '../assets/presetdata/preset-extras.yaml';
-import presetInfusions from '../assets/presetdata/preset-infusions.yaml';
-import presetTraits from '../assets/presetdata/preset-traits.yaml';
-import templates from '../assets/presetdata/templates.yaml';
-
-export interface PresetData {
- templates: Templates;
- presetBuffs: PresetBuffs;
- presetAffixes: PresetAffixes;
- presetDistribution: PresetDistribution;
- presetExtras: PresetExtras;
- presetInfusions: PresetInfusions;
- presetTraits: PresetTraits;
- creditData: CreditData;
-}
-
-export default {
- templates,
- presetBuffs,
- presetAffixes,
- presetDistribution,
- presetExtras,
- presetInfusions,
- presetTraits,
- creditData,
-} as PresetData;