Skip to content

Commit

Permalink
♻️ replace ‘switch’
Browse files Browse the repository at this point in the history
  • Loading branch information
yaleiyale committed Nov 23, 2023
1 parent 7088f6c commit bc212aa
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 32 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Want to support more platforms? If you want to contribute and don't want to make
- Use your *parms* interface. In `config.ts`, add parameter configurations about your *uploader* to provide choices and act as constructors for *uploader* at run time.
- Implement your *uploader* and *settings panel* by adding files to `src/Uploader, src/Fragment`.
- In `settings-tab.ts`,add your *fragment* to show and set parameters in the setting-tab.
- Add your *uploader* to the switch judgment block in `main.ts`.
- Add your *uploader* to the *UploaderMap* in `main.ts`.
- Test it.

It's done! 😽
Expand Down
42 changes: 11 additions & 31 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,38 +60,18 @@ export default class Emo extends Plugin {
startUpload (files: FileList, evt: Event, editor: Editor): void {
let uploader: EmoUploader
if (files.length > 0) {
switch (this.config.choice) {
case HostingProvider.Github:
uploader = new GithubUploader(this.config.github_parms)
break
case HostingProvider.ImgURL:
uploader = new ImgurlUploader(this.config.imgurl_parms)
break
case HostingProvider.Cloudinary:
uploader = new CloudinaryUploader(this.config.cloudinary_parms)
break
case HostingProvider.Smms:
uploader = new SmmsUploader(this.config.smms_parms)
break
case HostingProvider.Imgbb:
uploader = new ImgbbUploader(this.config.imgbb_parms)
break
case HostingProvider.Imgur:
uploader = new ImgurUploader(this.config.imgur_parms)
break
case HostingProvider.Catbox:
uploader = new CatboxUploader(this.config.catbox_parms)
break
case HostingProvider.Chevereto:
uploader = new CheveretoUploader(this.config.chevereto_parms)
break
case HostingProvider.Alist:
uploader = new AlistUploader(this.config.alist_parms)
break
default:
console.log(new Notice(t('broken'), 2000))
return
const UploaderMap = {
[HostingProvider.Github]: () => new GithubUploader(this.config.github_parms),
[HostingProvider.ImgURL]: () => new ImgurlUploader(this.config.imgurl_parms),
[HostingProvider.Cloudinary]: () => new CloudinaryUploader(this.config.cloudinary_parms),
[HostingProvider.Smms]: () => new SmmsUploader(this.config.smms_parms),
[HostingProvider.Imgbb]: () => new ImgbbUploader(this.config.imgbb_parms),
[HostingProvider.Imgur]: () => new ImgurUploader(this.config.imgur_parms),
[HostingProvider.Catbox]: () => new CatboxUploader(this.config.catbox_parms),
[HostingProvider.Chevereto]: () => new CheveretoUploader(this.config.chevereto_parms),
[HostingProvider.Alist]: () => new AlistUploader(this.config.alist_parms)
}
uploader = UploaderMap[this.config.choice]()
if (uploader.isValid()) { // check the necessary parameters
evt.preventDefault()
for (const file of files) {
Expand Down

0 comments on commit bc212aa

Please sign in to comment.