Sha256: 40a5c5207246a9b73863d67efed77be8146b506259f18cd513b4e75d04378cb8

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

export type PluginBody = {
  display_name: string;
  class_namespace: string;
}

export type Plugin = {
  [key in string] : {
    modes: Array<PluginBody>;
    macros: Array<PluginBody>;
  }
}

// plugins.
export const AvailablePlugins = [
  {
    splatoon2: {
      modes: [
        { display_name: "splatoon2.guruguru", class_namespace: "ProconBypassMan::Splatoon2::Mode::Guruguru" },
      ],
      macros: [
        { display_name: "splatoon2.fast_return", class_namespace: "ProconBypassMan::Splatoon2::Macro::FastReturn" },
      ],
    }
  } as Plugin,
]

export const MacroNameMap = AvailablePlugins.reduce((hash, item: Plugin) => {
  for (var [name, plugin] of Object.entries(item)) {
    plugin.macros.forEach((macro: PluginBody) => {
      hash[macro.class_namespace] = macro.display_name
    })
  };
  return hash;
}, {} as any)

export const ModeNameMap = AvailablePlugins.reduce((hash, item: Plugin) => {
  for (var [name, plugin] of Object.entries(item)) {
    plugin.modes.forEach((mode: PluginBody) => {
      hash[mode.class_namespace] = mode.display_name
    })
  };
  return hash;
}, {} as any)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
procon_bypass_man-web-0.1.0 src/types/plugin.ts