From a8587b5dbd8582a8923f2c5df27328cbcfd92220 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Wed, 17 Oct 2018 20:59:59 -0700 Subject: [PATCH] Pull convert presets out to top level options --- js/components/MilkdropWindow/Presets.js | 6 +++--- js/components/MilkdropWindow/index.js | 15 +++++++++------ js/components/MilkdropWindow/options.ts | 12 ++++++++++++ js/types.ts | 1 + 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/js/components/MilkdropWindow/Presets.js b/js/components/MilkdropWindow/Presets.js index 62fe1688..12a83758 100644 --- a/js/components/MilkdropWindow/Presets.js +++ b/js/components/MilkdropWindow/Presets.js @@ -40,12 +40,14 @@ export default class Presets { initialPresets, getRest, presetConverterEndpoint, + loadConvertPreset, randomize = true }) { this._keys = keys; // Alphabetical list of preset names this._presets = initialPresets; // Presets indexed by name this._getRest = getRest; // An async function to get the rest of the presets this._presetConverterEndpoint = presetConverterEndpoint; + this._loadConvertPreset = loadConvertPreset; this._history = []; // Indexes into _keys this._randomize = randomize; @@ -112,9 +114,7 @@ export default class Presets { } async _convertPreset(file) { - const { - convertPreset - } = await import(/* webpackChunkName: "milkdrop-preset-converter" */ "milkdrop-preset-converter-aws"); + const convertPreset = await this._loadConvertPreset(); return convertPreset(file, this._presetConverterEndpoint); } diff --git a/js/components/MilkdropWindow/index.js b/js/components/MilkdropWindow/index.js index eda1387a..ce2c7b49 100644 --- a/js/components/MilkdropWindow/index.js +++ b/js/components/MilkdropWindow/index.js @@ -43,15 +43,18 @@ class PresetsLoader extends React.Component { loadInitialPreset(this.options) ]); + const presets = new Presets({ + keys: presetKeys, + initialPresets: minimalPresets, + getRest: this.options.loadNonMinimalPresets, + presetConverterEndpoint: this.options.presetConverterEndpoint, + loadConvertPreset: this.options.loadConvertPreset + }); + this.setState({ butterchurn, initialPreset, - presets: new Presets({ - keys: presetKeys, - initialPresets: minimalPresets, - getRest: this.options.loadNonMinimalPresets, - presetConverterEndpoint: this.options.presetConverterEndpoint - }) + presets }); screenfull.onchange(this._handleFullscreenChange); } diff --git a/js/components/MilkdropWindow/options.ts b/js/components/MilkdropWindow/options.ts index 0fa5bec0..64476d09 100644 --- a/js/components/MilkdropWindow/options.ts +++ b/js/components/MilkdropWindow/options.ts @@ -38,7 +38,19 @@ async function loadNonMinimalPresets() { "butterchurn-presets/lib/butterchurnPresetsNonMinimal.min")).getPresets(); } +async function loadConvertPreset() { + const { convertPreset } = + // prettier-ignore + await import( + /* webpackChunkName: "milkdrop-preset-converter" */ + // @ts-ignore + "milkdrop-preset-converter-aws" + ); + return convertPreset; +} + const options: ButterchurnOptions = { + loadConvertPreset, loadInitialDependencies, loadNonMinimalPresets, presetConverterEndpoint: diff --git a/js/types.ts b/js/types.ts index a6b689e1..4eace24c 100644 --- a/js/types.ts +++ b/js/types.ts @@ -117,6 +117,7 @@ export interface InitialButterchurnDependencies { export interface ButterchurnOptions { loadNonMinimalPresets(): Promise; loadInitialDependencies(): Promise; + loadConvertPreset(): Promise; presetConverterEndpoint: string; initialMilkdropPresetUrl?: string | null; initialButterchurnPresetUrl?: string | null;