@pinelab/vendure-plugin-metrics
Version:
Vendure plugin measuring and visualizing e-commerce metrics
82 lines (81 loc) • 3.72 kB
JavaScript
;
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);