{"id":19714653,"url":"https://github.com/quavedev/resolvers","last_synced_at":"2026-05-08T00:37:18.584Z","repository":{"id":47645041,"uuid":"264920282","full_name":"quavedev/resolvers","owner":"quavedev","description":"Meteor package that receives a definition and generates resolvers","archived":false,"fork":false,"pushed_at":"2021-08-19T21:02:18.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-06-24T23:09:09.671Z","etag":null,"topics":["graphql","meteor","meteor-package"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quavedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-18T11:36:17.000Z","updated_at":"2021-08-19T21:02:21.000Z","dependencies_parsed_at":"2022-09-06T20:30:34.646Z","dependency_job_id":null,"html_url":"https://github.com/quavedev/resolvers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/quavedev/resolvers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quavedev%2Fresolvers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quavedev%2Fresolvers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quavedev%2Fresolvers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quavedev%2Fresolvers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quavedev","download_url":"https://codeload.github.com/quavedev/resolvers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quavedev%2Fresolvers/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264257663,"owners_count":23580469,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphql","meteor","meteor-package"],"created_at":"2024-11-11T22:34:35.669Z","updated_at":"2026-05-08T00:37:13.533Z","avatar_url":"https://github.com/quavedev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# quave:resolvers\n\n`quave:resolvers` is a Meteor package that receives a defintion and generates resolvers.\n\n## Why\n\nWe don't want to write the same resolvers all the time, for example, to list data, to get one specific record by id, to update data, etc. Then we have these common resolvers defined automatically.\n\nWe believe we are not reinventing the wheel in this package but what we are doing is like putting together the wheels in the vehicle :).\n\n## Installation\n\n```sh\nmeteor add quave:resolvers\n```\n\n## Usage\n\nYou will get automatically resolvers and methods in your collection.\n\n### resolvable\n\nMethods:\n- `save(input)`: saves or update your data into a document.\n- `erase(_id)`: removes your data using the _id.\n\nYou can apply this `resolvable` composer in your collection using `quave:collections` or manually to add new methods to your collection.\n\n```javascript\nimport { createCollection } from 'meteor/quave:collections';\nimport { resolvable } from 'meteor/quave:resolvers';\n\nimport { PlayerSchema, PlayerDefinition } from './PlayersDefinitions';\n\nexport const PlayersCollection = createCollection({\n  name: PlayerDefinition.pluralNameCamelCase,\n  definition: PlayerDefinition,\n  schema: PlayerSchema,\n  composers: [resolvable],\n});\n```\n\n### GraphQL\n\nResolvers and Schema (using `Player` as example but the names will be based in your definition):\n\n```graphql\ntype Query {\n  player(_id: ID!): Player\n  players: [Player]\n}      \n\ntype Mutation {\n  savePlayer(player: PlayerInput!): Player\n  erasePlayer(_id: ID!): Player\n}      \n```\n\nYou create your resolvers using the definition and the collection together as you can see below.\n\n```javascript\nimport { startGraphQLServer } from 'meteor/quave:graphql';\n\nimport { createResolvers } from 'meteor/quave:resolvers';\n\nimport { DateTimeResolver } from 'meteor/quave:custom-type-date-time/DateTimeResolver';\nimport { DateTimeDefinition } from 'meteor/quave:custom-type-date-time/DateTimeDefinition';\nimport { PlayerPositionDefinition } from '../imports/players/PlayerPositionEnum';\nimport { PlayersCollection } from '../imports/players/PlayersCollection';\nimport { PlayerDefinition } from '../imports/players/PlayersDefinitions';\n\nstartGraphQLServer({\n  typeDefs: [\n    DateTimeDefinition,\n    PlayerPositionDefinition.toGraphQL(),\n    PlayerDefinition.toGraphQL(),\n  ],\n  resolvers: [\n    DateTimeResolver,\n    createResolvers({\n      definition: PlayerDefinition,\n      collection: PlayersCollection,\n    }),\n  ],\n});\n\n```\n\n### License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquavedev%2Fresolvers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquavedev%2Fresolvers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquavedev%2Fresolvers/lists"}