Backoffice context: adds version
Gets version from the server information API
This commit is contained in:
committed by
Jacob Overgaard
parent
a05a5a1d75
commit
92ba80f2d8
@@ -1,12 +1,13 @@
|
||||
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
||||
import { tryExecute } from '@umbraco-cms/backoffice/resources';
|
||||
import { ServerService } from '@umbraco-cms/backoffice/external/backend-api';
|
||||
import { UmbBasicState, UmbStringState } from '@umbraco-cms/backoffice/observable-api';
|
||||
import {
|
||||
type UmbExtensionManifestInitializer,
|
||||
UmbExtensionsManifestInitializer,
|
||||
} from '@umbraco-cms/backoffice/extension-api';
|
||||
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
||||
import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
|
||||
import { UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
|
||||
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { type ManifestSection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbExtensionManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export class UmbBackofficeContext extends UmbContextBase<UmbBackofficeContext> {
|
||||
#activeSectionAlias = new UmbStringState(undefined);
|
||||
@@ -16,11 +17,32 @@ export class UmbBackofficeContext extends UmbContextBase<UmbBackofficeContext> {
|
||||
#allowedSections = new UmbBasicState<Array<UmbExtensionManifestInitializer<ManifestSection>>>([]);
|
||||
public readonly allowedSections = this.#allowedSections.asObservable();
|
||||
|
||||
#verison = new UmbStringState(undefined);
|
||||
public readonly version = this.#verison.asObservable();
|
||||
|
||||
constructor(host: UmbControllerHost) {
|
||||
super(host, UMB_BACKOFFICE_CONTEXT);
|
||||
new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'section', null, (sections) => {
|
||||
this.#allowedSections.setValue([...sections]);
|
||||
});
|
||||
|
||||
this.#getVersion();
|
||||
}
|
||||
|
||||
async #getVersion() {
|
||||
const { data } = await tryExecute(ServerService.getServerInformation());
|
||||
if (!data) return;
|
||||
|
||||
// A quick semver parser (to remove the unwanted bits) [LK]
|
||||
// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const [semVer, major, minor, patch, prerelease, buildmetadata] =
|
||||
data.version.match(
|
||||
/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,
|
||||
) ?? [];
|
||||
|
||||
const version = [major, minor, patch].join('.') + (prerelease ? `-${prerelease}` : '');
|
||||
this.#verison.setValue(version);
|
||||
}
|
||||
|
||||
public setActiveSectionAlias(alias: string) {
|
||||
|
||||
Reference in New Issue
Block a user