From 6ad973b1fd6bf2a2e5d6896631ff7f909a2f6e58 Mon Sep 17 00:00:00 2001 From: Jungzl <35426360+Jungzl@users.noreply.github.com> Date: Wed, 13 Apr 2022 12:14:32 +0800 Subject: [PATCH] feat(preset): add `mobx` & `mobx-react-lite` (#155) Co-authored-by: Anthony Fu --- src/presets/index.ts | 4 ++++ src/presets/mobx-react-lite.ts | 12 ++++++++++++ src/presets/mobx.ts | 30 ++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 src/presets/mobx-react-lite.ts create mode 100644 src/presets/mobx.ts diff --git a/src/presets/index.ts b/src/presets/index.ts index 9be5da5..be62e96 100644 --- a/src/presets/index.ts +++ b/src/presets/index.ts @@ -1,4 +1,6 @@ /* eslint-disable object-shorthand */ +import mobx from './mobx' +import mobxReactLite from './mobx-react-lite' import nuxtCompositionApi from './nuxt-composition-api' import pinia from './pinia' import preact from './preact' @@ -37,6 +39,8 @@ export const presets = { '@vue/composition-api': vueCompositionApi, '@vueuse/core': vueuseCore, '@vueuse/head': vueuseHead, + 'mobx': mobx, + 'mobx-react-lite': mobxReactLite, 'pinia': pinia, 'preact': preact, 'quasar': quasar, diff --git a/src/presets/mobx-react-lite.ts b/src/presets/mobx-react-lite.ts new file mode 100644 index 0000000..480de7e --- /dev/null +++ b/src/presets/mobx-react-lite.ts @@ -0,0 +1,12 @@ +import type { ImportsMap } from '../types' +import { mobx } from './mobx' + +export default ({ + 'mobx-react-lite': [ + // https://pinia.esm.dev/api/modules/pinia.html#functions + ...mobx, + 'observer', + 'Observer', + 'useLocalObservable', + ], +}) diff --git a/src/presets/mobx.ts b/src/presets/mobx.ts new file mode 100644 index 0000000..62e29ce --- /dev/null +++ b/src/presets/mobx.ts @@ -0,0 +1,30 @@ +import type { ImportsMap } from '../types' + +export const mobx = [ + // https://mobx.js.org/api.html + 'makeObservable', + 'makeAutoObservable', + 'extendObservable', + 'observable', + 'action', + 'runInAction', + 'flow', + 'flowResult', + 'computed', + 'autorun', + 'reaction', + 'when', + 'onReactionError', + 'intercept', + 'observe', + 'onBecomeObserved', + 'onBecomeUnobserved', + 'toJS', +] + +export default ({ + mobx: [ + // https://mobx.js.org/api.html + ...mobx, + ], +})