metal-orm 1.0.96 → 1.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -4247,6 +4247,21 @@ declare class SelectQueryBuilder<T = EntityInstance<TableDef>, TTable extends Ta
4247
4247
  page: number;
4248
4248
  pageSize: number;
4249
4249
  }): Promise<PaginatedResult<T>>;
4250
+ /**
4251
+ * Executes the query and returns an array of values for a single column.
4252
+ * This is a convenience method to avoid manual `.map(r => r.column)`.
4253
+ *
4254
+ * @param column - The column name to extract
4255
+ * @param ctx - ORM session context
4256
+ * @returns Promise of an array containing only the values of the specified column
4257
+ * @example
4258
+ * const acronyms = await selectFromEntity(Organization)
4259
+ * .select('acronym')
4260
+ * .distinct(O.acronym)
4261
+ * .pluck('acronym', session);
4262
+ * // ['NASA', 'UN', 'WHO']
4263
+ */
4264
+ pluck<K extends keyof T & string>(column: K, ctx: OrmSession): Promise<T[K][]>;
4250
4265
  /**
4251
4266
  * Executes the query with provided execution and hydration contexts
4252
4267
  * @param execCtx - Execution context
package/dist/index.d.ts CHANGED
@@ -4247,6 +4247,21 @@ declare class SelectQueryBuilder<T = EntityInstance<TableDef>, TTable extends Ta
4247
4247
  page: number;
4248
4248
  pageSize: number;
4249
4249
  }): Promise<PaginatedResult<T>>;
4250
+ /**
4251
+ * Executes the query and returns an array of values for a single column.
4252
+ * This is a convenience method to avoid manual `.map(r => r.column)`.
4253
+ *
4254
+ * @param column - The column name to extract
4255
+ * @param ctx - ORM session context
4256
+ * @returns Promise of an array containing only the values of the specified column
4257
+ * @example
4258
+ * const acronyms = await selectFromEntity(Organization)
4259
+ * .select('acronym')
4260
+ * .distinct(O.acronym)
4261
+ * .pluck('acronym', session);
4262
+ * // ['NASA', 'UN', 'WHO']
4263
+ */
4264
+ pluck<K extends keyof T & string>(column: K, ctx: OrmSession): Promise<T[K][]>;
4250
4265
  /**
4251
4266
  * Executes the query with provided execution and hydration contexts
4252
4267
  * @param execCtx - Execution context
package/dist/index.js CHANGED
@@ -4699,9 +4699,15 @@ var hydrateRows = (rows, plan) => {
4699
4699
  }
4700
4700
  return seen;
4701
4701
  };
4702
+ const hasRelations = plan.relations.length > 0;
4702
4703
  for (const row of rows) {
4703
4704
  const rootId = row[plan.rootPrimaryKey];
4704
- if (rootId === void 0) continue;
4705
+ if (rootId === void 0 || rootId === null) {
4706
+ if (!hasRelations) {
4707
+ rootMap.set(Symbol(), createBaseRow(row, plan));
4708
+ }
4709
+ continue;
4710
+ }
4705
4711
  const parent = getOrCreateParent(row);
4706
4712
  if (!parent) continue;
4707
4713
  for (const rel of plan.relations) {
@@ -7218,6 +7224,24 @@ var SelectQueryBuilder = class _SelectQueryBuilder {
7218
7224
  const builder = this.ensureDefaultSelection();
7219
7225
  return executePagedQuery(builder, session, options, (sess) => builder.count(sess));
7220
7226
  }
7227
+ /**
7228
+ * Executes the query and returns an array of values for a single column.
7229
+ * This is a convenience method to avoid manual `.map(r => r.column)`.
7230
+ *
7231
+ * @param column - The column name to extract
7232
+ * @param ctx - ORM session context
7233
+ * @returns Promise of an array containing only the values of the specified column
7234
+ * @example
7235
+ * const acronyms = await selectFromEntity(Organization)
7236
+ * .select('acronym')
7237
+ * .distinct(O.acronym)
7238
+ * .pluck('acronym', session);
7239
+ * // ['NASA', 'UN', 'WHO']
7240
+ */
7241
+ async pluck(column, ctx) {
7242
+ const rows = await this.executePlain(ctx);
7243
+ return rows.map((r) => r[column]);
7244
+ }
7221
7245
  /**
7222
7246
  * Executes the query with provided execution and hydration contexts
7223
7247
  * @param execCtx - Execution context