blob: df51c70d8bfeaa5addc385a68ccaf49643199858 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const RESOURCEID_RX = /[^$]*\$json\/(.*)\.json/
module.exports = {
alias: (name, aliases) => {
for (expr of (aliases || '').split(',')) {
const {pattern, alias} = splitOnce(expr)
const re = new RegExp(pattern, 'i')
if (re.test(name)) {
return alias
}
}
return ''
},
boldLink: (text, idPrefix, suffix = '') => {
const idText = `_${idPrefix}_${text.split('.').join('_')}`
text = suffix ? `*${text}* (${suffix})` : `*${text}*`
return `[#${idText}]\nxref:#${idText}['',role=anchor]${text}`
},
description: (value) => {
try {
return module.exports.strong(value, 'Autowired')
+ module.exports.strong(value, 'Required')
+ module.exports.strong(value, 'Deprecated')
+ (value.description ? module.exports.escapeAttributes(value.description) + (value.description.endsWith('.') ? '' : '.') : '')
+ (value.deprecatedNote ? `\n\nNOTE: ${value.deprecatedNote}` : '')
+ (value.enum ? `${['\n\nEnum values:\n'].concat(value.enum).join('\n* ')}` : '')
} catch (e) {
console.log('error', e)
return e.msg()
}
},
escapeAttributes: (text) => {
return text ? text.split('{').join('\\{') : text
},
extractSBName: (resourceid) => {
const m =resourceid.match(RESOURCEID_RX)
return m ? m[1] : 'no match'
},
formatSignature: (signature) => {
return signature.split('$').join('.') + ';'
},
javaSimpleName: (name) => {
return name.split(/<.*>/).join('').split('.').pop()
},
pascalCase: (input) => {
return input ?
input.split('-').map((segment) => {
return segment.length ?
segment.charAt(0).toUpperCase() + segment.slice(1) :
segment
}).join('') :
input
},
producerConsumerLong: (consumerOnly, producerOnly) => {
if (consumerOnly) return 'Only consumer is supported'
if (producerOnly) return 'Only producer is supported'
return 'Both producer and consumer are supported'
},
starterArtifactId: (data) => {
return data['starter-artifactid'] ? data['starter-artifactid'] : `${data.artifactid}-starter`
},
strong: (data, text) => {
return data[text.toLowerCase()] ? `*${text}* ` : ''
},
valueAsString: (value) => {
return value === undefined ? '' : `${value}`
},
}
function splitOnce (querySpec, token = '=') {
const index = querySpec.indexOf(token)
const pattern = querySpec.substring(0, index).trim()
const alias = querySpec.substring(index + 1).trim()
return { pattern, alias }
}