drizzle-orm 0.11.4 → 0.12.0-beta.0
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/branded-types.d.ts +18 -0
- package/branded-types.js +6 -0
- package/branded-types.js.map +1 -0
- package/column-builder.d.ts +14 -0
- package/column-builder.js +24 -0
- package/column-builder.js.map +1 -0
- package/column.d.ts +37 -0
- package/column.js +41 -0
- package/column.js.map +1 -0
- package/connection.d.ts +29 -0
- package/connection.js +91 -0
- package/connection.js.map +1 -0
- package/expressions.d.ts +1 -0
- package/expressions.js +18 -0
- package/expressions.js.map +1 -0
- package/index.d.ts +4 -13
- package/index.js +11 -24
- package/index.js.map +1 -1
- package/operations.d.ts +13 -0
- package/{tables/inferTypes.js → operations.js} +1 -1
- package/operations.js.map +1 -0
- package/package.json +57 -30
- package/sql/expressions/conditions.d.ts +33 -0
- package/sql/expressions/conditions.js +140 -0
- package/sql/expressions/conditions.js.map +1 -0
- package/sql/expressions/index.d.ts +2 -0
- package/sql/expressions/index.js +19 -0
- package/sql/expressions/index.js.map +1 -0
- package/sql/expressions/select.d.ts +5 -0
- package/sql/expressions/select.js +13 -0
- package/sql/expressions/select.js.map +1 -0
- package/sql/index.d.ts +97 -0
- package/sql/index.js +172 -0
- package/sql/index.js.map +1 -0
- package/table.d.ts +10 -0
- package/table.js +36 -0
- package/table.js.map +1 -0
- package/utils.d.ts +7 -0
- package/utils.js +18 -0
- package/utils.js.map +1 -0
- package/LICENSE +0 -674
- package/README.md +0 -343
- package/builders/aggregators/abstractAggregator.d.ts +0 -12
- package/builders/aggregators/abstractAggregator.js +0 -52
- package/builders/aggregators/abstractAggregator.js.map +0 -1
- package/builders/aggregators/deleteAggregator.d.ts +0 -16
- package/builders/aggregators/deleteAggregator.js +0 -43
- package/builders/aggregators/deleteAggregator.js.map +0 -1
- package/builders/aggregators/insertAggregator.d.ts +0 -22
- package/builders/aggregators/insertAggregator.js +0 -110
- package/builders/aggregators/insertAggregator.js.map +0 -1
- package/builders/aggregators/selectAggregator.d.ts +0 -33
- package/builders/aggregators/selectAggregator.js +0 -111
- package/builders/aggregators/selectAggregator.js.map +0 -1
- package/builders/aggregators/selectAggregatorV1.d.ts +0 -39
- package/builders/aggregators/selectAggregatorV1.js +0 -144
- package/builders/aggregators/selectAggregatorV1.js.map +0 -1
- package/builders/aggregators/updateAggregator.d.ts +0 -19
- package/builders/aggregators/updateAggregator.js +0 -54
- package/builders/aggregators/updateAggregator.js.map +0 -1
- package/builders/highLvlBuilders/abstractRequestBuilder.d.ts +0 -27
- package/builders/highLvlBuilders/abstractRequestBuilder.js +0 -34
- package/builders/highLvlBuilders/abstractRequestBuilder.js.map +0 -1
- package/builders/highLvlBuilders/deleteRequestBuilder.d.ts +0 -19
- package/builders/highLvlBuilders/deleteRequestBuilder.js +0 -62
- package/builders/highLvlBuilders/deleteRequestBuilder.js.map +0 -1
- package/builders/highLvlBuilders/insertRequestBuilder.d.ts +0 -20
- package/builders/highLvlBuilders/insertRequestBuilder.js +0 -74
- package/builders/highLvlBuilders/insertRequestBuilder.js.map +0 -1
- package/builders/highLvlBuilders/joins/joinBuilderResponse.d.ts +0 -8
- package/builders/highLvlBuilders/joins/joinBuilderResponse.js +0 -17
- package/builders/highLvlBuilders/joins/joinBuilderResponse.js.map +0 -1
- package/builders/highLvlBuilders/joins/proxies/joinProxies.d.ts +0 -16
- package/builders/highLvlBuilders/joins/proxies/joinProxies.js +0 -48
- package/builders/highLvlBuilders/joins/proxies/joinProxies.js.map +0 -1
- package/builders/highLvlBuilders/joins/selectJoinBuilder.d.ts +0 -44
- package/builders/highLvlBuilders/joins/selectJoinBuilder.js +0 -114
- package/builders/highLvlBuilders/joins/selectJoinBuilder.js.map +0 -1
- package/builders/highLvlBuilders/order.d.ts +0 -5
- package/builders/highLvlBuilders/order.js +0 -9
- package/builders/highLvlBuilders/order.js.map +0 -1
- package/builders/highLvlBuilders/selectRequestBuilder.d.ts +0 -63
- package/builders/highLvlBuilders/selectRequestBuilder.js +0 -171
- package/builders/highLvlBuilders/selectRequestBuilder.js.map +0 -1
- package/builders/highLvlBuilders/updateRequestBuilder.d.ts +0 -22
- package/builders/highLvlBuilders/updateRequestBuilder.js +0 -81
- package/builders/highLvlBuilders/updateRequestBuilder.js.map +0 -1
- package/builders/index.d.ts +0 -21
- package/builders/index.js +0 -69
- package/builders/index.js.map +0 -1
- package/builders/joinBuilders/builders/abstractJoinBuilder.d.ts +0 -42
- package/builders/joinBuilders/builders/abstractJoinBuilder.js +0 -82
- package/builders/joinBuilders/builders/abstractJoinBuilder.js.map +0 -1
- package/builders/joinBuilders/builders/selectWithFiveJoins.d.ts +0 -36
- package/builders/joinBuilders/builders/selectWithFiveJoins.js +0 -46
- package/builders/joinBuilders/builders/selectWithFiveJoins.js.map +0 -1
- package/builders/joinBuilders/builders/selectWithFourJoins.d.ts +0 -56
- package/builders/joinBuilders/builders/selectWithFourJoins.js +0 -79
- package/builders/joinBuilders/builders/selectWithFourJoins.js.map +0 -1
- package/builders/joinBuilders/builders/selectWithJoin.d.ts +0 -50
- package/builders/joinBuilders/builders/selectWithJoin.js +0 -65
- package/builders/joinBuilders/builders/selectWithJoin.js.map +0 -1
- package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +0 -54
- package/builders/joinBuilders/builders/selectWithThreeJoins.js +0 -74
- package/builders/joinBuilders/builders/selectWithThreeJoins.js.map +0 -1
- package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +0 -52
- package/builders/joinBuilders/builders/selectWithTwoJoins.js +0 -72
- package/builders/joinBuilders/builders/selectWithTwoJoins.js.map +0 -1
- package/builders/joinBuilders/join.d.ts +0 -23
- package/builders/joinBuilders/join.js +0 -29
- package/builders/joinBuilders/join.js.map +0 -1
- package/builders/joinBuilders/joinWith.d.ts +0 -14
- package/builders/joinBuilders/joinWith.js +0 -15
- package/builders/joinBuilders/joinWith.js.map +0 -1
- package/builders/joinBuilders/responses/selectResponseFiveJoins.d.ts +0 -20
- package/builders/joinBuilders/responses/selectResponseFiveJoins.js +0 -36
- package/builders/joinBuilders/responses/selectResponseFiveJoins.js.map +0 -1
- package/builders/joinBuilders/responses/selectResponseFourJoins.d.ts +0 -19
- package/builders/joinBuilders/responses/selectResponseFourJoins.js +0 -35
- package/builders/joinBuilders/responses/selectResponseFourJoins.js.map +0 -1
- package/builders/joinBuilders/responses/selectResponseThreeJoins.d.ts +0 -18
- package/builders/joinBuilders/responses/selectResponseThreeJoins.js +0 -34
- package/builders/joinBuilders/responses/selectResponseThreeJoins.js.map +0 -1
- package/builders/joinBuilders/responses/selectResponseTwoJoins.d.ts +0 -17
- package/builders/joinBuilders/responses/selectResponseTwoJoins.js +0 -33
- package/builders/joinBuilders/responses/selectResponseTwoJoins.js.map +0 -1
- package/builders/joinBuilders/responses/selectResponseWithJoin.d.ts +0 -16
- package/builders/joinBuilders/responses/selectResponseWithJoin.js +0 -32
- package/builders/joinBuilders/responses/selectResponseWithJoin.js.map +0 -1
- package/builders/joinBuilders/static.d.ts +0 -5
- package/builders/joinBuilders/static.js +0 -10
- package/builders/joinBuilders/static.js.map +0 -1
- package/builders/lowLvlBuilders/alter.d.ts +0 -0
- package/builders/lowLvlBuilders/alter.js +0 -2
- package/builders/lowLvlBuilders/alter.js.map +0 -1
- package/builders/lowLvlBuilders/create.d.ts +0 -12
- package/builders/lowLvlBuilders/create.js +0 -101
- package/builders/lowLvlBuilders/create.js.map +0 -1
- package/builders/lowLvlBuilders/delets/delete.d.ts +0 -5
- package/builders/lowLvlBuilders/delets/delete.js +0 -16
- package/builders/lowLvlBuilders/delets/delete.js.map +0 -1
- package/builders/lowLvlBuilders/delets/deleteFilter.d.ts +0 -11
- package/builders/lowLvlBuilders/delets/deleteFilter.js +0 -14
- package/builders/lowLvlBuilders/delets/deleteFilter.js.map +0 -1
- package/builders/lowLvlBuilders/delets/deleteFrom.d.ts +0 -12
- package/builders/lowLvlBuilders/delets/deleteFrom.js +0 -15
- package/builders/lowLvlBuilders/delets/deleteFrom.js.map +0 -1
- package/builders/lowLvlBuilders/inserts/insert.d.ts +0 -5
- package/builders/lowLvlBuilders/inserts/insert.js +0 -16
- package/builders/lowLvlBuilders/inserts/insert.js.map +0 -1
- package/builders/lowLvlBuilders/inserts/insertInto.d.ts +0 -13
- package/builders/lowLvlBuilders/inserts/insertInto.js +0 -17
- package/builders/lowLvlBuilders/inserts/insertInto.js.map +0 -1
- package/builders/lowLvlBuilders/inserts/onConflictInsert.d.ts +0 -12
- package/builders/lowLvlBuilders/inserts/onConflictInsert.js +0 -14
- package/builders/lowLvlBuilders/inserts/onConflictInsert.js.map +0 -1
- package/builders/lowLvlBuilders/inserts/valuesInsert.d.ts +0 -16
- package/builders/lowLvlBuilders/inserts/valuesInsert.js +0 -20
- package/builders/lowLvlBuilders/inserts/valuesInsert.js.map +0 -1
- package/builders/lowLvlBuilders/selects/select.d.ts +0 -12
- package/builders/lowLvlBuilders/selects/select.js +0 -43
- package/builders/lowLvlBuilders/selects/select.js.map +0 -1
- package/builders/lowLvlBuilders/selects/selectFrom.d.ts +0 -45
- package/builders/lowLvlBuilders/selects/selectFrom.js +0 -79
- package/builders/lowLvlBuilders/selects/selectFrom.js.map +0 -1
- package/builders/lowLvlBuilders/selects/selectJoined.d.ts +0 -42
- package/builders/lowLvlBuilders/selects/selectJoined.js +0 -72
- package/builders/lowLvlBuilders/selects/selectJoined.js.map +0 -1
- package/builders/lowLvlBuilders/selects/whereSelect.d.ts +0 -30
- package/builders/lowLvlBuilders/selects/whereSelect.js +0 -50
- package/builders/lowLvlBuilders/selects/whereSelect.js.map +0 -1
- package/builders/lowLvlBuilders/updates/update.d.ts +0 -5
- package/builders/lowLvlBuilders/updates/update.js +0 -16
- package/builders/lowLvlBuilders/updates/update.js.map +0 -1
- package/builders/lowLvlBuilders/updates/updateIn.d.ts +0 -13
- package/builders/lowLvlBuilders/updates/updateIn.js +0 -16
- package/builders/lowLvlBuilders/updates/updateIn.js.map +0 -1
- package/builders/lowLvlBuilders/updates/whereSelect.d.ts +0 -11
- package/builders/lowLvlBuilders/updates/whereSelect.js +0 -14
- package/builders/lowLvlBuilders/updates/whereSelect.js.map +0 -1
- package/builders/lowLvlBuilders/updates/whereSet.d.ts +0 -14
- package/builders/lowLvlBuilders/updates/whereSet.js +0 -19
- package/builders/lowLvlBuilders/updates/whereSet.js.map +0 -1
- package/builders/requestBuilders/updates/combine.d.ts +0 -13
- package/builders/requestBuilders/updates/combine.js +0 -27
- package/builders/requestBuilders/updates/combine.js.map +0 -1
- package/builders/requestBuilders/updates/increment.d.ts +0 -17
- package/builders/requestBuilders/updates/increment.js +0 -19
- package/builders/requestBuilders/updates/increment.js.map +0 -1
- package/builders/requestBuilders/updates/setObjects.d.ts +0 -16
- package/builders/requestBuilders/updates/setObjects.js +0 -20
- package/builders/requestBuilders/updates/setObjects.js.map +0 -1
- package/builders/requestBuilders/updates/static.d.ts +0 -7
- package/builders/requestBuilders/updates/static.js +0 -16
- package/builders/requestBuilders/updates/static.js.map +0 -1
- package/builders/requestBuilders/updates/updates.d.ts +0 -13
- package/builders/requestBuilders/updates/updates.js +0 -10
- package/builders/requestBuilders/updates/updates.js.map +0 -1
- package/builders/requestBuilders/where/and.d.ts +0 -23
- package/builders/requestBuilders/where/and.js +0 -49
- package/builders/requestBuilders/where/and.js.map +0 -1
- package/builders/requestBuilders/where/const.d.ts +0 -20
- package/builders/requestBuilders/where/const.js +0 -35
- package/builders/requestBuilders/where/const.js.map +0 -1
- package/builders/requestBuilders/where/constArray.d.ts +0 -20
- package/builders/requestBuilders/where/constArray.js +0 -65
- package/builders/requestBuilders/where/constArray.js.map +0 -1
- package/builders/requestBuilders/where/eqWhere.d.ts +0 -27
- package/builders/requestBuilders/where/eqWhere.js +0 -26
- package/builders/requestBuilders/where/eqWhere.js.map +0 -1
- package/builders/requestBuilders/where/greater.d.ts +0 -27
- package/builders/requestBuilders/where/greater.js +0 -26
- package/builders/requestBuilders/where/greater.js.map +0 -1
- package/builders/requestBuilders/where/greaterEq.d.ts +0 -27
- package/builders/requestBuilders/where/greaterEq.js +0 -26
- package/builders/requestBuilders/where/greaterEq.js.map +0 -1
- package/builders/requestBuilders/where/in.d.ts +0 -24
- package/builders/requestBuilders/where/in.js +0 -26
- package/builders/requestBuilders/where/in.js.map +0 -1
- package/builders/requestBuilders/where/isNotNull.d.ts +0 -23
- package/builders/requestBuilders/where/isNotNull.js +0 -23
- package/builders/requestBuilders/where/isNotNull.js.map +0 -1
- package/builders/requestBuilders/where/isNull.d.ts +0 -23
- package/builders/requestBuilders/where/isNull.js +0 -23
- package/builders/requestBuilders/where/isNull.js.map +0 -1
- package/builders/requestBuilders/where/less.d.ts +0 -27
- package/builders/requestBuilders/where/less.js +0 -26
- package/builders/requestBuilders/where/less.js.map +0 -1
- package/builders/requestBuilders/where/lessEq.d.ts +0 -27
- package/builders/requestBuilders/where/lessEq.js +0 -26
- package/builders/requestBuilders/where/lessEq.js.map +0 -1
- package/builders/requestBuilders/where/like.d.ts +0 -24
- package/builders/requestBuilders/where/like.js +0 -26
- package/builders/requestBuilders/where/like.js.map +0 -1
- package/builders/requestBuilders/where/notEqWhere.d.ts +0 -24
- package/builders/requestBuilders/where/notEqWhere.js +0 -26
- package/builders/requestBuilders/where/notEqWhere.js.map +0 -1
- package/builders/requestBuilders/where/or.d.ts +0 -23
- package/builders/requestBuilders/where/or.js +0 -49
- package/builders/requestBuilders/where/or.js.map +0 -1
- package/builders/requestBuilders/where/rawWhere.d.ts +0 -23
- package/builders/requestBuilders/where/rawWhere.js +0 -17
- package/builders/requestBuilders/where/rawWhere.js.map +0 -1
- package/builders/requestBuilders/where/static.d.ts +0 -21
- package/builders/requestBuilders/where/static.js +0 -57
- package/builders/requestBuilders/where/static.js.map +0 -1
- package/builders/requestBuilders/where/static.spec.d.ts +0 -1
- package/builders/requestBuilders/where/static.spec.js +0 -60
- package/builders/requestBuilders/where/static.spec.js.map +0 -1
- package/builders/requestBuilders/where/var.d.ts +0 -25
- package/builders/requestBuilders/where/var.js +0 -23
- package/builders/requestBuilders/where/var.js.map +0 -1
- package/builders/requestBuilders/where/where.d.ts +0 -20
- package/builders/requestBuilders/where/where.js +0 -6
- package/builders/requestBuilders/where/where.js.map +0 -1
- package/builders/transaction/transaction.d.ts +0 -8
- package/builders/transaction/transaction.js +0 -21
- package/builders/transaction/transaction.js.map +0 -1
- package/columns/column.d.ts +0 -81
- package/columns/column.js +0 -119
- package/columns/column.js.map +0 -1
- package/columns/index.d.ts +0 -10
- package/columns/index.js +0 -30
- package/columns/index.js.map +0 -1
- package/columns/types/columnType.d.ts +0 -7
- package/columns/types/columnType.js +0 -7
- package/columns/types/columnType.js.map +0 -1
- package/columns/types/pgBigDecimal.d.ts +0 -10
- package/columns/types/pgBigDecimal.js +0 -32
- package/columns/types/pgBigDecimal.js.map +0 -1
- package/columns/types/pgBigInt.d.ts +0 -15
- package/columns/types/pgBigInt.js +0 -33
- package/columns/types/pgBigInt.js.map +0 -1
- package/columns/types/pgBigSerial.d.ts +0 -15
- package/columns/types/pgBigSerial.js +0 -33
- package/columns/types/pgBigSerial.js.map +0 -1
- package/columns/types/pgBoolean.d.ts +0 -8
- package/columns/types/pgBoolean.js +0 -19
- package/columns/types/pgBoolean.js.map +0 -1
- package/columns/types/pgEnum.d.ts +0 -9
- package/columns/types/pgEnum.js +0 -19
- package/columns/types/pgEnum.js.map +0 -1
- package/columns/types/pgInteger.d.ts +0 -8
- package/columns/types/pgInteger.js +0 -22
- package/columns/types/pgInteger.js.map +0 -1
- package/columns/types/pgJsonb.d.ts +0 -9
- package/columns/types/pgJsonb.js +0 -21
- package/columns/types/pgJsonb.js.map +0 -1
- package/columns/types/pgSerial.d.ts +0 -8
- package/columns/types/pgSerial.js +0 -19
- package/columns/types/pgSerial.js.map +0 -1
- package/columns/types/pgSmallInt.d.ts +0 -8
- package/columns/types/pgSmallInt.js +0 -19
- package/columns/types/pgSmallInt.js.map +0 -1
- package/columns/types/pgText.d.ts +0 -8
- package/columns/types/pgText.js +0 -19
- package/columns/types/pgText.js.map +0 -1
- package/columns/types/pgTime.d.ts +0 -8
- package/columns/types/pgTime.js +0 -19
- package/columns/types/pgTime.js.map +0 -1
- package/columns/types/pgTimestamp.d.ts +0 -8
- package/columns/types/pgTimestamp.js +0 -19
- package/columns/types/pgTimestamp.js.map +0 -1
- package/columns/types/pgTimestamptz.d.ts +0 -8
- package/columns/types/pgTimestamptz.js +0 -19
- package/columns/types/pgTimestamptz.js.map +0 -1
- package/columns/types/pgVarChar.d.ts +0 -9
- package/columns/types/pgVarChar.js +0 -25
- package/columns/types/pgVarChar.js.map +0 -1
- package/db/db.d.ts +0 -18
- package/db/db.js +0 -26
- package/db/db.js.map +0 -1
- package/db/dbConnector.d.ts +0 -9
- package/db/dbConnector.js +0 -33
- package/db/dbConnector.js.map +0 -1
- package/db/dbStringConnector.d.ts +0 -6
- package/db/dbStringConnector.js +0 -30
- package/db/dbStringConnector.js.map +0 -1
- package/db/group_by.d.ts +0 -0
- package/db/group_by.js +0 -69
- package/db/group_by.js.map +0 -1
- package/db/index.d.ts +0 -4
- package/db/index.js +0 -15
- package/db/index.js.map +0 -1
- package/db/session.d.ts +0 -16
- package/db/session.js +0 -40
- package/db/session.js.map +0 -1
- package/docs/cases/simple_delete.d.ts +0 -1
- package/docs/cases/simple_delete.js +0 -36
- package/docs/cases/simple_delete.js.map +0 -1
- package/docs/cases/simple_insert.d.ts +0 -1
- package/docs/cases/simple_insert.js +0 -58
- package/docs/cases/simple_insert.js.map +0 -1
- package/docs/cases/simple_join.d.ts +0 -1
- package/docs/cases/simple_join.js +0 -116
- package/docs/cases/simple_join.js.map +0 -1
- package/docs/cases/simple_select.d.ts +0 -1
- package/docs/cases/simple_select.js +0 -51
- package/docs/cases/simple_select.js.map +0 -1
- package/docs/cases/simple_update.d.ts +0 -1
- package/docs/cases/simple_update.js +0 -40
- package/docs/cases/simple_update.js.map +0 -1
- package/docs/tables/citiesTable.d.ts +0 -14
- package/docs/tables/citiesTable.js +0 -22
- package/docs/tables/citiesTable.js.map +0 -1
- package/docs/tables/userGroupsTable.d.ts +0 -8
- package/docs/tables/userGroupsTable.js +0 -20
- package/docs/tables/userGroupsTable.js.map +0 -1
- package/docs/tables/usersTable.d.ts +0 -17
- package/docs/tables/usersTable.js +0 -36
- package/docs/tables/usersTable.js.map +0 -1
- package/docs/tables/usersToUserGroups.d.ts +0 -7
- package/docs/tables/usersToUserGroups.js +0 -21
- package/docs/tables/usersToUserGroups.js.map +0 -1
- package/docs/types/rolesType.d.ts +0 -1
- package/docs/types/rolesType.js +0 -7
- package/docs/types/rolesType.js.map +0 -1
- package/errors/baseError.d.ts +0 -22
- package/errors/baseError.js +0 -36
- package/errors/baseError.js.map +0 -1
- package/errors/builderError.d.ts +0 -15
- package/errors/builderError.js +0 -26
- package/errors/builderError.js.map +0 -1
- package/errors/dbErrors.d.ts +0 -12
- package/errors/dbErrors.js +0 -29
- package/errors/dbErrors.js.map +0 -1
- package/indexes/tableIndex.d.ts +0 -11
- package/indexes/tableIndex.js +0 -18
- package/indexes/tableIndex.js.map +0 -1
- package/logger/abstractLogger.d.ts +0 -4
- package/logger/abstractLogger.js +0 -6
- package/logger/abstractLogger.js.map +0 -1
- package/logger/consoleLogger.d.ts +0 -5
- package/logger/consoleLogger.js +0 -16
- package/logger/consoleLogger.js.map +0 -1
- package/mappers/index.d.ts +0 -0
- package/mappers/index.js +0 -2
- package/mappers/index.js.map +0 -1
- package/mappers/responseMapper.d.ts +0 -15
- package/mappers/responseMapper.js +0 -69
- package/mappers/responseMapper.js.map +0 -1
- package/migrator/index.d.ts +0 -0
- package/migrator/index.js +0 -2
- package/migrator/index.js.map +0 -1
- package/migrator/migrator.d.ts +0 -11
- package/migrator/migrator.js +0 -113
- package/migrator/migrator.js.map +0 -1
- package/serializer/serializer.d.ts +0 -58
- package/serializer/serializer.js +0 -260
- package/serializer/serializer.js.map +0 -1
- package/tables/abstractTable.d.ts +0 -69
- package/tables/abstractTable.js +0 -158
- package/tables/abstractTable.js.map +0 -1
- package/tables/index.d.ts +0 -3
- package/tables/index.js +0 -12
- package/tables/index.js.map +0 -1
- package/tables/inferTypes.d.ts +0 -48
- package/tables/inferTypes.js.map +0 -1
- package/tables/migrationsTable.d.ts +0 -7
- package/tables/migrationsTable.js +0 -19
- package/tables/migrationsTable.js.map +0 -1
- package/types/type.d.ts +0 -10
- package/types/type.js +0 -15
- package/types/type.js.map +0 -1
- package/utils/ecranate.d.ts +0 -2
- package/utils/ecranate.js +0 -9
- package/utils/ecranate.js.map +0 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notIlike = exports.ilike = exports.notLike = exports.like = exports.notBetween = exports.between = exports.notExists = exports.exists = exports.isNotNull = exports.isNull = exports.notInArray = exports.inArray = exports.lte = exports.lt = exports.gte = exports.gt = exports.not = exports.or = exports.and = exports.ne = exports.eq = void 0;
|
|
4
|
+
const column_1 = require("../../column");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
function bindIfParam(value, column) {
|
|
7
|
+
if (value instanceof column_1.Column) {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return new __1.BoundParamValue(value, column);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function eq(left, right) {
|
|
15
|
+
return (0, __1.sql) `${left} = ${bindIfParam(right, left)}`;
|
|
16
|
+
}
|
|
17
|
+
exports.eq = eq;
|
|
18
|
+
function ne(left, right) {
|
|
19
|
+
return (0, __1.sql) `${left} <> ${bindIfParam(right, left)}`;
|
|
20
|
+
}
|
|
21
|
+
exports.ne = ne;
|
|
22
|
+
function and(...conditions) {
|
|
23
|
+
if (conditions.length === 0) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const chunks = [__1.sql.raw('(')];
|
|
27
|
+
conditions
|
|
28
|
+
.filter((c) => typeof c !== 'undefined')
|
|
29
|
+
.forEach((condition, index) => {
|
|
30
|
+
if (index === 0) {
|
|
31
|
+
chunks.push(condition);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
chunks.push((0, __1.sql) ` and `, condition);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
chunks.push((0, __1.sql) `)`);
|
|
38
|
+
return __1.sql.fromList(chunks);
|
|
39
|
+
}
|
|
40
|
+
exports.and = and;
|
|
41
|
+
function or(...conditions) {
|
|
42
|
+
if (conditions.length === 0) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const chunks = [__1.sql.raw('(')];
|
|
46
|
+
conditions
|
|
47
|
+
.filter((c) => typeof c !== 'undefined')
|
|
48
|
+
.forEach((condition, index) => {
|
|
49
|
+
if (index === 0) {
|
|
50
|
+
chunks.push(condition);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
chunks.push((0, __1.sql) ` or `, condition);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
chunks.push((0, __1.sql) `)`);
|
|
57
|
+
return __1.sql.fromList(chunks);
|
|
58
|
+
}
|
|
59
|
+
exports.or = or;
|
|
60
|
+
function not(condition) {
|
|
61
|
+
return (0, __1.sql) `not ${condition}`;
|
|
62
|
+
}
|
|
63
|
+
exports.not = not;
|
|
64
|
+
function gt(left, right) {
|
|
65
|
+
return (0, __1.sql) `${left} > ${bindIfParam(right, left)}`;
|
|
66
|
+
}
|
|
67
|
+
exports.gt = gt;
|
|
68
|
+
function gte(left, right) {
|
|
69
|
+
return (0, __1.sql) `${left} >= ${bindIfParam(right, left)}`;
|
|
70
|
+
}
|
|
71
|
+
exports.gte = gte;
|
|
72
|
+
function lt(left, right) {
|
|
73
|
+
return (0, __1.sql) `${left} < ${bindIfParam(right, left)}`;
|
|
74
|
+
}
|
|
75
|
+
exports.lt = lt;
|
|
76
|
+
function lte(left, right) {
|
|
77
|
+
return (0, __1.sql) `${left} <= ${bindIfParam(right, left)}`;
|
|
78
|
+
}
|
|
79
|
+
exports.lte = lte;
|
|
80
|
+
function inArray(column, values) {
|
|
81
|
+
if ((0, __1.isSQLWrapper)(values)) {
|
|
82
|
+
return (0, __1.sql) `${column} in (${values})`;
|
|
83
|
+
}
|
|
84
|
+
if (values.length === 0) {
|
|
85
|
+
throw new Error('inArray requires at least one value');
|
|
86
|
+
}
|
|
87
|
+
return (0, __1.sql) `${column} in ${values.map((v) => new __1.BoundParamValue(v, column))}`;
|
|
88
|
+
}
|
|
89
|
+
exports.inArray = inArray;
|
|
90
|
+
function notInArray(column, values) {
|
|
91
|
+
if ((0, __1.isSQLWrapper)(values)) {
|
|
92
|
+
return (0, __1.sql) `${column} not in (${values})`;
|
|
93
|
+
}
|
|
94
|
+
if (values.length === 0) {
|
|
95
|
+
throw new Error('notInArray requires at least one value');
|
|
96
|
+
}
|
|
97
|
+
return (0, __1.sql) `${column} not in ${values.map((v) => new __1.BoundParamValue(v, column))}`;
|
|
98
|
+
}
|
|
99
|
+
exports.notInArray = notInArray;
|
|
100
|
+
function isNull(column) {
|
|
101
|
+
return (0, __1.sql) `${column} is null`;
|
|
102
|
+
}
|
|
103
|
+
exports.isNull = isNull;
|
|
104
|
+
function isNotNull(column) {
|
|
105
|
+
return (0, __1.sql) `${column} is not null`;
|
|
106
|
+
}
|
|
107
|
+
exports.isNotNull = isNotNull;
|
|
108
|
+
function exists(subquery) {
|
|
109
|
+
return (0, __1.sql) `exists (${subquery})`;
|
|
110
|
+
}
|
|
111
|
+
exports.exists = exists;
|
|
112
|
+
function notExists(subquery) {
|
|
113
|
+
return (0, __1.sql) `exists (${subquery})`;
|
|
114
|
+
}
|
|
115
|
+
exports.notExists = notExists;
|
|
116
|
+
function between(column, min, max) {
|
|
117
|
+
return (0, __1.sql) `${column} between ${min} and ${max}`;
|
|
118
|
+
}
|
|
119
|
+
exports.between = between;
|
|
120
|
+
function notBetween(column, min, max) {
|
|
121
|
+
return (0, __1.sql) `${column} not between ${min} and ${max}`;
|
|
122
|
+
}
|
|
123
|
+
exports.notBetween = notBetween;
|
|
124
|
+
function like(column, value) {
|
|
125
|
+
return (0, __1.sql) `${column} like ${value}`;
|
|
126
|
+
}
|
|
127
|
+
exports.like = like;
|
|
128
|
+
function notLike(column, value) {
|
|
129
|
+
return (0, __1.sql) `${column} not like ${value}`;
|
|
130
|
+
}
|
|
131
|
+
exports.notLike = notLike;
|
|
132
|
+
function ilike(column, value) {
|
|
133
|
+
return (0, __1.sql) `${column} ilike ${value}`;
|
|
134
|
+
}
|
|
135
|
+
exports.ilike = ilike;
|
|
136
|
+
function notIlike(column, value) {
|
|
137
|
+
return (0, __1.sql) `${column} not ilike ${value}`;
|
|
138
|
+
}
|
|
139
|
+
exports.notIlike = notIlike;
|
|
140
|
+
//# sourceMappingURL=conditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../../src/sql/expressions/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./conditions"), exports);
|
|
18
|
+
__exportStar(require("./select"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sql/expressions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2CAAyB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TableName } from '../../branded-types';
|
|
2
|
+
import { AnyColumn } from '../../column';
|
|
3
|
+
import { SQL } from '..';
|
|
4
|
+
export declare function asc<TTableName extends TableName>(column: AnyColumn<TTableName>): SQL<TTableName>;
|
|
5
|
+
export declare function desc<TTableName extends TableName>(column: AnyColumn<TTableName>): SQL<TTableName>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.desc = exports.asc = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
function asc(column) {
|
|
6
|
+
return (0, __1.sql) `${column} asc`;
|
|
7
|
+
}
|
|
8
|
+
exports.asc = asc;
|
|
9
|
+
function desc(column) {
|
|
10
|
+
return (0, __1.sql) `${column} desc`;
|
|
11
|
+
}
|
|
12
|
+
exports.desc = desc;
|
|
13
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/sql/expressions/select.ts"],"names":[],"mappings":";;;AAEA,0BAA8B;AAE9B,SAAgB,GAAG,CAClB,MAA6B;IAE7B,OAAO,IAAA,OAAG,EAAA,GAAG,MAAM,MAAM,CAAC;AAC3B,CAAC;AAJD,kBAIC;AAED,SAAgB,IAAI,CACnB,MAA6B;IAE7B,OAAO,IAAA,OAAG,EAAA,GAAG,MAAM,OAAO,CAAC;AAC5B,CAAC;AAJD,oBAIC"}
|
package/sql/index.d.ts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { ColumnData, ColumnDriverParam, TableName, Unwrap } from '../branded-types';
|
|
2
|
+
import { AnyColumn, GetColumnData } from '../column';
|
|
3
|
+
import { AnyTable } from '../table';
|
|
4
|
+
import { GetTableName } from '../utils';
|
|
5
|
+
export declare class Param<TData = ColumnData | PrimitiveDriverParam> {
|
|
6
|
+
readonly value: TData;
|
|
7
|
+
constructor(value: TData);
|
|
8
|
+
}
|
|
9
|
+
export declare type Chunk<TTableName extends TableName = TableName> = string | AnyTable<TTableName> | AnyColumn<TTableName> | Name | Param;
|
|
10
|
+
export interface BuildQueryConfig {
|
|
11
|
+
escapeName(name: string): string;
|
|
12
|
+
escapeParam(num: number, value: unknown): string;
|
|
13
|
+
}
|
|
14
|
+
export interface PreparedQuery<TDriverParam extends ColumnDriverParam = ColumnDriverParam> {
|
|
15
|
+
sql: string;
|
|
16
|
+
params: TDriverParam[];
|
|
17
|
+
}
|
|
18
|
+
export interface SQLWrapper {
|
|
19
|
+
getSQL(): AnySQL;
|
|
20
|
+
}
|
|
21
|
+
export declare function isSQLWrapper(param: unknown): param is SQLWrapper;
|
|
22
|
+
export declare class SQL<TTableName extends TableName> implements SQLWrapper {
|
|
23
|
+
readonly queryChunks: Chunk<TTableName>[];
|
|
24
|
+
protected typeKeeper: {
|
|
25
|
+
brand: 'SQL';
|
|
26
|
+
tableName: TTableName;
|
|
27
|
+
};
|
|
28
|
+
constructor(queryChunks: Chunk<TTableName>[]);
|
|
29
|
+
toQuery<TDriverParamType = unknown>({ escapeName, escapeParam }: BuildQueryConfig): PreparedQuery<ColumnDriverParam<TDriverParamType>>;
|
|
30
|
+
getSQL(): AnySQL<TTableName>;
|
|
31
|
+
}
|
|
32
|
+
export declare type AnySQL<TTableName extends TableName = TableName> = SQL<TTableName>;
|
|
33
|
+
/**
|
|
34
|
+
* Any DB name (table, column, index etc.)
|
|
35
|
+
*/
|
|
36
|
+
export declare class Name {
|
|
37
|
+
readonly value: string;
|
|
38
|
+
protected brand: 'Name';
|
|
39
|
+
constructor(value: string);
|
|
40
|
+
}
|
|
41
|
+
export declare type ParamValueDecoder<TData extends ColumnData, TDriverParam extends ColumnDriverParam> = (value: Unwrap<TDriverParam>) => Unwrap<TData>;
|
|
42
|
+
export declare const noopDecoder: ParamValueDecoder<any, any>;
|
|
43
|
+
export declare type ParamValueEncoder<TData extends ColumnData, TDriverParam extends ColumnDriverParam> = (value: Unwrap<TData>) => Unwrap<TDriverParam>;
|
|
44
|
+
export declare const noopEncoder: ParamValueEncoder<any, any>;
|
|
45
|
+
export interface ParamValueMapper<TData extends ColumnData, TDriverParam extends ColumnDriverParam> {
|
|
46
|
+
mapFromDriverValue: ParamValueDecoder<TData, TDriverParam>;
|
|
47
|
+
mapToDriverValue: ParamValueEncoder<TData, TDriverParam>;
|
|
48
|
+
}
|
|
49
|
+
export declare const noopMapper: ParamValueMapper<any, any>;
|
|
50
|
+
/**
|
|
51
|
+
* Parameter value that is bound to a specific mapper (usually, a column of a specific type)
|
|
52
|
+
* @param value - Parameter value to bind
|
|
53
|
+
* @param mapper - Mapper to use to convert the value to/from the driver parameter
|
|
54
|
+
*/
|
|
55
|
+
export declare class BoundParamValue<TDataType extends ColumnData, TDriverParamType extends ColumnDriverParam> {
|
|
56
|
+
readonly value: TDataType;
|
|
57
|
+
readonly mapper: ParamValueMapper<TDataType, TDriverParamType>;
|
|
58
|
+
protected brand: 'BoundParamValue';
|
|
59
|
+
constructor(value: TDataType, mapper: ParamValueMapper<TDataType, TDriverParamType>);
|
|
60
|
+
}
|
|
61
|
+
export declare type AnyBoundParamValue = BoundParamValue<any, any>;
|
|
62
|
+
export declare type SQLSourceParam<TTableName extends TableName> = SQLSourceParam<TTableName>[] | ColumnData | SQLWrapper | AnySQL<TTableName> | AnyTable<TTableName> | AnyColumn<TTableName> | AnyBoundParamValue | Name | PrimitiveDriverParam | undefined;
|
|
63
|
+
export declare type PrimitiveDriverParam = string | number | boolean | null;
|
|
64
|
+
export declare function sql<TTableName extends TableName>(strings: TemplateStringsArray, ...params: (SQLSourceParam<TTableName> | PrimitiveDriverParam)[]): SQL<TTableName>;
|
|
65
|
+
export declare function sql<TTableName extends string>(strings: TemplateStringsArray, ...params: (SQLSourceParam<TableName<TTableName>> | PrimitiveDriverParam)[]): SQL<TableName<TTableName>>;
|
|
66
|
+
export declare namespace sql {
|
|
67
|
+
function empty(): AnySQL;
|
|
68
|
+
function fromList<TTableName extends TableName = TableName>(list: SQLSourceParam<TTableName>[]): SQL<TTableName>;
|
|
69
|
+
function response<TTableName extends TableName>(strings: TemplateStringsArray, ...params: (BoundParamValue<any, any> | ColumnData | SQLWrapper | PrimitiveDriverParam)[]): SQLResponse<TTableName, ColumnData>;
|
|
70
|
+
function response<TColumn extends AnyColumn>(strings: TemplateStringsArray, ...params: (TColumn | BoundParamValue<any, any> | ColumnData | SQLWrapper | PrimitiveDriverParam)[]): SQLResponse<GetTableName<TColumn>, ColumnData<GetColumnData<TColumn>>>;
|
|
71
|
+
namespace response {
|
|
72
|
+
interface SQLResponseFunc<TData extends ColumnData> {
|
|
73
|
+
<TTableName extends string>(strings: TemplateStringsArray, ...params: (SQLSourceParam<TableName<TTableName>> | ColumnData | PrimitiveDriverParam)[]): SQLResponse<TableName<TTableName>, TData>;
|
|
74
|
+
}
|
|
75
|
+
export function as<TData extends ColumnData>(): SQLResponseFunc<TData>;
|
|
76
|
+
export function as<TData>(): SQLResponseFunc<ColumnData<TData>>;
|
|
77
|
+
export function as<TData extends ColumnData>(decoder: AnyColumn<TableName, TData> | ParamValueDecoder<TData, ColumnDriverParam>): SQLResponseFunc<TData>;
|
|
78
|
+
export function as<TData>(decoder: AnyColumn<TableName, ColumnData<TData>> | ParamValueDecoder<ColumnData<TData>, ColumnDriverParam>): SQLResponseFunc<ColumnData<TData>>;
|
|
79
|
+
export {};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Convenience function to create an SQL query from a raw string.
|
|
83
|
+
* @param str The raw SQL query string.
|
|
84
|
+
*/
|
|
85
|
+
function raw<TTableName extends TableName = TableName>(str: string): SQL<TTableName>;
|
|
86
|
+
}
|
|
87
|
+
export declare class SQLResponse<TTableName extends TableName, TValue extends ColumnData> {
|
|
88
|
+
readonly sql: SQL<TTableName>;
|
|
89
|
+
readonly decoder: ParamValueDecoder<TValue, any>;
|
|
90
|
+
protected typeKeeper: {
|
|
91
|
+
brand: 'SQLResponse';
|
|
92
|
+
tableName: TTableName;
|
|
93
|
+
value: TValue;
|
|
94
|
+
};
|
|
95
|
+
constructor(sql: SQL<TTableName>, decoder: ParamValueDecoder<TValue, any>);
|
|
96
|
+
}
|
|
97
|
+
export declare type AnySQLResponse<TTableName extends TableName = TableName> = SQLResponse<TTableName, any>;
|
package/sql/index.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SQLResponse = exports.sql = exports.BoundParamValue = exports.noopMapper = exports.noopEncoder = exports.noopDecoder = exports.Name = exports.SQL = exports.isSQLWrapper = exports.Param = void 0;
|
|
4
|
+
const column_1 = require("../column");
|
|
5
|
+
const table_1 = require("../table");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
class Param {
|
|
8
|
+
constructor(value) {
|
|
9
|
+
this.value = value;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.Param = Param;
|
|
13
|
+
function isSQLWrapper(param) {
|
|
14
|
+
return !!param && typeof param === 'object' && 'getSQL' in param;
|
|
15
|
+
}
|
|
16
|
+
exports.isSQLWrapper = isSQLWrapper;
|
|
17
|
+
class SQL {
|
|
18
|
+
constructor(queryChunks) {
|
|
19
|
+
this.queryChunks = queryChunks;
|
|
20
|
+
}
|
|
21
|
+
toQuery({ escapeName, escapeParam }) {
|
|
22
|
+
const params = [];
|
|
23
|
+
const chunks = this.queryChunks.map((chunk) => {
|
|
24
|
+
if (typeof chunk === 'string') {
|
|
25
|
+
return chunk;
|
|
26
|
+
}
|
|
27
|
+
else if (chunk instanceof Name) {
|
|
28
|
+
return escapeName(chunk.value);
|
|
29
|
+
}
|
|
30
|
+
else if (chunk instanceof table_1.Table) {
|
|
31
|
+
return escapeName(chunk[utils_1.tableName]);
|
|
32
|
+
}
|
|
33
|
+
else if (chunk instanceof column_1.Column) {
|
|
34
|
+
return escapeName(chunk.table[utils_1.tableName]) + '.' + escapeName(chunk.name);
|
|
35
|
+
}
|
|
36
|
+
else if (chunk instanceof Param) {
|
|
37
|
+
params.push(chunk.value);
|
|
38
|
+
return escapeParam(params.length, chunk.value);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const err = new Error('Unexpected chunk type!');
|
|
42
|
+
console.error(chunk);
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const sqlString = chunks
|
|
47
|
+
.join('')
|
|
48
|
+
.trim()
|
|
49
|
+
.replace(/\s{2,}/g, ' ')
|
|
50
|
+
.replace(/\n+/g, '');
|
|
51
|
+
return { sql: sqlString, params: params };
|
|
52
|
+
}
|
|
53
|
+
getSQL() {
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.SQL = SQL;
|
|
58
|
+
/**
|
|
59
|
+
* Any DB name (table, column, index etc.)
|
|
60
|
+
*/
|
|
61
|
+
class Name {
|
|
62
|
+
constructor(value) {
|
|
63
|
+
this.value = value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.Name = Name;
|
|
67
|
+
const noopDecoder = (value) => value;
|
|
68
|
+
exports.noopDecoder = noopDecoder;
|
|
69
|
+
const noopEncoder = (value) => value;
|
|
70
|
+
exports.noopEncoder = noopEncoder;
|
|
71
|
+
exports.noopMapper = {
|
|
72
|
+
mapFromDriverValue: exports.noopDecoder,
|
|
73
|
+
mapToDriverValue: exports.noopEncoder,
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Parameter value that is bound to a specific mapper (usually, a column of a specific type)
|
|
77
|
+
* @param value - Parameter value to bind
|
|
78
|
+
* @param mapper - Mapper to use to convert the value to/from the driver parameter
|
|
79
|
+
*/
|
|
80
|
+
class BoundParamValue {
|
|
81
|
+
constructor(value, mapper) {
|
|
82
|
+
this.value = value;
|
|
83
|
+
this.mapper = mapper;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.BoundParamValue = BoundParamValue;
|
|
87
|
+
function buildChunksFromParam(param) {
|
|
88
|
+
if (Array.isArray(param)) {
|
|
89
|
+
const result = ['('];
|
|
90
|
+
param.forEach((p, i) => {
|
|
91
|
+
result.push(...buildChunksFromParam(p));
|
|
92
|
+
if (i < param.length - 1) {
|
|
93
|
+
result.push(', ');
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
result.push(')');
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
else if (param instanceof SQL) {
|
|
100
|
+
return param.queryChunks;
|
|
101
|
+
}
|
|
102
|
+
else if (isSQLWrapper(param)) {
|
|
103
|
+
return buildChunksFromParam(param.getSQL());
|
|
104
|
+
}
|
|
105
|
+
else if (param instanceof table_1.Table
|
|
106
|
+
|| param instanceof column_1.Column
|
|
107
|
+
|| param instanceof Name) {
|
|
108
|
+
return [param];
|
|
109
|
+
}
|
|
110
|
+
else if (param instanceof BoundParamValue) {
|
|
111
|
+
return [new Param(param.mapper.mapToDriverValue(param.value))];
|
|
112
|
+
}
|
|
113
|
+
else if (typeof param !== 'undefined') {
|
|
114
|
+
return [new Param(param)];
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function sql(strings, ...params) {
|
|
121
|
+
const queryChunks = [];
|
|
122
|
+
if (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {
|
|
123
|
+
queryChunks.push(strings[0]);
|
|
124
|
+
}
|
|
125
|
+
params.forEach((param, paramIndex) => {
|
|
126
|
+
queryChunks.push(...buildChunksFromParam(param));
|
|
127
|
+
queryChunks.push(strings[paramIndex + 1]);
|
|
128
|
+
});
|
|
129
|
+
return new SQL(queryChunks);
|
|
130
|
+
}
|
|
131
|
+
exports.sql = sql;
|
|
132
|
+
(function (sql) {
|
|
133
|
+
function empty() {
|
|
134
|
+
return new SQL([]);
|
|
135
|
+
}
|
|
136
|
+
sql.empty = empty;
|
|
137
|
+
function fromList(list) {
|
|
138
|
+
return new SQL(list.map(buildChunksFromParam).flat(1));
|
|
139
|
+
}
|
|
140
|
+
sql.fromList = fromList;
|
|
141
|
+
function response(strings, ...params) {
|
|
142
|
+
var _a, _b;
|
|
143
|
+
const column = (_b = (_a = params.find((p) => p instanceof column_1.Column)) === null || _a === void 0 ? void 0 : _a.mapFromDriverValue) !== null && _b !== void 0 ? _b : exports.noopDecoder;
|
|
144
|
+
return new SQLResponse(sql(strings, ...params), column);
|
|
145
|
+
}
|
|
146
|
+
sql.response = response;
|
|
147
|
+
(function (response) {
|
|
148
|
+
function as(decoder = exports.noopDecoder) {
|
|
149
|
+
const responseSql = (strings, ...params) => {
|
|
150
|
+
return new SQLResponse(sql(strings, ...params), decoder instanceof column_1.Column ? decoder.mapFromDriverValue : decoder);
|
|
151
|
+
};
|
|
152
|
+
return responseSql;
|
|
153
|
+
}
|
|
154
|
+
response.as = as;
|
|
155
|
+
})(response = sql.response || (sql.response = {}));
|
|
156
|
+
/**
|
|
157
|
+
* Convenience function to create an SQL query from a raw string.
|
|
158
|
+
* @param str The raw SQL query string.
|
|
159
|
+
*/
|
|
160
|
+
function raw(str) {
|
|
161
|
+
return new SQL([str]);
|
|
162
|
+
}
|
|
163
|
+
sql.raw = raw;
|
|
164
|
+
})(sql = exports.sql || (exports.sql = {}));
|
|
165
|
+
class SQLResponse {
|
|
166
|
+
constructor(sql, decoder) {
|
|
167
|
+
this.sql = sql;
|
|
168
|
+
this.decoder = decoder;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
exports.SQLResponse = SQLResponse;
|
|
172
|
+
//# sourceMappingURL=index.js.map
|
package/sql/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sql/index.ts"],"names":[],"mappings":"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"}
|
package/table.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TableName } from './branded-types';
|
|
2
|
+
export declare type TableExtraConfig = Record<string, unknown>;
|
|
3
|
+
export declare class Table<TName extends TableName> {
|
|
4
|
+
protected typeKeeper: {
|
|
5
|
+
brand: 'Table';
|
|
6
|
+
name: TName;
|
|
7
|
+
};
|
|
8
|
+
constructor(name: TName);
|
|
9
|
+
}
|
|
10
|
+
export declare type AnyTable<TName extends TableName = TableName> = Table<TName>;
|
package/table.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Table = void 0;
|
|
5
|
+
const column_1 = require("./column");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
class Table {
|
|
8
|
+
constructor(name) {
|
|
9
|
+
/** @internal */
|
|
10
|
+
this[_a] = (columns, row) => {
|
|
11
|
+
const result = columns.reduce((res, { name, resultTableName, column: columnOrResponse }, index) => {
|
|
12
|
+
let decoder;
|
|
13
|
+
if (columnOrResponse instanceof column_1.Column) {
|
|
14
|
+
decoder = columnOrResponse.mapFromDriverValue;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
decoder = columnOrResponse.decoder;
|
|
18
|
+
}
|
|
19
|
+
if (!(resultTableName in res)) {
|
|
20
|
+
res[resultTableName] = {};
|
|
21
|
+
}
|
|
22
|
+
const rawValue = row[index];
|
|
23
|
+
res[resultTableName][name] = rawValue === null ? null : decoder(rawValue);
|
|
24
|
+
return res;
|
|
25
|
+
}, {});
|
|
26
|
+
if (Object.keys(result).length === 1) {
|
|
27
|
+
return Object.values(result)[0];
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
this[utils_1.tableName] = name;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.Table = Table;
|
|
35
|
+
_a = utils_1.tableRowMapper;
|
|
36
|
+
//# sourceMappingURL=table.js.map
|
package/table.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":";;;;AACA,qCAA6C;AAE7C,mCAAkE;AAIlE,MAAa,KAAK;IA0CjB,YAAY,IAAW;QA9BvB,gBAAgB;QAChB,QAAgB,GAAG,CAClB,OAA4B,EAC5B,GAAwB,EACd,EAAE;YACZ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE;gBACnE,IAAI,OAAO,CAAC;gBACZ,IAAI,gBAAgB,YAAY,eAAM,EAAE;oBACvC,OAAO,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;iBAC9C;qBAAM;oBACN,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;iBACnC;gBACD,IAAI,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,EAAE;oBAC9B,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;iBAC1B;gBACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAE,CAAC;gBAC7B,GAAG,CAAC,eAAe,CAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAe,CAAC;gBACzF,OAAO,GAAG,CAAC;YACZ,CAAC,EACD,EAAE,CACF,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAY,CAAC;aAC3C;YAED,OAAO,MAAiB,CAAC;QAC1B,CAAC,CAAC;QAGD,IAAI,CAAC,iBAAS,CAAC,GAAG,IAAI,CAAC;IACxB,CAAC;CACD;AA7CD,sBA6CC;KAhCC,sBAAc"}
|
package/utils.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ColumnDriverParam, TableName } from './branded-types';
|
|
2
|
+
import { AnyColumn } from './column';
|
|
3
|
+
import { SelectFieldsOrdered } from './operations';
|
|
4
|
+
import { AnyTable } from './table';
|
|
5
|
+
export declare function getTableName<TTableName extends TableName>(table: AnyTable<TTableName>): TTableName;
|
|
6
|
+
export declare function getTableRowMapper<TTableName extends TableName>(table: AnyTable<TTableName>): <TResult>(columns: SelectFieldsOrdered, row: ColumnDriverParam[]) => TResult;
|
|
7
|
+
export declare type GetTableName<T extends AnyTable | AnyColumn> = T extends AnyTable<infer TName> ? TName : T extends AnyColumn<infer TName> ? TName : never;
|
package/utils.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTableRowMapper = exports.getTableName = exports.tableRowMapper = exports.tableColumns = exports.tableName = void 0;
|
|
4
|
+
/** @internal */
|
|
5
|
+
exports.tableName = Symbol('tableName');
|
|
6
|
+
/** @internal */
|
|
7
|
+
exports.tableColumns = Symbol('tableColumns');
|
|
8
|
+
/** @internal */
|
|
9
|
+
exports.tableRowMapper = Symbol('tableRowMapper');
|
|
10
|
+
function getTableName(table) {
|
|
11
|
+
return table[exports.tableName];
|
|
12
|
+
}
|
|
13
|
+
exports.getTableName = getTableName;
|
|
14
|
+
function getTableRowMapper(table) {
|
|
15
|
+
return table[exports.tableRowMapper];
|
|
16
|
+
}
|
|
17
|
+
exports.getTableRowMapper = getTableRowMapper;
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAKA,gBAAgB;AACH,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7C,gBAAgB;AACH,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAEnD,gBAAgB;AACH,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEvD,SAAgB,YAAY,CAA+B,KAA2B;IACrF,OAAO,KAAK,CAAC,iBAAS,CAAC,CAAC;AACzB,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAChC,KAA2B;IAE3B,OAAO,KAAK,CAAC,sBAAc,CAAiF,CAAC;AAC9G,CAAC;AAJD,8CAIC"}
|