Modified middleware typing so that it should be easier to use
Some checks failed
Build, Test, and Publish (to Private NPM Registry) UI Components Library / publish (push) Failing after 56s
Some checks failed
Build, Test, and Publish (to Private NPM Registry) UI Components Library / publish (push) Failing after 56s
This commit is contained in:
parent
8f0c91a74a
commit
1156a28de4
2 changed files with 5 additions and 5 deletions
|
|
@ -166,7 +166,7 @@ async function initializeBAComponentsManualCopy(assets: { url: string | { script
|
|||
* @param options - An object containing the initialization options.
|
||||
* @returns A promise that resolves to either an Express middleware function or an object containing the library paths and render function.
|
||||
*/
|
||||
export default async function initializeBAComponents(options: { expressApp?: Application, assets?: { url: string | { script: string, style: string }, file: string | { script: string, style: string } } } = {}): Promise<RequestHandler | { paths: typeof libraryPaths; render: typeof coreRenderUI }> {
|
||||
export default async function initializeBAComponents<T extends RequestHandler | { paths: typeof libraryPaths; render: typeof coreRenderUI }>(options: { expressApp?: Application, assets?: { url: string | { script: string, style: string }, file: string | { script: string, style: string } } } = {}): Promise<T> {
|
||||
// Guard against "Both"
|
||||
if(
|
||||
(
|
||||
|
|
@ -183,16 +183,16 @@ export default async function initializeBAComponents(options: { expressApp?: App
|
|||
|
||||
// --- STRATEGY A: Express Virtual Path ---
|
||||
if(typeof options.expressApp !== 'undefined') {
|
||||
return await initializeBAComponentsExpressVirtualPath(options.expressApp);
|
||||
return await initializeBAComponentsExpressVirtualPath(options.expressApp) as T;
|
||||
}
|
||||
|
||||
// --- STRATEGY B: Manual Copy Strategy ---
|
||||
if(typeof options.assets === 'object' && options.assets !== null && typeof options.assets.url !== 'undefined' && typeof options.assets.file !== 'undefined') {
|
||||
return await initializeBAComponentsManualCopy(options.assets);
|
||||
return await initializeBAComponentsManualCopy(options.assets) as T;
|
||||
}
|
||||
|
||||
// --- STRATEGY C: "Neither" (Framework Agnostic) ---
|
||||
// If no options are provided, just return the raw tools.
|
||||
// A Fastify or Koa user can use these to build their own integration.
|
||||
return { paths: libraryPaths, render: coreRenderUI };
|
||||
return { paths: libraryPaths, render: coreRenderUI } as T;
|
||||
};
|
||||
|
|
@ -7,7 +7,7 @@ app.set('view engine', 'ejs');
|
|||
app.set('views', './test-harness/views');
|
||||
|
||||
// Mount the library using your virtual path strategy
|
||||
app.use(await baWebComponents({ expressApp: app }) as RequestHandler);
|
||||
app.use(await baWebComponents<RequestHandler>({ expressApp: app }));
|
||||
|
||||
app.get('/', (req: Request, res: Response) => {
|
||||
res.send('Hello from the test server! Navigate to /test/tooltip to see the tooltip component test page.');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue