1.0.8 • Published 2 years ago

simple-boot-http-ssr v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

SIMPLE-BOOT-HTTP-SSR

SSR web server

  • simple-boot-front + simple-boot-http-server

dependencies

  • simple-boot-front typescript
  • simple-boot-http-server typescript

😃 examples

frontend

const using = [
    AnonServiceFront, AuthServiceFront,
    LiveServiceFront, AuthMsgServiceFront,
    AuthPetServiceFront, MyServiceFront,
    AnonPetServiceFront
];
Factory.create(MakeSimFrontOption(window), using).then(it => {
    it.run()
});

server

Promise.all([logger, transporter, new JsdomInitializer(environment.frontDistPath).run(), new DBInitializer().run()]).then(async ([log, email, jsdom, connection]) => {

    await cacheScheduleManager.run(connection);

    const otherInstanceSim = new Map<ConstructorType<any>, any>();
    otherInstanceSim.set(Connection, connection);

    const option = new HttpServerOption();
    option.listen = environment.httpServerConfig.listen;
    option.globalAdvice = new GlobalAdvice();
    option.requestEndPoints = [new RequestLogEndPoint()];
    option.closeEndPoints = [new CloseLogEndPoint()];
    option.errorEndPoints = [new ErrorLogEndPoint()];

    const using = [
        AnonServiceServer, AuthServiceServer,
        LiveServiceServer, AuthMsgServiceServer,
        AuthPetServiceServer, MyServiceServer,
        AnonPetServiceServer
    ];

    const resourceFilter = new ResourceFilter(environment.frontDistPath,
        ['\.js$', '\.map$', '\.ico$', '\.png$', '\.jpg$', '\.jpeg$', '\.gif$', 'offline\.html$', 'webmanifest$', 'manifest\.json', 'service-worker\.js$']
    );
    option.filters = [
        new ThrowFilter(new NotFoundError()),
        resourceFilter,
        new SSRFilter({
            frontDistPath: environment.frontDistPath,
            factorySimFrontOption: (window: any) => MakeSimFrontOption(window),
            factory: Factory,
            poolOption: {
                max: 50,
                min: 1,
            },
            using,
            domExcludes: [Connection, EntityManager, EntityManagerFactory]
        }, otherInstanceSim),
        SecurityFilter,
        IntentFilter,
    ];

    const ssr = new SimpleBootHttpSSRServer(IndexRouter, option);
    ssr.run(otherInstanceSim);
    return ssr;
}).then(it => {
    console.log('server startUp finish!!', it.option.listen);
});

common

export const MakeSimFrontOption = (window: any) : SimFrontOption => {
    return new SimFrontOption(window).setUrlType(UrlType.path);
}

class Factory extends SimpleBootHttpSSRFactory {
    factory(simFrontOption: SimFrontOption, using: ConstructorType<any>[] = [], domExcludes: ConstructorType<any>[] = []): Promise<SimpleBootFront> {
        const simpleBootFront = new SimpleBootFront(IndexRouterComponent, simFrontOption);
        simpleBootFront.domRendoerExcludeProxy.push(Subject, Observable, Subscription, ...domExcludes);
        return Promise.resolve(simpleBootFront);
    }
}
export default new Factory();
1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago