@bingtsingw/orchid-helper 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,84 @@
1
- import * as orchid_core from 'orchid-core';
2
1
  import * as orchid_orm from 'orchid-orm';
3
2
  import { DefaultSchemaConfig } from 'orchid-orm';
3
+ import * as orchid_core from 'orchid-core';
4
4
 
5
5
  declare const BaseTable: orchid_orm.BaseTableClass<DefaultSchemaConfig, {
6
- xEnum: <T extends Record<any, any>>(_: T) => orchid_core.ParseColumn<orchid_core.EncodeColumn<orchid_orm.StringColumn<DefaultSchemaConfig>, unknown, T[keyof T]>, unknown, T[keyof T]>;
6
+ xEnum: <T extends Record<any, any>>(_: T) => {
7
+ toCode: (ctx: orchid_core.ColumnToCodeCtx, key: string) => orchid_core.Code;
8
+ dataType: "varchar";
9
+ data: orchid_orm.TextColumnData & {
10
+ maxChars?: number;
11
+ };
12
+ toSQL: () => string;
13
+ operators: orchid_orm.OperatorsText;
14
+ primaryKey: <T_1 extends orchid_core.PickColumnBaseData, Name extends string>(this: T_1, name?: Name) => orchid_core.PrimaryKeyColumn<T_1, Name>;
15
+ foreignKey: {
16
+ <T_1, Table extends orchid_core.ForeignKeyTable, Column extends orchid_core.ColumnNameOfTable<Table>>(this: T_1, fn: () => Table, column: Column, options?: orchid_orm.TableData.References.Options): T_1;
17
+ <T_1, Table_1 extends string, Column_1 extends string>(this: T_1, table: Table_1, column: Column_1, options?: orchid_orm.TableData.References.Options): T_1;
18
+ };
19
+ index: <T_1 extends orchid_orm.PickColumnData>(this: T_1, ...args: [options?: orchid_orm.TableData.Index.ColumnArg] | [name: string, options?: orchid_orm.TableData.Index.ColumnArg]) => T_1;
20
+ searchIndex: <T_1 extends {
21
+ data: orchid_orm.ColumnType["data"];
22
+ dataType: string;
23
+ }>(this: T_1, ...args: [options?: orchid_orm.TableData.Index.TsVectorColumnArg] | [name: string, options?: orchid_orm.TableData.Index.TsVectorColumnArg]) => T_1;
24
+ unique: <T_1 extends orchid_orm.PickColumnData, Name_1 extends string>(this: T_1, ...args: [options?: orchid_orm.TableData.Index.UniqueColumnArg] | [name: Name_1, options?: orchid_orm.TableData.Index.UniqueColumnArg]) => orchid_core.UniqueColumn<T_1, Name_1>;
25
+ comment: <T_1 extends orchid_orm.PickColumnData>(this: T_1, comment: string) => T_1;
26
+ compression: <T_1 extends orchid_orm.PickColumnData>(this: T_1, compression: string) => T_1;
27
+ collate: <T_1 extends orchid_orm.PickColumnData>(this: T_1, collate: string) => T_1;
28
+ modifyQuery: <T_1 extends orchid_orm.PickColumnData>(this: T_1, cb: (q: orchid_orm.Query) => void) => T_1;
29
+ generated: <T_1 extends orchid_orm.PickColumnData>(this: T_1, ...args: orchid_core.StaticSQLArgs) => T_1;
30
+ inputSchema: unknown;
31
+ outputSchema: unknown;
32
+ querySchema: unknown;
33
+ type: T[keyof T];
34
+ inputType: T[keyof T];
35
+ outputType: T[keyof T];
36
+ queryType: T[keyof T];
37
+ error: unknown;
38
+ encodeFn?: ((input: any) => unknown) | undefined;
39
+ parseFn?: ((input: unknown) => unknown) | undefined;
40
+ parseItem?: ((input: string) => unknown) | undefined;
41
+ default: <T_1 extends Pick<orchid_core.ColumnTypeBase, "type" | "inputType" | "data">, Value extends T_1["type"] | null | orchid_core.RawSQLBase | (() => T_1["inputType"])>(this: T_1, value: Value) => orchid_core.ColumnWithDefault<T_1, Value>;
42
+ hasDefault: <T_1 extends orchid_core.PickColumnBaseData>(this: T_1) => orchid_core.ColumnWithDefault<T_1, orchid_core.RawSQLBase>;
43
+ check: <T_1 extends orchid_core.PickColumnBaseData>(this: T_1, sql: orchid_core.RawSQLBase, name?: string) => T_1;
44
+ nullable: <T_1 extends orchid_core.ColumnTypeBase>(this: T_1) => orchid_core.NullableColumn<T_1, unknown, unknown, unknown>;
45
+ encode: <T_1 extends {
46
+ type: unknown;
47
+ }, Input>(this: T_1, fn: (input: Input) => unknown) => orchid_core.EncodeColumn<T_1, unknown, Input>;
48
+ parse: <T_1 extends {
49
+ type: unknown;
50
+ }, Output>(this: T_1, fn: (input: T_1["type"]) => Output) => orchid_core.ParseColumn<T_1, unknown, Output>;
51
+ as: <T_1 extends {
52
+ inputType: unknown;
53
+ outputType: unknown;
54
+ data: orchid_core.ColumnDataBase;
55
+ }, C extends Omit<orchid_core.ColumnTypeBase, "inputType" | "outputType"> & {
56
+ inputType: T_1["inputType"];
57
+ outputType: T_1["outputType"];
58
+ }>(this: T_1, column: C) => C;
59
+ asType: <T_1, Types extends {
60
+ type: unknown;
61
+ inputType: unknown;
62
+ outputType: unknown;
63
+ queryType: unknown;
64
+ }>(this: T_1, _fn: (type: <Type, Input_1 = Type, Output_1 = Type, Query = Type>() => {
65
+ type: Type;
66
+ inputType: Input_1;
67
+ outputType: Output_1;
68
+ queryType: Query;
69
+ }) => Types) => { [K in keyof T_1]: K extends keyof Types ? Types[K] : T_1[K]; };
70
+ input: <T_1 extends {
71
+ inputSchema: unknown;
72
+ }, InputSchema extends unknown>(this: T_1, fn: (schema: T_1["inputSchema"]) => InputSchema) => { [K in keyof T_1]: K extends "inputSchema" ? InputSchema : T_1[K]; };
73
+ output: <T_1 extends {
74
+ outputSchema: unknown;
75
+ }, OutputSchema extends unknown>(this: T_1, fn: (schema: T_1["outputSchema"]) => OutputSchema) => { [K in keyof T_1]: K extends "outputSchema" ? OutputSchema : T_1[K]; };
76
+ query: <T_1 extends {
77
+ querySchema: unknown;
78
+ }, QuerySchema extends unknown>(this: T_1, fn: (schema: T_1["querySchema"]) => QuerySchema) => { [K in keyof T_1]: K extends "querySchema" ? QuerySchema : T_1[K]; };
79
+ name: <T_1 extends orchid_core.PickColumnBaseData>(this: T_1, name: string) => T_1;
80
+ hidden: <T_1 extends orchid_core.PickColumnBaseData>(this: T_1) => orchid_core.HiddenColumn<T_1>;
81
+ };
7
82
  xJsonText: () => orchid_core.EncodeColumn<orchid_orm.JSONTextColumn<DefaultSchemaConfig>, unknown, any[] | Record<string, any>>;
8
83
  xTimestamp: () => orchid_core.ParseColumn<orchid_orm.TimestampColumn<DefaultSchemaConfig>, unknown, Date>;
9
84
  createdAt: () => orchid_core.ParseColumn<orchid_core.ColumnWithDefault<orchid_core.ColumnWithDefault<orchid_orm.TimestampColumn<DefaultSchemaConfig>, orchid_core.RawSQLBase<orchid_core.QueryColumn<unknown, any>, unknown>>, () => string>, unknown, Date>;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{createId as m}from"@paralleldrive/cuid2";import{createBaseTable as u}from"orchid-orm";var o=e=>()=>e.string(36).primaryKey().default(()=>m()),n=e=>()=>e.timestampsNoTZ().createdAt.default(()=>new Date().toISOString()).asDate(),s=e=>()=>e.timestampsNoTZ().updatedAt.default(()=>new Date().toISOString()).asDate(),r=e=>()=>e.timestampNoTZ().asDate().nullable(),f=u({snakeCase:!0,nowSQL:"now()::timestamptz(3) AT TIME ZONE 'UTC'",columnTypes:e=>({...e,xEnum:t=>e.string().encode(a=>a).parse(a=>a),xJsonText:()=>e.jsonText().encode(t=>{if(typeof t!="object")throw new Error("Invalid value for JSON column");return JSON.stringify(t)}),xTimestamp:()=>e.timestampNoTZ().asDate(),createdAt:n(e),updatedAt:s(e),deletedAt:r(e),cuid:o(e),baseColumns:()=>({id:o(e)(),createdAt:n(e)(),updatedAt:s(e)(),deletedAt:r(e)()})})});export{f as BaseTable};
1
+ import{createId as m}from"@paralleldrive/cuid2";import{createBaseTable as u}from"orchid-orm";var a=e=>()=>e.string(36).primaryKey().default(()=>m()),o=e=>()=>e.timestampsNoTZ().createdAt.default(()=>new Date().toISOString()).asDate(),n=e=>()=>e.timestampsNoTZ().updatedAt.default(()=>new Date().toISOString()).asDate(),r=e=>()=>e.timestampNoTZ().asDate().nullable(),i=u({snakeCase:!0,nowSQL:"now()::timestamptz(3) AT TIME ZONE 'UTC'",columnTypes:e=>({...e,xEnum:t=>e.string().asType(s=>s()),xJsonText:()=>e.jsonText().encode(t=>{if(typeof t!="object")throw new Error("Invalid value for JSON column");return JSON.stringify(t)}),xTimestamp:()=>e.timestampNoTZ().asDate(),createdAt:o(e),updatedAt:n(e),deletedAt:r(e),cuid:a(e),baseColumns:()=>({id:a(e)(),createdAt:o(e)(),updatedAt:n(e)(),deletedAt:r(e)()})})});export{i as BaseTable};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bingtsingw/orchid-helper",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/base-table.ts CHANGED
@@ -30,11 +30,7 @@ export const BaseTable = createBaseTable({
30
30
  ...t,
31
31
 
32
32
  // Extend built-in methods
33
- xEnum: <T extends Record<any, any>>(_: T) =>
34
- t
35
- .string()
36
- .encode((v: T[keyof T]) => v)
37
- .parse((v) => v as unknown as T[keyof T]),
33
+ xEnum: <T extends Record<any, any>>(_: T) => t.string().asType((t) => t<T[keyof T]>()),
38
34
  xJsonText: () =>
39
35
  t.jsonText().encode((v: Record<string, any> | any[]) => {
40
36
  if (typeof v !== 'object') throw new Error('Invalid value for JSON column');