mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
Add custom transform for extracting i18next keys from TypeScript files (#7138)
GitOrigin-RevId: 3b435b999c72e666eff25f86eb65e0368e953910
This commit is contained in:
parent
8b253b32f7
commit
55c5973d37
1 changed files with 24 additions and 2 deletions
|
@ -1,7 +1,11 @@
|
|||
const fs = require('node:fs')
|
||||
const path = require('node:path')
|
||||
const typescript = require('typescript')
|
||||
|
||||
module.exports = {
|
||||
input: [
|
||||
'frontend/js/**/*.{js,jsx}',
|
||||
'modules/**/*.{js,jsx}',
|
||||
'frontend/js/**/*.{js,jsx,ts,tsx}',
|
||||
'modules/**/*.{js,jsx,ts,tsx}',
|
||||
'!frontend/js/vendor/**',
|
||||
],
|
||||
output: './',
|
||||
|
@ -24,4 +28,22 @@ module.exports = {
|
|||
lineEnding: '\n',
|
||||
},
|
||||
},
|
||||
// adapted from https://github.com/nucleartux/i18next-scanner-typescript/blob/master/src/index.js
|
||||
transform: function (file, enc, done) {
|
||||
const { base, ext } = path.parse(file.path)
|
||||
|
||||
if (['.ts', '.tsx'].includes(ext) && !base.endsWith('.d.ts')) {
|
||||
const content = fs.readFileSync(file.path, enc)
|
||||
|
||||
const { outputText } = typescript.transpileModule(content, {
|
||||
compilerOptions: { target: 'es2018', jsx: 'preserve' },
|
||||
fileName: base,
|
||||
})
|
||||
|
||||
this.parser.parseTransFromString(outputText)
|
||||
this.parser.parseFuncFromString(outputText)
|
||||
}
|
||||
|
||||
done()
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue