QueryBuilderUserContext.js 633 B

123456789101112131415161718192021222324252627
  1. const SYMBOL_BUILDER = Symbol();
  2. class QueryBuilderUserContext {
  3. constructor(builder) {
  4. // This should never ever be accessed outside this class. We only
  5. // store it so that we can access builder.knex() lazily.
  6. this[SYMBOL_BUILDER] = builder;
  7. }
  8. get transaction() {
  9. return this[SYMBOL_BUILDER].knex();
  10. }
  11. newFromObject(builder, obj) {
  12. const ctx = new this.constructor(builder);
  13. Object.assign(ctx, obj);
  14. return ctx;
  15. }
  16. newMerge(builder, obj) {
  17. const ctx = new this.constructor(builder);
  18. Object.assign(ctx, this, obj);
  19. return ctx;
  20. }
  21. }
  22. module.exports = QueryBuilderUserContext;