Grabbed dndbeyond's source code
``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getId(option) {
|
||||
return getDefinitionId(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionId(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : -1;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getEntityTypeId(option) {
|
||||
return getDefinitionEntityTypeId(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionEntityTypeId(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.entityTypeId) !== null && _b !== void 0 ? _b : -1;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getUniqueKey(option) {
|
||||
return `${getId(option)}-${getEntityTypeId(option)}`;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getActivation(option) {
|
||||
return getDefinitionActivation(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionActivation(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.activation) !== null && _b !== void 0 ? _b : null;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getName(option) {
|
||||
return getDefinitionName(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionName(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getSourceId(option) {
|
||||
return getDefinitionSourceId(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionSourceId(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.sourceId) !== null && _b !== void 0 ? _b : null;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getSourcePage(option) {
|
||||
return getDefinitionSourcePage(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionSourcePage(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.sourcePageNumber) !== null && _b !== void 0 ? _b : null;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getSnippet(option) {
|
||||
return getDefinitionSnippet(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionSnippet(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.snippet) !== null && _b !== void 0 ? _b : null;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDescription(option) {
|
||||
return getDefinitionDescription(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionDescription(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : null;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getCreatureRules(option) {
|
||||
return getDefinitionCreatureRules(option);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDefinitionCreatureRules(option) {
|
||||
var _a, _b;
|
||||
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.creatureRules) !== null && _b !== void 0 ? _b : [];
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getComponentId(option) {
|
||||
return option.componentId;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getComponentTypeId(option) {
|
||||
return option.componentTypeId;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDataOrigin(option) {
|
||||
return option.dataOrigin;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getDataOriginType(option) {
|
||||
const dataOrigin = getDataOrigin(option);
|
||||
return dataOrigin.type;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getActions(option) {
|
||||
return option.actions;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getFeats(option) {
|
||||
return option.feats;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getSpells(option) {
|
||||
return option.spells;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function getModifiers(option) {
|
||||
return option.modifiers;
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
import { groupBy } from 'lodash';
|
||||
import { ActionGenerators } from '../Action';
|
||||
import { DataOriginGenerators } from '../DataOrigin';
|
||||
import { FeatGenerators } from '../Feat';
|
||||
import { HelperUtils } from '../Helper';
|
||||
import { ModifierGenerators } from '../Modifier';
|
||||
import { SpellGenerators } from '../Spell';
|
||||
import { getComponentId, getComponentTypeId, getId, getEntityTypeId } from './accessors';
|
||||
/**
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
export function generateDataOriginKey(option) {
|
||||
return DataOriginGenerators.generateDataOriginKey(getComponentId(option), getComponentTypeId(option));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param options
|
||||
*/
|
||||
export function generateOptionComponentLookup(options) {
|
||||
return groupBy(options, (option) => generateDataOriginKey(option));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param id
|
||||
* @param entityTypeId
|
||||
* @param optionLookup
|
||||
* @param dataOriginType
|
||||
* @param primary
|
||||
* @param parent
|
||||
*/
|
||||
export function generateDataOriginBaseOptions(id, entityTypeId, optionLookup, dataOriginType, primary, parent = null) {
|
||||
const options = HelperUtils.lookupDataOrFallback(optionLookup, DataOriginGenerators.generateDataOriginKey(id, entityTypeId));
|
||||
if (!options) {
|
||||
return [];
|
||||
}
|
||||
return options.map((option) => (Object.assign(Object.assign({}, option), { dataOrigin: DataOriginGenerators.generateDataOrigin(dataOriginType, primary, parent) })));
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param baseOptions
|
||||
* @param dataOriginType
|
||||
* @param featLookup
|
||||
* @param actionLookup
|
||||
* @param spellLookup
|
||||
* @param optionLookup
|
||||
* @param modifierLookup
|
||||
* @param valueLookup
|
||||
* @param spellListDataOriginLookup
|
||||
* @param ruleData
|
||||
* @param primary
|
||||
* @param parent
|
||||
*/
|
||||
export function generateOptions(baseOptions, dataOriginType, featLookup, actionLookup, spellLookup, optionLookup, modifierLookup, valueLookup, spellListDataOriginLookup, ruleData, primary, parent = null) {
|
||||
return baseOptions.map((option) => {
|
||||
const id = getId(option);
|
||||
const entityTypeId = getEntityTypeId(option);
|
||||
return Object.assign(Object.assign({}, option), { feats: FeatGenerators.generateDataOriginFeats(id, entityTypeId, featLookup, dataOriginType, primary, parent), actions: ActionGenerators.generateBaseActions(id, entityTypeId, actionLookup, valueLookup, dataOriginType, primary, parent), spells: SpellGenerators.generateBaseSpells(id, entityTypeId, spellLookup, dataOriginType, primary, parent, ruleData, spellListDataOriginLookup, valueLookup), modifiers: ModifierGenerators.generateModifiers(id, entityTypeId, modifierLookup, dataOriginType, primary, parent) });
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import * as OptionAccessors from './accessors';
|
||||
import * as OptionGenerators from './generators';
|
||||
import * as OptionTypings from './typings';
|
||||
import * as OptionUtils from './utils';
|
||||
export * from './typings';
|
||||
export { OptionAccessors, OptionGenerators, OptionUtils };
|
||||
export default Object.assign(Object.assign(Object.assign(Object.assign({}, OptionAccessors), OptionGenerators), OptionTypings), OptionUtils);
|
||||
@@ -0,0 +1,29 @@
|
||||
import { ClassAccessors } from '../Class';
|
||||
import { ClassFeatureAccessors } from '../ClassFeature';
|
||||
import { DataOriginTypeEnum } from '../DataOrigin';
|
||||
import { getDataOrigin, getDataOriginType } from './accessors';
|
||||
export function getContextData(option) {
|
||||
const dataOrigin = getDataOrigin(option);
|
||||
const dataOriginType = getDataOriginType(option);
|
||||
let classLevel;
|
||||
switch (dataOriginType) {
|
||||
case DataOriginTypeEnum.CLASS_FEATURE:
|
||||
classLevel = ClassAccessors.getLevel(dataOrigin.parent);
|
||||
break;
|
||||
default:
|
||||
// not implemented
|
||||
}
|
||||
return {
|
||||
classLevel,
|
||||
};
|
||||
}
|
||||
export function getLevelScale(option) {
|
||||
const dataOrigin = getDataOrigin(option);
|
||||
const dataOriginType = getDataOriginType(option);
|
||||
switch (dataOriginType) {
|
||||
case DataOriginTypeEnum.CLASS_FEATURE:
|
||||
return ClassFeatureAccessors.getLevelScale(dataOrigin.primary);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user