mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 15:04:00 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			997 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			997 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
try {
 | 
						|
  // some browsers like PaleMoon don't have full support for Intl.NumberFormat, so do the minimum polyfill to support "relative-time-element"
 | 
						|
  // https://repo.palemoon.org/MoonchildProductions/UXP/issues/2289
 | 
						|
  new Intl.NumberFormat('en', {style: 'unit', unit: 'minute'}).format(1);
 | 
						|
} catch {
 | 
						|
  const intlNumberFormat = Intl.NumberFormat;
 | 
						|
  // @ts-expect-error - polyfill is incomplete
 | 
						|
  Intl.NumberFormat = function(locales: string | string[], options: Intl.NumberFormatOptions) {
 | 
						|
    if (options.style === 'unit') {
 | 
						|
      return {
 | 
						|
        format(value: number | bigint | string) {
 | 
						|
          return ` ${value} ${options.unit}`;
 | 
						|
        },
 | 
						|
      };
 | 
						|
    }
 | 
						|
    return intlNumberFormat(locales, options);
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
export function weakRefClass() {
 | 
						|
  const weakMap = new WeakMap();
 | 
						|
  return class {
 | 
						|
    constructor(target: any) {
 | 
						|
      weakMap.set(this, target);
 | 
						|
    }
 | 
						|
    deref() {
 | 
						|
      return weakMap.get(this);
 | 
						|
    }
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
if (!window.WeakRef) {
 | 
						|
  window.WeakRef = weakRefClass() as any;
 | 
						|
}
 |