@ax2/xms-media-manager
TypeScript icon, indicating that this package has built-in type declarations

0.7.0 • Public • Published

XMS API PAGE BUILDER

Setup

Add the dependency

yarn add @ax2/xms-media-manager

How to install module

Merge resolvers and mutations into your graphql api src/graphql/resolvers.ts

Example:

import { GraphQLUpload } from 'apollo-upload-server';
import * as path from 'path';
import { mergeResolvers } from '@graphql-tools/merge';
import { loadFilesSync } from '@graphql-tools/load-files';
import { resolvers as PageBuilderResolvers, mutations as PageBuilderMutations } from '@ax2/xms-media-manager';

const resolversArray = loadFilesSync(path.join(__dirname, './entities/**/resolver.ts'));
resolversArray.push(PageBuilderResolvers);
const Queries = mergeResolvers(resolversArray);

const mutationsArray = loadFilesSync(path.join(__dirname, './entities/**/mutation.ts'));
mutationsArray.push(PageBuilderMutations);
const Mutations = mergeResolvers(mutationsArray);

export const resolvers = {
  ...Queries,
  ...Mutations,
  Upload: GraphQLUpload,
};

Merge the graphql type into your api src/graphql/type.ts

Example:

import * as path from 'path';
import { mergeTypeDefs } from '@graphql-tools/merge';
import { loadFilesSync } from '@graphql-tools/load-files';

import { types as PageBuilderTypes } from '@ax2/xms-media-manager';

const typesArray = loadFilesSync(path.join(__dirname, './entities/**/type.graphql'));
typesArray.push(MediaTypes);
typesArray.push(PageBuilderTypes);
export const typeDefs = mergeTypeDefs(typesArray);

Use custom mimetype for allowed files

In your server.ts file

import { mediaConfig } from '@ax2/xms-media-manager';

// Set allowed file formats
mediaConfig.fileFormats = [
  'image/jpg',
  'image/jpeg',
  'image/png',
  'application/pdf',
  'application/zip',
  'video/mp4',
  'application/vnd.ms-powerpoint',
  'application/vnd.openxmlformats-officedocument.presentationml.presentation'
];

Use package migrations src/graphql/type.ts

Example:

import * as dotenv from 'dotenv';
import { MigrateHelper } from '@ax2/xms-api-core';

dotenv.config();

// MySQL connection pool (set up on app initialisation)
const config = {};

const packages = [
  '@ax2/xms-media-manager'
];

MigrateHelper(config, `${__dirname}/../migrations/`, packages);

How to use migration (run from root folder of your api)

See quip link

yarn migrate up 1 --all
yarn migrate up 1 --package @ax2/xms-media-manager
yarn migrate down 1 --package @ax2/xms-media-manager
yarn migrate add migration create_table_mytable --package @ax2/xms-media-manager

Available class

// Models function
export { Media, MediaService, Mediacategory } from '@ax2/xms-media-manager';

// Graphql schema/resolver
export { resolvers, mutations, types } from '@ax2/xms-media-manager';

// Helpers function
import { executeMigration } from '@ax2/xms-media-manager';

// Configuration file
import { mediaConfig } from '@ax2/xms-media-manager';

Readme

Keywords

none

Package Sidebar

Install

npm i @ax2/xms-media-manager

Weekly Downloads

1

Version

0.7.0

License

MIT

Unpacked Size

70.4 kB

Total Files

56

Last publish

Collaborators

  • ax2-owner