mantis-app
Version:
M.A.N.T.I.S (MongoDB, Analog, Nx, Tailwind CSS, Ionic, Storybook) is not just a CLI tool; it's your passport to a seamless full-stack project launch.
52 lines (47 loc) • 1.35 kB
text/typescript
import {
Preview,
applicationConfig,
componentWrapperDecorator,
moduleMetadata,
} from '@storybook/angular';
import { initialize, mswLoader } from 'msw-storybook-addon';
import { ConfigService } from '../src/app/services/config.service';
import projectConfig from '../project.json';
import { Injectable, importProvidersFrom } from '@angular/core';
import { provideHttpClient } from '@angular/common/http';
import { IonicModule } from '@ionic/angular';
initialize();
()
class StorybookConfigService extends ConfigService {
override getBackendBaseUrl() {
const port = Number(projectConfig?.targets?.storybook?.options?.port);
if (typeof port === 'number' && !isNaN(port)) {
return `http://localhost:${port}`;
} else {
throw new Error(
'The storybook target in project.json must have a valid port number.',
);
}
}
}
const preview: Preview = {
loaders: [mswLoader],
decorators: [
moduleMetadata({
providers: [
{
provide: ConfigService,
useClass: StorybookConfigService,
},
],
}),
applicationConfig({
providers: [
provideHttpClient(),
importProvidersFrom(IonicModule.forRoot()),
],
}),
componentWrapperDecorator((story) => `<ion-app>${story}</ion-app>`),
],
};
export default preview;