AK-21/Graphite-Industrial-Intelligence
0
1"use strict";2var __defProp = Object.defineProperty;3var __getOwnPropDesc = Object.getOwnPropertyDescriptor;4var __getOwnPropNames = Object.getOwnPropertyNames;5var __hasOwnProp = Object.prototype.hasOwnProperty;6var __export = (target, all) => {7 for (var name in all)8 __defProp(target, name, { get: all[name], enumerable: true });9};10var __copyProps = (to, from, except, desc) => {11 if (from && typeof from === "object" || typeof from === "function") {12 for (let key of __getOwnPropNames(from))13 if (!__hasOwnProp.call(to, key) && key !== except)14 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });15 }16 return to;17};18var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);19var view_exports = {};20__export(view_exports, {21 DefaultViewBuilderCore: () => DefaultViewBuilderCore,22 GelMaterializedView: () => GelMaterializedView,23 GelMaterializedViewConfig: () => GelMaterializedViewConfig,24 GelView: () => GelView,25 ManualMaterializedViewBuilder: () => ManualMaterializedViewBuilder,26 ManualViewBuilder: () => ManualViewBuilder,27 MaterializedViewBuilder: () => MaterializedViewBuilder,28 MaterializedViewBuilderCore: () => MaterializedViewBuilderCore,29 ViewBuilder: () => ViewBuilder,30 gelMaterializedViewWithSchema: () => gelMaterializedViewWithSchema,31 gelViewWithSchema: () => gelViewWithSchema32});33module.exports = __toCommonJS(view_exports);34var import_entity = require("../entity.cjs");35var import_selection_proxy = require("../selection-proxy.cjs");36var import_utils = require("../utils.cjs");37var import_query_builder = require("./query-builders/query-builder.cjs");38var import_table = require("./table.cjs");39var import_view_base = require("./view-base.cjs");40var import_view_common = require("./view-common.cjs");41class DefaultViewBuilderCore {42 constructor(name, schema) {43 this.name = name;44 this.schema = schema;45 }46 static [import_entity.entityKind] = "GelDefaultViewBuilderCore";47 config = {};48 with(config) {49 this.config.with = config;50 return this;51 }52}53class ViewBuilder extends DefaultViewBuilderCore {54 static [import_entity.entityKind] = "GelViewBuilder";55 as(qb) {56 if (typeof qb === "function") {57 qb = qb(new import_query_builder.QueryBuilder());58 }59 const selectionProxy = new import_selection_proxy.SelectionProxyHandler({60 alias: this.name,61 sqlBehavior: "error",62 sqlAliasedBehavior: "alias",63 replaceOriginalName: true64 });65 const aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);66 return new Proxy(67 new GelView({68 GelConfig: this.config,69 config: {70 name: this.name,71 schema: this.schema,72 selectedFields: aliasedSelection,73 query: qb.getSQL().inlineParams()74 }75 }),76 selectionProxy77 );78 }79}80class ManualViewBuilder extends DefaultViewBuilderCore {81 static [import_entity.entityKind] = "GelManualViewBuilder";82 columns;83 constructor(name, columns, schema) {84 super(name, schema);85 this.columns = (0, import_utils.getTableColumns)((0, import_table.gelTable)(name, columns));86 }87 existing() {88 return new Proxy(89 new GelView({90 GelConfig: void 0,91 config: {92 name: this.name,93 schema: this.schema,94 selectedFields: this.columns,95 query: void 096 }97 }),98 new import_selection_proxy.SelectionProxyHandler({99 alias: this.name,100 sqlBehavior: "error",101 sqlAliasedBehavior: "alias",102 replaceOriginalName: true103 })104 );105 }106 as(query) {107 return new Proxy(108 new GelView({109 GelConfig: this.config,110 config: {111 name: this.name,112 schema: this.schema,113 selectedFields: this.columns,114 query: query.inlineParams()115 }116 }),117 new import_selection_proxy.SelectionProxyHandler({118 alias: this.name,119 sqlBehavior: "error",120 sqlAliasedBehavior: "alias",121 replaceOriginalName: true122 })123 );124 }125}126class MaterializedViewBuilderCore {127 constructor(name, schema) {128 this.name = name;129 this.schema = schema;130 }131 static [import_entity.entityKind] = "GelMaterializedViewBuilderCore";132 config = {};133 using(using) {134 this.config.using = using;135 return this;136 }137 with(config) {138 this.config.with = config;139 return this;140 }141 tablespace(tablespace) {142 this.config.tablespace = tablespace;143 return this;144 }145 withNoData() {146 this.config.withNoData = true;147 return this;148 }149}150class MaterializedViewBuilder extends MaterializedViewBuilderCore {151 static [import_entity.entityKind] = "GelMaterializedViewBuilder";152 as(qb) {153 if (typeof qb === "function") {154 qb = qb(new import_query_builder.QueryBuilder());155 }156 const selectionProxy = new import_selection_proxy.SelectionProxyHandler({157 alias: this.name,158 sqlBehavior: "error",159 sqlAliasedBehavior: "alias",160 replaceOriginalName: true161 });162 const aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);163 return new Proxy(164 new GelMaterializedView({165 GelConfig: {166 with: this.config.with,167 using: this.config.using,168 tablespace: this.config.tablespace,169 withNoData: this.config.withNoData170 },171 config: {172 name: this.name,173 schema: this.schema,174 selectedFields: aliasedSelection,175 query: qb.getSQL().inlineParams()176 }177 }),178 selectionProxy179 );180 }181}182class ManualMaterializedViewBuilder extends MaterializedViewBuilderCore {183 static [import_entity.entityKind] = "GelManualMaterializedViewBuilder";184 columns;185 constructor(name, columns, schema) {186 super(name, schema);187 this.columns = (0, import_utils.getTableColumns)((0, import_table.gelTable)(name, columns));188 }189 existing() {190 return new Proxy(191 new GelMaterializedView({192 GelConfig: {193 tablespace: this.config.tablespace,194 using: this.config.using,195 with: this.config.with,196 withNoData: this.config.withNoData197 },198 config: {199 name: this.name,200 schema: this.schema,201 selectedFields: this.columns,202 query: void 0203 }204 }),205 new import_selection_proxy.SelectionProxyHandler({206 alias: this.name,207 sqlBehavior: "error",208 sqlAliasedBehavior: "alias",209 replaceOriginalName: true210 })211 );212 }213 as(query) {214 return new Proxy(215 new GelMaterializedView({216 GelConfig: {217 tablespace: this.config.tablespace,218 using: this.config.using,219 with: this.config.with,220 withNoData: this.config.withNoData221 },222 config: {223 name: this.name,224 schema: this.schema,225 selectedFields: this.columns,226 query: query.inlineParams()227 }228 }),229 new import_selection_proxy.SelectionProxyHandler({230 alias: this.name,231 sqlBehavior: "error",232 sqlAliasedBehavior: "alias",233 replaceOriginalName: true234 })235 );236 }237}238class GelView extends import_view_base.GelViewBase {239 static [import_entity.entityKind] = "GelView";240 [import_view_common.GelViewConfig];241 constructor({ GelConfig, config }) {242 super(config);243 if (GelConfig) {244 this[import_view_common.GelViewConfig] = {245 with: GelConfig.with246 };247 }248 }249}250const GelMaterializedViewConfig = Symbol.for("drizzle:GelMaterializedViewConfig");251class GelMaterializedView extends import_view_base.GelViewBase {252 static [import_entity.entityKind] = "GelMaterializedView";253 [GelMaterializedViewConfig];254 constructor({ GelConfig, config }) {255 super(config);256 this[GelMaterializedViewConfig] = {257 with: GelConfig?.with,258 using: GelConfig?.using,259 tablespace: GelConfig?.tablespace,260 withNoData: GelConfig?.withNoData261 };262 }263}264function gelViewWithSchema(name, selection, schema) {265 if (selection) {266 return new ManualViewBuilder(name, selection, schema);267 }268 return new ViewBuilder(name, schema);269}270function gelMaterializedViewWithSchema(name, selection, schema) {271 if (selection) {272 return new ManualMaterializedViewBuilder(name, selection, schema);273 }274 return new MaterializedViewBuilder(name, schema);275}276function gelView(name, columns) {277 return gelViewWithSchema(name, columns, void 0);278}279function gelMaterializedView(name, columns) {280 return gelMaterializedViewWithSchema(name, columns, void 0);281}282function isGelView(obj) {283 return (0, import_entity.is)(obj, GelView);284}285function isGelMaterializedView(obj) {286 return (0, import_entity.is)(obj, GelMaterializedView);287}288// Annotate the CommonJS export names for ESM import in node:2890 && (module.exports = {290 DefaultViewBuilderCore,291 GelMaterializedView,292 GelMaterializedViewConfig,293 GelView,294 ManualMaterializedViewBuilder,295 ManualViewBuilder,296 MaterializedViewBuilder,297 MaterializedViewBuilderCore,298 ViewBuilder,299 gelMaterializedViewWithSchema,300 gelViewWithSchema301});302//# sourceMappingURL=view.cjs.map