3.2.2-beta.8 • Published 4 years ago

@dosvit/server-toolkit v3.2.2-beta.8

Weekly downloads
3
License
BSD
Repository
-
Last release
4 years ago

API example

import {someSpecialArticle, someSpecialArticles} from './resolvers/customResolvers'

const filePathResolver = ({filename})=>`articles/${md5(new Date + filename) + path.extname(filename)}`;

export default function (entityBuilder: EntityBuilder) {
  entityBuilder
      .addSchema(path.resolve('./schema.graphql'))
      // transform a db type to Upload —  so you can simply import entity type from generated schema
      // and not copy-paste and edit inputs
      .convertInputToUpload('File')
      // apply a custom schema transformer
      .transform(mySchemaTransformer);

  entityBuilder.Query
      // forward with arguments
      .resolve('articles', {where: {publishedAt_lte: "2017-10-10"}, orderBy: "publishedAt_ASC"})
      // or pass arguments with callback, will receive args and ctx from request
      .resolve('articles', {where: ()=>({publishedAt_lte: moment().format()}), orderBy: "publishedAt_ASC"})
      .resolve('articles', {where: (args)=>({...args?.where, publishedAt_lte: moment().format()}), orderBy: "publishedAt_ASC"})
      // custom resolvers
      .resolve('someSpecialArticle',  someSpecialArticle)
      .resolve('someSpecialArticles',  someSpecialArticles)
      // OR short notation:
      .resolve({someSpecialArticle, someSpecialArticles})
      // One can generate translations shortcuts if follows convention
      // all types translated types and resolvers in app schema should have postfixTranslated
      // all parent types should have relation `translations` that accepts {where: {lang: 'en'}}
      .translate('articles')

  entityBuilder.Mutation
      // guard all mutations (maybe should be a default)
      // matching engine https://www.npmjs.com/package/minimatch
      .guard('*',  ["is_admin"])
      // remove guard from some mutations
      .unguard('guestVote')
      // some custom resolver
      .resolve('someMutationWithLogic', someMutationWithLogic)
      // validation using http://validatejs.org/
      // constraints may be an object, or a function returning an object that accepts (args, ctx) args
      .validate('createArticle', constraints)
      // enable uploads. can be default for Upload type props in schema with generic name resolver (md5 in root)
      .upload('createArticle', 'mainImage', filePathResolver)
      .upload('updateArticle', 'mainImage', filePathResolver)
      // add custom HOF
      .decorate('updateArticle',  myHigherOrderFunction);

  // Root types are caught by Proxy object
  entityBuilder.Article
      .resolve('author', resolveAuthorFromAnotherService);

  // The same as `entityBuilder.AnotherType`
  entityBuilder.type('AnotherType').resolve('foo', bar);
}
3.2.2-beta.8

4 years ago

3.2.2-beta.7

4 years ago

3.2.2-beta.6

4 years ago

3.2.2-beta.5

4 years ago

3.2.2-beta.4

4 years ago

3.2.2-beta.3

4 years ago

3.2.2-beta.2

4 years ago

3.2.2-beta.1

4 years ago

3.2.1-beta.8

4 years ago

3.2.1-beta.7

4 years ago

3.2.1-beta.6

4 years ago

3.2.1-beta.4

4 years ago

3.2.1-beta.5

4 years ago

3.2.1-beta.3

4 years ago

3.2.1-beta.2

4 years ago

3.2.1-beta.1

4 years ago

3.1.7-beta.11

4 years ago

3.1.7-beta.10

4 years ago

3.1.7-beta.9

4 years ago

3.1.7-beta.8

4 years ago

3.1.7-beta.7

4 years ago

3.1.7-beta.6

4 years ago

3.1.7-beta.5

4 years ago

3.1.7-beta.4

4 years ago

3.1.7-beta.3

4 years ago

3.1.7-beta.2

4 years ago

3.1.7-beta.1

5 years ago

3.1.6-beta.1

5 years ago

3.1.5-beta.12

5 years ago

3.1.5-beta.11

5 years ago

3.1.5-beta.10

5 years ago

3.1.5-beta.9

5 years ago

3.1.5-beta.8

5 years ago

3.1.5-beta.7

5 years ago

3.1.5-beta.6

5 years ago

3.1.5-beta.5

5 years ago

3.1.5-beta.4

5 years ago

3.1.5-beta.3

5 years ago

3.1.5-beta.2

5 years ago

3.1.5-beta.1

5 years ago

3.1.4-beta.2

5 years ago

3.1.4-beta.1

5 years ago

3.1.3-beta.2

5 years ago

3.1.3-beta.1

5 years ago

3.1.2-beta.2

5 years ago

3.1.2-beta.1

5 years ago

3.1.1-beta.7

5 years ago

3.1.1-beta.6

5 years ago

3.1.1-beta.5

5 years ago

3.1.1-beta.4

5 years ago

3.1.1-beta.2

5 years ago

3.1.1-beta.1

5 years ago

3.1.0-beta.1

5 years ago

3.0.0-beta.16

5 years ago

3.0.0-beta.15

5 years ago

3.0.0-beta.14

5 years ago

3.0.0-beta.13

5 years ago

3.0.0-beta.12

5 years ago

3.0.0-beta.11

5 years ago

3.0.0-beta.10

5 years ago

3.0.0-beta.9

5 years ago

3.0.0-beta.8

5 years ago

3.0.0-beta.7

5 years ago

3.0.0-beta.6

5 years ago

3.0.0-beta.5

5 years ago

3.0.0-beta.4

5 years ago

3.0.0-beta.3

5 years ago

3.0.0-beta.2

5 years ago

3.0.0-beta.1

5 years ago

3.0.0-alpha.8

5 years ago

3.0.0-alpha.7

5 years ago

3.0.0-alpha.6

5 years ago

3.0.0-alpha.5

5 years ago

3.0.0-alpha.4

5 years ago

3.0.0-alpha.3

5 years ago

3.0.0-alpha.2

5 years ago

3.0.0-alpha.1

5 years ago

2.0.1-beta.6

5 years ago

2.0.1-beta.5

5 years ago

2.0.1-beta.4

5 years ago

2.0.1-beta.3

6 years ago

2.0.1-beta.2

6 years ago

2.0.1-beta.1

6 years ago

2.0.0-beta.6

6 years ago

2.0.0-beta.5

6 years ago

2.0.0-beta.4

6 years ago

2.0.0-beta.3

6 years ago

2.0.0-beta.2

6 years ago

2.0.0-beta.1

6 years ago

1.3.5-beta.2

6 years ago

1.3.5-beta.1

6 years ago

1.3.4-beta.3

6 years ago

1.3.4-beta.2

6 years ago

1.3.4-beta.1

6 years ago

1.3.3-beta.2

6 years ago

1.3.1-beta.2

6 years ago

1.3.1-beta.1

6 years ago

1.3.2-alpha.5

6 years ago

1.3.2-alpha.4

6 years ago

1.3.2-alpha.3

6 years ago

1.3.2-alpha.2

6 years ago

1.3.2-alpha.1

6 years ago

1.3.1-alpha.3

6 years ago

1.3.1-alpha.2

6 years ago

1.3.1-alpha.1

6 years ago

1.3.0-alpha.1

6 years ago

1.2.0-alpha.5

6 years ago

1.2.0-alpha.4

6 years ago

1.2.0-alpha.3

6 years ago

1.2.0-alpha.2

6 years ago

1.2.0-alpha.1

6 years ago

1.1.0-alpha.10

6 years ago

1.1.0-alpha.9

6 years ago

1.1.0-alpha.8

6 years ago

1.1.0-alpha.7

6 years ago

1.1.0-alpha.6

6 years ago

1.1.0-alpha.5

6 years ago

1.1.0-alpha.4

6 years ago

1.1.0-alpha.3

6 years ago

1.1.0-alpha.2

6 years ago

1.1.0-alpha.1

6 years ago

1.0.1-alpha.8

6 years ago

1.0.1-alpha.7

6 years ago

1.0.1-alpha.6

6 years ago

1.0.1-alpha.5

6 years ago

1.0.1-alpha.4

6 years ago

1.0.1-alpha.3

6 years ago

1.0.1-alpha.2

6 years ago

1.0.1-alpha.1

6 years ago

1.0.0-alpha.1

6 years ago

0.0.1-beta.4

6 years ago

0.0.1-beta.3

6 years ago

0.0.1-beta.2

6 years ago

0.0.1-beta.1

6 years ago

0.0.1-beta

6 years ago