initial release

This commit is contained in:
2024-02-29 10:23:41 -06:00
commit 5146c8e919
210 changed files with 11040 additions and 0 deletions

View 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;
}