Skip to content

Commit 4762a00

Browse files
committed
remove reflect-metadata
1 parent 8873fc5 commit 4762a00

7 files changed

+10
-13
lines changed

package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "reto",
3-
"version": "0.4.0",
3+
"version": "0.4.1",
44
"main": "index.js",
55
"repository": "https://github.com/awmleer/reto",
66
"description": "React store with hooks.",
@@ -37,6 +37,5 @@
3737
"typescript": "^3.4.5"
3838
},
3939
"dependencies": {
40-
"reflect-metadata": "^0.1.12"
4140
}
4241
}

rollup.config.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
module.exports = {
22
external: [
33
'react',
4-
'reflect-metadata',
54
],
65
input: 'lib/index.js',
76
output: {

src/consumer.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as React from 'react'
22
import {ReactNode, useContext, useDebugValue} from 'react'
33
import {ReactElement} from 'react'
4+
import {contextMap} from './shared-map'
45
import {Store} from './store'
56
import {contextSymbol} from './symbols'
67

@@ -15,7 +16,7 @@ export function Consumer<T>(props: Props<T>) {
1516
}
1617

1718
export function useStore<T>(S: Store<T>, optional?: boolean) {
18-
const Context = Reflect.getMetadata(contextSymbol, S)
19+
const Context = contextMap.get(S) // Reflect.getMetadata(contextSymbol, S)
1920
if (!Context) {
2021
if (!optional) {
2122
console.error(`No store context of "${S.name}" found. Did you provide it?`)

src/index.ts

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import 'reflect-metadata'
2-
31
export {useStore, Consumer} from './consumer'
42
export {Provider, ProviderProps, withProvider} from './provider'
53
export {Store} from './store'

src/provider.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as React from 'react'
22
import {forwardRef, MutableRefObject, ReactNode, useCallback, useRef, useState} from 'react'
33
import {MemoChildren} from './memo-children'
4+
import {contextMap} from './shared-map'
45
import {StateBox} from './state-box'
56
import {Store} from './store'
67
import {contextSymbol} from './symbols'
@@ -28,10 +29,10 @@ export const Provider = forwardRef(function Provider<T>(props: Props<T>, ref: Mu
2829
updateRef.current = true
2930
}
3031

31-
let Context = Reflect.getMetadata(contextSymbol, props.of)
32+
let Context = contextMap.get(props.of) //Reflect.getMetadata(contextSymbol, props.of)
3233
if (!Context) {
3334
Context = React.createContext(null)
34-
Reflect.defineMetadata(contextSymbol, Context, props.of)
35+
contextMap.set(props.of, Context) //Reflect.defineMetadata(contextSymbol, Context, props.of)
3536
}
3637

3738
const onReactorChange = useCallback(function(value) {

src/shared-map.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import {Context} from 'react'
2+
import {Store} from './store'
3+
4+
export const contextMap = new Map<Store<any>, Context<any>>()

yarn.lock

-5
Original file line numberDiff line numberDiff line change
@@ -4067,11 +4067,6 @@ redent@^3.0.0:
40674067
indent-string "^4.0.0"
40684068
strip-indent "^3.0.0"
40694069

4070-
reflect-metadata@^0.1.12:
4071-
version "0.1.13"
4072-
resolved "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08"
4073-
integrity sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=
4074-
40754070
regenerator-runtime@^0.13.2:
40764071
version "0.13.3"
40774072
resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"

0 commit comments

Comments
 (0)