0.14.14: Misc bugfixes in migrations & AsyncCollection keys
Some checks failed
continuous-integration/drone/tag Build is failing
continuous-integration/drone/push Build is passing

This commit is contained in:
Garrett Mills 2023-11-07 21:08:05 -06:00
parent 9a55623370
commit ac6fd0ef1d
6 changed files with 30 additions and 8 deletions

View File

@ -1,6 +1,6 @@
{
"name": "@extollo/lib",
"version": "0.14.13",
"version": "0.14.14",
"description": "The framework library that lifts up your code.",
"main": "lib/index.js",
"types": "lib/index.d.ts",

View File

@ -92,5 +92,8 @@ export class CoreIDLoginProvider extends OAuth2LoginProvider<OAuth2LoginProvider
user.email = data.email
user.tagline = data.tagline
user.photoUrl = data.profile_photo
if ( typeof user.save === 'function' ) {
user.save()
}
}
}

View File

@ -544,7 +544,7 @@ export class PostgreSQLDialect extends SQLDialect {
return parts.join('\n')
}
public renderAlterTable(builder: TableBuilder): string {
public renderAlterTable(builder: TableBuilder): Maybe<string> {
const alters: string[] = []
const columns = builder.getColumns()
@ -628,6 +628,10 @@ export class PostgreSQLDialect extends SQLDialect {
alters.push(` RENAME TO "${builder.getRename()}"`)
}
if ( !alters.length ) {
return undefined
}
return 'ALTER TABLE ' + builder.name + '\n' + alters.join(',\n')
}

View File

@ -2,7 +2,7 @@ import {Constraint, QuerySource} from '../types'
import {AbstractBuilder} from '../builder/AbstractBuilder'
import {AppClass} from '../../lifecycle/AppClass'
import {ColumnBuilder, IndexBuilder, TableBuilder} from '../schema/TableBuilder'
import {Collectable, Collection} from '../../util'
import {Collectable, Collection, Maybe} from '../../util'
/** A scalar value which can be interpolated safely into an SQL query. */
export type ScalarEscapeValue = null | undefined | string | number | boolean | Date | QuerySafeValue;
@ -198,7 +198,7 @@ export abstract class SQLDialect extends AppClass {
* Given a table schema-builder, render an `ALTER TABLE...` query.
* @param builder
*/
public abstract renderAlterTable(builder: TableBuilder): string;
public abstract renderAlterTable(builder: TableBuilder): Maybe<string>;
/**
* Given a table schema-builder, render a `DROP TABLE...` query.
@ -314,7 +314,10 @@ export abstract class SQLDialect extends AppClass {
if ( !builder.isExisting() && builder.isDirty() ) {
parts.push(this.renderCreateTable(builder))
} else if ( builder.isExisting() && builder.isDirty() ) {
parts.push(this.renderAlterTable(builder))
const alterTable = this.renderAlterTable(builder)
if ( alterTable ) {
parts.push(alterTable)
}
}
// Render the various schema queries as a single transaction

View File

@ -223,7 +223,16 @@ export class ColumnBuilder extends SchemaBuilderBase {
* @param type
*/
public type(type: FieldType): this {
if ( this.targetType === type ) {
if (
this.targetType === type
|| (
this.existsInSchema
&& (
(this.targetType === FieldType.integer && type === FieldType.serial)
|| (this.targetType === FieldType.bigint && type === FieldType.bigserial)
)
)
) {
return this
}

View File

@ -43,7 +43,8 @@ export class AsyncCollection<T> {
if ( typeof key !== 'function' ) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
key = x => x[key]
await callback(items.map(x => x[key]))
return
}
await callback(items.map(key))
@ -56,7 +57,9 @@ export class AsyncCollection<T> {
if ( typeof key !== 'function' ) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
key = x => x[key]
await callback(items.map(x => x[key]).map(x => Number(x))
.all())
return
}
await callback(items.map(key).map(x => Number(x))