fix(tl-utils): do not break @link tags
This commit is contained in:
parent
b34a90ec30
commit
e3dbe3b7d1
2 changed files with 91 additions and 62 deletions
|
@ -10,9 +10,12 @@ export const camelToPascal = (s: string): string =>
|
|||
export function jsComment(s: string): string {
|
||||
return (
|
||||
'/**' +
|
||||
// awesome hack not to break up {@link} links
|
||||
s
|
||||
.replace(/{@link (.*?)}/g, '{@link$1}')
|
||||
.replace(/(?![^\n]{1,60}$)([^\n]{1,60})\s/g, '$1\n')
|
||||
.replace(/\n|^/g, '\n * ') +
|
||||
.replace(/\n|^/g, '\n * ')
|
||||
.replace(/{@link(.*)?}/, '{@link $1}') +
|
||||
'\n */'
|
||||
)
|
||||
}
|
||||
|
|
|
@ -65,9 +65,10 @@ describe('generateTypescriptDefinitionsForTlEntry', () => {
|
|||
)
|
||||
})
|
||||
|
||||
it('adds comments', () => {
|
||||
describe('comments', () => {
|
||||
it('adds tl style comments', () => {
|
||||
test(
|
||||
'// This is a test constructor\ntest = Test;',
|
||||
'// This is a test constructor\n' + 'test = Test;',
|
||||
'/**',
|
||||
' * This is a test constructor',
|
||||
' */',
|
||||
|
@ -75,6 +76,22 @@ describe('generateTypescriptDefinitionsForTlEntry', () => {
|
|||
" _: 'test';",
|
||||
'}'
|
||||
)
|
||||
test(
|
||||
'---functions---\n' +
|
||||
'// This is a test method\n' +
|
||||
'test = Test;',
|
||||
'/**',
|
||||
' * This is a test method',
|
||||
' * ',
|
||||
' * RPC method returns {@link tl.TypeTest}',
|
||||
' */',
|
||||
'interface RawTestRequest {',
|
||||
" _: 'test';",
|
||||
'}'
|
||||
)
|
||||
})
|
||||
|
||||
it('adds tdlib style comments', () => {
|
||||
test(
|
||||
'// @description This is a test constructor\n' +
|
||||
'// @field Some field\n' +
|
||||
|
@ -90,20 +107,12 @@ describe('generateTypescriptDefinitionsForTlEntry', () => {
|
|||
' field: number;',
|
||||
'}'
|
||||
)
|
||||
test(
|
||||
'---functions---\n// This is a test method\ntest = Test;',
|
||||
'/**',
|
||||
' * This is a test method',
|
||||
' * ',
|
||||
' * RPC method returns {@see tl.TypeTest}',
|
||||
' */',
|
||||
'interface RawTestRequest {',
|
||||
" _: 'test';",
|
||||
'}'
|
||||
)
|
||||
})
|
||||
|
||||
it('wraps long comments', () => {
|
||||
test(
|
||||
'// This is a test constructor with a very very very very very very very very long comment\ntest = Test;',
|
||||
'// This is a test constructor with a very very very very very very very very long comment\n' +
|
||||
'test = Test;',
|
||||
'/**',
|
||||
' * This is a test constructor with a very very very very very',
|
||||
' * very very very long comment',
|
||||
|
@ -114,12 +123,14 @@ describe('generateTypescriptDefinitionsForTlEntry', () => {
|
|||
)
|
||||
|
||||
test(
|
||||
'---functions---\n// This is a test method with a very very very very very very very very long comment\ntest = Test;',
|
||||
'---functions---\n' +
|
||||
'// This is a test method with a very very very very very very very very long comment\n' +
|
||||
'test = Test;',
|
||||
'/**',
|
||||
' * This is a test method with a very very very very very very',
|
||||
' * very very long comment',
|
||||
' * ',
|
||||
' * RPC method returns {@see tl.TypeTest}',
|
||||
' * RPC method returns {@link tl.TypeTest}',
|
||||
' */',
|
||||
'interface RawTestRequest {',
|
||||
" _: 'test';",
|
||||
|
@ -127,6 +138,21 @@ describe('generateTypescriptDefinitionsForTlEntry', () => {
|
|||
)
|
||||
})
|
||||
|
||||
it('should not break @link tags', () => {
|
||||
test(
|
||||
'// This is a test constructor with a very long comment {@link whatever} more text\n' +
|
||||
'test = Test;',
|
||||
'/**',
|
||||
' * This is a test constructor with a very long comment',
|
||||
' * {@link whatever} more text',
|
||||
' */',
|
||||
'interface RawTest {',
|
||||
" _: 'test';",
|
||||
'}'
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
it('writes generic types', () => {
|
||||
test(
|
||||
'---functions---\ninvokeWithoutUpdates#bf9459b7 {X:Type} query:!X = X;',
|
||||
|
@ -242,7 +268,7 @@ describe('generateTypescriptDefinitionsForTlSchema', () => {
|
|||
" _: 'test';",
|
||||
'}',
|
||||
'/**',
|
||||
' * RPC method returns {@see tl.TypeTest}',
|
||||
' * RPC method returns {@link tl.TypeTest}',
|
||||
' */',
|
||||
'interface RawGetTestRequest {',
|
||||
" _: 'getTest';",
|
||||
|
@ -284,7 +310,7 @@ interface RawTest2 {
|
|||
_: 'test2';
|
||||
}
|
||||
/**
|
||||
* RPC method returns {@see tl.TypeTest}
|
||||
* RPC method returns {@link tl.TypeTest}
|
||||
*/
|
||||
interface RawGetTestRequest {
|
||||
_: 'getTest';
|
||||
|
@ -303,7 +329,7 @@ namespace test {
|
|||
_: 'test.test2';
|
||||
}
|
||||
/**
|
||||
* RPC method returns {@see tl.test.TypeTest}
|
||||
* RPC method returns {@link tl.test.TypeTest}
|
||||
*/
|
||||
interface RawGetTestRequest {
|
||||
_: 'test.getTest';
|
||||
|
|
Loading…
Reference in a new issue