{"version":3,"file":"sneveil-simple-http.mjs","sources":["../../../projects/simple-http/src/lib/base-http.ts","../../../projects/simple-http/src/lib/simple-http.ts","../../../projects/simple-http/src/lib/simple-http-persist.ts","../../../projects/simple-http/src/lib/example.service.ts","../../../projects/simple-http/src/public-api.ts","../../../projects/simple-http/src/sneveil-simple-http.ts"],"sourcesContent":["import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { BehaviorSubject, catchError, finalize, Observable, of } from 'rxjs';\n\nexport class SimpleLoading {\n  private _loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n  get loading$(): Observable<boolean> {\n    return this._loading$.asObservable();\n  }\n\n  public setLoading(loading: boolean) {\n    this._loading$.next(loading);\n  }\n}\n\nexport class SimpleMessage {\n  private _status$: BehaviorSubject<number> = new BehaviorSubject<number>(-1);\n\n  get status$(): Observable<number> {\n    return this._status$.asObservable();\n  }\n\n  public setStatus(statusCode: number) {\n    this._status$.next(statusCode);\n  }\n\n  private _error$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n  get error$(): Observable<string> {\n    return this._error$.asObservable();\n  }\n\n  public setError(message: string) {\n    this._error$.next(message);\n  }\n\n  private _success$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n  get success$(): Observable<string> {\n    return this._success$.asObservable();\n  }\n\n  public setSuccess(message: string) {\n    this._success$.next(message);\n  }\n\n  public reset() {\n    this._error$.next('');\n    this._success$.next('');\n  }\n}\n\nexport class SimpleBaseService extends SimpleLoading {\n  public message: SimpleMessage = new SimpleMessage();\n\n  constructor() {\n    super();\n  }\n\n  protected clean<Entity>(apiRequest: Observable<Entity>): Observable<Entity | null> {\n    this.message.reset();\n    this.setLoading(true);\n\n    return apiRequest.pipe(\n      catchError((exception: HttpErrorResponse) => {\n        if (exception.status !== 0) {\n          this.message.setStatus(exception.status);\n          this.message.setError(exception.error);\n        } else {\n          this.message.setError('Oops ! please check your connexion.');\n        }\n        return of(null);\n      }),\n      finalize(() => {\n        this.setLoading(false);\n      })\n    );\n  }\n}\n\nexport class BaseHttp extends SimpleBaseService {\n  protected http!: HttpClient;\n  protected host = '';\n  protected service = '';\n  protected endpoint = '';\n\n  constructor() {\n    super();\n  }\n\n  public setHttp(http: HttpClient) {\n    this.http = http;\n  }\n\n  public setHost(host: string) {\n    this.host = host;\n  }\n\n  public setService(service: string) {\n    this.service = service;\n  }\n\n  public setEndpoint(endpoint: string) {\n    this.endpoint = endpoint;\n  }\n\n  protected slash(value: string | undefined): string {\n    if (value && value !== '') {\n      return '/' + value;\n    }\n    return '';\n  }\n\n  protected getService(): string {\n    return this.slash(this.service);\n  }\n\n  protected getEndpoint(): string {\n    return this.slash(this.endpoint);\n  }\n\n  protected init(params: SimpleModel) {\n    this.setHttp(params.http);\n    this.setHost(params.host);\n    this.setService(params.service ?? '');\n    this.setEndpoint(params.endpoint ?? '');\n  }\n}\n\nexport class SimplePersist<Entity> {\n  protected persist = false;\n  protected key = '';\n\n  protected content: BehaviorSubject<Entity | null> = new BehaviorSubject<Entity | null>(null);\n  protected expire = 0;\n  private timeout = 0;\n\n  private expireKey(): string {\n    return 'exp_' + this.key;\n  }\n\n  private timeoutKey(): string {\n    return 'tmt_' + this.key;\n  }\n\n  constructor(key?: string) {\n    this.key = key ?? '';\n  }\n\n  public config(config: PersistModel) {\n    this.persist = config.persist ?? false;\n    this.key = config.key ?? '';\n    this.expire = config.expire ?? 0;\n  }\n\n  public setValue(content: Entity) {\n    this.content.next(content);\n    this.timeout = new Date().getTime() + this.expire * 1000;\n    if (this.persist) {\n      this.saveLocal(content);\n    }\n    return this;\n  }\n\n  public getValue(): Observable<Entity | null> {\n    return this.content.asObservable();\n  }\n\n  public saveLocal(content: Entity) {\n    localStorage.setItem(this.key, btoa(JSON.stringify(content)));\n    if (this.expire > 0) {\n      localStorage.setItem(this.expireKey(), this.expire.toString());\n      localStorage.setItem(this.timeoutKey(), this.timeout.toString());\n    }\n    return this;\n  }\n\n  public loadLocal(): Observable<Entity | null> {\n    const content: string | null = localStorage.getItem(this.key);\n    const expire: string | null = localStorage.getItem(this.expireKey());\n    const timeout: string | null = localStorage.getItem(this.timeoutKey());\n    if (content != null) {\n      this.content.next(JSON.parse(atob(content)) as Entity);\n    }\n    if (expire != null) {\n      this.expire = +expire;\n    }\n    if (timeout != null) {\n      this.timeout = +timeout;\n    }\n    return this.content.asObservable();\n  }\n\n  public hasLocal(): boolean {\n    this.loadLocal().subscribe((value) => {\n      return value !== null;\n    });\n    return false;\n  }\n\n  public inDelay(): boolean {\n    return Date.now() - this.timeout <= this.expire * 1000;\n  }\n\n  public cleanLocal() {\n    localStorage.removeItem(this.key);\n    localStorage.removeItem(this.expireKey());\n    localStorage.removeItem(this.timeoutKey());\n    return this;\n  }\n}\n\nexport interface SimpleModel {\n  http: HttpClient;\n  host: string;\n  service?: string;\n  endpoint?: string;\n}\n\nexport interface PersistModel {\n  persist?: boolean;\n  key?: string;\n  expire?: number;\n}\n\nexport class SimpleObservable<Entity> {\n  init(initial: Entity) {\n    this._value$.next(initial);\n    return this;\n  }\n\n  protected _value$ = new BehaviorSubject<Entity>(undefined!);\n  get value$(): Observable<Entity> {\n    return this._value$.asObservable();\n  }\n\n  public change(value: Entity) {\n    this._value$.next(value);\n  }\n\n  public value(): Entity {\n    return this._value$.value;\n  }\n}\n\nexport class SimpleListObservable<Entity> {\n  protected _items$ = new BehaviorSubject<Entity[]>([]);\n\n  init(initial: Entity[]) {\n    this._items$.next(initial);\n    return this;\n  }\n\n  get items$(): Observable<Entity[]> {\n    return this._items$.asObservable();\n  }\n\n  public includes(value: Entity): boolean {\n    return this._items$.value.includes(value);\n  }\n\n  public change(value: Entity[]) {\n    this._items$.next(value);\n  }\n\n  public value(): Entity[] {\n    return this._items$.value;\n  }\n\n  public addItem(value: Entity) {\n    this._items$.next([...this._items$.value, value]);\n  }\n\n  public removeItem(value: Entity) {\n    this._items$.next(this._items$.value.filter((item) => item !== value));\n  }\n}\n","import { Observable } from 'rxjs';\nimport { BaseHttp, SimpleModel } from './base-http';\n\nexport class SimpleHttp<Entity> extends BaseHttp {\n  constructor(config: SimpleModel) {\n    super();\n    this.init(config);\n  }\n\n  public getList(): Observable<Entity[] | null> {\n    return this.clean(\n      this.http.get<Entity[]>(`${this.host}${this.getService()}${this.getEndpoint()}`)\n    );\n  }\n\n  public get(id?: string): Observable<Entity | null> {\n    return this.clean(\n      this.http.get<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`\n      )\n    );\n  }\n\n  public post(data: unknown): Observable<Entity | null> {\n    return this.clean(\n      this.http.post<Entity>(`${this.host}${this.getService()}${this.getEndpoint()}`, data)\n    );\n  }\n\n  public put(id: string, data: unknown): Observable<Entity | null> {\n    return this.clean(\n      this.http.put<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`,\n        data\n      )\n    );\n  }\n\n  public patch(id: string, data: unknown): Observable<Entity | null> {\n    return this.clean(\n      this.http.patch<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`,\n        data\n      )\n    );\n  }\n\n  public delete(id: string): Observable<Entity | null> {\n    return this.clean(\n      this.http.delete<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`\n      )\n    );\n  }\n}\n\nexport class SimpleHttpList<Entity> extends BaseHttp {\n  constructor(config: SimpleModel) {\n    super();\n    this.init(config);\n  }\n\n  public getList(): Observable<Entity[] | null> {\n    return this.clean(\n      this.http.get<Entity[]>(`${this.host}${this.getService()}${this.getEndpoint()}`)\n    );\n  }\n}\n\nexport class SimpleHttpGet<Entity> extends BaseHttp {\n  constructor(config: SimpleModel) {\n    super();\n    this.init(config);\n  }\n\n  public get(id?: string): Observable<Entity | null> {\n    return this.clean(\n      this.http.get<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`\n      )\n    );\n  }\n}\n\nexport class SimpleHttpPost<Entity> extends BaseHttp {\n  constructor(config: SimpleModel) {\n    super();\n    this.init(config);\n  }\n\n  public post(data: unknown): Observable<Entity | null> {\n    return this.clean(\n      this.http.post<Entity>(`${this.host}${this.getService()}${this.getEndpoint()}`, data)\n    );\n  }\n}\n\nexport class SimpleHttpPut<Entity> extends BaseHttp {\n  constructor(config: SimpleModel) {\n    super();\n    this.init(config);\n  }\n\n  public put(id: string, data: unknown): Observable<Entity | null> {\n    return this.clean(\n      this.http.put<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`,\n        data\n      )\n    );\n  }\n}\n\nexport class SimpleHttpPatch<Entity> extends BaseHttp {\n  constructor(config: SimpleModel) {\n    super();\n    this.init(config);\n  }\n\n  public patch(id: string, data: unknown): Observable<Entity | null> {\n    return this.clean(\n      this.http.patch<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`,\n        data\n      )\n    );\n  }\n}\n\nexport class SimpleHttpDelete<Entity> extends BaseHttp {\n  constructor(config: SimpleModel) {\n    super();\n    this.init(config);\n  }\n\n  public delete(id: string): Observable<Entity | null> {\n    return this.clean<Entity>(\n      this.http.delete<Entity>(\n        `${this.host}${this.getService()}${this.getEndpoint()}${this.slash(id)}`\n      )\n    );\n  }\n}\n","import { PersistModel, SimpleModel, SimplePersist } from './base-http';\r\nimport { SimpleHttpGet, SimpleHttpList, SimpleHttpPost } from './simple-http';\r\n\r\nexport class SimpleHttpListPersist<Entity> extends SimpleHttpList<Entity> {\r\n  constructor(config: SimpleModel) {\r\n    super(config);\r\n  }\r\n\r\n  private _data = new SimplePersist<Entity[]>();\r\n\r\n  public config(config: PersistModel) {\r\n    this._data.config(config);\r\n    return this;\r\n  }\r\n\r\n  private loadRequest() {\r\n    this.getList().subscribe((data) => {\r\n      if (data) {\r\n        this._data.setValue(data);\r\n      }\r\n    });\r\n  }\r\n\r\n  public load() {\r\n    if (this._data.hasLocal() && this._data.inDelay()) {\r\n      return;\r\n    }\r\n    this.loadRequest();\r\n  }\r\n\r\n  get data() {\r\n    return this._data.getValue();\r\n  }\r\n\r\n  public refresh() {\r\n    this.loadRequest();\r\n  }\r\n\r\n  public reset() {\r\n    this._data.cleanLocal();\r\n  }\r\n\r\n  public update(data: Entity[]) {\r\n    this._data.setValue(data);\r\n  }\r\n\r\n  public addItem(item: Entity) {\r\n    const items = this._data.getValue();\r\n    items.subscribe(value => {\r\n      if (value) {\r\n\r\n        value?.push(item)\r\n        this._data.setValue(value);\r\n      }\r\n    })\r\n  }\r\n}\r\n\r\nexport class SimpleHttpGetPersist<Entity> extends SimpleHttpGet<Entity> {\r\n  constructor(config: SimpleModel) {\r\n    super(config);\r\n  }\r\n\r\n  private _data = new SimplePersist<Entity>();\r\n\r\n  public config(config: PersistModel) {\r\n    this._data.config(config);\r\n    return this;\r\n  }\r\n\r\n  private loadRequest(id?: string) {\r\n    this.get(id).subscribe((data) => {\r\n      if (data) {\r\n        this._data.setValue(data);\r\n      }\r\n    });\r\n  }\r\n\r\n  public load(id?: string) {\r\n    if (this._data.hasLocal() && this._data.inDelay()) {\r\n      return;\r\n    }\r\n    this.loadRequest(id);\r\n  }\r\n\r\n  get data() {\r\n    return this._data.getValue();\r\n  }\r\n\r\n  public refresh() {\r\n    this.loadRequest();\r\n  }\r\n\r\n  public reset() {\r\n    this._data.cleanLocal();\r\n  }\r\n\r\n  public update(data: Entity) {\r\n    this._data.setValue(data);\r\n  }\r\n}\r\n\r\nexport class SimpleHttpPostPersist<Entity> extends SimpleHttpPost<Entity> {\r\n  constructor(config: SimpleModel) {\r\n    super(config);\r\n  }\r\n\r\n  private _data = new SimplePersist<Entity>();\r\n\r\n  public config(config: PersistModel) {\r\n    this._data.config(config);\r\n    return this;\r\n  }\r\n\r\n  private loadRequest(data: unknown) {\r\n    this.post(data).subscribe((data) => {\r\n      if (data) {\r\n        this._data.setValue(data);\r\n      }\r\n    });\r\n  }\r\n\r\n  public send(data: unknown) {\r\n    if (this._data.hasLocal() && this._data.inDelay()) {\r\n      return;\r\n    }\r\n    this.loadRequest(data);\r\n  }\r\n\r\n  public resend(data: unknown) {\r\n    this.loadRequest(data);\r\n  }\r\n\r\n  public reset() {\r\n    this._data.cleanLocal();\r\n  }\r\n\r\n  public get data() {\r\n    return this._data.getValue();\r\n  }\r\n\r\n  public update(data: Entity) {\r\n    this._data.setValue(data);\r\n  }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { SimpleHttp, SimpleHttpDelete, SimpleHttpGet, SimpleHttpList, SimpleHttpPatch, SimpleHttpPost, SimpleHttpPut } from './simple-http';\r\n\r\nconst API_HOST = '';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ExampleService {\r\n  private http: HttpClient = inject(HttpClient);\r\n\r\n  // the service, keep empty if no service\r\n  private service = 'the-service';\r\n\r\n  entity: SimpleHttp<Entity> = new SimpleHttp<Entity>({\r\n    http: this.http,\r\n    host: API_HOST,\r\n    service: this.service,\r\n    endpoint: 'entities'\r\n  });\r\n\r\n  getAll: SimpleHttpList<Entity> = new SimpleHttpList<Entity>({\r\n    http: this.http,\r\n    host: API_HOST,\r\n    service: this.service,\r\n    endpoint: 'entities'\r\n  });\r\n\r\n  get: SimpleHttpGet<Entity> = new SimpleHttpGet<Entity>({\r\n    http: this.http,\r\n    host: API_HOST,\r\n    service: this.service,\r\n    endpoint: 'entities'\r\n  });\r\n\r\n  post: SimpleHttpPost<Entity> = new SimpleHttpPost<Entity>({\r\n    http: this.http,\r\n    host: API_HOST,\r\n    service: this.service,\r\n    endpoint: 'entities'\r\n  });\r\n\r\n  put: SimpleHttpPut<Entity> = new SimpleHttpPut<Entity>({\r\n    http: this.http,\r\n    host: API_HOST,\r\n    service: this.service,\r\n    endpoint: 'entities'\r\n  });\r\n\r\n  patch: SimpleHttpPatch<Entity> = new SimpleHttpPatch<Entity>({\r\n    http: this.http,\r\n    host: API_HOST,\r\n    service: this.service,\r\n    endpoint: 'entities'\r\n  });\r\n\r\n  delete: SimpleHttpDelete<Entity> = new SimpleHttpDelete<Entity>({\r\n    http: this.http,\r\n    host: API_HOST,\r\n    service: this.service,\r\n    endpoint: 'entities'\r\n  });\r\n\r\n  // ------------------------------------------\r\n}\r\n\r\ninterface Entity {\r\n  id: number,\r\n  title: string\r\n}\r\n","/*\n * Public API Surface of simple-http\n */\n\nexport * from './lib/base-http';\nexport * from './lib/simple-http';\nexport * from './lib/simple-http-persist';\nexport * from './lib/example.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}