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 = {
|
module.exports = {
|
||||||
input: [
|
input: [
|
||||||
'frontend/js/**/*.{js,jsx}',
|
'frontend/js/**/*.{js,jsx,ts,tsx}',
|
||||||
'modules/**/*.{js,jsx}',
|
'modules/**/*.{js,jsx,ts,tsx}',
|
||||||
'!frontend/js/vendor/**',
|
'!frontend/js/vendor/**',
|
||||||
],
|
],
|
||||||
output: './',
|
output: './',
|
||||||
|
@ -24,4 +28,22 @@ module.exports = {
|
||||||
lineEnding: '\n',
|
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