@spartacus/setup
Version:
Includes features that makes Spartacus and it's setup easier and streamlined.
35 lines • 4.97 kB
JavaScript
import { OptimizedSsrEngine, } from '../optimized-engine/optimized-ssr-engine';
import { getServerRequestProviders } from '../providers/ssr-providers';
/**
* The wrapper over the standard ngExpressEngine, that provides tokens for Spartacus
* @param ngExpressEngine
*/
export class NgExpressEngineDecorator {
/**
* Returns the higher order ngExpressEngine with provided tokens for Spartacus
*
* @param ngExpressEngine
*/
static get(ngExpressEngine, optimizationOptions) {
return decorateExpressEngine(ngExpressEngine, optimizationOptions);
}
}
export function decorateExpressEngine(ngExpressEngine, optimizationOptions = {
concurrency: 20,
timeout: 3000,
}) {
return function (setupOptions) {
var _a;
const engineInstance = ngExpressEngine(Object.assign(Object.assign({}, setupOptions), { providers: [
// add spartacus related providers
...getServerRequestProviders(),
...((_a = setupOptions.providers) !== null && _a !== void 0 ? _a : []),
] }));
// apply optimization wrapper if optimization options were defined
return optimizationOptions
? new OptimizedSsrEngine(engineInstance, optimizationOptions)
.engineInstance
: engineInstance;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZXhwcmVzcy1lbmdpbmUtZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS1saWJzL3NldHVwL3Nzci9lbmdpbmUtZGVjb3JhdG9yL25nLWV4cHJlc3MtZW5naW5lLWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsa0JBQWtCLEdBRW5CLE1BQU0sMENBQTBDLENBQUM7QUFFbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFZdkU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQzs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FDUixlQUFnQyxFQUNoQyxtQkFBbUQ7UUFFbkQsT0FBTyxxQkFBcUIsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGVBQWdDLEVBQ2hDLHNCQUFxRDtJQUNuRCxXQUFXLEVBQUUsRUFBRTtJQUNmLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7SUFFRCxPQUFPLFVBQVUsWUFBNEI7O1FBQzNDLE1BQU0sY0FBYyxHQUFHLGVBQWUsaUNBQ2pDLFlBQVksS0FDZixTQUFTLEVBQUU7Z0JBQ1Qsa0NBQWtDO2dCQUNsQyxHQUFHLHlCQUF5QixFQUFFO2dCQUM5QixHQUFHLENBQUMsTUFBQSxZQUFZLENBQUMsU0FBUyxtQ0FBSSxFQUFFLENBQUM7YUFDbEMsSUFDRCxDQUFDO1FBRUgsa0VBQWtFO1FBQ2xFLE9BQU8sbUJBQW1CO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztpQkFDeEQsY0FBYztZQUNuQixDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1NldHVwT3B0aW9ucyB9IGZyb20gJ0BuZ3VuaXZlcnNhbC9leHByZXNzLWVuZ2luZSc7XG5pbXBvcnQge1xuICBPcHRpbWl6ZWRTc3JFbmdpbmUsXG4gIFNzckNhbGxiYWNrRm4sXG59IGZyb20gJy4uL29wdGltaXplZC1lbmdpbmUvb3B0aW1pemVkLXNzci1lbmdpbmUnO1xuaW1wb3J0IHsgU3NyT3B0aW1pemF0aW9uT3B0aW9ucyB9IGZyb20gJy4uL29wdGltaXplZC1lbmdpbmUvc3NyLW9wdGltaXphdGlvbi1vcHRpb25zJztcbmltcG9ydCB7IGdldFNlcnZlclJlcXVlc3RQcm92aWRlcnMgfSBmcm9tICcuLi9wcm92aWRlcnMvc3NyLXByb3ZpZGVycyc7XG5cbmV4cG9ydCB0eXBlIE5nRXhwcmVzc0VuZ2luZUluc3RhbmNlID0gKFxuICBmaWxlUGF0aDogc3RyaW5nLFxuICBvcHRpb25zOiBvYmplY3QsXG4gIGNhbGxiYWNrOiBTc3JDYWxsYmFja0ZuXG4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIE5nRXhwcmVzc0VuZ2luZSA9IChcbiAgc2V0dXBPcHRpb25zOiBSZWFkb25seTxOZ1NldHVwT3B0aW9ucz5cbikgPT4gTmdFeHByZXNzRW5naW5lSW5zdGFuY2U7XG5cbi8qKlxuICogVGhlIHdyYXBwZXIgb3ZlciB0aGUgc3RhbmRhcmQgbmdFeHByZXNzRW5naW5lLCB0aGF0IHByb3ZpZGVzIHRva2VucyBmb3IgU3BhcnRhY3VzXG4gKiBAcGFyYW0gbmdFeHByZXNzRW5naW5lXG4gKi9cbmV4cG9ydCBjbGFzcyBOZ0V4cHJlc3NFbmdpbmVEZWNvcmF0b3Ige1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgaGlnaGVyIG9yZGVyIG5nRXhwcmVzc0VuZ2luZSB3aXRoIHByb3ZpZGVkIHRva2VucyBmb3IgU3BhcnRhY3VzXG4gICAqXG4gICAqIEBwYXJhbSBuZ0V4cHJlc3NFbmdpbmVcbiAgICovXG4gIHN0YXRpYyBnZXQoXG4gICAgbmdFeHByZXNzRW5naW5lOiBOZ0V4cHJlc3NFbmdpbmUsXG4gICAgb3B0aW1pemF0aW9uT3B0aW9ucz86IFNzck9wdGltaXphdGlvbk9wdGlvbnMgfCBudWxsXG4gICk6IE5nRXhwcmVzc0VuZ2luZSB7XG4gICAgcmV0dXJuIGRlY29yYXRlRXhwcmVzc0VuZ2luZShuZ0V4cHJlc3NFbmdpbmUsIG9wdGltaXphdGlvbk9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZUV4cHJlc3NFbmdpbmUoXG4gIG5nRXhwcmVzc0VuZ2luZTogTmdFeHByZXNzRW5naW5lLFxuICBvcHRpbWl6YXRpb25PcHRpb25zOiBTc3JPcHRpbWl6YXRpb25PcHRpb25zIHwgbnVsbCA9IHtcbiAgICBjb25jdXJyZW5jeTogMjAsXG4gICAgdGltZW91dDogMzAwMCxcbiAgfVxuKTogTmdFeHByZXNzRW5naW5lIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChzZXR1cE9wdGlvbnM6IE5nU2V0dXBPcHRpb25zKSB7XG4gICAgY29uc3QgZW5naW5lSW5zdGFuY2UgPSBuZ0V4cHJlc3NFbmdpbmUoe1xuICAgICAgLi4uc2V0dXBPcHRpb25zLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC8vIGFkZCBzcGFydGFjdXMgcmVsYXRlZCBwcm92aWRlcnNcbiAgICAgICAgLi4uZ2V0U2VydmVyUmVxdWVzdFByb3ZpZGVycygpLFxuICAgICAgICAuLi4oc2V0dXBPcHRpb25zLnByb3ZpZGVycyA/PyBbXSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gYXBwbHkgb3B0aW1pemF0aW9uIHdyYXBwZXIgaWYgb3B0aW1pemF0aW9uIG9wdGlvbnMgd2VyZSBkZWZpbmVkXG4gICAgcmV0dXJuIG9wdGltaXphdGlvbk9wdGlvbnNcbiAgICAgID8gbmV3IE9wdGltaXplZFNzckVuZ2luZShlbmdpbmVJbnN0YW5jZSwgb3B0aW1pemF0aW9uT3B0aW9ucylcbiAgICAgICAgICAuZW5naW5lSW5zdGFuY2VcbiAgICAgIDogZW5naW5lSW5zdGFuY2U7XG4gIH07XG59XG4iXX0=