UNPKG

jsm-utilities

Version:
179 lines (178 loc) 9.7 kB
export * from "./common"; import * as commonUtils from './common'; declare const utilities: { combineArrays: (arg: string[][], separator?: string) => string[]; chunkArray: <T>(arr: T[], chunkSize: number) => T[][]; applyOnChunkedArray: <T, R>(arr: T[] | undefined, chunkSize: number, callback: (chArr: T[], chunkIndex: number) => Promise<R>) => Promise<void>; transformTimeRangeToDates(timeRange: string, currentDate?: Date, rangeIn?: "past" | "future"): false | { start: Date; end: Date; }; isDateWithinLastNSeconds: (date: Date, seconds: number) => boolean; isDateWithinLastNMinutes: (date: Date, minutes: number) => boolean; isDateWithinLastNHours: (date: Date, hours: number) => boolean; isDateWithinLastNDays: (date: Date, days: number) => boolean; isDateWithinLastNWeeks: (date: Date, weeks: number) => boolean; isDateWithinLastNMonths: (date: Date, months: number) => boolean; isDateWithinLastNYears: (date: Date, years: number) => boolean; isDateWithinLastNTimeRange: (date: Date, timeRange: string) => boolean; isDateRangObject: (obj: any) => obj is { start: Date; end: Date; }; getSecondsDifference(endDate: Date, startDate: Date): number; millisecondsToTimeString: (milli: number) => string; isEntityObject: (obj: any) => obj is { _id: string; }; generateErrorFromHttpException: (error: Jsm.Core.Utils.Api.Response.Error, status: number, statusText: string) => Error; errorToObject: (error: typeof import("jsm-exceptions").JsmException | import("joi").ValidationError | Error | commonUtils.AxiosError | Jsm.Core.Utils.Api.Response.Error) => Jsm.Core.Utils.Api.Response.ErrorObject | undefined; fetchRemoteFileAsBlob(url: string): Promise<Blob>; createFileObjectFromRemote(url: string, filename: string): Promise<File>; getMimeType(filePath: string, fromExtension?: boolean): Promise<string | false>; getFileTypeGroup<M extends keyof typeof commonUtils.mimetypeToFileTypeGroup>(mimetype: M): (typeof commonUtils.mimetypeToFileTypeGroup)[M] | null; mimetypeToFileTypeGroup: { readonly 'image/jpeg': "image"; readonly 'image/png': "image"; readonly 'image/gif': "image"; readonly 'image/bmp': "image"; readonly 'image/webp': "image"; readonly 'image/svg+xml': "image"; readonly 'image/tiff': "image"; readonly 'image/vnd.microsoft.icon': "image"; readonly 'application/pdf': "document"; readonly 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': "document"; readonly 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': "document"; readonly 'application/vnd.openxmlformats-officedocument.presentationml.presentation': "document"; readonly 'application/vnd.ms-excel': "document"; readonly 'text/csv': "document"; readonly 'application/msword': "document"; readonly 'application/json': "data"; readonly 'application/xml': "data"; readonly 'text/plain': "text"; readonly 'video/mp4': "video"; readonly 'video/mpeg': "video"; readonly 'video/quicktime': "video"; readonly 'video/webm': "video"; readonly 'video/x-msvideo': "video"; readonly 'audio/mpeg': "audio"; readonly 'audio/ogg': "audio"; readonly 'audio/wav': "audio"; readonly 'audio/aac': "audio"; readonly 'audio/midi': "audio"; readonly 'application/zip': "archive"; readonly 'application/x-rar-compressed': "archive"; readonly 'application/x-7z-compressed': "archive"; readonly 'application/x-tar': "archive"; readonly 'text/html': "web"; readonly 'text/css': "web"; readonly 'application/javascript': "web"; }; sanitizeObject(obj: any, cache?: WeakMap<WeakKey, any>): any; removeUndefinedAttributes(object: any): any; defaults: <T extends object, Y extends object = Partial<T>>(x: T, y: Y, options?: import("deepmerge").Options) => import("utility-types").Assign<import("utility-types").Diff<T, Y>, import("utility-types").DeepRequired<Y>>; getItemIdsFromOldAndNewData: <T extends string | string[] | null>(new_value?: T, old_value?: T) => T; isDevelopmentDev: () => boolean; isProductionDev: () => boolean; isNumberRange(variable: any): variable is { min?: number; max?: number; }; roundNumberDecimals: (num: number, decimals?: number) => number; deepSanitizeObjectValues(value: any): any; unflattenObject(flatObj: Record<string, any>): Record<string, any>; deletePropertyRecursively<T extends object, P extends keyof T>(obj: T, property: P): void; deepMergeUnlessNull<X extends object, Y extends object>(x: X, y: Y): X & Y; replaceNullAndUndefined<T>(x: T, y: Partial<T>): T; mergeAddresses(address1?: Partial<Jsm.Core.Utils.Entity.Snapshots.Locations.Address> | null, address2?: Partial<Jsm.Core.Utils.Entity.Snapshots.Locations.Address> | null): Jsm.Core.Utils.Entity.Snapshots.Locations.Address | undefined; transformObjectToString: (obj: any) => any; flattenObjectKeys: (obj: Record<string, any>, prefix?: string) => string[]; flattenObject: (obj: Record<string, any>, prefix?: string) => Record<string, any>; extractPartialObject: <D extends object, P extends keyof D>(obj: D, properties: P[]) => Pick<D, P>; unflattenObjectArray: <T extends { _id: string; parent: string | null; children: string[]; }>(items: T[]) => (T & { children: T[]; })[]; ObjectUpdatedPropertyObject: typeof commonUtils.ObjectUpdatedPropertyObject; ObjectUpdatedProperties: typeof commonUtils.ObjectUpdatedProperties; getFileExtensionFromUrl(url: string): string | undefined; respond<T>(res: Response, data: T, status?: number): void; fixFiltersObject(filters?: any): any; requestHasParam<P extends object>(payload: P, param: keyof P): boolean; extractRequestSignificantData: (req: Request) => commonUtils.RequestData; getAuthData: (req: Request) => Promise<Jsm.Core.Security.AuthData>; fragmentObjectId(str: string): string; ressembleObjectId(str: string): string; sanitizeKeys: (obj: any) => any; sanitizeObjectBooleans: (obj: any) => any; hashString: (str: string) => number; extractRawTextFromHtml: (html: string) => string; isValidPhoneNumber(phoneNumber: string): boolean; isValidAlgerianPhoneNumber(phoneNumber: string): boolean; transformAlgerianPhoneNumberToStandardFormat(phoneNumber: string): string | null; transformPhoneNumberToStandardFormat(phoneNumber: string): string | null; capitalizeFirstLetter(str: string): string; kebabToCamel(kebabString: string): string; camelToKebab(camelCaseString: string): string; camelToWords(camelCaseString: string): string; pluralize(word: string): string; singularize(word: string): string; replaceAll(input: string, search: string, replace: string): string; buildUserFullName(names: { first_name?: string | null; family_name?: string | null; }): string; generatePinCode(): string; getSubstringUntilFirstWhitespaceAfterNChars(str: string, threshold?: number, dots?: string): string; generateItemAlphabetCode(usedCodes: string[]): string; countCharacterOccurrenceInString(str: string, character: string): number; splitString: (str: string, use_plus_character?: boolean) => string[]; stringToBoolean: (str: string) => boolean; addLeadingZeros: (num: number, totalLength: number) => string; toPriceAmount: (str: string) => number; isNumeric: (val: string) => boolean; abbreviateNumber: (n: number) => string; createBigram: (word: string) => string[]; checkSimilarity: (a: string, b: string) => number; generateStringNgrams: (str: string) => string[]; formatBytes: (bytes: number, decimals?: number) => string; generateSlug: (title: string) => Promise<string>; toSnakeCase: (str: string) => string; toKebabCase: (input: string) => string; formatAmount: (x: number | { amount: number; separator?: string; decimals?: number; currency?: string; }, separator?: string | { separator?: string; decimals?: number; currency?: string; }, decimals?: number, currency?: string) => string; formatNotificationSpace: (space: string, infos: { user?: string; company?: string | null; office?: string; store?: string; role?: string; }) => string | null; slugify(title: string): string; Timer: typeof commonUtils.Timer; initTimer: () => commonUtils.Timer; delay: (ms: number) => Promise<null>; sleep: (ms: number) => Promise<null>; isTrackingId: (str: string | null) => false | string; createTrackingId: (entity: string, shortcuts: { [key: string]: string; }, model?: import("mongoose").Model<{ [StringKey: string]: any; [NumberKey: number]: any; }> | null, custom_prefix?: string | null, parent_tracking_id?: string | null) => Promise<string>; getEnvBrowser<T extends string | number | boolean | null>(key: string, defaultValue?: T): T extends string ? string & T : T extends number ? number : T extends boolean ? boolean : T | null; generatePathWithParams<T extends Record<string, string | number | undefined | null>>(template: string, params: T): string; getJsmRouteTree<Space extends string>(MENU_ITEMS: Jsm.Core.UI.RouteItems<Space>, childNode: Jsm.Core.UI.RouteItem<Space>): Jsm.Core.UI.RouteItem<Space>[]; }; export default utilities;