@tinqerjs/tinqer 0.0.21
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/expressions/expression.d.ts +313 -0
- package/dist/expressions/expression.d.ts.map +1 -0
- package/dist/expressions/expression.js +56 -0
- package/dist/expressions/expression.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/linq/database-context.d.ts +18 -0
- package/dist/linq/database-context.d.ts.map +1 -0
- package/dist/linq/database-context.js +23 -0
- package/dist/linq/database-context.js.map +1 -0
- package/dist/linq/database-schema.d.ts +18 -0
- package/dist/linq/database-schema.d.ts.map +1 -0
- package/dist/linq/database-schema.js +23 -0
- package/dist/linq/database-schema.js.map +1 -0
- package/dist/linq/deletable.d.ts +30 -0
- package/dist/linq/deletable.d.ts.map +1 -0
- package/dist/linq/deletable.js +46 -0
- package/dist/linq/deletable.js.map +1 -0
- package/dist/linq/delete-from.d.ts +19 -0
- package/dist/linq/delete-from.d.ts.map +1 -0
- package/dist/linq/delete-from.js +11 -0
- package/dist/linq/delete-from.js.map +1 -0
- package/dist/linq/from.d.ts +19 -0
- package/dist/linq/from.d.ts.map +1 -0
- package/dist/linq/from.js +11 -0
- package/dist/linq/from.js.map +1 -0
- package/dist/linq/functions.d.ts +96 -0
- package/dist/linq/functions.d.ts.map +1 -0
- package/dist/linq/functions.js +136 -0
- package/dist/linq/functions.js.map +1 -0
- package/dist/linq/grouping.d.ts +26 -0
- package/dist/linq/grouping.d.ts.map +1 -0
- package/dist/linq/grouping.js +47 -0
- package/dist/linq/grouping.js.map +1 -0
- package/dist/linq/insert-into.d.ts +19 -0
- package/dist/linq/insert-into.d.ts.map +1 -0
- package/dist/linq/insert-into.js +11 -0
- package/dist/linq/insert-into.js.map +1 -0
- package/dist/linq/insertable.d.ts +30 -0
- package/dist/linq/insertable.d.ts.map +1 -0
- package/dist/linq/insertable.js +37 -0
- package/dist/linq/insertable.js.map +1 -0
- package/dist/linq/query-builder.d.ts +24 -0
- package/dist/linq/query-builder.d.ts.map +1 -0
- package/dist/linq/query-builder.js +21 -0
- package/dist/linq/query-builder.js.map +1 -0
- package/dist/linq/queryable.d.ts +61 -0
- package/dist/linq/queryable.d.ts.map +1 -0
- package/dist/linq/queryable.js +148 -0
- package/dist/linq/queryable.js.map +1 -0
- package/dist/linq/terminal-query.d.ts +10 -0
- package/dist/linq/terminal-query.d.ts.map +1 -0
- package/dist/linq/terminal-query.js +12 -0
- package/dist/linq/terminal-query.js.map +1 -0
- package/dist/linq/updatable.d.ts +57 -0
- package/dist/linq/updatable.d.ts.map +1 -0
- package/dist/linq/updatable.js +84 -0
- package/dist/linq/updatable.js.map +1 -0
- package/dist/linq/update.d.ts +19 -0
- package/dist/linq/update.d.ts.map +1 -0
- package/dist/linq/update.js +11 -0
- package/dist/linq/update.js.map +1 -0
- package/dist/parser/ast-types.d.ts +114 -0
- package/dist/parser/ast-types.d.ts.map +1 -0
- package/dist/parser/ast-types.js +6 -0
- package/dist/parser/ast-types.js.map +1 -0
- package/dist/parser/ast-visitor.d.ts +32 -0
- package/dist/parser/ast-visitor.d.ts.map +1 -0
- package/dist/parser/ast-visitor.js +666 -0
- package/dist/parser/ast-visitor.js.map +1 -0
- package/dist/parser/normalize-joins.d.ts +3 -0
- package/dist/parser/normalize-joins.d.ts.map +1 -0
- package/dist/parser/normalize-joins.js +109 -0
- package/dist/parser/normalize-joins.js.map +1 -0
- package/dist/parser/normalize-window-filters.d.ts +13 -0
- package/dist/parser/normalize-window-filters.d.ts.map +1 -0
- package/dist/parser/normalize-window-filters.js +212 -0
- package/dist/parser/normalize-window-filters.js.map +1 -0
- package/dist/parser/oxc-parser.d.ts +11 -0
- package/dist/parser/oxc-parser.d.ts.map +1 -0
- package/dist/parser/oxc-parser.js +27 -0
- package/dist/parser/oxc-parser.js.map +1 -0
- package/dist/parser/parse-cache-config.d.ts +31 -0
- package/dist/parser/parse-cache-config.d.ts.map +1 -0
- package/dist/parser/parse-cache-config.js +33 -0
- package/dist/parser/parse-cache-config.js.map +1 -0
- package/dist/parser/parse-cache.d.ts +65 -0
- package/dist/parser/parse-cache.d.ts.map +1 -0
- package/dist/parser/parse-cache.js +146 -0
- package/dist/parser/parse-cache.js.map +1 -0
- package/dist/parser/parse-query.d.ts +24 -0
- package/dist/parser/parse-query.d.ts.map +1 -0
- package/dist/parser/parse-query.js +118 -0
- package/dist/parser/parse-query.js.map +1 -0
- package/dist/parser/types.d.ts +11 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +2 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/plans/delete-plan.d.ts +44 -0
- package/dist/plans/delete-plan.d.ts.map +1 -0
- package/dist/plans/delete-plan.js +209 -0
- package/dist/plans/delete-plan.js.map +1 -0
- package/dist/plans/insert-plan.d.ts +50 -0
- package/dist/plans/insert-plan.d.ts.map +1 -0
- package/dist/plans/insert-plan.js +240 -0
- package/dist/plans/insert-plan.js.map +1 -0
- package/dist/plans/plan-execution.d.ts +39 -0
- package/dist/plans/plan-execution.d.ts.map +1 -0
- package/dist/plans/plan-execution.js +32 -0
- package/dist/plans/plan-execution.js.map +1 -0
- package/dist/plans/select-plan.d.ts +74 -0
- package/dist/plans/select-plan.d.ts.map +1 -0
- package/dist/plans/select-plan.js +551 -0
- package/dist/plans/select-plan.js.map +1 -0
- package/dist/plans/update-plan.d.ts +61 -0
- package/dist/plans/update-plan.d.ts.map +1 -0
- package/dist/plans/update-plan.js +297 -0
- package/dist/plans/update-plan.js.map +1 -0
- package/dist/query-tree/operations.d.ts +430 -0
- package/dist/query-tree/operations.d.ts.map +1 -0
- package/dist/query-tree/operations.js +8 -0
- package/dist/query-tree/operations.js.map +1 -0
- package/dist/visitors/aggregates/average.d.ts +11 -0
- package/dist/visitors/aggregates/average.d.ts.map +1 -0
- package/dist/visitors/aggregates/average.js +56 -0
- package/dist/visitors/aggregates/average.js.map +1 -0
- package/dist/visitors/aggregates/max.d.ts +11 -0
- package/dist/visitors/aggregates/max.d.ts.map +1 -0
- package/dist/visitors/aggregates/max.js +56 -0
- package/dist/visitors/aggregates/max.js.map +1 -0
- package/dist/visitors/aggregates/min.d.ts +11 -0
- package/dist/visitors/aggregates/min.d.ts.map +1 -0
- package/dist/visitors/aggregates/min.js +56 -0
- package/dist/visitors/aggregates/min.js.map +1 -0
- package/dist/visitors/aggregates/sum.d.ts +11 -0
- package/dist/visitors/aggregates/sum.d.ts.map +1 -0
- package/dist/visitors/aggregates/sum.js +56 -0
- package/dist/visitors/aggregates/sum.js.map +1 -0
- package/dist/visitors/ast-visitor.d.ts +15 -0
- package/dist/visitors/ast-visitor.d.ts.map +1 -0
- package/dist/visitors/ast-visitor.js +20 -0
- package/dist/visitors/ast-visitor.js.map +1 -0
- package/dist/visitors/boolean/comparison.d.ts +12 -0
- package/dist/visitors/boolean/comparison.d.ts.map +1 -0
- package/dist/visitors/boolean/comparison.js +128 -0
- package/dist/visitors/boolean/comparison.js.map +1 -0
- package/dist/visitors/boolean/logical.d.ts +12 -0
- package/dist/visitors/boolean/logical.d.ts.map +1 -0
- package/dist/visitors/boolean/logical.js +68 -0
- package/dist/visitors/boolean/logical.js.map +1 -0
- package/dist/visitors/boolean-predicates/all.d.ts +11 -0
- package/dist/visitors/boolean-predicates/all.d.ts.map +1 -0
- package/dist/visitors/boolean-predicates/all.js +49 -0
- package/dist/visitors/boolean-predicates/all.js.map +1 -0
- package/dist/visitors/boolean-predicates/any.d.ts +11 -0
- package/dist/visitors/boolean-predicates/any.d.ts.map +1 -0
- package/dist/visitors/boolean-predicates/any.js +48 -0
- package/dist/visitors/boolean-predicates/any.js.map +1 -0
- package/dist/visitors/common/identifier.d.ts +13 -0
- package/dist/visitors/common/identifier.d.ts.map +1 -0
- package/dist/visitors/common/identifier.js +46 -0
- package/dist/visitors/common/identifier.js.map +1 -0
- package/dist/visitors/common/literal.d.ts +13 -0
- package/dist/visitors/common/literal.d.ts.map +1 -0
- package/dist/visitors/common/literal.js +45 -0
- package/dist/visitors/common/literal.js.map +1 -0
- package/dist/visitors/common/member-access.d.ts +15 -0
- package/dist/visitors/common/member-access.d.ts.map +1 -0
- package/dist/visitors/common/member-access.js +192 -0
- package/dist/visitors/common/member-access.js.map +1 -0
- package/dist/visitors/contains/index.d.ts +11 -0
- package/dist/visitors/contains/index.d.ts.map +1 -0
- package/dist/visitors/contains/index.js +26 -0
- package/dist/visitors/contains/index.js.map +1 -0
- package/dist/visitors/count/index.d.ts +11 -0
- package/dist/visitors/count/index.d.ts.map +1 -0
- package/dist/visitors/count/index.js +47 -0
- package/dist/visitors/count/index.js.map +1 -0
- package/dist/visitors/delete/allow-full-delete.d.ts +14 -0
- package/dist/visitors/delete/allow-full-delete.d.ts.map +1 -0
- package/dist/visitors/delete/allow-full-delete.js +26 -0
- package/dist/visitors/delete/allow-full-delete.js.map +1 -0
- package/dist/visitors/delete/index.d.ts +10 -0
- package/dist/visitors/delete/index.d.ts.map +1 -0
- package/dist/visitors/delete/index.js +53 -0
- package/dist/visitors/delete/index.js.map +1 -0
- package/dist/visitors/delete/where-delete.d.ts +15 -0
- package/dist/visitors/delete/where-delete.d.ts.map +1 -0
- package/dist/visitors/delete/where-delete.js +59 -0
- package/dist/visitors/delete/where-delete.js.map +1 -0
- package/dist/visitors/distinct/index.d.ts +16 -0
- package/dist/visitors/distinct/index.d.ts.map +1 -0
- package/dist/visitors/distinct/index.js +20 -0
- package/dist/visitors/distinct/index.js.map +1 -0
- package/dist/visitors/from/index.d.ts +12 -0
- package/dist/visitors/from/index.d.ts.map +1 -0
- package/dist/visitors/from/index.js +58 -0
- package/dist/visitors/from/index.js.map +1 -0
- package/dist/visitors/groupby/index.d.ts +11 -0
- package/dist/visitors/groupby/index.d.ts.map +1 -0
- package/dist/visitors/groupby/index.js +51 -0
- package/dist/visitors/groupby/index.js.map +1 -0
- package/dist/visitors/groupjoin/index.d.ts +8 -0
- package/dist/visitors/groupjoin/index.d.ts.map +1 -0
- package/dist/visitors/groupjoin/index.js +184 -0
- package/dist/visitors/groupjoin/index.js.map +1 -0
- package/dist/visitors/index.d.ts +13 -0
- package/dist/visitors/index.d.ts.map +1 -0
- package/dist/visitors/index.js +266 -0
- package/dist/visitors/index.js.map +1 -0
- package/dist/visitors/insert/index.d.ts +10 -0
- package/dist/visitors/insert/index.d.ts.map +1 -0
- package/dist/visitors/insert/index.js +54 -0
- package/dist/visitors/insert/index.js.map +1 -0
- package/dist/visitors/insert/returning.d.ts +15 -0
- package/dist/visitors/insert/returning.d.ts.map +1 -0
- package/dist/visitors/insert/returning.js +60 -0
- package/dist/visitors/insert/returning.js.map +1 -0
- package/dist/visitors/insert/values.d.ts +15 -0
- package/dist/visitors/insert/values.d.ts.map +1 -0
- package/dist/visitors/insert/values.js +37 -0
- package/dist/visitors/insert/values.js.map +1 -0
- package/dist/visitors/join/context.d.ts +16 -0
- package/dist/visitors/join/context.d.ts.map +1 -0
- package/dist/visitors/join/context.js +6 -0
- package/dist/visitors/join/context.js.map +1 -0
- package/dist/visitors/join/expression.d.ts +16 -0
- package/dist/visitors/join/expression.d.ts.map +1 -0
- package/dist/visitors/join/expression.js +162 -0
- package/dist/visitors/join/expression.js.map +1 -0
- package/dist/visitors/join/index.d.ts +10 -0
- package/dist/visitors/join/index.d.ts.map +1 -0
- package/dist/visitors/join/index.js +9 -0
- package/dist/visitors/join/index.js.map +1 -0
- package/dist/visitors/join/join.d.ts +12 -0
- package/dist/visitors/join/join.d.ts.map +1 -0
- package/dist/visitors/join/join.js +348 -0
- package/dist/visitors/join/join.js.map +1 -0
- package/dist/visitors/join/result-selector.d.ts +16 -0
- package/dist/visitors/join/result-selector.d.ts.map +1 -0
- package/dist/visitors/join/result-selector.js +121 -0
- package/dist/visitors/join/result-selector.js.map +1 -0
- package/dist/visitors/join/shape.d.ts +16 -0
- package/dist/visitors/join/shape.d.ts.map +1 -0
- package/dist/visitors/join/shape.js +157 -0
- package/dist/visitors/join/shape.js.map +1 -0
- package/dist/visitors/orderby/context.d.ts +20 -0
- package/dist/visitors/orderby/context.d.ts.map +1 -0
- package/dist/visitors/orderby/context.js +25 -0
- package/dist/visitors/orderby/context.js.map +1 -0
- package/dist/visitors/orderby/index.d.ts +7 -0
- package/dist/visitors/orderby/index.d.ts.map +1 -0
- package/dist/visitors/orderby/index.js +7 -0
- package/dist/visitors/orderby/index.js.map +1 -0
- package/dist/visitors/orderby/key-selector.d.ts +13 -0
- package/dist/visitors/orderby/key-selector.d.ts.map +1 -0
- package/dist/visitors/orderby/key-selector.js +236 -0
- package/dist/visitors/orderby/key-selector.js.map +1 -0
- package/dist/visitors/orderby/orderby.d.ts +20 -0
- package/dist/visitors/orderby/orderby.d.ts.map +1 -0
- package/dist/visitors/orderby/orderby.js +83 -0
- package/dist/visitors/orderby/orderby.js.map +1 -0
- package/dist/visitors/orderby/thenby.d.ts +20 -0
- package/dist/visitors/orderby/thenby.d.ts.map +1 -0
- package/dist/visitors/orderby/thenby.js +76 -0
- package/dist/visitors/orderby/thenby.js.map +1 -0
- package/dist/visitors/predicates/first.d.ts +11 -0
- package/dist/visitors/predicates/first.d.ts.map +1 -0
- package/dist/visitors/predicates/first.js +47 -0
- package/dist/visitors/predicates/first.js.map +1 -0
- package/dist/visitors/predicates/last.d.ts +11 -0
- package/dist/visitors/predicates/last.d.ts.map +1 -0
- package/dist/visitors/predicates/last.js +48 -0
- package/dist/visitors/predicates/last.js.map +1 -0
- package/dist/visitors/predicates/single.d.ts +11 -0
- package/dist/visitors/predicates/single.d.ts.map +1 -0
- package/dist/visitors/predicates/single.js +48 -0
- package/dist/visitors/predicates/single.js.map +1 -0
- package/dist/visitors/reverse/index.d.ts +11 -0
- package/dist/visitors/reverse/index.d.ts.map +1 -0
- package/dist/visitors/reverse/index.js +14 -0
- package/dist/visitors/reverse/index.js.map +1 -0
- package/dist/visitors/select/context.d.ts +30 -0
- package/dist/visitors/select/context.d.ts.map +1 -0
- package/dist/visitors/select/context.js +30 -0
- package/dist/visitors/select/context.js.map +1 -0
- package/dist/visitors/select/index.d.ts +16 -0
- package/dist/visitors/select/index.d.ts.map +1 -0
- package/dist/visitors/select/index.js +180 -0
- package/dist/visitors/select/index.js.map +1 -0
- package/dist/visitors/select/projection.d.ts +13 -0
- package/dist/visitors/select/projection.d.ts.map +1 -0
- package/dist/visitors/select/projection.js +642 -0
- package/dist/visitors/select/projection.js.map +1 -0
- package/dist/visitors/select-many/index.d.ts +8 -0
- package/dist/visitors/select-many/index.d.ts.map +1 -0
- package/dist/visitors/select-many/index.js +244 -0
- package/dist/visitors/select-many/index.js.map +1 -0
- package/dist/visitors/shared/generic-visitor.d.ts +21 -0
- package/dist/visitors/shared/generic-visitor.d.ts.map +1 -0
- package/dist/visitors/shared/generic-visitor.js +32 -0
- package/dist/visitors/shared/generic-visitor.js.map +1 -0
- package/dist/visitors/shared/predicate-visitor.d.ts +21 -0
- package/dist/visitors/shared/predicate-visitor.d.ts.map +1 -0
- package/dist/visitors/shared/predicate-visitor.js +49 -0
- package/dist/visitors/shared/predicate-visitor.js.map +1 -0
- package/dist/visitors/shared/value-visitor.d.ts +21 -0
- package/dist/visitors/shared/value-visitor.d.ts.map +1 -0
- package/dist/visitors/shared/value-visitor.js +38 -0
- package/dist/visitors/shared/value-visitor.js.map +1 -0
- package/dist/visitors/take-skip/skip.d.ts +15 -0
- package/dist/visitors/take-skip/skip.d.ts.map +1 -0
- package/dist/visitors/take-skip/skip.js +209 -0
- package/dist/visitors/take-skip/skip.js.map +1 -0
- package/dist/visitors/take-skip/take.d.ts +15 -0
- package/dist/visitors/take-skip/take.d.ts.map +1 -0
- package/dist/visitors/take-skip/take.js +76 -0
- package/dist/visitors/take-skip/take.js.map +1 -0
- package/dist/visitors/types.d.ts +170 -0
- package/dist/visitors/types.d.ts.map +1 -0
- package/dist/visitors/types.js +184 -0
- package/dist/visitors/types.js.map +1 -0
- package/dist/visitors/update/allow-full-update.d.ts +14 -0
- package/dist/visitors/update/allow-full-update.d.ts.map +1 -0
- package/dist/visitors/update/allow-full-update.js +26 -0
- package/dist/visitors/update/allow-full-update.js.map +1 -0
- package/dist/visitors/update/index.d.ts +10 -0
- package/dist/visitors/update/index.d.ts.map +1 -0
- package/dist/visitors/update/index.js +54 -0
- package/dist/visitors/update/index.js.map +1 -0
- package/dist/visitors/update/returning-update.d.ts +15 -0
- package/dist/visitors/update/returning-update.d.ts.map +1 -0
- package/dist/visitors/update/returning-update.js +60 -0
- package/dist/visitors/update/returning-update.js.map +1 -0
- package/dist/visitors/update/set.d.ts +15 -0
- package/dist/visitors/update/set.d.ts.map +1 -0
- package/dist/visitors/update/set.js +46 -0
- package/dist/visitors/update/set.js.map +1 -0
- package/dist/visitors/update/where-update.d.ts +15 -0
- package/dist/visitors/update/where-update.d.ts.map +1 -0
- package/dist/visitors/update/where-update.js +59 -0
- package/dist/visitors/update/where-update.js.map +1 -0
- package/dist/visitors/utils.d.ts +36 -0
- package/dist/visitors/utils.d.ts.map +1 -0
- package/dist/visitors/utils.js +104 -0
- package/dist/visitors/utils.js.map +1 -0
- package/dist/visitors/value/array-literal.d.ts +12 -0
- package/dist/visitors/value/array-literal.d.ts.map +1 -0
- package/dist/visitors/value/array-literal.js +23 -0
- package/dist/visitors/value/array-literal.js.map +1 -0
- package/dist/visitors/value/call-expression.d.ts +12 -0
- package/dist/visitors/value/call-expression.d.ts.map +1 -0
- package/dist/visitors/value/call-expression.js +165 -0
- package/dist/visitors/value/call-expression.js.map +1 -0
- package/dist/visitors/value/object-literal.d.ts +12 -0
- package/dist/visitors/value/object-literal.d.ts.map +1 -0
- package/dist/visitors/value/object-literal.js +98 -0
- package/dist/visitors/value/object-literal.js.map +1 -0
- package/dist/visitors/visitor-utils.d.ts +22 -0
- package/dist/visitors/visitor-utils.d.ts.map +1 -0
- package/dist/visitors/visitor-utils.js +64 -0
- package/dist/visitors/visitor-utils.js.map +1 -0
- package/dist/visitors/where/boolean-method.d.ts +12 -0
- package/dist/visitors/where/boolean-method.d.ts.map +1 -0
- package/dist/visitors/where/boolean-method.js +150 -0
- package/dist/visitors/where/boolean-method.js.map +1 -0
- package/dist/visitors/where/case-insensitive-functions.d.ts +13 -0
- package/dist/visitors/where/case-insensitive-functions.d.ts.map +1 -0
- package/dist/visitors/where/case-insensitive-functions.js +72 -0
- package/dist/visitors/where/case-insensitive-functions.js.map +1 -0
- package/dist/visitors/where/column.d.ts +14 -0
- package/dist/visitors/where/column.d.ts.map +1 -0
- package/dist/visitors/where/column.js +57 -0
- package/dist/visitors/where/column.js.map +1 -0
- package/dist/visitors/where/comparison.d.ts +12 -0
- package/dist/visitors/where/comparison.d.ts.map +1 -0
- package/dist/visitors/where/comparison.js +141 -0
- package/dist/visitors/where/comparison.js.map +1 -0
- package/dist/visitors/where/context.d.ts +32 -0
- package/dist/visitors/where/context.d.ts.map +1 -0
- package/dist/visitors/where/context.js +18 -0
- package/dist/visitors/where/context.js.map +1 -0
- package/dist/visitors/where/index.d.ts +16 -0
- package/dist/visitors/where/index.d.ts.map +1 -0
- package/dist/visitors/where/index.js +82 -0
- package/dist/visitors/where/index.js.map +1 -0
- package/dist/visitors/where/logical.d.ts +12 -0
- package/dist/visitors/where/logical.d.ts.map +1 -0
- package/dist/visitors/where/logical.js +43 -0
- package/dist/visitors/where/logical.js.map +1 -0
- package/dist/visitors/where/predicate.d.ts +13 -0
- package/dist/visitors/where/predicate.d.ts.map +1 -0
- package/dist/visitors/where/predicate.js +131 -0
- package/dist/visitors/where/predicate.js.map +1 -0
- package/dist/visitors/where/value.d.ts +13 -0
- package/dist/visitors/where/value.d.ts.map +1 -0
- package/dist/visitors/where/value.js +356 -0
- package/dist/visitors/where/value.js.map +1 -0
- package/dist/visitors/window/index.d.ts +18 -0
- package/dist/visitors/window/index.d.ts.map +1 -0
- package/dist/visitors/window/index.js +156 -0
- package/dist/visitors/window/index.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point for creating DELETE queries
|
|
3
|
+
*/
|
|
4
|
+
import { Deletable } from "./deletable.js";
|
|
5
|
+
import type { DatabaseSchema } from "./database-context.js";
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new Deletable from a table name with explicit type
|
|
8
|
+
* @param tableName The name of the table to delete from
|
|
9
|
+
* @returns A new Deletable instance
|
|
10
|
+
*/
|
|
11
|
+
export declare function deleteFrom<T>(tableName: string): Deletable<T>;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new Deletable from a typed database context
|
|
14
|
+
* @param context The database context with schema information
|
|
15
|
+
* @param tableName The name of the table to delete from (type-safe)
|
|
16
|
+
* @returns A new Deletable instance with inferred types
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteFrom<TSchema, K extends keyof TSchema & string>(context: DatabaseSchema<TSchema>, tableName: K): Deletable<TSchema[K]>;
|
|
19
|
+
//# sourceMappingURL=delete-from.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-from.d.ts","sourceRoot":"","sources":["../../src/linq/delete-from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAClE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,SAAS,EAAE,CAAC,GACX,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point for creating DELETE queries
|
|
3
|
+
*/
|
|
4
|
+
import { Deletable } from "./deletable.js";
|
|
5
|
+
// Implementation
|
|
6
|
+
export function deleteFrom(_contextOrTable, _tableName) {
|
|
7
|
+
// Runtime doesn't need to differentiate - just return a Deletable
|
|
8
|
+
// Types are enforced at compile time through the overloads
|
|
9
|
+
return new Deletable();
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=delete-from.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-from.js","sourceRoot":"","sources":["../../src/linq/delete-from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C,iBAAiB;AACjB,MAAM,UAAU,UAAU,CAAC,eAAwB,EAAE,UAAoB;IACvE,kEAAkE;IAClE,2DAA2D;IAC3D,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point for creating queries
|
|
3
|
+
*/
|
|
4
|
+
import { Queryable } from "./queryable.js";
|
|
5
|
+
import type { DatabaseSchema } from "./database-context.js";
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new Queryable from a table name with explicit type
|
|
8
|
+
* @param tableName The name of the table to query
|
|
9
|
+
* @returns A new Queryable instance
|
|
10
|
+
*/
|
|
11
|
+
export declare function from<T>(tableName: string): Queryable<T>;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new Queryable from a typed database context
|
|
14
|
+
* @param context The database context with schema information
|
|
15
|
+
* @param tableName The name of the table to query (type-safe)
|
|
16
|
+
* @returns A new Queryable instance with inferred types
|
|
17
|
+
*/
|
|
18
|
+
export declare function from<TSchema, K extends keyof TSchema & string>(context: DatabaseSchema<TSchema>, tableName: K): Queryable<TSchema[K]>;
|
|
19
|
+
//# sourceMappingURL=from.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from.d.ts","sourceRoot":"","sources":["../../src/linq/from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAC5D,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,SAAS,EAAE,CAAC,GACX,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point for creating queries
|
|
3
|
+
*/
|
|
4
|
+
import { Queryable } from "./queryable.js";
|
|
5
|
+
// Implementation
|
|
6
|
+
export function from(_contextOrTable, _tableName) {
|
|
7
|
+
// Runtime doesn't need to differentiate - just return a Queryable
|
|
8
|
+
// Types are enforced at compile time through the overloads
|
|
9
|
+
return new Queryable();
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=from.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from.js","sourceRoot":"","sources":["../../src/linq/from.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C,iBAAiB;AACjB,MAAM,UAAU,IAAI,CAAC,eAAwB,EAAE,UAAoB;IACjE,kEAAkE;IAClE,2DAA2D;IAC3D,OAAO,IAAI,SAAS,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Case-insensitive helper functions and window function builders for Tinqer queries
|
|
3
|
+
*
|
|
4
|
+
* These functions are available via the second parameter in query lambdas:
|
|
5
|
+
* (params, helpers) => helpers.functions.iequals(a, b)
|
|
6
|
+
* (params, helpers) => helpers.window.partitionBy(...).orderBy(...).rowNumber()
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Hidden marker symbol to identify window function builders
|
|
10
|
+
*/
|
|
11
|
+
export declare const WINDOW_MARKER: unique symbol;
|
|
12
|
+
/**
|
|
13
|
+
* Window function type
|
|
14
|
+
*/
|
|
15
|
+
export type WindowFunctionType = "rowNumber" | "rank" | "denseRank";
|
|
16
|
+
/**
|
|
17
|
+
* Order specification for window functions
|
|
18
|
+
*/
|
|
19
|
+
export interface WindowOrderSpec<T> {
|
|
20
|
+
selector: (row: T) => unknown;
|
|
21
|
+
direction: "asc" | "desc";
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Window builder - initial state
|
|
25
|
+
* Can add partitionBy or start with orderBy
|
|
26
|
+
*/
|
|
27
|
+
export declare class WindowBuilder<T> {
|
|
28
|
+
readonly partitionBySelectors: Array<(row: T) => unknown>;
|
|
29
|
+
readonly __windowMarker: symbol;
|
|
30
|
+
constructor(partitionBySelectors?: Array<(row: T) => unknown>);
|
|
31
|
+
partitionBy(...selectors: Array<(row: T) => unknown>): WindowBuilderWithPartition<T>;
|
|
32
|
+
orderBy(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
|
|
33
|
+
orderByDescending(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Window builder with partition - can add more partitions or move to orderBy
|
|
37
|
+
*/
|
|
38
|
+
export declare class WindowBuilderWithPartition<T> {
|
|
39
|
+
readonly partitionBySelectors: Array<(row: T) => unknown>;
|
|
40
|
+
readonly __windowMarker: symbol;
|
|
41
|
+
constructor(partitionBySelectors: Array<(row: T) => unknown>);
|
|
42
|
+
partitionBy(...selectors: Array<(row: T) => unknown>): WindowBuilderWithPartition<T>;
|
|
43
|
+
orderBy(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
|
|
44
|
+
orderByDescending(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Window builder with order - can add more orderings or call terminal function
|
|
48
|
+
*/
|
|
49
|
+
export declare class WindowBuilderWithOrder<T> {
|
|
50
|
+
readonly partitionBySelectors: Array<(row: T) => unknown>;
|
|
51
|
+
readonly orderBySpecs: Array<WindowOrderSpec<T>>;
|
|
52
|
+
readonly __windowMarker: symbol;
|
|
53
|
+
constructor(partitionBySelectors: Array<(row: T) => unknown>, orderBySpecs: Array<WindowOrderSpec<T>>);
|
|
54
|
+
thenBy(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
|
|
55
|
+
thenByDescending(selector: (row: T) => unknown): WindowBuilderWithOrder<T>;
|
|
56
|
+
rowNumber(): number;
|
|
57
|
+
rank(): number;
|
|
58
|
+
denseRank(): number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Case-insensitive equality comparison
|
|
62
|
+
*/
|
|
63
|
+
export declare function iequals<T>(_a: T, _b: T): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Case-insensitive string starts with
|
|
66
|
+
*/
|
|
67
|
+
export declare function istartsWith(_str: string, _prefix: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Case-insensitive string ends with
|
|
70
|
+
*/
|
|
71
|
+
export declare function iendsWith(_str: string, _suffix: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Case-insensitive string contains
|
|
74
|
+
*/
|
|
75
|
+
export declare function icontains(_str: string, _substring: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Collection of case-insensitive functions
|
|
78
|
+
*/
|
|
79
|
+
export declare const functions: {
|
|
80
|
+
readonly iequals: typeof iequals;
|
|
81
|
+
readonly istartsWith: typeof istartsWith;
|
|
82
|
+
readonly iendsWith: typeof iendsWith;
|
|
83
|
+
readonly icontains: typeof icontains;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Helper object provided as second parameter to query lambdas
|
|
87
|
+
*/
|
|
88
|
+
export interface QueryHelpers {
|
|
89
|
+
functions: typeof functions;
|
|
90
|
+
window<T>(row: T): WindowBuilder<T>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create the helpers object for query execution
|
|
94
|
+
*/
|
|
95
|
+
export declare function createQueryHelpers(): QueryHelpers;
|
|
96
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/linq/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Case-insensitive helper functions and window function builders for Tinqer queries
|
|
3
|
+
*
|
|
4
|
+
* These functions are available via the second parameter in query lambdas:
|
|
5
|
+
* (params, helpers) => helpers.functions.iequals(a, b)
|
|
6
|
+
* (params, helpers) => helpers.window.partitionBy(...).orderBy(...).rowNumber()
|
|
7
|
+
*/
|
|
8
|
+
// ==================== Window Function Builders ====================
|
|
9
|
+
/**
|
|
10
|
+
* Hidden marker symbol to identify window function builders
|
|
11
|
+
*/
|
|
12
|
+
export const WINDOW_MARKER = Symbol("window");
|
|
13
|
+
/**
|
|
14
|
+
* Window builder - initial state
|
|
15
|
+
* Can add partitionBy or start with orderBy
|
|
16
|
+
*/
|
|
17
|
+
export class WindowBuilder {
|
|
18
|
+
constructor(partitionBySelectors = []) {
|
|
19
|
+
this.partitionBySelectors = partitionBySelectors;
|
|
20
|
+
this.__windowMarker = WINDOW_MARKER;
|
|
21
|
+
}
|
|
22
|
+
partitionBy(...selectors) {
|
|
23
|
+
return new WindowBuilderWithPartition([...this.partitionBySelectors, ...selectors]);
|
|
24
|
+
}
|
|
25
|
+
orderBy(selector) {
|
|
26
|
+
return new WindowBuilderWithOrder(this.partitionBySelectors, [
|
|
27
|
+
{ selector, direction: "asc" },
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
orderByDescending(selector) {
|
|
31
|
+
return new WindowBuilderWithOrder(this.partitionBySelectors, [
|
|
32
|
+
{ selector, direction: "desc" },
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Window builder with partition - can add more partitions or move to orderBy
|
|
38
|
+
*/
|
|
39
|
+
export class WindowBuilderWithPartition {
|
|
40
|
+
constructor(partitionBySelectors) {
|
|
41
|
+
this.partitionBySelectors = partitionBySelectors;
|
|
42
|
+
this.__windowMarker = WINDOW_MARKER;
|
|
43
|
+
}
|
|
44
|
+
partitionBy(...selectors) {
|
|
45
|
+
return new WindowBuilderWithPartition([...this.partitionBySelectors, ...selectors]);
|
|
46
|
+
}
|
|
47
|
+
orderBy(selector) {
|
|
48
|
+
return new WindowBuilderWithOrder(this.partitionBySelectors, [
|
|
49
|
+
{ selector, direction: "asc" },
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
orderByDescending(selector) {
|
|
53
|
+
return new WindowBuilderWithOrder(this.partitionBySelectors, [
|
|
54
|
+
{ selector, direction: "desc" },
|
|
55
|
+
]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Window builder with order - can add more orderings or call terminal function
|
|
60
|
+
*/
|
|
61
|
+
export class WindowBuilderWithOrder {
|
|
62
|
+
constructor(partitionBySelectors, orderBySpecs) {
|
|
63
|
+
this.partitionBySelectors = partitionBySelectors;
|
|
64
|
+
this.orderBySpecs = orderBySpecs;
|
|
65
|
+
this.__windowMarker = WINDOW_MARKER;
|
|
66
|
+
}
|
|
67
|
+
thenBy(selector) {
|
|
68
|
+
return new WindowBuilderWithOrder(this.partitionBySelectors, [
|
|
69
|
+
...this.orderBySpecs,
|
|
70
|
+
{ selector, direction: "asc" },
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
thenByDescending(selector) {
|
|
74
|
+
return new WindowBuilderWithOrder(this.partitionBySelectors, [
|
|
75
|
+
...this.orderBySpecs,
|
|
76
|
+
{ selector, direction: "desc" },
|
|
77
|
+
]);
|
|
78
|
+
}
|
|
79
|
+
// Terminal operations - these return number!
|
|
80
|
+
// They are never executed at runtime - only parsed by the visitor
|
|
81
|
+
rowNumber() {
|
|
82
|
+
throw new Error("Window functions are parsed for SQL generation, not executed at runtime.");
|
|
83
|
+
}
|
|
84
|
+
rank() {
|
|
85
|
+
throw new Error("Window functions are parsed for SQL generation, not executed at runtime.");
|
|
86
|
+
}
|
|
87
|
+
denseRank() {
|
|
88
|
+
throw new Error("Window functions are parsed for SQL generation, not executed at runtime.");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// ==================== Case-Insensitive Functions ====================
|
|
92
|
+
/**
|
|
93
|
+
* Case-insensitive equality comparison
|
|
94
|
+
*/
|
|
95
|
+
export function iequals(_a, _b) {
|
|
96
|
+
throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Case-insensitive string starts with
|
|
100
|
+
*/
|
|
101
|
+
export function istartsWith(_str, _prefix) {
|
|
102
|
+
throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Case-insensitive string ends with
|
|
106
|
+
*/
|
|
107
|
+
export function iendsWith(_str, _suffix) {
|
|
108
|
+
throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Case-insensitive string contains
|
|
112
|
+
*/
|
|
113
|
+
export function icontains(_str, _substring) {
|
|
114
|
+
throw new Error("This function should not be executed at runtime. It's parsed for SQL generation.");
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Collection of case-insensitive functions
|
|
118
|
+
*/
|
|
119
|
+
export const functions = {
|
|
120
|
+
iequals,
|
|
121
|
+
istartsWith,
|
|
122
|
+
iendsWith,
|
|
123
|
+
icontains,
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Create the helpers object for query execution
|
|
127
|
+
*/
|
|
128
|
+
export function createQueryHelpers() {
|
|
129
|
+
return {
|
|
130
|
+
functions,
|
|
131
|
+
window(_row) {
|
|
132
|
+
return new WindowBuilder();
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/linq/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a collection of objects that have a common key
|
|
3
|
+
* Matches .NET LINQ Grouping pattern
|
|
4
|
+
*/
|
|
5
|
+
export declare class Grouping<TKey, TElement> implements Iterable<TElement> {
|
|
6
|
+
readonly key: TKey;
|
|
7
|
+
private readonly elements;
|
|
8
|
+
constructor(key: TKey, elements: TElement[]);
|
|
9
|
+
[Symbol.iterator](): Iterator<TElement>;
|
|
10
|
+
/**
|
|
11
|
+
* Convert to array (convenience method)
|
|
12
|
+
*/
|
|
13
|
+
toArray(): TElement[];
|
|
14
|
+
/**
|
|
15
|
+
* Aggregate methods - these are placeholders for type safety
|
|
16
|
+
* The SQL generator handles these specially and they're never actually called
|
|
17
|
+
*/
|
|
18
|
+
count(): number;
|
|
19
|
+
sum(_selector: (element: TElement) => number): number;
|
|
20
|
+
avg(_selector: (element: TElement) => number): number;
|
|
21
|
+
average(selector: (element: TElement) => number): number;
|
|
22
|
+
min<TResult>(_selector: (element: TElement) => TResult): TResult;
|
|
23
|
+
max<TResult>(_selector: (element: TElement) => TResult): TResult;
|
|
24
|
+
defaultIfEmpty(_defaultValue?: TElement): Iterable<TElement>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=grouping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../src/linq/grouping.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAE,YAAW,QAAQ,CAAC,QAAQ,CAAC;aAE/C,GAAG,EAAE,IAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADT,GAAG,EAAE,IAAI,EACR,QAAQ,EAAE,QAAQ,EAAE;IAGtC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAMxC;;OAEG;IACH,OAAO,IAAI,QAAQ,EAAE;IAIrB;;;OAGG;IAEH,KAAK,IAAI,MAAM;IAIf,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM;IAIrD,GAAG,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM;IAIrD,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM;IAIxD,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO;IAIhE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO;IAIhE,cAAc,CAAC,aAAa,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;CAG7D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a collection of objects that have a common key
|
|
3
|
+
* Matches .NET LINQ Grouping pattern
|
|
4
|
+
*/
|
|
5
|
+
export class Grouping {
|
|
6
|
+
constructor(key, elements) {
|
|
7
|
+
this.key = key;
|
|
8
|
+
this.elements = elements;
|
|
9
|
+
}
|
|
10
|
+
*[Symbol.iterator]() {
|
|
11
|
+
for (const element of this.elements) {
|
|
12
|
+
yield element;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Convert to array (convenience method)
|
|
17
|
+
*/
|
|
18
|
+
toArray() {
|
|
19
|
+
return [...this.elements];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Aggregate methods - these are placeholders for type safety
|
|
23
|
+
* The SQL generator handles these specially and they're never actually called
|
|
24
|
+
*/
|
|
25
|
+
count() {
|
|
26
|
+
throw new Error("Grouping.count() is handled by SQL generator");
|
|
27
|
+
}
|
|
28
|
+
sum(_selector) {
|
|
29
|
+
throw new Error("Grouping.sum() is handled by SQL generator");
|
|
30
|
+
}
|
|
31
|
+
avg(_selector) {
|
|
32
|
+
throw new Error("Grouping.avg() is handled by SQL generator");
|
|
33
|
+
}
|
|
34
|
+
average(selector) {
|
|
35
|
+
return this.avg(selector);
|
|
36
|
+
}
|
|
37
|
+
min(_selector) {
|
|
38
|
+
throw new Error("Grouping.min() is handled by SQL generator");
|
|
39
|
+
}
|
|
40
|
+
max(_selector) {
|
|
41
|
+
throw new Error("Grouping.max() is handled by SQL generator");
|
|
42
|
+
}
|
|
43
|
+
defaultIfEmpty(_defaultValue) {
|
|
44
|
+
throw new Error("Grouping.defaultIfEmpty() is handled by SQL generator");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=grouping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../src/linq/grouping.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACnB,YACkB,GAAS,EACR,QAAoB;QADrB,QAAG,GAAH,GAAG,CAAM;QACR,aAAQ,GAAR,QAAQ,CAAY;IACpC,CAAC;IAEJ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,OAAO,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH,KAAK;QACH,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,GAAG,CAAC,SAAwC;QAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAC,SAAwC;QAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,QAAuC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAU,SAAyC;QACpD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAU,SAAyC;QACpD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,cAAc,CAAC,aAAwB;QACrC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point for creating INSERT queries
|
|
3
|
+
*/
|
|
4
|
+
import { Insertable } from "./insertable.js";
|
|
5
|
+
import type { DatabaseSchema } from "./database-context.js";
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new Insertable from a table name with explicit type
|
|
8
|
+
* @param tableName The name of the table to insert into
|
|
9
|
+
* @returns A new Insertable instance
|
|
10
|
+
*/
|
|
11
|
+
export declare function insertInto<T>(tableName: string): Insertable<T>;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new Insertable from a typed database context
|
|
14
|
+
* @param context The database context with schema information
|
|
15
|
+
* @param tableName The name of the table to insert into (type-safe)
|
|
16
|
+
* @returns A new Insertable instance with inferred types
|
|
17
|
+
*/
|
|
18
|
+
export declare function insertInto<TSchema, K extends keyof TSchema & string>(context: DatabaseSchema<TSchema>, tableName: K): Insertable<TSchema[K]>;
|
|
19
|
+
//# sourceMappingURL=insert-into.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert-into.d.ts","sourceRoot":"","sources":["../../src/linq/insert-into.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAClE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,SAAS,EAAE,CAAC,GACX,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point for creating INSERT queries
|
|
3
|
+
*/
|
|
4
|
+
import { Insertable } from "./insertable.js";
|
|
5
|
+
// Implementation
|
|
6
|
+
export function insertInto(_contextOrTable, _tableName) {
|
|
7
|
+
// Runtime doesn't need to differentiate - just return an Insertable
|
|
8
|
+
// Types are enforced at compile time through the overloads
|
|
9
|
+
return new Insertable();
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=insert-into.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert-into.js","sourceRoot":"","sources":["../../src/linq/insert-into.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAqB7C,iBAAiB;AACjB,MAAM,UAAU,UAAU,CAAC,eAAwB,EAAE,UAAoB;IACvE,oEAAoE;IACpE,2DAA2D;IAC3D,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Insertable class for INSERT operations with type safety
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Insertable provides type-safe INSERT query building
|
|
6
|
+
*/
|
|
7
|
+
export declare class Insertable<T> {
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Specifies the values to insert
|
|
11
|
+
* @param valuesSelector Object mapping columns to values
|
|
12
|
+
* @returns Insertable for further chaining
|
|
13
|
+
*/
|
|
14
|
+
values(_valuesSelector: Partial<T>): Insertable<T>;
|
|
15
|
+
/**
|
|
16
|
+
* Specifies columns to return after insert (PostgreSQL only)
|
|
17
|
+
* @param selector Function that returns the columns to return
|
|
18
|
+
* @returns InsertableWithReturning for type inference
|
|
19
|
+
*/
|
|
20
|
+
returning<TResult>(_selector: (_item: T) => TResult): InsertableWithReturning<T, TResult>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* InsertableWithReturning represents an INSERT with RETURNING clause
|
|
24
|
+
*/
|
|
25
|
+
export declare class InsertableWithReturning<TTable, TResult> {
|
|
26
|
+
constructor();
|
|
27
|
+
_table?: (_: TTable) => void;
|
|
28
|
+
_result?: (_: TResult) => void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=insertable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertable.d.ts","sourceRoot":"","sources":["../../src/linq/insertable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC;;IAKvB;;;;OAIG;IACH,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIlD;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC;CAG1F;AAED;;GAEG;AACH,qBAAa,uBAAuB,CAAC,MAAM,EAAE,OAAO;;IAOlD,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Insertable class for INSERT operations with type safety
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Insertable provides type-safe INSERT query building
|
|
6
|
+
*/
|
|
7
|
+
export class Insertable {
|
|
8
|
+
constructor() {
|
|
9
|
+
// Never actually instantiated - used only for type inference
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Specifies the values to insert
|
|
13
|
+
* @param valuesSelector Object mapping columns to values
|
|
14
|
+
* @returns Insertable for further chaining
|
|
15
|
+
*/
|
|
16
|
+
values(_valuesSelector) {
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Specifies columns to return after insert (PostgreSQL only)
|
|
21
|
+
* @param selector Function that returns the columns to return
|
|
22
|
+
* @returns InsertableWithReturning for type inference
|
|
23
|
+
*/
|
|
24
|
+
returning(_selector) {
|
|
25
|
+
return new InsertableWithReturning();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* InsertableWithReturning represents an INSERT with RETURNING clause
|
|
30
|
+
*/
|
|
31
|
+
export class InsertableWithReturning {
|
|
32
|
+
constructor() {
|
|
33
|
+
// Never actually instantiated - used only for type inference
|
|
34
|
+
// Type parameters TTable and TResult are preserved for external type inference
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=insertable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertable.js","sourceRoot":"","sources":["../../src/linq/insertable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB;QACE,6DAA6D;IAC/D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAA2B;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAU,SAAgC;QACjD,OAAO,IAAI,uBAAuB,EAAc,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC;QACE,6DAA6D;QAC7D,+EAA+E;IACjF,CAAC;CAKF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query DSL interface for type-safe query building
|
|
3
|
+
*/
|
|
4
|
+
import type { DatabaseSchema } from "./database-context.js";
|
|
5
|
+
import type { Queryable } from "./queryable.js";
|
|
6
|
+
import type { Insertable } from "./insertable.js";
|
|
7
|
+
import type { Updatable } from "./updatable.js";
|
|
8
|
+
import type { Deletable } from "./deletable.js";
|
|
9
|
+
/**
|
|
10
|
+
* Query DSL interface providing type-safe query builders
|
|
11
|
+
*/
|
|
12
|
+
export interface QueryBuilder<TSchema> {
|
|
13
|
+
from<K extends keyof TSchema & string>(table: K): Queryable<TSchema[K]>;
|
|
14
|
+
insertInto<K extends keyof TSchema & string>(table: K): Insertable<TSchema[K]>;
|
|
15
|
+
update<K extends keyof TSchema & string>(table: K): Updatable<TSchema[K]>;
|
|
16
|
+
deleteFrom<K extends keyof TSchema & string>(table: K): Deletable<TSchema[K]>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates a query DSL object bound to a database context
|
|
20
|
+
* @param context The database context with schema information
|
|
21
|
+
* @returns A QueryBuilder instance with type-safe query builders
|
|
22
|
+
*/
|
|
23
|
+
export declare function createQueryBuilder<TSchema>(context: DatabaseSchema<TSchema>): QueryBuilder<TSchema>;
|
|
24
|
+
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/linq/query-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMhD;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO;IACnC,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,UAAU,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,UAAU,CAAC,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EACxC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,GAC/B,YAAY,CAAC,OAAO,CAAC,CAOvB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query DSL interface for type-safe query building
|
|
3
|
+
*/
|
|
4
|
+
import { from } from "./from.js";
|
|
5
|
+
import { insertInto } from "./insert-into.js";
|
|
6
|
+
import { update } from "./update.js";
|
|
7
|
+
import { deleteFrom } from "./delete-from.js";
|
|
8
|
+
/**
|
|
9
|
+
* Creates a query DSL object bound to a database context
|
|
10
|
+
* @param context The database context with schema information
|
|
11
|
+
* @returns A QueryBuilder instance with type-safe query builders
|
|
12
|
+
*/
|
|
13
|
+
export function createQueryBuilder(context) {
|
|
14
|
+
return {
|
|
15
|
+
from: (table) => from(context, table),
|
|
16
|
+
insertInto: (table) => insertInto(context, table),
|
|
17
|
+
update: (table) => update(context, table),
|
|
18
|
+
deleteFrom: (table) => deleteFrom(context, table),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=query-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/linq/query-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAY9C;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAgC;IAEhC,OAAO;QACL,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;QACrC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QACjD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;QACzC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Queryable and OrderedQueryable classes for compile-time type safety
|
|
3
|
+
* ONLY BASIC SQL OPERATIONS + single, last, contains, union, reverse
|
|
4
|
+
*/
|
|
5
|
+
import type { Grouping } from "./grouping.js";
|
|
6
|
+
import { TerminalQuery } from "./terminal-query.js";
|
|
7
|
+
/**
|
|
8
|
+
* Queryable provides a fluent API for building queries with type safety.
|
|
9
|
+
* This class is never actually executed - it's parsed from its string representation.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Queryable<T> {
|
|
12
|
+
constructor();
|
|
13
|
+
where(_predicate: (_item: T) => boolean): Queryable<T>;
|
|
14
|
+
select<TResult>(_selector: (_item: T) => TResult): Queryable<TResult>;
|
|
15
|
+
join<TInner, TKey, TResult>(_inner: Queryable<TInner>, _outerKeySelector: (_outer: T) => TKey, _innerKeySelector: (_inner: TInner) => TKey, _resultSelector: (_outer: T, _inner: TInner) => TResult): Queryable<TResult>;
|
|
16
|
+
groupJoin<TInner, TKey, TResult>(_inner: Queryable<TInner>, _outerKeySelector: (_outer: T) => TKey, _innerKeySelector: (_inner: TInner) => TKey, _resultSelector: (_outer: T, _innerGroup: Grouping<TKey, TInner>) => TResult): Queryable<TResult>;
|
|
17
|
+
selectMany<TCollection>(_collectionSelector: (_item: T) => Queryable<TCollection> | Iterable<TCollection>): Queryable<TCollection>;
|
|
18
|
+
selectMany<TCollection, TResult>(_collectionSelector: (_item: T) => Queryable<TCollection> | Iterable<TCollection>, _resultSelector: (_item: T, _collectionItem: TCollection) => TResult): Queryable<TResult>;
|
|
19
|
+
groupBy<TKey>(_keySelector: (_item: T) => TKey): Queryable<Grouping<TKey, T>>;
|
|
20
|
+
orderBy<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
|
|
21
|
+
orderByDescending<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
|
|
22
|
+
take(_count: number): Queryable<T>;
|
|
23
|
+
skip(_count: number): Queryable<T>;
|
|
24
|
+
distinct(): Queryable<T>;
|
|
25
|
+
union(_second: Queryable<T>): Queryable<T>;
|
|
26
|
+
concat(_second: Queryable<T>): Queryable<T>;
|
|
27
|
+
intersect(_second: Queryable<T>): Queryable<T>;
|
|
28
|
+
except(_second: Queryable<T>): Queryable<T>;
|
|
29
|
+
reverse(): Queryable<T>;
|
|
30
|
+
defaultIfEmpty(_defaultValue?: T): Queryable<T>;
|
|
31
|
+
first(_predicate?: (_item: T) => boolean): TerminalQuery<T>;
|
|
32
|
+
firstOrDefault(_predicate?: (_item: T) => boolean): TerminalQuery<T | undefined>;
|
|
33
|
+
single(_predicate?: (_item: T) => boolean): TerminalQuery<T>;
|
|
34
|
+
singleOrDefault(_predicate?: (_item: T) => boolean): TerminalQuery<T | undefined>;
|
|
35
|
+
last(_predicate?: (_item: T) => boolean): TerminalQuery<T>;
|
|
36
|
+
lastOrDefault(_predicate?: (_item: T) => boolean): TerminalQuery<T | undefined>;
|
|
37
|
+
contains(_value: T): TerminalQuery<boolean>;
|
|
38
|
+
sum(_selector?: (_item: T) => number): TerminalQuery<number>;
|
|
39
|
+
average(_selector?: (_item: T) => number): TerminalQuery<number>;
|
|
40
|
+
min(): TerminalQuery<T>;
|
|
41
|
+
min<TResult>(_selector: (_item: T) => TResult): TerminalQuery<TResult>;
|
|
42
|
+
max(): TerminalQuery<T>;
|
|
43
|
+
max<TResult>(_selector: (_item: T) => TResult): TerminalQuery<TResult>;
|
|
44
|
+
any(_predicate?: (_item: T) => boolean): TerminalQuery<boolean>;
|
|
45
|
+
all(_predicate: (_item: T) => boolean): TerminalQuery<boolean>;
|
|
46
|
+
count(_predicate?: (_item: T) => boolean): TerminalQuery<number>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* OrderedQueryable extends Queryable with thenBy operations
|
|
50
|
+
* Matches .NET's IOrderedQueryable<T> : IQueryable<T> inheritance
|
|
51
|
+
*/
|
|
52
|
+
export declare class OrderedQueryable<T> extends Queryable<T> {
|
|
53
|
+
constructor();
|
|
54
|
+
where(_predicate: (_item: T) => boolean): OrderedQueryable<T>;
|
|
55
|
+
distinct(): OrderedQueryable<T>;
|
|
56
|
+
take(_count: number): OrderedQueryable<T>;
|
|
57
|
+
skip(_count: number): OrderedQueryable<T>;
|
|
58
|
+
thenBy<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
|
|
59
|
+
thenByDescending<TKey>(_keySelector: (_item: T) => TKey): OrderedQueryable<T>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=queryable.d.ts.map
|