initial release
This commit is contained in:
38
bizmatch/src/app/utils/utils.ts
Normal file
38
bizmatch/src/app/utils/utils.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { INFO, ConsoleFormattedStream, createLogger as _createLogger, stdSerializers } from "browser-bunyan";
|
||||
import { ListingCriteria } from "../models/main.model";
|
||||
|
||||
export function createGenericObject<T>(): T {
|
||||
// Ein leeres Objekt vom Typ T erstellen
|
||||
const ergebnis: Partial<T> = {};
|
||||
|
||||
// Für ein reales Interface funktioniert diese direkte Iteration nicht,
|
||||
// da Interfaces zur Compile-Zeit entfernt werden. Stattdessen könnten Sie
|
||||
// ein Dummy-Objekt oder spezifische Typtransformationen verwenden.
|
||||
// Hier nur als Pseudocode dargestellt, um die Idee zu vermitteln:
|
||||
for (const key in ergebnis) {
|
||||
ergebnis[key] = null; // oder undefined, je nach Bedarf
|
||||
}
|
||||
|
||||
return ergebnis as T;
|
||||
}
|
||||
|
||||
export function createLogger(name:string, level: number = INFO, options:any = {}){
|
||||
return _createLogger({
|
||||
name,
|
||||
streams:[{level, stream: new ConsoleFormattedStream()}],
|
||||
serializers:stdSerializers,
|
||||
src:true,
|
||||
...options,
|
||||
})
|
||||
}
|
||||
|
||||
export const getSessionStorageHandler = function(path,value,previous,applyData){
|
||||
sessionStorage.setItem('criteria',JSON.stringify(this));
|
||||
}
|
||||
|
||||
export function getCriteriaStateObject(){
|
||||
const initialState = createGenericObject<ListingCriteria>();
|
||||
initialState.listingsCategory='business';
|
||||
const storedState = sessionStorage.getItem('criteria');
|
||||
return storedState ? JSON.parse(storedState) : initialState;
|
||||
}
|
||||
Reference in New Issue
Block a user