mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 19:21:34 +08:00
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import { Injectable, InjectionToken } from '@angular/core';
|
|
import { Config as CoreConfig, IonicConfig } from '@ionic/core';
|
|
|
|
import { IonicWindow } from '../types/interfaces';
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export class Config {
|
|
|
|
get(key: keyof IonicConfig, fallback?: any): any {
|
|
const c = getConfig();
|
|
if (c) {
|
|
return c.get(key, fallback);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
getBoolean(key: keyof IonicConfig, fallback?: boolean): boolean {
|
|
const c = getConfig();
|
|
if (c) {
|
|
return c.getBoolean(key, fallback);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
getNumber(key: keyof IonicConfig, fallback?: number): number {
|
|
const c = getConfig();
|
|
if (c) {
|
|
return c.getNumber(key, fallback);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
set(key: keyof IonicConfig, value?: any) {
|
|
console.warn(`[DEPRECATION][Config]: The Config.set() method is deprecated and will be removed in Ionic Framework 6.0. Please see https://ionicframework.com/docs/angular/config for alternatives.`);
|
|
const c = getConfig();
|
|
if (c) {
|
|
c.set(key, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
export const ConfigToken = new InjectionToken<any>('USERCONFIG');
|
|
|
|
const getConfig = (): CoreConfig | null => {
|
|
if (typeof (window as any) !== 'undefined') {
|
|
const Ionic = (window as any as IonicWindow).Ionic;
|
|
if (Ionic && Ionic.config) {
|
|
return Ionic.config;
|
|
}
|
|
}
|
|
return null;
|
|
};
|