Feature/server packages v2 (#574)
* new api models * use new PackageResource * do not error out on missing default exports (esmodules auto-execute) * do not check for js extensions (they might have been registered on the client without a js file) * prepend the api baseurl to any relataive server JS dependencies * ignore tsbuildinfo * create base file for tsconfig * extend from base config and optimise include/exclude paths * install rollup plugin to handle json files * use plugin to bundle json files * call script for cms builds that builds libs * add rollup config to utils lib * add a context token to the extension registry instance itself and provide it through BackofficeElement * add rollup node resolve * add node resolve * only include element mixin in element library * add error description to module load error * add types to UmbExtensionRegistry token * set UmbNotificationService as string in its token to avoid minification * correct comment * reverse order of checks * add host to server extensions and support life-cycle check * add imports * use lit rather than lit-html * correct comment * add PackageManifestModel * add import * run libs build for cms * revert reorder * use string name for NotificationContext token * make alias public readonly of UmbContextToken * remove TODO * use UmbContextToken::toString() for all stores * use string alias for contexts * move default data so we avoid importing a big lit library just to get default data interface * add rollup to two extra libraries * make sure we build uui and lit into our libraries for the few cases we import something * add lockfile * add separate options for .js files * add function to install types of module * add types output * remove unused tsconfig-base file for now
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
import {
|
||||
UmbNotificationOptions,
|
||||
UmbNotificationContext,
|
||||
UmbNotificationDefaultData,
|
||||
UMB_NOTIFICATION_CONTEXT_TOKEN,
|
||||
} from '@umbraco-cms/notification';
|
||||
import { ApiError, CancelablePromise, ProblemDetailsModel } from '@umbraco-cms/backend-api';
|
||||
@@ -57,9 +56,9 @@ export class UmbResourceController extends UmbController {
|
||||
*/
|
||||
static async tryExecute<T>(promise: Promise<T>): Promise<DataSourceResponse<T>> {
|
||||
try {
|
||||
return { data: await promise };
|
||||
return {data: await promise};
|
||||
} catch (e) {
|
||||
return { error: UmbResourceController.toProblemDetailsModel(e) };
|
||||
return {error: UmbResourceController.toProblemDetailsModel(e)};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,17 +66,17 @@ export class UmbResourceController extends UmbController {
|
||||
* Wrap the {execute} function in a try/catch block and return the result.
|
||||
* If the executor function throws an error, then show the details in a notification.
|
||||
*/
|
||||
async tryExecuteAndNotify<T>(options?: UmbNotificationOptions<any>): Promise<DataSourceResponse<T>> {
|
||||
const { data, error } = await UmbResourceController.tryExecute<T>(this.#promise);
|
||||
async tryExecuteAndNotify<T>(options?: UmbNotificationOptions): Promise<DataSourceResponse<T>> {
|
||||
const {data, error} = await UmbResourceController.tryExecute<T>(this.#promise);
|
||||
|
||||
if (error) {
|
||||
const data: UmbNotificationDefaultData = {
|
||||
headline: error.title ?? 'Server Error',
|
||||
message: error.detail ?? 'Something went wrong',
|
||||
};
|
||||
|
||||
if (this.#notificationContext) {
|
||||
this.#notificationContext?.peek('danger', { data, ...options });
|
||||
this.#notificationContext?.peek('danger', {
|
||||
data: {
|
||||
headline: error.title ?? 'Server Error',
|
||||
message: error.detail ?? 'Something went wrong'
|
||||
}, ...options
|
||||
});
|
||||
} else {
|
||||
console.group('UmbResourceController');
|
||||
console.error(error);
|
||||
@@ -85,7 +84,7 @@ export class UmbResourceController extends UmbController {
|
||||
}
|
||||
}
|
||||
|
||||
return { data, error };
|
||||
return {data, error};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user