@unchainedshop/platform

December 10, 2025 ยท View on GitHub

npm version License: EUPL-1.2

@unchainedshop/platform

Umbrella package for the Unchained Engine. Provides complete platform setup including database initialization, API server, migrations, templates, and runtime configuration.

Installation

npm install @unchainedshop/platform

Usage

import { startPlatform } from '@unchainedshop/platform';
import express from 'express';

const app = express();

const { unchainedAPI, graphqlHandler } = await startPlatform({
  express: app,
  options: {
    // Platform options
  },
});

// Platform is ready
app.listen(4010);

API Overview

Platform Setup

ExportDescription
startPlatformInitialize complete Unchained platform
runMigrationsRun database migrations
printRuntimeConfigurationLog registered templates, events, and adapters

Context Helpers

ExportDescription
setAccessTokenSet access token for user session
getAccessTokenGet current access token
invalidateAccessTokenInvalidate/logout access token

Templates

ExportDescription
MessageTypesAvailable message/notification types
setupTemplatesRegister message templates

Message Types

TypeDescription
ACCOUNT_ACTIONAccount verification, password reset
DELIVERYDelivery notifications
ORDER_CONFIRMATIONOrder confirmation emails
ORDER_REJECTIONOrder rejection notifications
QUOTATION_STATUSQuotation status updates
ENROLLMENT_STATUSSubscription status updates
FORWARD_DELIVERYForward delivery notifications

Quick Start

import express from 'express';
import { startPlatform, MessageTypes } from '@unchainedshop/platform';

const app = express();

const { unchainedAPI, graphqlHandler } = await startPlatform({
  express: app,
  options: {
    modules: {
      // Module-specific configuration
    },
    plugins: [
      // Plugin imports
    ],
  },
  workQueueConfig: {
    // Worker queue configuration
  },
});

// Access unchained API
const products = await unchainedAPI.modules.products.findProducts({});

// Start server
app.use('/graphql', graphqlHandler);
app.listen(4010);

Configuration

const platform = await startPlatform({
  express: app,
  options: {
    modules: {
      orders: {
        // Order module options
      },
      products: {
        // Product module options
      },
    },
    services: {
      // Custom services
    },
    bulkImporter: {
      handlers: {
        // Custom import handlers
      },
    },
  },
  workQueueConfig: {
    batchSize: 10,
    pollInterval: 1000,
  },
  context: (defaultResolver) => async (props, req, res) => {
    const context = await defaultResolver(props, req, res);
    return {
      ...context,
      // Custom context properties
    };
  },
});

Returns

The startPlatform function returns:

PropertyDescription
unchainedAPIComplete Unchained core API instance
graphqlHandlerGraphQL Yoga server instance for Express/Fastify
dbMongoDB database instance

License

EUPL-1.2