drizzle-orm 0.37.0 → 0.38.0-1abaaf8
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/column-builder.cjs.map +1 -1
- package/column-builder.d.cts +1 -1
- package/column-builder.d.ts +1 -1
- package/column-builder.js.map +1 -1
- package/mysql-core/columns/all.cjs +4 -1
- package/mysql-core/columns/all.cjs.map +1 -1
- package/mysql-core/columns/all.d.cts +4 -1
- package/mysql-core/columns/all.d.ts +4 -1
- package/mysql-core/columns/all.js +5 -2
- package/mysql-core/columns/all.js.map +1 -1
- package/mysql-core/columns/char.cjs.map +1 -1
- package/mysql-core/columns/char.d.cts +19 -10
- package/mysql-core/columns/char.d.ts +19 -10
- package/mysql-core/columns/char.js.map +1 -1
- package/mysql-core/columns/common.cjs.map +1 -1
- package/mysql-core/columns/common.d.cts +1 -1
- package/mysql-core/columns/common.d.ts +1 -1
- package/mysql-core/columns/common.js.map +1 -1
- package/mysql-core/columns/text.cjs.map +1 -1
- package/mysql-core/columns/text.d.cts +1 -1
- package/mysql-core/columns/text.d.ts +1 -1
- package/mysql-core/columns/text.js.map +1 -1
- package/mysql-core/columns/varchar.cjs.map +1 -1
- package/mysql-core/columns/varchar.d.cts +14 -7
- package/mysql-core/columns/varchar.d.ts +14 -7
- package/mysql-core/columns/varchar.js.map +1 -1
- package/mysql-core/dialect.cjs +18 -3
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +2 -1
- package/mysql-core/dialect.d.ts +2 -1
- package/mysql-core/dialect.js +18 -3
- package/mysql-core/dialect.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +85 -10
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.d.cts +54 -4
- package/mysql-core/query-builders/select.d.ts +54 -4
- package/mysql-core/query-builders/select.js +83 -8
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/query-builders/select.types.cjs.map +1 -1
- package/mysql-core/query-builders/select.types.d.cts +8 -2
- package/mysql-core/query-builders/select.types.d.ts +8 -2
- package/mysql-core/query-builders/update.cjs.map +1 -1
- package/mysql-core/query-builders/update.d.cts +1 -1
- package/mysql-core/query-builders/update.d.ts +1 -1
- package/mysql-core/query-builders/update.js.map +1 -1
- package/mysql-core/table.cjs.map +1 -1
- package/mysql-core/table.d.cts +61 -4
- package/mysql-core/table.d.ts +61 -4
- package/mysql-core/table.js.map +1 -1
- package/mysql-core/utils.cjs +16 -3
- package/mysql-core/utils.cjs.map +1 -1
- package/mysql-core/utils.d.cts +5 -3
- package/mysql-core/utils.d.ts +5 -3
- package/mysql-core/utils.js +13 -2
- package/mysql-core/utils.js.map +1 -1
- package/mysql-core/view.cjs.map +1 -1
- package/mysql-core/view.d.cts +2 -3
- package/mysql-core/view.d.ts +2 -3
- package/mysql-core/view.js.map +1 -1
- package/package.json +1 -1
- package/pg-core/columns/char.cjs +4 -1
- package/pg-core/columns/char.cjs.map +1 -1
- package/pg-core/columns/char.d.cts +21 -12
- package/pg-core/columns/char.d.ts +21 -12
- package/pg-core/columns/char.js +4 -1
- package/pg-core/columns/char.js.map +1 -1
- package/pg-core/columns/common.cjs.map +1 -1
- package/pg-core/columns/common.d.cts +25 -8
- package/pg-core/columns/common.d.ts +25 -8
- package/pg-core/columns/common.js.map +1 -1
- package/pg-core/columns/varchar.cjs +4 -1
- package/pg-core/columns/varchar.cjs.map +1 -1
- package/pg-core/columns/varchar.d.cts +21 -12
- package/pg-core/columns/varchar.d.ts +21 -12
- package/pg-core/columns/varchar.js +4 -1
- package/pg-core/columns/varchar.js.map +1 -1
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -1
- package/pg-core/columns/vector_extension/bit.d.cts +18 -11
- package/pg-core/columns/vector_extension/bit.d.ts +18 -11
- package/pg-core/columns/vector_extension/bit.js.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -1
- package/pg-core/columns/vector_extension/halfvec.d.cts +20 -11
- package/pg-core/columns/vector_extension/halfvec.d.ts +20 -11
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -1
- package/pg-core/columns/vector_extension/vector.cjs +4 -1
- package/pg-core/columns/vector_extension/vector.cjs.map +1 -1
- package/pg-core/columns/vector_extension/vector.d.cts +19 -10
- package/pg-core/columns/vector_extension/vector.d.ts +19 -10
- package/pg-core/columns/vector_extension/vector.js +4 -1
- package/pg-core/columns/vector_extension/vector.js.map +1 -1
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +1 -1
- package/pg-core/query-builders/update.d.ts +1 -1
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.d.cts +40 -2
- package/pg-core/table.d.ts +40 -2
- package/pg-core/table.js.map +1 -1
- package/pg-core/utils.d.cts +2 -3
- package/pg-core/utils.d.ts +2 -3
- package/pg-core/view.cjs.map +1 -1
- package/pg-core/view.d.cts +4 -5
- package/pg-core/view.d.ts +4 -5
- package/pg-core/view.js.map +1 -1
- package/postgres-js/driver.cjs +6 -1
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.js +6 -1
- package/postgres-js/driver.js.map +1 -1
- package/query-builders/select.types.cjs.map +1 -1
- package/query-builders/select.types.d.cts +2 -2
- package/query-builders/select.types.d.ts +2 -2
- package/relations.cjs.map +1 -1
- package/relations.d.cts +7 -7
- package/relations.d.ts +7 -7
- package/relations.js.map +1 -1
- package/singlestore-core/columns/bigint.cjs.map +1 -1
- package/singlestore-core/columns/bigint.d.cts +0 -1
- package/singlestore-core/columns/bigint.d.ts +0 -1
- package/singlestore-core/columns/bigint.js.map +1 -1
- package/singlestore-core/columns/common.cjs.map +1 -1
- package/singlestore-core/columns/common.d.cts +1 -1
- package/singlestore-core/columns/common.d.ts +1 -1
- package/singlestore-core/columns/common.js.map +1 -1
- package/singlestore-core/query-builders/update.cjs.map +1 -1
- package/singlestore-core/query-builders/update.d.cts +1 -1
- package/singlestore-core/query-builders/update.d.ts +1 -1
- package/singlestore-core/query-builders/update.js.map +1 -1
- package/singlestore-core/table.cjs.map +1 -1
- package/singlestore-core/table.d.cts +59 -2
- package/singlestore-core/table.d.ts +59 -2
- package/singlestore-core/table.js.map +1 -1
- package/singlestore-core/utils.cjs +2 -1
- package/singlestore-core/utils.cjs.map +1 -1
- package/singlestore-core/utils.d.cts +1 -1
- package/singlestore-core/utils.d.ts +1 -1
- package/singlestore-core/utils.js +2 -1
- package/singlestore-core/utils.js.map +1 -1
- package/sql/sql.cjs +8 -0
- package/sql/sql.cjs.map +1 -1
- package/sql/sql.d.cts +10 -2
- package/sql/sql.d.ts +10 -2
- package/sql/sql.js +7 -0
- package/sql/sql.js.map +1 -1
- package/sqlite-core/columns/common.cjs.map +1 -1
- package/sqlite-core/columns/common.d.cts +1 -1
- package/sqlite-core/columns/common.d.ts +1 -1
- package/sqlite-core/columns/common.js.map +1 -1
- package/sqlite-core/columns/text.cjs +4 -1
- package/sqlite-core/columns/text.cjs.map +1 -1
- package/sqlite-core/columns/text.d.cts +19 -12
- package/sqlite-core/columns/text.d.ts +19 -12
- package/sqlite-core/columns/text.js +4 -1
- package/sqlite-core/columns/text.js.map +1 -1
- package/sqlite-core/query-builders/update.cjs.map +1 -1
- package/sqlite-core/query-builders/update.d.cts +1 -1
- package/sqlite-core/query-builders/update.d.ts +1 -1
- package/sqlite-core/query-builders/update.js.map +1 -1
- package/sqlite-core/table.cjs.map +1 -1
- package/sqlite-core/table.d.cts +58 -1
- package/sqlite-core/table.d.ts +58 -1
- package/sqlite-core/table.js.map +1 -1
- package/sqlite-core/utils.cjs +2 -1
- package/sqlite-core/utils.cjs.map +1 -1
- package/sqlite-core/utils.d.cts +2 -3
- package/sqlite-core/utils.d.ts +2 -3
- package/sqlite-core/utils.js +2 -1
- package/sqlite-core/utils.js.map +1 -1
- package/sqlite-core/view.cjs.map +1 -1
- package/sqlite-core/view.d.cts +2 -3
- package/sqlite-core/view.d.ts +2 -3
- package/sqlite-core/view.js.map +1 -1
- package/supabase/rls.d.cts +3 -1
- package/supabase/rls.d.ts +3 -1
- package/table.cjs.map +1 -1
- package/table.d.cts +1 -1
- package/table.d.ts +1 -1
- package/table.js.map +1 -1
- package/utils.cjs +5 -0
- package/utils.cjs.map +1 -1
- package/utils.d.cts +2 -1
- package/utils.d.ts +2 -1
- package/utils.js +4 -0
- package/utils.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mysql-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { mapUpdateSet, type UpdateSet, type ValueOrArray } from '~/utils.ts';\nimport type { MySqlColumn } from '../columns/common.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface MySqlUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: MySqlTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type MySqlUpdateSetSource<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL;\n\t}\n\t& {};\n\nexport class MySqlUpdateBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(values: MySqlUpdateSetSource<TTable>): MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\treturn new MySqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect, this.withList);\n\t}\n}\n\nexport type MySqlUpdateWithout<\n\tT extends AnyMySqlUpdateBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tMySqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type MySqlUpdatePrepare<T extends AnyMySqlUpdateBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: MySqlQueryResultKind<T['_']['queryResult'], never>;\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlUpdateDynamic<T extends AnyMySqlUpdateBase> = MySqlUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT']\n>;\n\nexport type MySqlUpdate<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n> = MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;\n\nexport type AnyMySqlUpdateBase = MySqlUpdateBase<any, any, any, any, any>;\n\nexport interface MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>>, SQLWrapper {\n\treadonly _: {\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t};\n}\n\nexport class MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> implements SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'MySqlUpdate';\n\n\tprivate config: MySqlUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MySqlUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>,\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (MySqlColumn | SQL | SQL.Aliased)[]): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>]\n\t\t\t| (MySqlColumn | SQL | SQL.Aliased)[]\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (MySqlColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): MySqlUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): MySqlUpdatePrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t) as MySqlUpdatePrepare<this>;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this.prepare().execute(placeholderValues);\n\t};\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): MySqlUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAY3B,2BAA6B;AAC7B,6BAAsC;AAGtC,mBAAsB;AACtB,mBAAgE;
|
|
1
|
+
{"version":3,"sources":["../../../src/mysql-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { mapUpdateSet, type UpdateSet, type ValueOrArray } from '~/utils.ts';\nimport type { MySqlColumn } from '../columns/common.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface MySqlUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: MySqlTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type MySqlUpdateSetSource<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class MySqlUpdateBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(values: MySqlUpdateSetSource<TTable>): MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\treturn new MySqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect, this.withList);\n\t}\n}\n\nexport type MySqlUpdateWithout<\n\tT extends AnyMySqlUpdateBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tMySqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type MySqlUpdatePrepare<T extends AnyMySqlUpdateBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: MySqlQueryResultKind<T['_']['queryResult'], never>;\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlUpdateDynamic<T extends AnyMySqlUpdateBase> = MySqlUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT']\n>;\n\nexport type MySqlUpdate<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n> = MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;\n\nexport type AnyMySqlUpdateBase = MySqlUpdateBase<any, any, any, any, any>;\n\nexport interface MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>>, SQLWrapper {\n\treadonly _: {\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t};\n}\n\nexport class MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> implements SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'MySqlUpdate';\n\n\tprivate config: MySqlUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MySqlUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>,\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (MySqlColumn | SQL | SQL.Aliased)[]): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>]\n\t\t\t| (MySqlColumn | SQL | SQL.Aliased)[]\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (MySqlColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): MySqlUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): MySqlUpdatePrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t) as MySqlUpdatePrepare<this>;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this.prepare().execute(placeholderValues);\n\t};\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): MySqlUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAY3B,2BAA6B;AAC7B,6BAAsC;AAGtC,mBAAsB;AACtB,mBAAgE;AAuBzD,MAAM,mBAIX;AAAA,EAOD,YACS,OACA,SACA,SACA,UACP;AAJO;AACA;AACA;AACA;AAAA,EACN;AAAA,EAXH,QAAiB,wBAAU,IAAY;AAAA,EAavC,IAAI,QAAgG;AACnG,WAAO,IAAI,gBAAgB,KAAK,WAAO,2BAAa,KAAK,OAAO,MAAM,GAAG,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ;AAAA,EACnH;AACD;AAwDO,MAAM,wBASH,kCAA8E;AAAA,EAKvF,YACC,OACA,KACQ,SACA,SACR,UACC;AACD,UAAM;AAJE;AACA;AAIR,SAAK,SAAS,EAAE,KAAK,OAAO,SAAS;AAAA,EACtC;AAAA,EAbA,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8CR,MAAM,OAAqE;AAC1E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAMA,WACI,SAG6C;AAChD,QAAI,OAAO,QAAQ,CAAC,MAAM,YAAY;AACrC,YAAM,UAAU,QAAQ,CAAC;AAAA,QACxB,IAAI;AAAA,UACH,KAAK,OAAO,MAAM,mBAAM,OAAO,OAAO;AAAA,UACtC,IAAI,6CAAsB,EAAE,oBAAoB,SAAS,aAAa,MAAM,CAAC;AAAA,QAC9E;AAAA,MACD;AAEA,YAAM,eAAe,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAChE,WAAK,OAAO,UAAU;AAAA,IACvB,OAAO;AACN,YAAM,eAAe;AACrB,WAAK,OAAO,UAAU;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,OAA0E;AAC/E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA,EAEA,UAAoC;AACnC,WAAO,KAAK,QAAQ;AAAA,MACnB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,KAAK,OAAO;AAAA,IACb;AAAA,EACD;AAAA,EAES,UAAkD,CAAC,sBAAsB;AACjF,WAAO,KAAK,QAAQ,EAAE,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EAEQ,iBAAiB,MAA+C;AACvE,UAAM,OAAO;AACb,WAAO,iBAAgB,mBAAmB;AACzC,aAAO,KAAK,QAAQ,EAAE,SAAS,iBAAiB;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,eAAe;AAAA,EAE/B,WAAqC;AACpC,WAAO;AAAA,EACR;AACD;","names":[]}
|
|
@@ -19,7 +19,7 @@ export interface MySqlUpdateConfig {
|
|
|
19
19
|
withList?: Subquery[];
|
|
20
20
|
}
|
|
21
21
|
export type MySqlUpdateSetSource<TTable extends MySqlTable> = {
|
|
22
|
-
[Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL;
|
|
22
|
+
[Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL | undefined;
|
|
23
23
|
} & {};
|
|
24
24
|
export declare class MySqlUpdateBuilder<TTable extends MySqlTable, TQueryResult extends MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
|
|
25
25
|
private table;
|
|
@@ -19,7 +19,7 @@ export interface MySqlUpdateConfig {
|
|
|
19
19
|
withList?: Subquery[];
|
|
20
20
|
}
|
|
21
21
|
export type MySqlUpdateSetSource<TTable extends MySqlTable> = {
|
|
22
|
-
[Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL;
|
|
22
|
+
[Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL | undefined;
|
|
23
23
|
} & {};
|
|
24
24
|
export declare class MySqlUpdateBuilder<TTable extends MySqlTable, TQueryResult extends MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
|
|
25
25
|
private table;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mysql-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { mapUpdateSet, type UpdateSet, type ValueOrArray } from '~/utils.ts';\nimport type { MySqlColumn } from '../columns/common.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface MySqlUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: MySqlTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type MySqlUpdateSetSource<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL;\n\t}\n\t& {};\n\nexport class MySqlUpdateBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(values: MySqlUpdateSetSource<TTable>): MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\treturn new MySqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect, this.withList);\n\t}\n}\n\nexport type MySqlUpdateWithout<\n\tT extends AnyMySqlUpdateBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tMySqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type MySqlUpdatePrepare<T extends AnyMySqlUpdateBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: MySqlQueryResultKind<T['_']['queryResult'], never>;\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlUpdateDynamic<T extends AnyMySqlUpdateBase> = MySqlUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT']\n>;\n\nexport type MySqlUpdate<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n> = MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;\n\nexport type AnyMySqlUpdateBase = MySqlUpdateBase<any, any, any, any, any>;\n\nexport interface MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>>, SQLWrapper {\n\treadonly _: {\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t};\n}\n\nexport class MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> implements SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'MySqlUpdate';\n\n\tprivate config: MySqlUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MySqlUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>,\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (MySqlColumn | SQL | SQL.Aliased)[]): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>]\n\t\t\t| (MySqlColumn | SQL | SQL.Aliased)[]\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (MySqlColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): MySqlUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): MySqlUpdatePrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t) as MySqlUpdatePrepare<this>;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this.prepare().execute(placeholderValues);\n\t};\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): MySqlUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAY3B,SAAS,oBAAoB;AAC7B,SAAS,6BAA6B;AAGtC,SAAS,aAAa;AACtB,SAAS,oBAAuD;
|
|
1
|
+
{"version":3,"sources":["../../../src/mysql-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type {\n\tAnyMySqlQueryResultHKT,\n\tMySqlPreparedQueryConfig,\n\tMySqlQueryResultHKT,\n\tMySqlQueryResultKind,\n\tMySqlSession,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n} from '~/mysql-core/session.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { Placeholder, Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { mapUpdateSet, type UpdateSet, type ValueOrArray } from '~/utils.ts';\nimport type { MySqlColumn } from '../columns/common.ts';\nimport type { SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface MySqlUpdateConfig {\n\twhere?: SQL | undefined;\n\tlimit?: number | Placeholder;\n\torderBy?: (MySqlColumn | SQL | SQL.Aliased)[];\n\tset: UpdateSet;\n\ttable: MySqlTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type MySqlUpdateSetSource<TTable extends MySqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL\n\t\t\t| undefined;\n\t}\n\t& {};\n\nexport class MySqlUpdateBuilder<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MySqlUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(values: MySqlUpdateSetSource<TTable>): MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\treturn new MySqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect, this.withList);\n\t}\n}\n\nexport type MySqlUpdateWithout<\n\tT extends AnyMySqlUpdateBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tMySqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type MySqlUpdatePrepare<T extends AnyMySqlUpdateBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tMySqlPreparedQueryConfig & {\n\t\texecute: MySqlQueryResultKind<T['_']['queryResult'], never>;\n\t\titerator: never;\n\t},\n\ttrue\n>;\n\nexport type MySqlUpdateDynamic<T extends AnyMySqlUpdateBase> = MySqlUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT']\n>;\n\nexport type MySqlUpdate<\n\tTTable extends MySqlTable = MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT = AnyMySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n> = MySqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, true, never>;\n\nexport type AnyMySqlUpdateBase = MySqlUpdateBase<any, any, any, any, any>;\n\nexport interface MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>>, SQLWrapper {\n\treadonly _: {\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t};\n}\n\nexport class MySqlUpdateBase<\n\tTTable extends MySqlTable,\n\tTQueryResult extends MySqlQueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<MySqlQueryResultKind<TQueryResult, never>> implements SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'MySqlUpdate';\n\n\tprivate config: MySqlUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: MySqlSession,\n\t\tprivate dialect: MySqlDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MySqlUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\torderBy(\n\t\tbuilder: (updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>,\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(...columns: (MySqlColumn | SQL | SQL.Aliased)[]): MySqlUpdateWithout<this, TDynamic, 'orderBy'>;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(updateTable: TTable) => ValueOrArray<MySqlColumn | SQL | SQL.Aliased>]\n\t\t\t| (MySqlColumn | SQL | SQL.Aliased)[]\n\t): MySqlUpdateWithout<this, TDynamic, 'orderBy'> {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.table[Table.Symbol.Columns],\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as any,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t} else {\n\t\t\tconst orderByArray = columns as (MySqlColumn | SQL | SQL.Aliased)[];\n\t\t\tthis.config.orderBy = orderByArray;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\tlimit(limit: number | Placeholder): MySqlUpdateWithout<this, TDynamic, 'limit'> {\n\t\tthis.config.limit = limit;\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): MySqlUpdatePrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t) as MySqlUpdatePrepare<this>;\n\t}\n\n\toverride execute: ReturnType<this['prepare']>['execute'] = (placeholderValues) => {\n\t\treturn this.prepare().execute(placeholderValues);\n\t};\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): MySqlUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAY3B,SAAS,oBAAoB;AAC7B,SAAS,6BAA6B;AAGtC,SAAS,aAAa;AACtB,SAAS,oBAAuD;AAuBzD,MAAM,mBAIX;AAAA,EAOD,YACS,OACA,SACA,SACA,UACP;AAJO;AACA;AACA;AACA;AAAA,EACN;AAAA,EAXH,QAAiB,UAAU,IAAY;AAAA,EAavC,IAAI,QAAgG;AACnG,WAAO,IAAI,gBAAgB,KAAK,OAAO,aAAa,KAAK,OAAO,MAAM,GAAG,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ;AAAA,EACnH;AACD;AAwDO,MAAM,wBASH,aAA8E;AAAA,EAKvF,YACC,OACA,KACQ,SACA,SACR,UACC;AACD,UAAM;AAJE;AACA;AAIR,SAAK,SAAS,EAAE,KAAK,OAAO,SAAS;AAAA,EACtC;AAAA,EAbA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8CR,MAAM,OAAqE;AAC1E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAMA,WACI,SAG6C;AAChD,QAAI,OAAO,QAAQ,CAAC,MAAM,YAAY;AACrC,YAAM,UAAU,QAAQ,CAAC;AAAA,QACxB,IAAI;AAAA,UACH,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO;AAAA,UACtC,IAAI,sBAAsB,EAAE,oBAAoB,SAAS,aAAa,MAAM,CAAC;AAAA,QAC9E;AAAA,MACD;AAEA,YAAM,eAAe,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,OAAO;AAChE,WAAK,OAAO,UAAU;AAAA,IACvB,OAAO;AACN,YAAM,eAAe;AACrB,WAAK,OAAO,UAAU;AAAA,IACvB;AACA,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,OAA0E;AAC/E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA,EAEA,UAAoC;AACnC,WAAO,KAAK,QAAQ;AAAA,MACnB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,KAAK,OAAO;AAAA,IACb;AAAA,EACD;AAAA,EAES,UAAkD,CAAC,sBAAsB;AACjF,WAAO,KAAK,QAAQ,EAAE,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EAEQ,iBAAiB,MAA+C;AACvE,UAAM,OAAO;AACb,WAAO,iBAAgB,mBAAmB;AACzC,aAAO,KAAK,QAAQ,EAAE,SAAS,iBAAiB;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,eAAe;AAAA,EAE/B,WAAqC;AACpC,WAAO;AAAA,EACR;AACD;","names":[]}
|
package/mysql-core/table.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mysql-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getMySqlColumnBuilders, type MySqlColumnBuilders } from './columns/all.ts';\nimport type { MySqlColumn, MySqlColumnBuilder, MySqlColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../../src/mysql-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getMySqlColumnBuilders, type MySqlColumnBuilders } from './columns/all.ts';\nimport type { MySqlColumn, MySqlColumnBuilder, MySqlColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type MySqlTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder;\n\nexport type MySqlTableExtraConfig = Record<\n\tstring,\n\tMySqlTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<MySqlColumn>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:MySqlInlineForeignKeys');\n\nexport class MySqlTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlTable';\n\n\tdeclare protected $columns: T['columns'];\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable<T['columns']>;\n\n\t/** @internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record<string, MySqlColumn>) => MySqlTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnyMySqlTable<TPartial extends Partial<TableConfig> = {}> = MySqlTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type MySqlTableWithColumns<T extends TableConfig> =\n\t& MySqlTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport function mysqlTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: MySqlColumnBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'mysql'>,\n\t\t) => MySqlTableExtraConfig | MySqlTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): MySqlTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\tdialect: 'mysql';\n}> {\n\tconst rawTable = new MySqlTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getMySqlColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as MySqlColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumns as unknown as BuildExtraConfigColumns<\n\t\tTTableName,\n\t\tTColumnsMap,\n\t\t'mysql'\n\t>;\n\n\tif (extraConfig) {\n\t\ttable[MySqlTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (\n\t\t\tself: Record<string, MySqlColumn>,\n\t\t) => MySqlTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport interface MySqlTableFn<TSchemaName extends string | undefined = undefined> {\n\t/**\n\t * @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig,\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: MySqlColumnBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig,\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'mysql'>,\n\t\t) => MySqlTableExtraConfigValue[],\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: MySqlColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfigValue[],\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n}\n\nexport const mysqlTable: MySqlTableFn = (name, columns, extraConfig) => {\n\treturn mysqlTableWithSchema(name, columns, extraConfig, undefined, name);\n};\n\nexport function mysqlTableCreator(customizeTableName: (name: string) => string): MySqlTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn mysqlTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,mBAAmF;AAEnF,iBAAiE;AAsB1D,MAAM,oBAAoB,OAAO,IAAI,gCAAgC;AAErE,MAAM,mBAAwD,mBAAS;AAAA,EAC7E,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAKhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,mBAAM,QAAQ;AAAA,IACjE;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAU,mBAAM,OAAO,OAAO;AAAA;AAAA,EAG9B,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAU,mBAAM,OAAO,kBAAkB,IAE1B;AAChB;AAYO,SAAS,qBAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,WAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,YAAQ,mCAAuB,CAAC,IAAI;AAEvG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,mBAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,mBAAM,OAAO,kBAAkB,IAAI;AAMzC,MAAI,aAAa;AAChB,UAAM,WAAW,OAAO,kBAAkB,IAAI;AAAA,EAG/C;AAEA,SAAO;AACR;AA0GO,MAAM,aAA2B,CAAC,MAAM,SAAS,gBAAgB;AACvE,SAAO,qBAAqB,MAAM,SAAS,aAAa,QAAW,IAAI;AACxE;AAEO,SAAS,kBAAkB,oBAA4D;AAC7F,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,qBAAqB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EAC3G;AACD;","names":["name"]}
|
package/mysql-core/table.d.cts
CHANGED
|
@@ -8,7 +8,8 @@ import type { ForeignKeyBuilder } from "./foreign-keys.cjs";
|
|
|
8
8
|
import type { AnyIndexBuilder } from "./indexes.cjs";
|
|
9
9
|
import type { PrimaryKeyBuilder } from "./primary-keys.cjs";
|
|
10
10
|
import type { UniqueConstraintBuilder } from "./unique-constraint.cjs";
|
|
11
|
-
export type
|
|
11
|
+
export type MySqlTableExtraConfigValue = AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder;
|
|
12
|
+
export type MySqlTableExtraConfig = Record<string, MySqlTableExtraConfigValue>;
|
|
12
13
|
export type TableConfig = TableConfigBase<MySqlColumn>;
|
|
13
14
|
export declare class MySqlTable<T extends TableConfig = TableConfig> extends Table<T> {
|
|
14
15
|
static readonly [entityKind]: string;
|
|
@@ -18,20 +19,76 @@ export type AnyMySqlTable<TPartial extends Partial<TableConfig> = {}> = MySqlTab
|
|
|
18
19
|
export type MySqlTableWithColumns<T extends TableConfig> = MySqlTable<T> & {
|
|
19
20
|
[Key in keyof T['columns']]: T['columns'][Key];
|
|
20
21
|
};
|
|
21
|
-
export declare function mysqlTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: MySqlColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig) | undefined, schema: TSchemaName, baseName?: TTableName): MySqlTableWithColumns<{
|
|
22
|
+
export declare function mysqlTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: MySqlColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig | MySqlTableExtraConfigValue[]) | undefined, schema: TSchemaName, baseName?: TTableName): MySqlTableWithColumns<{
|
|
22
23
|
name: TTableName;
|
|
23
24
|
schema: TSchemaName;
|
|
24
25
|
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
25
26
|
dialect: 'mysql';
|
|
26
27
|
}>;
|
|
27
28
|
export interface MySqlTableFn<TSchemaName extends string | undefined = undefined> {
|
|
28
|
-
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* Deprecated version:
|
|
34
|
+
* ```ts
|
|
35
|
+
* export const users = mysqlTable("users", {
|
|
36
|
+
* id: int(),
|
|
37
|
+
* }, (t) => ({
|
|
38
|
+
* idx: index('custom_name').on(t.id)
|
|
39
|
+
* }));
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* New API:
|
|
43
|
+
* ```ts
|
|
44
|
+
* export const users = mysqlTable("users", {
|
|
45
|
+
* id: int(),
|
|
46
|
+
* }, (t) => [
|
|
47
|
+
* index('custom_name').on(t.id)
|
|
48
|
+
* ]);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig): MySqlTableWithColumns<{
|
|
29
52
|
name: TTableName;
|
|
30
53
|
schema: TSchemaName;
|
|
31
54
|
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
32
55
|
dialect: 'mysql';
|
|
33
56
|
}>;
|
|
34
|
-
|
|
57
|
+
/**
|
|
58
|
+
* @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* Deprecated version:
|
|
62
|
+
* ```ts
|
|
63
|
+
* export const users = mysqlTable("users", {
|
|
64
|
+
* id: int(),
|
|
65
|
+
* }, (t) => ({
|
|
66
|
+
* idx: index('custom_name').on(t.id)
|
|
67
|
+
* }));
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* New API:
|
|
71
|
+
* ```ts
|
|
72
|
+
* export const users = mysqlTable("users", {
|
|
73
|
+
* id: int(),
|
|
74
|
+
* }, (t) => [
|
|
75
|
+
* index('custom_name').on(t.id)
|
|
76
|
+
* ]);
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: (columnTypes: MySqlColumnBuilders) => TColumnsMap, extraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig): MySqlTableWithColumns<{
|
|
80
|
+
name: TTableName;
|
|
81
|
+
schema: TSchemaName;
|
|
82
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
83
|
+
dialect: 'mysql';
|
|
84
|
+
}>;
|
|
85
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfigValue[]): MySqlTableWithColumns<{
|
|
86
|
+
name: TTableName;
|
|
87
|
+
schema: TSchemaName;
|
|
88
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
89
|
+
dialect: 'mysql';
|
|
90
|
+
}>;
|
|
91
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: (columnTypes: MySqlColumnBuilders) => TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfigValue[]): MySqlTableWithColumns<{
|
|
35
92
|
name: TTableName;
|
|
36
93
|
schema: TSchemaName;
|
|
37
94
|
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
package/mysql-core/table.d.ts
CHANGED
|
@@ -8,7 +8,8 @@ import type { ForeignKeyBuilder } from "./foreign-keys.js";
|
|
|
8
8
|
import type { AnyIndexBuilder } from "./indexes.js";
|
|
9
9
|
import type { PrimaryKeyBuilder } from "./primary-keys.js";
|
|
10
10
|
import type { UniqueConstraintBuilder } from "./unique-constraint.js";
|
|
11
|
-
export type
|
|
11
|
+
export type MySqlTableExtraConfigValue = AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder;
|
|
12
|
+
export type MySqlTableExtraConfig = Record<string, MySqlTableExtraConfigValue>;
|
|
12
13
|
export type TableConfig = TableConfigBase<MySqlColumn>;
|
|
13
14
|
export declare class MySqlTable<T extends TableConfig = TableConfig> extends Table<T> {
|
|
14
15
|
static readonly [entityKind]: string;
|
|
@@ -18,20 +19,76 @@ export type AnyMySqlTable<TPartial extends Partial<TableConfig> = {}> = MySqlTab
|
|
|
18
19
|
export type MySqlTableWithColumns<T extends TableConfig> = MySqlTable<T> & {
|
|
19
20
|
[Key in keyof T['columns']]: T['columns'][Key];
|
|
20
21
|
};
|
|
21
|
-
export declare function mysqlTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: MySqlColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig) | undefined, schema: TSchemaName, baseName?: TTableName): MySqlTableWithColumns<{
|
|
22
|
+
export declare function mysqlTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap | ((columnTypes: MySqlColumnBuilders) => TColumnsMap), extraConfig: ((self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig | MySqlTableExtraConfigValue[]) | undefined, schema: TSchemaName, baseName?: TTableName): MySqlTableWithColumns<{
|
|
22
23
|
name: TTableName;
|
|
23
24
|
schema: TSchemaName;
|
|
24
25
|
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
25
26
|
dialect: 'mysql';
|
|
26
27
|
}>;
|
|
27
28
|
export interface MySqlTableFn<TSchemaName extends string | undefined = undefined> {
|
|
28
|
-
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* Deprecated version:
|
|
34
|
+
* ```ts
|
|
35
|
+
* export const users = mysqlTable("users", {
|
|
36
|
+
* id: int(),
|
|
37
|
+
* }, (t) => ({
|
|
38
|
+
* idx: index('custom_name').on(t.id)
|
|
39
|
+
* }));
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* New API:
|
|
43
|
+
* ```ts
|
|
44
|
+
* export const users = mysqlTable("users", {
|
|
45
|
+
* id: int(),
|
|
46
|
+
* }, (t) => [
|
|
47
|
+
* index('custom_name').on(t.id)
|
|
48
|
+
* ]);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig): MySqlTableWithColumns<{
|
|
29
52
|
name: TTableName;
|
|
30
53
|
schema: TSchemaName;
|
|
31
54
|
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
32
55
|
dialect: 'mysql';
|
|
33
56
|
}>;
|
|
34
|
-
|
|
57
|
+
/**
|
|
58
|
+
* @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* Deprecated version:
|
|
62
|
+
* ```ts
|
|
63
|
+
* export const users = mysqlTable("users", {
|
|
64
|
+
* id: int(),
|
|
65
|
+
* }, (t) => ({
|
|
66
|
+
* idx: index('custom_name').on(t.id)
|
|
67
|
+
* }));
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* New API:
|
|
71
|
+
* ```ts
|
|
72
|
+
* export const users = mysqlTable("users", {
|
|
73
|
+
* id: int(),
|
|
74
|
+
* }, (t) => [
|
|
75
|
+
* index('custom_name').on(t.id)
|
|
76
|
+
* ]);
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: (columnTypes: MySqlColumnBuilders) => TColumnsMap, extraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig): MySqlTableWithColumns<{
|
|
80
|
+
name: TTableName;
|
|
81
|
+
schema: TSchemaName;
|
|
82
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
83
|
+
dialect: 'mysql';
|
|
84
|
+
}>;
|
|
85
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfigValue[]): MySqlTableWithColumns<{
|
|
86
|
+
name: TTableName;
|
|
87
|
+
schema: TSchemaName;
|
|
88
|
+
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
|
89
|
+
dialect: 'mysql';
|
|
90
|
+
}>;
|
|
91
|
+
<TTableName extends string, TColumnsMap extends Record<string, MySqlColumnBuilderBase>>(name: TTableName, columns: (columnTypes: MySqlColumnBuilders) => TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfigValue[]): MySqlTableWithColumns<{
|
|
35
92
|
name: TTableName;
|
|
36
93
|
schema: TSchemaName;
|
|
37
94
|
columns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;
|
package/mysql-core/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mysql-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getMySqlColumnBuilders, type MySqlColumnBuilders } from './columns/all.ts';\nimport type { MySqlColumn, MySqlColumnBuilder, MySqlColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../../src/mysql-core/table.ts"],"sourcesContent":["import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport { getMySqlColumnBuilders, type MySqlColumnBuilders } from './columns/all.ts';\nimport type { MySqlColumn, MySqlColumnBuilder, MySqlColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type MySqlTableExtraConfigValue =\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder;\n\nexport type MySqlTableExtraConfig = Record<\n\tstring,\n\tMySqlTableExtraConfigValue\n>;\n\nexport type TableConfig = TableConfigBase<MySqlColumn>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:MySqlInlineForeignKeys');\n\nexport class MySqlTable<T extends TableConfig = TableConfig> extends Table<T> {\n\tstatic override readonly [entityKind]: string = 'MySqlTable';\n\n\tdeclare protected $columns: T['columns'];\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable<T['columns']>;\n\n\t/** @internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record<string, MySqlColumn>) => MySqlTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnyMySqlTable<TPartial extends Partial<TableConfig> = {}> = MySqlTable<\n\tUpdateTableConfig<TableConfig, TPartial>\n>;\n\nexport type MySqlTableWithColumns<T extends TableConfig> =\n\t& MySqlTable<T>\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport function mysqlTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap | ((columnTypes: MySqlColumnBuilders) => TColumnsMap),\n\textraConfig:\n\t\t| ((\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'mysql'>,\n\t\t) => MySqlTableExtraConfig | MySqlTableExtraConfigValue[])\n\t\t| undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): MySqlTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\tdialect: 'mysql';\n}> {\n\tconst rawTable = new MySqlTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>(name, schema, baseName);\n\n\tconst parsedColumns: TColumnsMap = typeof columns === 'function' ? columns(getMySqlColumnBuilders()) : columns;\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(parsedColumns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as MySqlColumnBuilder;\n\t\t\tcolBuilder.setName(name);\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\ttable[Table.Symbol.ExtraConfigColumns] = builtColumns as unknown as BuildExtraConfigColumns<\n\t\tTTableName,\n\t\tTColumnsMap,\n\t\t'mysql'\n\t>;\n\n\tif (extraConfig) {\n\t\ttable[MySqlTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (\n\t\t\tself: Record<string, MySqlColumn>,\n\t\t) => MySqlTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport interface MySqlTableFn<TSchemaName extends string | undefined = undefined> {\n\t/**\n\t * @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig,\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n\n\t/**\n\t * @deprecated The third parameter of mysqlTable is changing and will only accept an array instead of an object\n\t *\n\t * @example\n\t * Deprecated version:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => ({\n\t * \tidx: index('custom_name').on(t.id)\n\t * }));\n\t * ```\n\t *\n\t * New API:\n\t * ```ts\n\t * export const users = mysqlTable(\"users\", {\n\t * \tid: int(),\n\t * }, (t) => [\n\t * \tindex('custom_name').on(t.id)\n\t * ]);\n\t * ```\n\t */\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: MySqlColumnBuilders) => TColumnsMap,\n\t\textraConfig: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfig,\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (\n\t\t\tself: BuildColumns<TTableName, TColumnsMap, 'mysql'>,\n\t\t) => MySqlTableExtraConfigValue[],\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record<string, MySqlColumnBuilderBase>,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: (columnTypes: MySqlColumnBuilders) => TColumnsMap,\n\t\textraConfig?: (self: BuildColumns<TTableName, TColumnsMap, 'mysql'>) => MySqlTableExtraConfigValue[],\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns<TTableName, TColumnsMap, 'mysql'>;\n\t\tdialect: 'mysql';\n\t}>;\n}\n\nexport const mysqlTable: MySqlTableFn = (name, columns, extraConfig) => {\n\treturn mysqlTableWithSchema(name, columns, extraConfig, undefined, name);\n};\n\nexport function mysqlTableCreator(customizeTableName: (name: string) => string): MySqlTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn mysqlTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAC3B,SAAS,aAA0E;AAEnF,SAAS,8BAAwD;AAsB1D,MAAM,oBAAoB,OAAO,IAAI,gCAAgC;AAErE,MAAM,mBAAwD,MAAS;AAAA,EAC7E,QAA0B,UAAU,IAAY;AAAA;AAAA,EAKhD,OAAyB,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,QAAQ;AAAA,IACjE;AAAA,EACD,CAAC;AAAA;AAAA,EAGD,CAAU,MAAM,OAAO,OAAO;AAAA;AAAA,EAG9B,CAAC,iBAAiB,IAAkB,CAAC;AAAA;AAAA,EAGrC,CAAU,MAAM,OAAO,kBAAkB,IAE1B;AAChB;AAYO,SAAS,qBAKf,MACA,SACA,aAKA,QACA,WAAW,MAMT;AACF,QAAM,WAAW,IAAI,WAKlB,MAAM,QAAQ,QAAQ;AAEzB,QAAM,gBAA6B,OAAO,YAAY,aAAa,QAAQ,uBAAuB,CAAC,IAAI;AAEvG,QAAM,eAAe,OAAO;AAAA,IAC3B,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC,CAACA,OAAM,cAAc,MAAM;AAC7D,YAAM,aAAa;AACnB,iBAAW,QAAQA,KAAI;AACvB,YAAM,SAAS,WAAW,MAAM,QAAQ;AACxC,eAAS,iBAAiB,EAAE,KAAK,GAAG,WAAW,iBAAiB,QAAQ,QAAQ,CAAC;AACjF,aAAO,CAACA,OAAM,MAAM;AAAA,IACrB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO,OAAO,UAAU,YAAY;AAElD,QAAM,MAAM,OAAO,OAAO,IAAI;AAC9B,QAAM,MAAM,OAAO,kBAAkB,IAAI;AAMzC,MAAI,aAAa;AAChB,UAAM,WAAW,OAAO,kBAAkB,IAAI;AAAA,EAG/C;AAEA,SAAO;AACR;AA0GO,MAAM,aAA2B,CAAC,MAAM,SAAS,gBAAgB;AACvE,SAAO,qBAAqB,MAAM,SAAS,aAAa,QAAW,IAAI;AACxE;AAEO,SAAS,kBAAkB,oBAA4D;AAC7F,SAAO,CAAC,MAAM,SAAS,gBAAgB;AACtC,WAAO,qBAAqB,mBAAmB,IAAI,GAAkB,SAAS,aAAa,QAAW,IAAI;AAAA,EAC3G;AACD;","names":["name"]}
|
package/mysql-core/utils.cjs
CHANGED
|
@@ -18,8 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var utils_exports = {};
|
|
20
20
|
__export(utils_exports, {
|
|
21
|
+
convertIndexToString: () => convertIndexToString,
|
|
21
22
|
getTableConfig: () => getTableConfig,
|
|
22
|
-
getViewConfig: () => getViewConfig
|
|
23
|
+
getViewConfig: () => getViewConfig,
|
|
24
|
+
toArray: () => toArray
|
|
23
25
|
});
|
|
24
26
|
module.exports = __toCommonJS(utils_exports);
|
|
25
27
|
var import_entity = require("../entity.cjs");
|
|
@@ -45,7 +47,8 @@ function getTableConfig(table) {
|
|
|
45
47
|
const extraConfigBuilder = table[import_table2.MySqlTable.Symbol.ExtraConfigBuilder];
|
|
46
48
|
if (extraConfigBuilder !== void 0) {
|
|
47
49
|
const extraConfig = extraConfigBuilder(table[import_table2.MySqlTable.Symbol.Columns]);
|
|
48
|
-
|
|
50
|
+
const extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);
|
|
51
|
+
for (const builder of Object.values(extraValues)) {
|
|
49
52
|
if ((0, import_entity.is)(builder, import_indexes.IndexBuilder)) {
|
|
50
53
|
indexes.push(builder.build(table));
|
|
51
54
|
} else if ((0, import_entity.is)(builder, import_checks.CheckBuilder)) {
|
|
@@ -77,9 +80,19 @@ function getViewConfig(view) {
|
|
|
77
80
|
...view[import_view_common2.MySqlViewConfig]
|
|
78
81
|
};
|
|
79
82
|
}
|
|
83
|
+
function convertIndexToString(indexes) {
|
|
84
|
+
return indexes.map((idx) => {
|
|
85
|
+
return typeof idx === "object" ? idx.config.name : idx;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function toArray(value) {
|
|
89
|
+
return Array.isArray(value) ? value : [value];
|
|
90
|
+
}
|
|
80
91
|
// Annotate the CommonJS export names for ESM import in node:
|
|
81
92
|
0 && (module.exports = {
|
|
93
|
+
convertIndexToString,
|
|
82
94
|
getTableConfig,
|
|
83
|
-
getViewConfig
|
|
95
|
+
getViewConfig,
|
|
96
|
+
toArray
|
|
84
97
|
});
|
|
85
98
|
//# sourceMappingURL=utils.cjs.map
|
package/mysql-core/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mysql-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { Check } from './checks.ts';\nimport { CheckBuilder } from './checks.ts';\nimport type { ForeignKey } from './foreign-keys.ts';\nimport { ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { MySqlTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { MySqlViewConfig } from './view-common.ts';\nimport type { MySqlView } from './view.ts';\n\nexport function getTableConfig(table: MySqlTable) {\n\tconst columns = Object.values(table[MySqlTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[MySqlTable.Symbol.InlineForeignKeys]);\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[MySqlTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[MySqlTable.Symbol.Columns]);\n\t\tfor (const builder of Object.values(
|
|
1
|
+
{"version":3,"sources":["../../src/mysql-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { Check } from './checks.ts';\nimport { CheckBuilder } from './checks.ts';\nimport type { ForeignKey } from './foreign-keys.ts';\nimport { ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { IndexForHint } from './query-builders/select.ts';\nimport { MySqlTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { MySqlViewConfig } from './view-common.ts';\nimport type { MySqlView } from './view.ts';\n\nexport function getTableConfig(table: MySqlTable) {\n\tconst columns = Object.values(table[MySqlTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[MySqlTable.Symbol.InlineForeignKeys]);\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[MySqlTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[MySqlTable.Symbol.Columns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of Object.values(extraValues)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tbaseName,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: MySqlView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[MySqlViewConfig],\n\t};\n}\n\nexport function convertIndexToString(indexes: IndexForHint[]) {\n\treturn indexes.map((idx) => {\n\t\treturn typeof idx === 'object' ? idx.config.name : idx;\n\t});\n}\n\nexport function toArray<T>(value: T | T[]): T[] {\n\treturn Array.isArray(value) ? value : [value];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,mBAAsB;AACtB,yBAA+B;AAE/B,oBAA6B;AAE7B,0BAAkC;AAElC,qBAA6B;AAE7B,0BAAkC;AAElC,IAAAA,gBAA2B;AAC3B,+BAA+D;AAC/D,IAAAC,sBAAgC;AAGzB,SAAS,eAAe,OAAmB;AACjD,QAAM,UAAU,OAAO,OAAO,MAAM,yBAAW,OAAO,OAAO,CAAC;AAC9D,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,oBAAwC,CAAC;AAC/C,QAAM,cAA4B,OAAO,OAAO,MAAM,yBAAW,OAAO,iBAAiB,CAAC;AAC1F,QAAM,OAAO,MAAM,mBAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,mBAAM,OAAO,MAAM;AACxC,QAAM,WAAW,MAAM,mBAAM,OAAO,QAAQ;AAE5C,QAAM,qBAAqB,MAAM,yBAAW,OAAO,kBAAkB;AAErE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,yBAAW,OAAO,OAAO,CAAC;AACvE,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,cAAI,kBAAG,SAAS,2BAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,eAAW,kBAAG,SAAS,0BAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,eAAW,kBAAG,SAAS,gDAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,eAAW,kBAAG,SAAS,qCAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAmC;AACpC,SAAO;AAAA,IACN,GAAG,KAAK,iCAAc;AAAA,IACtB,GAAG,KAAK,mCAAe;AAAA,EACxB;AACD;AAEO,SAAS,qBAAqB,SAAyB;AAC7D,SAAO,QAAQ,IAAI,CAAC,QAAQ;AAC3B,WAAO,OAAO,QAAQ,WAAW,IAAI,OAAO,OAAO;AAAA,EACpD,CAAC;AACF;AAEO,SAAS,QAAW,OAAqB;AAC/C,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC7C;","names":["import_table","import_view_common"]}
|
package/mysql-core/utils.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Table } from "../table.cjs";
|
|
2
1
|
import type { Check } from "./checks.cjs";
|
|
3
2
|
import type { ForeignKey } from "./foreign-keys.cjs";
|
|
4
3
|
import type { Index } from "./indexes.cjs";
|
|
5
4
|
import type { PrimaryKey } from "./primary-keys.cjs";
|
|
5
|
+
import type { IndexForHint } from "./query-builders/select.cjs";
|
|
6
6
|
import { MySqlTable } from "./table.cjs";
|
|
7
7
|
import { type UniqueConstraint } from "./unique-constraint.cjs";
|
|
8
8
|
import type { MySqlView } from "./view.cjs";
|
|
9
9
|
export declare function getTableConfig(table: MySqlTable): {
|
|
10
|
-
columns: import("./index.ts").MySqlColumn<import("../column.ts").ColumnBaseConfig<import("../column-builder.ts").ColumnDataType, string>,
|
|
10
|
+
columns: import("./index.ts").MySqlColumn<import("../column.ts").ColumnBaseConfig<import("../column-builder.ts").ColumnDataType, string>, {}, {}>[];
|
|
11
11
|
indexes: Index[];
|
|
12
12
|
foreignKeys: ForeignKey[];
|
|
13
13
|
checks: Check[];
|
|
@@ -24,8 +24,10 @@ export declare function getViewConfig<TName extends string = string, TExisting e
|
|
|
24
24
|
name: TName;
|
|
25
25
|
originalName: TName;
|
|
26
26
|
schema: string | undefined;
|
|
27
|
-
selectedFields: import("../
|
|
27
|
+
selectedFields: import("../index.ts").ColumnsSelection;
|
|
28
28
|
isExisting: TExisting;
|
|
29
29
|
query: TExisting extends true ? undefined : import("../index.ts").SQL<unknown>;
|
|
30
30
|
isAlias: boolean;
|
|
31
31
|
};
|
|
32
|
+
export declare function convertIndexToString(indexes: IndexForHint[]): string[];
|
|
33
|
+
export declare function toArray<T>(value: T | T[]): T[];
|
package/mysql-core/utils.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Table } from "../table.js";
|
|
2
1
|
import type { Check } from "./checks.js";
|
|
3
2
|
import type { ForeignKey } from "./foreign-keys.js";
|
|
4
3
|
import type { Index } from "./indexes.js";
|
|
5
4
|
import type { PrimaryKey } from "./primary-keys.js";
|
|
5
|
+
import type { IndexForHint } from "./query-builders/select.js";
|
|
6
6
|
import { MySqlTable } from "./table.js";
|
|
7
7
|
import { type UniqueConstraint } from "./unique-constraint.js";
|
|
8
8
|
import type { MySqlView } from "./view.js";
|
|
9
9
|
export declare function getTableConfig(table: MySqlTable): {
|
|
10
|
-
columns: import("./index.js").MySqlColumn<import("../column.js").ColumnBaseConfig<import("../column-builder.js").ColumnDataType, string>,
|
|
10
|
+
columns: import("./index.js").MySqlColumn<import("../column.js").ColumnBaseConfig<import("../column-builder.js").ColumnDataType, string>, {}, {}>[];
|
|
11
11
|
indexes: Index[];
|
|
12
12
|
foreignKeys: ForeignKey[];
|
|
13
13
|
checks: Check[];
|
|
@@ -24,8 +24,10 @@ export declare function getViewConfig<TName extends string = string, TExisting e
|
|
|
24
24
|
name: TName;
|
|
25
25
|
originalName: TName;
|
|
26
26
|
schema: string | undefined;
|
|
27
|
-
selectedFields: import("../
|
|
27
|
+
selectedFields: import("../index.js").ColumnsSelection;
|
|
28
28
|
isExisting: TExisting;
|
|
29
29
|
query: TExisting extends true ? undefined : import("../index.js").SQL<unknown>;
|
|
30
30
|
isAlias: boolean;
|
|
31
31
|
};
|
|
32
|
+
export declare function convertIndexToString(indexes: IndexForHint[]): string[];
|
|
33
|
+
export declare function toArray<T>(value: T | T[]): T[];
|
package/mysql-core/utils.js
CHANGED
|
@@ -21,7 +21,8 @@ function getTableConfig(table) {
|
|
|
21
21
|
const extraConfigBuilder = table[MySqlTable.Symbol.ExtraConfigBuilder];
|
|
22
22
|
if (extraConfigBuilder !== void 0) {
|
|
23
23
|
const extraConfig = extraConfigBuilder(table[MySqlTable.Symbol.Columns]);
|
|
24
|
-
|
|
24
|
+
const extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) : Object.values(extraConfig);
|
|
25
|
+
for (const builder of Object.values(extraValues)) {
|
|
25
26
|
if (is(builder, IndexBuilder)) {
|
|
26
27
|
indexes.push(builder.build(table));
|
|
27
28
|
} else if (is(builder, CheckBuilder)) {
|
|
@@ -53,8 +54,18 @@ function getViewConfig(view) {
|
|
|
53
54
|
...view[MySqlViewConfig]
|
|
54
55
|
};
|
|
55
56
|
}
|
|
57
|
+
function convertIndexToString(indexes) {
|
|
58
|
+
return indexes.map((idx) => {
|
|
59
|
+
return typeof idx === "object" ? idx.config.name : idx;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function toArray(value) {
|
|
63
|
+
return Array.isArray(value) ? value : [value];
|
|
64
|
+
}
|
|
56
65
|
export {
|
|
66
|
+
convertIndexToString,
|
|
57
67
|
getTableConfig,
|
|
58
|
-
getViewConfig
|
|
68
|
+
getViewConfig,
|
|
69
|
+
toArray
|
|
59
70
|
};
|
|
60
71
|
//# sourceMappingURL=utils.js.map
|
package/mysql-core/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mysql-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { Check } from './checks.ts';\nimport { CheckBuilder } from './checks.ts';\nimport type { ForeignKey } from './foreign-keys.ts';\nimport { ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport { MySqlTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { MySqlViewConfig } from './view-common.ts';\nimport type { MySqlView } from './view.ts';\n\nexport function getTableConfig(table: MySqlTable) {\n\tconst columns = Object.values(table[MySqlTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[MySqlTable.Symbol.InlineForeignKeys]);\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[MySqlTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[MySqlTable.Symbol.Columns]);\n\t\tfor (const builder of Object.values(
|
|
1
|
+
{"version":3,"sources":["../../src/mysql-core/utils.ts"],"sourcesContent":["import { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { Check } from './checks.ts';\nimport { CheckBuilder } from './checks.ts';\nimport type { ForeignKey } from './foreign-keys.ts';\nimport { ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { Index } from './indexes.ts';\nimport { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKey } from './primary-keys.ts';\nimport { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { IndexForHint } from './query-builders/select.ts';\nimport { MySqlTable } from './table.ts';\nimport { type UniqueConstraint, UniqueConstraintBuilder } from './unique-constraint.ts';\nimport { MySqlViewConfig } from './view-common.ts';\nimport type { MySqlView } from './view.ts';\n\nexport function getTableConfig(table: MySqlTable) {\n\tconst columns = Object.values(table[MySqlTable.Symbol.Columns]);\n\tconst indexes: Index[] = [];\n\tconst checks: Check[] = [];\n\tconst primaryKeys: PrimaryKey[] = [];\n\tconst uniqueConstraints: UniqueConstraint[] = [];\n\tconst foreignKeys: ForeignKey[] = Object.values(table[MySqlTable.Symbol.InlineForeignKeys]);\n\tconst name = table[Table.Symbol.Name];\n\tconst schema = table[Table.Symbol.Schema];\n\tconst baseName = table[Table.Symbol.BaseName];\n\n\tconst extraConfigBuilder = table[MySqlTable.Symbol.ExtraConfigBuilder];\n\n\tif (extraConfigBuilder !== undefined) {\n\t\tconst extraConfig = extraConfigBuilder(table[MySqlTable.Symbol.Columns]);\n\t\tconst extraValues = Array.isArray(extraConfig) ? extraConfig.flat(1) as any[] : Object.values(extraConfig);\n\t\tfor (const builder of Object.values(extraValues)) {\n\t\t\tif (is(builder, IndexBuilder)) {\n\t\t\t\tindexes.push(builder.build(table));\n\t\t\t} else if (is(builder, CheckBuilder)) {\n\t\t\t\tchecks.push(builder.build(table));\n\t\t\t} else if (is(builder, UniqueConstraintBuilder)) {\n\t\t\t\tuniqueConstraints.push(builder.build(table));\n\t\t\t} else if (is(builder, PrimaryKeyBuilder)) {\n\t\t\t\tprimaryKeys.push(builder.build(table));\n\t\t\t} else if (is(builder, ForeignKeyBuilder)) {\n\t\t\t\tforeignKeys.push(builder.build(table));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tcolumns,\n\t\tindexes,\n\t\tforeignKeys,\n\t\tchecks,\n\t\tprimaryKeys,\n\t\tuniqueConstraints,\n\t\tname,\n\t\tschema,\n\t\tbaseName,\n\t};\n}\n\nexport function getViewConfig<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n>(view: MySqlView<TName, TExisting>) {\n\treturn {\n\t\t...view[ViewBaseConfig],\n\t\t...view[MySqlViewConfig],\n\t};\n}\n\nexport function convertIndexToString(indexes: IndexForHint[]) {\n\treturn indexes.map((idx) => {\n\t\treturn typeof idx === 'object' ? idx.config.name : idx;\n\t});\n}\n\nexport function toArray<T>(value: T | T[]): T[] {\n\treturn Array.isArray(value) ? value : [value];\n}\n"],"mappings":"AAAA,SAAS,UAAU;AACnB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAE7B,SAAS,yBAAyB;AAElC,SAAS,oBAAoB;AAE7B,SAAS,yBAAyB;AAElC,SAAS,kBAAkB;AAC3B,SAAgC,+BAA+B;AAC/D,SAAS,uBAAuB;AAGzB,SAAS,eAAe,OAAmB;AACjD,QAAM,UAAU,OAAO,OAAO,MAAM,WAAW,OAAO,OAAO,CAAC;AAC9D,QAAM,UAAmB,CAAC;AAC1B,QAAM,SAAkB,CAAC;AACzB,QAAM,cAA4B,CAAC;AACnC,QAAM,oBAAwC,CAAC;AAC/C,QAAM,cAA4B,OAAO,OAAO,MAAM,WAAW,OAAO,iBAAiB,CAAC;AAC1F,QAAM,OAAO,MAAM,MAAM,OAAO,IAAI;AACpC,QAAM,SAAS,MAAM,MAAM,OAAO,MAAM;AACxC,QAAM,WAAW,MAAM,MAAM,OAAO,QAAQ;AAE5C,QAAM,qBAAqB,MAAM,WAAW,OAAO,kBAAkB;AAErE,MAAI,uBAAuB,QAAW;AACrC,UAAM,cAAc,mBAAmB,MAAM,WAAW,OAAO,OAAO,CAAC;AACvE,UAAM,cAAc,MAAM,QAAQ,WAAW,IAAI,YAAY,KAAK,CAAC,IAAa,OAAO,OAAO,WAAW;AACzG,eAAW,WAAW,OAAO,OAAO,WAAW,GAAG;AACjD,UAAI,GAAG,SAAS,YAAY,GAAG;AAC9B,gBAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAClC,WAAW,GAAG,SAAS,YAAY,GAAG;AACrC,eAAO,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACjC,WAAW,GAAG,SAAS,uBAAuB,GAAG;AAChD,0BAAkB,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MAC5C,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC,WAAW,GAAG,SAAS,iBAAiB,GAAG;AAC1C,oBAAY,KAAK,QAAQ,MAAM,KAAK,CAAC;AAAA,MACtC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAGd,MAAmC;AACpC,SAAO;AAAA,IACN,GAAG,KAAK,cAAc;AAAA,IACtB,GAAG,KAAK,eAAe;AAAA,EACxB;AACD;AAEO,SAAS,qBAAqB,SAAyB;AAC7D,SAAO,QAAQ,IAAI,CAAC,QAAQ;AAC3B,WAAO,OAAO,QAAQ,WAAW,IAAI,OAAO,OAAO;AAAA,EACpD,CAAC;AACF;AAEO,SAAS,QAAW,OAAqB;AAC/C,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC7C;","names":[]}
|