all files / semantic-graphql/src/graphql/ getGraphqlName.js

100% Statements 11/11
100% Branches 2/2
100% Functions 1/1
100% Lines 10/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17              
const getIriLocalName = require('../utils/getIriLocalName');
const memorize = require('../graph/memorize');
const capitalize = require('../utils/capitalize');
 
// GraphQL-safe name for GraphQL types
function getGraphqlName(g, iri) {
  const { prefixes } = g.config;
  const localName = getIriLocalName(iri);
  const namespaceIri = iri.slice(0, -localName.length);
 
  const prefix = Object.keys(prefixes).find(key => prefixes[key] === namespaceIri) || '';
 
  return capitalize(prefix + localName).replace(/\W/g, '_');
}
 
module.exports = memorize(getGraphqlName, 'graphqlName');