From 9d4f7bb056c0d56eba5f4b6561d6ef751ae2fecc Mon Sep 17 00:00:00 2001 From: Ryan Marganti Date: Mon, 9 Feb 2026 16:12:49 -0500 Subject: [PATCH] docs(bigquery): remove incorrect dataset param references --- README.md | 4 +- packages/bigquery/README.md | 70 ++++++++++++------------ packages/bigquery/src/bigquery-filter.ts | 6 +- 3 files changed, 39 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index b8400d1..d32baa2 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ const results = await db.select().from(usersTable).where(where); import { bigqueryFilter } from "@filter-def/bigquery"; import { BigQuery } from "@google-cloud/bigquery"; -const userFilter = bigqueryFilter("myproject.dataset.users").def({ +const userFilter = bigqueryFilter().def({ name: { kind: "eq" }, emailContains: { kind: "contains", field: "email" }, minAge: { kind: "gte", field: "age" }, @@ -178,7 +178,7 @@ const filter = drizzleFilter(usersTable).def({ **BigQuery** (parameterized SQL): ```typescript -const filter = bigqueryFilter("dataset.users").def({ +const filter = bigqueryFilter().def({ ageDivisibleBy: (divisor: number) => ({ sql: "MOD(age, @divisor) = 0", params: { divisor }, diff --git a/packages/bigquery/README.md b/packages/bigquery/README.md index a1ba0b8..59ad9b9 100644 --- a/packages/bigquery/README.md +++ b/packages/bigquery/README.md @@ -28,7 +28,7 @@ interface User { } // Create a filter definition -const userFilter = bigqueryFilter("myproject.dataset.users").def({ +const userFilter = bigqueryFilter().def({ name: { kind: "eq" }, emailContains: { kind: "contains", field: "email" }, minAge: { kind: "gte", field: "age" }, @@ -67,7 +67,7 @@ const [rows] = await bigquery.query({ Creates a filter builder for the specified entity type. ```typescript -const productFilter = bigqueryFilter("project.dataset.products").def({ +const productFilter = bigqueryFilter().def({ // Filter definitions... }); ``` @@ -109,7 +109,7 @@ const noInput = userFilter(); When the filter name matches a column name, the `field` property is inferred: ```typescript -const filter = bigqueryFilter("dataset.users").def({ +const filter = bigqueryFilter().def({ name: { kind: "eq" }, // field: "name" inferred email: { kind: "contains" }, // field: "email" inferred minAge: { kind: "gte", field: "age" }, // explicit field required @@ -126,7 +126,7 @@ interface UserWithAddress { address: { city: string; geo: { lat: number; lng: number } }; } -const userFilter = bigqueryFilter("dataset.users").def({ +const userFilter = bigqueryFilter().def({ firstName: { kind: "eq", field: "name.first" }, lat: { kind: "eq", field: "address.geo.lat" }, }); @@ -145,7 +145,7 @@ Dots in the field path are used directly as the column reference, and parameter Use `caseInsensitive: true` to use `LOWER()` for case-insensitive matching: ```typescript -const filter = bigqueryFilter("dataset.users").def({ +const filter = bigqueryFilter().def({ nameSearch: { kind: "contains", field: "name", @@ -159,7 +159,7 @@ const filter = bigqueryFilter("dataset.users").def({ Combine conditions with logical operators. All conditions must have explicit `field` properties. ```typescript -const filter = bigqueryFilter("dataset.users").def({ +const filter = bigqueryFilter().def({ // OR: match any condition searchTerm: { kind: "or", @@ -192,7 +192,7 @@ Custom filters receive the input value and return a `BigQueryFilterResult`: ```typescript import type { BigQueryFilterResult } from "@filter-def/bigquery"; -const userFilter = bigqueryFilter("dataset.users").def({ +const userFilter = bigqueryFilter().def({ // Custom SQL expression ageDivisibleBy: (divisor: number): BigQueryFilterResult => ({ sql: "MOD(age, @divisor) = 0", @@ -222,7 +222,7 @@ Extract the input type from a filter definition: ```typescript import type { BigQueryFilterInput } from "@filter-def/bigquery"; -const userFilter = bigqueryFilter("dataset.users").def({ +const userFilter = bigqueryFilter().def({ name: { kind: "eq" }, minAge: { kind: "gte", field: "age" }, }); @@ -283,33 +283,31 @@ interface Product { } // Filter definition -const productFilter = bigqueryFilter("myproject.dataset.products").def( - { - // Inferred fields - name: { kind: "eq" }, - category: { kind: "eq" }, - inStock: { kind: "eq" }, - - // Explicit fields - nameContains: { - kind: "contains", - field: "name", - caseInsensitive: true, - }, - minPrice: { kind: "gte", field: "price" }, - maxPrice: { kind: "lte", field: "price" }, - inCategories: { kind: "inArray", field: "category" }, - - // Boolean filter for search - search: { - kind: "or", - conditions: [ - { kind: "contains", field: "name" }, - { kind: "contains", field: "description" }, - ], - }, +const productFilter = bigqueryFilter().def({ + // Inferred fields + name: { kind: "eq" }, + category: { kind: "eq" }, + inStock: { kind: "eq" }, + + // Explicit fields + nameContains: { + kind: "contains", + field: "name", + caseInsensitive: true, }, -); + minPrice: { kind: "gte", field: "price" }, + maxPrice: { kind: "lte", field: "price" }, + inCategories: { kind: "inArray", field: "category" }, + + // Boolean filter for search + search: { + kind: "or", + conditions: [ + { kind: "contains", field: "name" }, + { kind: "contains", field: "description" }, + ], + }, +}); type ProductFilterInput = BigQueryFilterInput; @@ -349,7 +347,7 @@ const searchResults = await searchProducts(bigquery, { BigQuery uses `UNNEST()` for array parameters in `IN` clauses: ```typescript -const filter = bigqueryFilter("dataset.users").def({ +const filter = bigqueryFilter().def({ ageIn: { kind: "inArray", field: "age" }, }); @@ -363,7 +361,7 @@ const where = filter({ ageIn: [25, 30, 35] }); BigQuery expects timestamps in ISO format. Use custom filters for date handling: ```typescript -const filter = bigqueryFilter("dataset.events").def({ +const filter = bigqueryFilter().def({ after: (date: Date) => ({ sql: "timestamp > @after", params: { after: date.toISOString() }, diff --git a/packages/bigquery/src/bigquery-filter.ts b/packages/bigquery/src/bigquery-filter.ts index c5f4410..b0aa9f8 100644 --- a/packages/bigquery/src/bigquery-filter.ts +++ b/packages/bigquery/src/bigquery-filter.ts @@ -24,7 +24,7 @@ import type { * age: number; * } * - * const userFilter = bigqueryFilter('myproject.dataset.users').def({ + * const userFilter = bigqueryFilter().def({ * name: { kind: 'eq' }, * emailContains: { kind: 'contains', field: 'email' }, * }); @@ -47,7 +47,7 @@ import type { * Custom filters can return SQL and params directly: * * ```typescript - * const userFilter = bigqueryFilter('myproject.dataset.users').def({ + * const userFilter = bigqueryFilter().def({ * ageDivisibleBy: (divisor: number) => ({ * sql: 'MOD(age, @divisor) = 0', * params: { divisor }, @@ -89,7 +89,7 @@ export type BigQueryFilter = ( * The expected input for a BigQueryFilter. * * ```typescript - * const userFilter = bigqueryFilter('table').def({ ... }); + * const userFilter = bigqueryFilter().def({ ... }); * type UserFilterInput = BigQueryFilterInput; * ``` */