diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
commit | 8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca (patch) | |
tree | 544930fb309b30317ae9797a9683768705d664c4 /app/assets/javascripts/graphql_shared/utils.js | |
parent | 4b1de649d0168371549608993deac953eb692019 (diff) |
Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42
Diffstat (limited to 'app/assets/javascripts/graphql_shared/utils.js')
-rw-r--r-- | app/assets/javascripts/graphql_shared/utils.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/assets/javascripts/graphql_shared/utils.js b/app/assets/javascripts/graphql_shared/utils.js index 5487aeb9391..813e21b6ce9 100644 --- a/app/assets/javascripts/graphql_shared/utils.js +++ b/app/assets/javascripts/graphql_shared/utils.js @@ -14,3 +14,41 @@ export const MutationOperationMode = { Remove: 'REMOVE', Replace: 'REPLACE', }; + +/** + * Possible GraphQL entity types. + */ +export const TYPE_GROUP = 'Group'; + +/** + * Ids generated by GraphQL endpoints are usually in the format + * gid://gitlab/Groups/123. This method takes a type and an id + * and interpolates the 2 values into the expected GraphQL ID format. + * + * @param {String} type The entity type + * @param {String|Number} id The id value + * @returns {String} + */ +export const convertToGraphQLId = (type, id) => { + if (typeof type !== 'string') { + throw new TypeError(`type must be a string; got ${typeof type}`); + } + + if (!['number', 'string'].includes(typeof id)) { + throw new TypeError(`id must be a number or string; got ${typeof id}`); + } + + return `gid://gitlab/${type}/${id}`; +}; + +/** + * Ids generated by GraphQL endpoints are usually in the format + * gid://gitlab/Groups/123. This method takes a type and an + * array of ids and tranforms the array values into the expected + * GraphQL ID format. + * + * @param {String} type The entity type + * @param {Array} ids An array of id values + * @returns {Array} + */ +export const convertToGraphQLIds = (type, ids) => ids.map(id => convertToGraphQLId(type, id)); |