@sd-angular/core 0.0.905 → 0.0.906

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  import { InjectionToken, ɵɵdefineInjectable, ɵɵinject, Injectable, Inject, Optional } from '@angular/core';
2
2
  import { __awaiter, __classPrivateFieldGet } from 'tslib';
3
3
  import hash from 'object-hash';
4
- import { BehaviorSubject } from 'rxjs';
5
- import { switchMap } from 'rxjs/operators';
4
+ import { Subject } from 'rxjs';
5
+ import { startWith, switchMap } from 'rxjs/operators';
6
6
 
7
7
  const SETTING_CONFIG = new InjectionToken('setting.configuration');
8
8
 
@@ -168,7 +168,7 @@ class SdSettingService {
168
168
  }
169
169
  }
170
170
  if (!__classPrivateFieldGet(this, _subject)[hashKey]) {
171
- __classPrivateFieldGet(this, _subject)[hashKey] = new BehaviorSubject(option === null || option === void 0 ? void 0 : option.default);
171
+ __classPrivateFieldGet(this, _subject)[hashKey] = new Subject();
172
172
  }
173
173
  const get = __classPrivateFieldGet(this, _get).call(this, hashKey, option);
174
174
  const set = __classPrivateFieldGet(this, _set).call(this, hashKey, option);
@@ -180,7 +180,7 @@ class SdSettingService {
180
180
  has,
181
181
  remove,
182
182
  subject: __classPrivateFieldGet(this, _subject)[hashKey],
183
- observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(switchMap(get))
183
+ observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(startWith(option === null || option === void 0 ? void 0 : option.default), switchMap(get))
184
184
  };
185
185
  }
186
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-setting.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session' | 'server';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOption) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOption) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOption) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: BehaviorSubject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (option?.type === 'server') {\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<any>(option?.default);\r\n }\r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else if (option?.type === 'server') {\r\n await this.configuration?.remove(key, option);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-setting.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session' | 'server';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: Subject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOption) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOption) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOption) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: Subject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (option?.type === 'server') {\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new Subject<any>();\r\n }\r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(option?.default), switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else if (option?.type === 'server') {\r\n await this.configuration?.remove(key, option);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}