text: "use strict";
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.ViewEntity = void 0;
  const globals_1 = require("../../globals");
  const ObjectUtils_1 = require("../../util/ObjectUtils");
  /**
   * This decorator is used to mark classes that will be an entity view.
   * Database schema will be created for all classes decorated with it, and Repository can be retrieved and used for it.
   */
  function ViewEntity(nameOrOptions, maybeOptions) {
      const options = (ObjectUtils_1.ObjectUtils.isObject(nameOrOptions)
          ? nameOrOptions
          : maybeOptions) || {};
      const name = typeof nameOrOptions === "string" ? nameOrOptions : options.name;
      return function (target) {
          (0, globals_1.getMetadataArgsStorage)().tables.push({
              target: target,
              name: name,
              expression: options.expression,
              dependsOn: options.dependsOn
                  ? new Set(options.dependsOn)
                  : undefined,
              type: "view",
              database: options.database ? options.database : undefined,
              schema: options.schema ? options.schema : undefined,
              synchronize: options.synchronize === false ? false : true,
              materialized: !!options.materialized,
          });
      };
  }
  exports.ViewEntity = ViewEntity;
  
  //# sourceMappingURL=ViewEntity.js.map
  