kysely-repo-kit 0.1.0 → 0.2.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/builder.d.ts +11 -4
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +13 -7
- package/dist/builder.js.map +1 -1
- package/package.json +1 -1
package/dist/builder.d.ts
CHANGED
|
@@ -19,22 +19,29 @@ type PopulateConfig<DB, Name extends string, Ref extends keyof DB & string, Nest
|
|
|
19
19
|
foreignKey?: keyof InferSelectableRow<DB, Ref> & string;
|
|
20
20
|
localKey?: string;
|
|
21
21
|
justOne?: true;
|
|
22
|
-
softDelete?: keyof InferSelectableRow<DB, Ref> & string;
|
|
22
|
+
softDelete?: (keyof InferSelectableRow<DB, Ref> & string) | false;
|
|
23
23
|
nestedPopulations?: () => NestedPopulations;
|
|
24
24
|
};
|
|
25
|
+
export type RepoBuilderConfig = {
|
|
26
|
+
softDelete?: string;
|
|
27
|
+
};
|
|
28
|
+
type TableBuilderConfig<DB, TableName extends keyof DB & string> = {
|
|
29
|
+
softDelete?: (keyof InferSelectableRow<DB, TableName> & string) | false;
|
|
30
|
+
};
|
|
25
31
|
declare class RepoBuilder<DB, TableName extends keyof DB & string, Populations extends PopulationMap<DB> = EmptyPopulations, Table extends object = InferTable<DB, TableName>> {
|
|
26
32
|
private readonly currentTableName;
|
|
27
33
|
private readonly currentPopulations;
|
|
28
34
|
private readonly currentSoftDeleteColumn?;
|
|
29
|
-
|
|
35
|
+
private readonly defaultSoftDeleteColumn?;
|
|
36
|
+
constructor(currentTableName: TableName, currentPopulations?: Populations, currentSoftDeleteColumn?: (keyof Selectable<Table> & string) | undefined, defaultSoftDeleteColumn?: string | undefined);
|
|
30
37
|
softDelete<Column extends keyof Selectable<Table> & string>(column: Column): RepoBuilder<DB, TableName, Populations, Table>;
|
|
31
38
|
populate<Name extends string, Ref extends keyof DB & string, NestedPopulations extends PopulationMap<DB> = Record<never, never>>(def: PopulateConfig<DB, Name, Ref, NestedPopulations>): RepoBuilder<DB, TableName, Populations & Record<Name, import("./base").PopulationDefinition<DB, InferRow<DB, Ref> extends infer T ? T extends InferRow<DB, Ref> ? T extends any[] ? T : import("kysely").DrainOuterGeneric<{ [K_1 in { [K in keyof T]: import("kysely").SelectType<T[K]> extends infer T_1 ? T_1 extends import("kysely").SelectType<T[K]> ? T_1 extends never ? never : K : never : never; }[keyof T]]: import("kysely").SelectType<T[K_1]>; }> : never : never, NestedPopulations> & {
|
|
32
39
|
justOne: true;
|
|
33
40
|
}>, Table>;
|
|
34
41
|
get init(): RepoConstructor<DB, TableName, Populations>;
|
|
35
42
|
}
|
|
36
|
-
export declare function createRepoBuilder<DB>(): {
|
|
37
|
-
table<TableName extends keyof DB & string>(tableName: TableName): RepoBuilder<DB, TableName, EmptyPopulations, InferTable<DB, TableName>>;
|
|
43
|
+
export declare function createRepoBuilder<DB>(config?: RepoBuilderConfig): {
|
|
44
|
+
table<TableName extends keyof DB & string>(tableName: TableName, tableConfig?: TableBuilderConfig<DB, TableName>): RepoBuilder<DB, TableName, EmptyPopulations, InferTable<DB, TableName>>;
|
|
38
45
|
};
|
|
39
46
|
export {};
|
|
40
47
|
//# sourceMappingURL=builder.d.ts.map
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAC7D,OAAO,cAAc,EAAE,EAEnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EACrB,MAAM,QAAQ,CAAA;AAEf,KAAK,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAG5C,KAAK,kBAAkB,CAAC,EAAE,EAAE,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,IAC3D,EAAE,CAAC,SAAS,CAAC,SAAS,MAAM,GACtB,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GACzB,KAAK,CAAA;AAEf,KAAK,QAAQ,CAAC,EAAE,EAAE,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,IACjD,EAAE,CAAC,SAAS,CAAC,SAAS,MAAM,GACtB,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GACzB,KAAK,CAAA;AAEf,MAAM,MAAM,YAAY,CACpB,EAAE,EACF,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,EACnC,WAAW,SAAS,aAAa,CAAC,EAAE,CAAC,IACrC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG;IAC7C,IAAI,CAAC,CAAC,SAAS,aAAa,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,gBAAgB,KAAK;QACjE,QAAQ,CAAC,EAAE,CAAC,CAAA;KACf,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,eAAe,CACvB,EAAE,EACF,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,EACnC,WAAW,SAAS,aAAa,CAAC,EAAE,CAAC,IACrC;IACA,KACI,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,GAC9B,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IAE3C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CACpC,CAAA;AAED,KAAK,cAAc,CACf,EAAE,EACF,IAAI,SAAS,MAAM,EACnB,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,EAC7B,iBAAiB,SAAS,aAAa,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAClE;IACA,EAAE,EAAE,IAAI,CAAA;IACR,GAAG,EAAE,GAAG,CAAA;IACR,UAAU,CAAC,EAAE,MAAM,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,MAAM,CAAA;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/builder.js
CHANGED
|
@@ -3,28 +3,31 @@ class RepoBuilder {
|
|
|
3
3
|
currentTableName;
|
|
4
4
|
currentPopulations;
|
|
5
5
|
currentSoftDeleteColumn;
|
|
6
|
-
|
|
6
|
+
defaultSoftDeleteColumn;
|
|
7
|
+
constructor(currentTableName, currentPopulations = {}, currentSoftDeleteColumn, defaultSoftDeleteColumn) {
|
|
7
8
|
this.currentTableName = currentTableName;
|
|
8
9
|
this.currentPopulations = currentPopulations;
|
|
9
10
|
this.currentSoftDeleteColumn = currentSoftDeleteColumn;
|
|
11
|
+
this.defaultSoftDeleteColumn = defaultSoftDeleteColumn;
|
|
10
12
|
}
|
|
11
13
|
softDelete(column) {
|
|
12
|
-
return new RepoBuilder(this.currentTableName, this.currentPopulations, column);
|
|
14
|
+
return new RepoBuilder(this.currentTableName, this.currentPopulations, column, this.defaultSoftDeleteColumn);
|
|
13
15
|
}
|
|
14
16
|
populate(def) {
|
|
15
17
|
const isSingle = Boolean(def.localKey || def.justOne);
|
|
18
|
+
const softDeleteColumn = def.softDelete === false ? undefined : def.softDelete ?? this.defaultSoftDeleteColumn;
|
|
16
19
|
const population = definePopulation({
|
|
17
20
|
table: def.ref,
|
|
18
21
|
foreignKey: def.foreignKey ?? "id",
|
|
19
22
|
localKey: def.localKey,
|
|
20
23
|
...(isSingle ? { justOne: true } : {}),
|
|
21
|
-
...(
|
|
24
|
+
...(softDeleteColumn ? { softDeleteColumn } : {}),
|
|
22
25
|
...(def.nestedPopulations ? { nestedPopulations: def.nestedPopulations } : {}),
|
|
23
26
|
});
|
|
24
27
|
return new RepoBuilder(this.currentTableName, {
|
|
25
28
|
...this.currentPopulations,
|
|
26
29
|
[def.as]: population,
|
|
27
|
-
}, this.currentSoftDeleteColumn);
|
|
30
|
+
}, this.currentSoftDeleteColumn, this.defaultSoftDeleteColumn);
|
|
28
31
|
}
|
|
29
32
|
get init() {
|
|
30
33
|
const tableName = this.currentTableName;
|
|
@@ -49,10 +52,13 @@ class RepoBuilder {
|
|
|
49
52
|
return GeneratedRepository;
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
|
-
export function createRepoBuilder() {
|
|
55
|
+
export function createRepoBuilder(config = {}) {
|
|
53
56
|
return {
|
|
54
|
-
table(tableName) {
|
|
55
|
-
|
|
57
|
+
table(tableName, tableConfig = {}) {
|
|
58
|
+
const softDeleteColumn = tableConfig.softDelete === false
|
|
59
|
+
? undefined
|
|
60
|
+
: tableConfig.softDelete ?? config.softDelete;
|
|
61
|
+
return new RepoBuilder(tableName, {}, softDeleteColumn, config.softDelete);
|
|
56
62
|
},
|
|
57
63
|
};
|
|
58
64
|
}
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,EAAE,EACnB,gBAAgB,GAInB,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|