Skip to content

Dave136/smapper

Repository files navigation

Smapper

npm version npm downloads License

Simple mapper to remove strapi wrappers

Motivation

Strapi is one the most popular headless cms, internally wraps the response inside data, attributes object, in some scenarios could be verbose, for this reason was created strapi-plugin-transformer, plugin to remove this response wrapper.

However this package does not have support for graphql (you can read more here), it can just be applied to the API Rest responses, that is the main reason for this package be created.

Usage

Install package:

# npm
npm install smapper

# yarn
yarn add smapper

# pnpm
pnpm install smapper

Import:

// ESM
import mapper from "smapper";

// CommonJS
const mapper = require("smapper");

We have a graphql like this:

query Posts {
  posts {
    data {
      attributes {
        title
        content
        slug
        images {
          data {
            id
            attributes {
              name
              formats
              url
            }
          }
        }
      }
    }
  }
}

And you want remove the data and attributes wrappers, just call the function imported and pass the graphql result as parameter:

import mapper from 'smapper';
import GetPost from './graphql';

const response = await graphql(GetPost);
const mapped = mapper(response);

Development

  • Clone this repository
  • Install latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev

Annotations 📝

This project is originally written as strapi plugin (strapi-plugin-transformer) by:

License

Made with 💛

Published under MIT License.