Files
Umbraco-CMS/src/Umbraco.Web.UI.Client/libs/extensions-api/has-init-export.function.ts

9 lines
312 B
TypeScript
Raw Normal View History

2023-03-16 21:13:58 +01:00
import type { UmbEntrypointModule } from './umb-lifecycle.interface';
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
2023-03-02 20:29:20 +01:00
/**
* Validate if an ESModule exports a known init function called 'onInit'
*/
export function hasInitExport(obj: unknown): obj is Pick<UmbEntrypointModule, 'onInit'> {
return obj !== null && typeof obj === 'object' && 'onInit' in obj;
}