-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.web.js.map
1 lines (1 loc) · 18.4 KB
/
index.web.js.map
1
{"version":3,"file":"index.web.js","sources":["src/Store/injectable.store.ts","src/Store/instance.store.ts","src/Store/component.store.ts","src/Core/Core.ts","src/Decorators/inject.ts","src/Decorators/injectable.ts","src/Decorators/component.ts"],"sourcesContent":["export class InjectableStore {\r\n\r\n private set: Set<any>;\r\n\r\n constructor(){\r\n this.set = new Set<any>();\r\n }\r\n\r\n register(fn: any){\r\n this.set.add( fn );\r\n }\r\n\r\n has(fn: any): boolean{\r\n return this.set.has( fn );\r\n }\r\n\r\n}\r\n\r\nexport const INJECTABLE_STORE = new InjectableStore();\r\n\r\n\r\n/**\r\n * Injectable Store\r\n * Data Structure\r\n * [ ...providers ]\r\n */","import { ProviderConfig } from \"../Core/Interface\";\r\nimport { instanize } from \"../Core/Core\";\r\nimport { INJECTABLE_STORE } from \"./injectable.store\";\r\n\r\nexport class InstanceStore {\r\n\r\n private map: Map<any, any>\r\n\r\n constructor() {\r\n this.map = new Map<any, any>();\r\n }\r\n\r\n add( injectableClassList?: Array<any|ProviderConfig> ): InstanceStore{\r\n let newMap = this.construct( injectableClassList );\r\n newMap.forEach((val, key) => {\r\n this.map.set(key, val);\r\n });\r\n return this;\r\n }\r\n\r\n assign(instanceStore: InstanceStore): InstanceStore{\r\n let innerMap = this.map;\r\n let outterMap = instanceStore.getMap();\r\n let newMap = new Map();\r\n let newInstanceStore = new InstanceStore();\r\n\r\n innerMap.forEach((val, key) => {\r\n newMap.set(key, val);\r\n })\r\n outterMap.forEach((val, key) => {\r\n newMap.set(key, val);\r\n })\r\n\r\n newInstanceStore.setMap(newMap);\r\n return newInstanceStore;\r\n }\r\n\r\n has(token: any): boolean{\r\n return this.map.has(token);\r\n }\r\n\r\n get(token: any): boolean{\r\n return this.map.get(token);\r\n }\r\n\r\n setMap(map: Map<any, any>){ this.map = map; }\r\n getMap(): Map<any, any> { return this.map; }\r\n\r\n private construct( injectableClassList?: Array<any|ProviderConfig> ): Map<any, any>{\r\n let map: Map<any, any> = new Map();\r\n\r\n if( injectableClassList ){ \r\n let list = this.reSort( injectableClassList );\r\n\r\n list.forEach(item => {\r\n let value;\r\n\r\n if( INJECTABLE_STORE.has(item.provider) === false ){\r\n throw new Error('未能找到可注入类,请用@Injectable()修饰');\r\n }\r\n\r\n if( item.useClass ){\r\n value = instanize(item.useClass);\r\n }else if( item.useValue ){\r\n value = item.useValue;\r\n }else if( item.useExistInstance ){\r\n value = this.map.get( item.provider );\r\n }\r\n map.set( item.provider, value );\r\n });\r\n }\r\n\r\n return map; \r\n }\r\n\r\n private reSort( injectableClassList?: Array<any|ProviderConfig> ): Array<any>{\r\n let normal = [];\r\n let useVal = [];\r\n let useClass = [];\r\n let useExist = [];\r\n\r\n if( injectableClassList === undefined || injectableClassList.length === 0 ){\r\n return [];\r\n }\r\n\r\n injectableClassList.forEach(item => {\r\n if( typeof item === 'function' ) {\r\n normal.push( { provider: item, useClass: item } );\r\n }else if( typeof item === 'object' ){\r\n if(item.useClass){\r\n useClass.push(item)\r\n }else if(item.useValue){\r\n useVal.push(item);\r\n }else if(item.useExistInstance){\r\n useExist.push(item);\r\n }else{\r\n console.warn(`${JSON.stringify(item)}未能成功配置,请传入ProviderConfig类型`);\r\n }\r\n }else{\r\n throw new Error(`${item.toString()}不是合法的类型,请传入Function或者ProviderConfig类型`);\r\n }\r\n });\r\n\r\n return normal.concat(useClass, useVal, useExist);\r\n }\r\n\r\n}\r\n\r\nexport const INSTANCE_STORE = new InstanceStore();\r\n\r\n/**\r\n * Instance Store\r\n * Data Structure\r\n * [\r\n * <Provider, instance>,\r\n * <Provider, instance>,\r\n * <Provider, instance>\r\n * ...\r\n * ]\r\n */","import { ComponentStoreConfig } from \"../Core/Interface\";\r\nimport { InstanceStore } from \"./instance.store\";\r\n\r\nexport class ComponentStore {\r\n\r\n private map: Map<any, ComponentStoreConfig>;\r\n\r\n constructor() {\r\n this.map = new Map<any, ComponentStoreConfig>();\r\n }\r\n\r\n has(component: any): boolean {\r\n return this.map.has(component);\r\n }\r\n\r\n add(component: any, config?: ComponentStoreConfig): ComponentStore{\r\n let componentStoreConfig: ComponentStoreConfig = { priority: 0, restrict: true, instanceStore: new InstanceStore() };\r\n this.map.set(component, config || componentStoreConfig);\r\n return this;\r\n }\r\n\r\n get(component: any): ComponentStoreConfig {\r\n return this.map.get(component);\r\n }\r\n\r\n getInstanceByType(component: any, paramType: any): any{\r\n if( this.map.has(component) ){\r\n let config: ComponentStoreConfig = this.map.get(component);\r\n return config.instanceStore.get(paramType);\r\n }else{\r\n return null;\r\n }\r\n }\r\n\r\n register(componnet: any, config?: ComponentStoreConfig) {\r\n let componentStoreConfig: ComponentStoreConfig = { priority: 0, restrict: true, instanceStore: new InstanceStore() };\r\n this.map.set(componnet, config || componentStoreConfig);\r\n }\r\n\r\n update(component: any, config: ComponentStoreConfig) {\r\n this.map.set(component, config);\r\n }\r\n\r\n getLocalInstanceStore(component: any): InstanceStore{\r\n if( this.map.has(component) && this.map.get(component).instanceStore ) {\r\n return this.map.get(component).instanceStore;\r\n }else{\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport const COMPONENT_STORE = new ComponentStore();\r\n\r\n/**\r\n * Component Store\r\n * Data Structure\r\n * [\r\n * <Component, { priority, localInjector }>,\r\n * <Component, { priority, localInjector }>,\r\n * ...\r\n * ]\r\n */","/// <reference path=\"../../node_modules/reflect-metadata/reflect-metadata.d.ts\" />\r\n\r\nimport 'reflect-metadata';\r\n\r\nimport { ComponentConfig, ComponentStoreConfig } from './Interface';\r\nimport { INJECTABLE_STORE } from '../Store/injectable.store'\r\nimport { INSTANCE_STORE } from '../Store/instance.store';\r\nimport { COMPONENT_STORE } from '../Store/component.store';\r\n\r\nexport function instanize(Fn){\r\n let args = Reflect.getMetadata('design:paramtypes', Fn) || [];\r\n\r\n args = args.map(paramType => {\r\n if( INJECTABLE_STORE.has(paramType) ){\r\n return instanize(paramType);\r\n }else{\r\n throw new Error(`${paramType.name} is not an injectable class, please add @Injectable() to register class`);\r\n }\r\n });\r\n\r\n let instance = Object.create(Fn.prototype);\r\n Fn.apply(instance, args);\r\n return instance;\r\n}\r\n\r\nexport function construct(Fn) {\r\n let args = Reflect.getMetadata('design:paramtypes', Fn) || [];\r\n let config: ComponentStoreConfig = COMPONENT_STORE.get(Fn);\r\n let componentInstance = Object.create(Fn.prototype);\r\n\r\n if( config === undefined ){\r\n throw new Error(`Cannot construct ${ Fn.name }, please add @Component decorator`);\r\n }\r\n\r\n args = args.map(paramType => {\r\n\r\n // @Inject\r\n if( config.priority === 2 ){\r\n let instance = COMPONENT_STORE.getInstanceByType(Fn, paramType);\r\n if( instance === undefined && config.restrict ){\r\n throw new Error(`Cannot instanize ${ paramType.name } for ${ Fn.name }, please add ${ paramType.name } to the provider list.`);\r\n }else if( instance === undefined && !config.restrict ){\r\n return null\r\n }else{\r\n return instance;\r\n }\r\n }\r\n\r\n // @Component\r\n if( config.priority === 1 ){\r\n let localInstance = COMPONENT_STORE.getInstanceByType(Fn, paramType);\r\n let globalInstance = INSTANCE_STORE.get(paramType);\r\n let instance = localInstance || globalInstance;\r\n if( instance === undefined && config.restrict ){\r\n throw new Error(`Cannot instanize ${ paramType.name } for ${ Fn.name }, please add ${ paramType.name } to the provider list.`);\r\n }else if( instance === undefined && !config.restrict ){\r\n return null\r\n }else{\r\n return instance;\r\n }\r\n }\r\n\r\n // Other\r\n if( isNaN(config.priority) || config.priority < 1 || config.priority > 2 ){\r\n throw new Error(`Incorrect config for ${ Fn.name }`);\r\n }\r\n });\r\n\r\n Fn.apply(componentInstance, args);\r\n return componentInstance;\r\n}\r\n\r\nexport function bootstrap(config: ComponentConfig) {\r\n INSTANCE_STORE.add( config.provider );\r\n}\r\n ","import { InstanceStore } from \"../Store/instance.store\";\r\nimport { COMPONENT_STORE } from '../Store/component.store';\r\nimport { ComponentStoreConfig } from \"../Core/Interface\";\r\n\r\nexport function Inject(...providers){\r\n return function(target){\r\n const localInstanceStore: InstanceStore = new InstanceStore().add(providers || []);\r\n let componentConfig: ComponentStoreConfig = { priority: 2, restrict: true, instanceStore: localInstanceStore };\r\n COMPONENT_STORE.register(target, componentConfig);\r\n return target;\r\n }\r\n}","import { INJECTABLE_STORE } from \"../Store/injectable.store\";\r\n\r\nexport function Injectable(){\r\n return function(target){\r\n INJECTABLE_STORE.register(target);\r\n return target;\r\n }\r\n}","import { ComponentConfig, ComponentStoreConfig } from '../Core/Interface';\r\nimport { INSTANCE_STORE, InstanceStore } from '../Store/instance.store'\r\nimport { COMPONENT_STORE } from '../Store/component.store';\r\n\r\nexport function Component(componentConfig?: ComponentConfig) {\r\n return function(target) {\r\n let strict = false;\r\n let localInstanceStore: InstanceStore = new InstanceStore();\r\n if(componentConfig) {\r\n strict = !!componentConfig.restrict;\r\n localInstanceStore.add(componentConfig.provider || []);\r\n }\r\n let theConfig: ComponentStoreConfig = { priority: 1, restrict: strict, instanceStore: localInstanceStore };\r\n COMPONENT_STORE.register(target, theConfig);\r\n return target;\r\n }\r\n}"],"names":[],"mappings":"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"}