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,42 @@
|
||||
/**
|
||||
*
|
||||
* @param feature
|
||||
*/
|
||||
export function getClassFeatureId(feature) {
|
||||
return feature.classFeatureId;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param feature
|
||||
*/
|
||||
export function getAffectedClassFeatureId(feature) {
|
||||
return feature.affectedClassFeatureId;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param feature
|
||||
*/
|
||||
export function getDefinitionKey(feature) {
|
||||
return feature.classFeatureDefinitionKey;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param feature
|
||||
*/
|
||||
export function getAffectedClassFeatureDefinitionKey(feature) {
|
||||
return feature.affectedClassFeatureDefinitionKey;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param feature
|
||||
*/
|
||||
export function getClassFeature(feature) {
|
||||
return feature.classFeature;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param feature
|
||||
*/
|
||||
export function getAccessType(feature) {
|
||||
return feature.accessType;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { DefinitionHacks, DefinitionTypeEnum } from '../Definition';
|
||||
/**
|
||||
* use hack until ids are strings
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
export function deriveDefinitionKey(id) {
|
||||
return DefinitionHacks.hack__generateDefinitionKey(DefinitionTypeEnum.CLASS_FEATURE, id);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { TypeScriptUtils } from '../../utils';
|
||||
import { ClassFeatureSimulators } from '../ClassFeature';
|
||||
import { DefinitionPoolUtils } from '../DefinitionPool';
|
||||
import { HelperUtils } from '../Helper';
|
||||
import { getDefinitionKey } from './accessors';
|
||||
export function generateOptionalClassFeatures(optionalClassFeatureMappings, definitionPool, classes, choiceComponents, baseFeats) {
|
||||
return optionalClassFeatureMappings
|
||||
.map((mapping) => generateOptionalClassFeature(mapping, definitionPool, classes, choiceComponents, baseFeats))
|
||||
.filter(TypeScriptUtils.isNotNullOrUndefined);
|
||||
}
|
||||
export function generateOptionalClassFeature(optionalClassFeatureMapping, definitionPool, classes, choiceComponents, baseFeats) {
|
||||
const definitionKey = getDefinitionKey(optionalClassFeatureMapping);
|
||||
if (definitionKey === null) {
|
||||
return null;
|
||||
}
|
||||
return Object.assign(Object.assign({}, optionalClassFeatureMapping), { classFeature: ClassFeatureSimulators.simulateClassFeature(definitionKey, definitionPool, classes, choiceComponents, baseFeats), accessType: DefinitionPoolUtils.getDefinitionAccessType(definitionKey, definitionPool) });
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param optionalClassFeatures
|
||||
*/
|
||||
export function generateOptionalClassFeatureLookup(optionalClassFeatures) {
|
||||
return HelperUtils.generateNonNullLookup(optionalClassFeatures, getDefinitionKey);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import * as OptionalClassFeatureAccessors from './accessors';
|
||||
import * as OptionalClassFeatureDerivers from './derivers';
|
||||
import * as OptionalClassFeatureGenerators from './generators';
|
||||
import * as OptionalClassFeatureSimulators from './simulators';
|
||||
import * as OptionalClassFeatureTypings from './typings';
|
||||
import * as OptionalClassFeatureUtils from './utils';
|
||||
export * from './typings';
|
||||
export { OptionalClassFeatureAccessors, OptionalClassFeatureDerivers, OptionalClassFeatureGenerators, OptionalClassFeatureSimulators, OptionalClassFeatureUtils, };
|
||||
export default Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, OptionalClassFeatureAccessors), OptionalClassFeatureDerivers), OptionalClassFeatureGenerators), OptionalClassFeatureTypings), OptionalClassFeatureSimulators), OptionalClassFeatureUtils);
|
||||
@@ -0,0 +1,14 @@
|
||||
import { deriveDefinitionKey } from './derivers';
|
||||
/**
|
||||
*
|
||||
* @param classFeatureId
|
||||
* @param affectedClassFeatureId
|
||||
*/
|
||||
export function simulateOptionalClassFeatureContract(classFeatureId, affectedClassFeatureId) {
|
||||
return {
|
||||
affectedClassFeatureId,
|
||||
affectedClassFeatureDefinitionKey: affectedClassFeatureId ? deriveDefinitionKey(affectedClassFeatureId) : null,
|
||||
classFeatureDefinitionKey: classFeatureId ? deriveDefinitionKey(classFeatureId) : null,
|
||||
classFeatureId,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import { ClassFeatureAccessors } from '../ClassFeature';
|
||||
import { FeatureTypeEnum } from '../Core';
|
||||
import { getAffectedClassFeatureId, getClassFeature } from './accessors';
|
||||
/**
|
||||
*
|
||||
* @param optionalClassFeature
|
||||
*/
|
||||
export function getOptionalClassFeatureSpellListIds(optionalClassFeature) {
|
||||
const spellListIds = [];
|
||||
const classFeature = getClassFeature(optionalClassFeature);
|
||||
if (classFeature) {
|
||||
spellListIds.push(...ClassFeatureAccessors.getSpellListIds(classFeature));
|
||||
}
|
||||
return spellListIds;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param optionalClassFeature
|
||||
* @param data
|
||||
*/
|
||||
export function getUpdateMappingSpellListIdsToRemove(optionalClassFeature, data) {
|
||||
const spellListIds = [];
|
||||
const existingAffectedClassFeatureId = getAffectedClassFeatureId(optionalClassFeature);
|
||||
const classFeature = getClassFeature(optionalClassFeature);
|
||||
if (classFeature &&
|
||||
ClassFeatureAccessors.getFeatureType(classFeature) === FeatureTypeEnum.REPLACEMENT &&
|
||||
existingAffectedClassFeatureId !== null &&
|
||||
data.affectedClassFeatureId === null) {
|
||||
spellListIds.push(...getOptionalClassFeatureSpellListIds(optionalClassFeature));
|
||||
}
|
||||
return spellListIds;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param optionalClassFeature
|
||||
*/
|
||||
export function getRemoveMappingSpellListIds(optionalClassFeature) {
|
||||
return getOptionalClassFeatureSpellListIds(optionalClassFeature);
|
||||
}
|
||||
Reference in New Issue
Block a user