New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@magic-rpc/server

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@magic-rpc/server

Magic RPC server with GraphQL-like resolver mechanism

latest
npmnpm
Version
1.3.0
Version published
Maintainers
1
Created
Source

@magic-rpc/server

Server-side Magic RPC handler with GraphQL-like resolver mechanism for efficient data fetching and field resolution.

Installation

npm install @magic-rpc/server

Usage

import { RpcHandler } from '@magic-rpc/server';
import DataLoader from 'dataloader';

// Define your RPC methods
const schema = {
  getUser: [GetUserInputSchema, GetUserOutputSchema],
  getUserPosts: [GetPostsInputSchema, GetPostsOutputSchema],
};

// Create efficient data loaders
function createLoaders() {
  return {
    User: new DataLoader(async (ids) => {
      return ids.map((id) => db.users.get(id));
    }),
  };
}

// Define resolvers for nested fields
const resolvers = {
  User: {
    avatar: {
      type: "Asset",
      resolve: async (user, context) => {
        return context.loaders.Asset.load(user.avatarId);
      },
    },
  },
};

// Create RPC handler
const rpc = new RpcHandler({
  schema,
  handlers: {
    getUser: async ({ input }) => {
      return db.users.get(input.userId);
    },
  },
  types: { User: UserSchema },
  resolvers,
  createLoaders,
});

// Handle requests
const result = await rpc.handle({
  method: "getUser",
  input: { userId: "123" },
  mappings: { avatar: 1 }
}, context);

Features

  • RPC Method Handling: Define methods with input/output validation using Hyperstruct schemas
  • GraphQL-like Resolvers: Resolve nested fields on-demand based on client mappings
  • DataLoader Integration: Automatic batching and caching for efficient data fetching
  • Type Safety: Full TypeScript support with inferred types
  • Flexible Architecture: Pluggable loaders and custom resolvers

API Reference

See the main README for detailed API documentation.

Keywords

rpc

FAQs

Package last updated on 30 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts