From 684afd3cee6c21fc1e2913682149fffcf22eda03 Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Thu, 10 Jun 2021 14:50:05 +0200 Subject: [PATCH] MOBILE-3320 DX: Extract config declarations --- moodle.config.example.json | 5 +--- src/core/constants.ts | 48 ++----------------------------- src/types/config.d.ts | 59 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 50 deletions(-) create mode 100644 src/types/config.d.ts diff --git a/moodle.config.example.json b/moodle.config.example.json index a94e15ea6..a0dfaea29 100644 --- a/moodle.config.example.json +++ b/moodle.config.example.json @@ -4,10 +4,7 @@ * You can create your own environment files such as "moodle.config.prod.json" and "moodle.config.dev.json" * to override some values. The values will be merged, so you don't need to duplicate everything in this file. */ - { - // @todo This could be read from package.json. - "versionname": "3.9.3-dev", - // Override default language here. + // You can find all the properties you can configure in src/types/config.d.ts "default_lang": "es" } diff --git a/src/core/constants.ts b/src/core/constants.ts index 173704da3..bbba1fdbd 100644 --- a/src/core/constants.ts +++ b/src/core/constants.ts @@ -12,13 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -/* eslint-disable @typescript-eslint/naming-convention */ - -import { CoreColorScheme, CoreZoomLevel } from '@features/settings/services/settings-helper'; -import { CoreMainMenuLocalizedCustomItem } from '@features/mainmenu/services/mainmenu'; -import { CoreSitesDemoSiteData } from '@services/sites'; import envJson from '@/assets/env.json'; -import { OpenFileAction } from '@services/utils/utils'; +import { EnvironmentConfig } from '@/types/config'; /** * Context levels enumeration. @@ -141,46 +136,7 @@ export class CoreConstants { } -export interface EnvironmentConfig { - app_id: string; - appname: string; - versioncode: number; - versionname: string; - cache_update_frequency_usually: number; - cache_update_frequency_often: number; - cache_update_frequency_sometimes: number; - cache_update_frequency_rarely: number; - default_lang: string; - languages: Record; - wsservice: string; - wsextservice: string; - demo_sites: Record; - zoomlevels: Record; - customurlscheme: string; - siteurl: string; - sitename: string; - multisitesdisplay: string; - sitefindersettings: Record; - onlyallowlistedsites: boolean; - skipssoconfirmation: boolean; - forcedefaultlanguage: boolean; - privacypolicy: string; - notificoncolor: string; - enableanalytics: boolean; - enableonboarding: boolean; - forceColorScheme: CoreColorScheme; - forceLoginLogo: boolean; - ioswebviewscheme: string; - appstores: Record; - displayqroncredentialscreen?: boolean; - displayqronsitescreen?: boolean; - forceOpenLinksIn: 'app' | 'browser'; - iOSDefaultOpenFileAction?: OpenFileAction; - customMainMenuItems?: CoreMainMenuLocalizedCustomItem[]; - feedbackFormUrl?: string | false; -}; - -export interface EnvironmentBuild { +interface EnvironmentBuild { version: string; isProduction: boolean; isTesting: boolean; diff --git a/src/types/config.d.ts b/src/types/config.d.ts new file mode 100644 index 000000000..497a3b8a4 --- /dev/null +++ b/src/types/config.d.ts @@ -0,0 +1,59 @@ +// (C) Copyright 2015 Moodle Pty Ltd. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { CoreColorScheme, CoreZoomLevel } from '@features/settings/services/settings-helper'; +import { CoreMainMenuLocalizedCustomItem } from '@features/mainmenu/services/mainmenu'; +import { CoreSitesDemoSiteData } from '@services/sites'; +import { OpenFileAction } from '@services/utils/utils'; + +/* eslint-disable @typescript-eslint/naming-convention */ + +export interface EnvironmentConfig { + app_id: string; + appname: string; + versioncode: number; + versionname: string; // @todo This could be removed and use build variables instead. + cache_update_frequency_usually: number; + cache_update_frequency_often: number; + cache_update_frequency_sometimes: number; + cache_update_frequency_rarely: number; + default_lang: string; + languages: Record; + wsservice: string; + wsextservice: string; + demo_sites: Record; + zoomlevels: Record; + customurlscheme: string; + siteurl: string; + sitename: string; + multisitesdisplay: string; + sitefindersettings: Record; + onlyallowlistedsites: boolean; + skipssoconfirmation: boolean; + forcedefaultlanguage: boolean; + privacypolicy: string; + notificoncolor: string; + enableanalytics: boolean; + enableonboarding: boolean; + forceColorScheme: CoreColorScheme; + forceLoginLogo: boolean; + ioswebviewscheme: string; + appstores: Record; + displayqroncredentialscreen?: boolean; + displayqronsitescreen?: boolean; + forceOpenLinksIn: 'app' | 'browser'; + iOSDefaultOpenFileAction?: OpenFileAction; + customMainMenuItems?: CoreMainMenuLocalizedCustomItem[]; + feedbackFormUrl?: string | false; +}