postHydraCLIInstall.ts 1.1 KB

1234567891011121314151617181920212223
  1. // A script to be executed post hydra-cli install, that may include patches for Hydra CLI
  2. import path from 'path'
  3. import { replaceInFile } from './utils'
  4. // FIXME: Temporary fix for missing JOIN and HAVING conditions in search queries (Hydra)
  5. const searchServiceTemplatePath = path.resolve(
  6. __dirname,
  7. '../../codegen/node_modules/@joystream/hydra-cli/lib/src/templates/textsearch/service.ts.mst'
  8. )
  9. replaceInFile({
  10. filePath: searchServiceTemplatePath,
  11. regex: /queries = queries\.concat\(generateSqlQuery\(repositories\[index\]\.metadata\.tableName, WHERE\)\);/,
  12. newContent:
  13. 'queries = queries.concat(generateSqlQuery(repositories[index].metadata.tableName, qb.createJoinExpression(), WHERE, qb.createHavingExpression()));',
  14. })
  15. replaceInFile({
  16. filePath: searchServiceTemplatePath,
  17. regex: /const generateSqlQuery =[\s\S]+\+ where;/,
  18. newContent: `const generateSqlQuery = (table: string, joins: string, where: string, having: string) =>
  19. \`SELECT '\${table}_' || "\${table}"."id" AS unique_id FROM "\${table}" \` + joins + ' ' + where + ' ' + having;`,
  20. })