UNPKG

@pinelab/vendure-plugin-metrics

Version:

Vendure plugin measuring and visualizing e-commerce metrics

82 lines (81 loc) 3.72 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var MetricsPlugin_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.MetricsPlugin = void 0; const core_1 = require("@vendure/core"); const path_1 = __importDefault(require("path")); const schema_graphql_1 = require("./api/schema.graphql"); const metrics_admin_resolver_1 = require("./api/metrics.admin-resolver"); const metrics_service_1 = require("./services/metrics.service"); const constants_1 = require("./constants"); const revenue_per_product_1 = require("./metrics/revenue-per-product"); const average_order_value_1 = require("./metrics/average-order-value"); const units_sold_metric_1 = require("./metrics/units-sold-metric"); const metric_summary_entity_1 = require("./entities/metric-summary.entity"); const metric_request_entity_1 = require("./entities/metric-request.entity"); const request_service_1 = require("./services/request-service"); const metric_request_salt_1 = require("./entities/metric-request-salt"); const conversion_metric_1 = require("./metrics/conversion-metric"); const sessions_metric_1 = require("./metrics/sessions-metric"); const metrics_shop_resolver_1 = require("./api/metrics.shop-resolver"); let MetricsPlugin = MetricsPlugin_1 = class MetricsPlugin { static init(options) { this.options = { ...this.options, ...options, }; return MetricsPlugin_1; } }; exports.MetricsPlugin = MetricsPlugin; MetricsPlugin.options = { metrics: [ new revenue_per_product_1.RevenuePerProduct(), new conversion_metric_1.ConversionMetric(), new sessions_metric_1.SessionsMetric(), new average_order_value_1.AverageOrderValueMetric(), new units_sold_metric_1.UnitsSoldMetric(), ], displayPastMonths: 13, sessionLengthInMinutes: 30, removeRequestLogsOlderThanMonths: 24, }; MetricsPlugin.ui = { extensionPath: path_1.default.join(__dirname, 'ui'), ngModules: [ { type: 'shared', ngModuleFileName: 'metrics-widget.shared-module.ts', ngModuleName: 'MetricsWidgetSharedModule', }, ], }; exports.MetricsPlugin = MetricsPlugin = MetricsPlugin_1 = __decorate([ (0, core_1.VendurePlugin)({ imports: [core_1.PluginCommonModule], adminApiExtensions: { schema: schema_graphql_1.adminSchema, resolvers: [metrics_admin_resolver_1.MetricsAdminResolver], }, shopApiExtensions: { schema: schema_graphql_1.shopSchema, resolvers: [metrics_shop_resolver_1.MetricsShopResolver], }, providers: [ metrics_service_1.MetricsService, request_service_1.RequestService, { provide: constants_1.PLUGIN_INIT_OPTIONS, useFactory: () => MetricsPlugin.options }, ], compatibility: '>=2.2.0', entities: [metric_summary_entity_1.MetricSummary, metric_request_entity_1.MetricRequest, metric_request_salt_1.MetricRequestSalt], }) ], MetricsPlugin);