pgsql-template-tag 0.0.7 → 0.0.8

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.
@@ -182,11 +182,11 @@ export declare class Sql<const TRawBindings extends readonly RawValue[] = readon
182
182
  * @param value SQL に含める生の文字列です。
183
183
  * @returns 指定された文字列を持つ Sql インスタンスを返します。
184
184
  */
185
- export declare function raw(value: string): Sql;
185
+ export declare function raw(value: string): Sql<[]>;
186
186
  /**
187
187
  * 空の SQL インスタンスを表す定数です。
188
188
  */
189
- export declare const empty: Sql;
189
+ export declare const empty: Sql<[]>;
190
190
  /**
191
191
  * 複数の SQL 断片や値を、指定されたセパレーターで結合します。
192
192
  *
@@ -196,7 +196,7 @@ export declare const empty: Sql;
196
196
  * @param separator 結合時に挿入される文字列です。デフォルトはカンマ(,)です。
197
197
  * @returns 結合された新しい Sql インスタンスを返します。
198
198
  */
199
- export declare function join(values: readonly RawValue[], separator?: string | undefined): Sql;
199
+ export declare function join<const TValues extends readonly RawValue[]>(values: TValues, separator?: string | undefined): Sql<TValues>;
200
200
  /**
201
201
  * 文字列を SQL の識別子(テーブル名やカラム名など)として安全にエスケープします。
202
202
  *
@@ -215,5 +215,15 @@ export declare function ident(value: string): string;
215
215
  * @returns エスケープ済みのリテラル文字列を返します。
216
216
  */
217
217
  export declare function literal(value: string): string;
218
+ /**
219
+ * 新しい Slot インスタンスを作成します。
220
+ *
221
+ * @template TName スロットの名前となる文字列リテラル型です。
222
+ * @template TValue スロットに許容される値の型です。
223
+ * @param name スロット名です。
224
+ * @param defaultValue デフォルト値です。
225
+ * @returns 作成された新しい Slot インスタンスです。
226
+ */
227
+ export declare function slot<const TName extends string, TValue extends RawValue = RawValue>(name: TName, defaultValue?: TValue): Slot<TName, TValue>;
218
228
  export {};
219
229
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}
package/dist/src/core.js CHANGED
@@ -307,3 +307,6 @@ const SINGLE_QUOTE_REGEX = /'/g;
307
307
  export function literal(value) {
308
308
  return "'" + value.replace(SINGLE_QUOTE_REGEX, "''") + "'";
309
309
  }
310
+ export function slot(...args) {
311
+ return new Slot(...args);
312
+ }
@@ -1,3 +1,3 @@
1
- export { type Value, type RawValue, Sql, Slot, empty, join, raw, ident } from "./core.js";
1
+ export { type Value, type RawValue, Sql, Slot, empty, join, raw, ident, slot } from "./core.js";
2
2
  export { sql } from "./sql.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE1F,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEhG,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Sql, Slot, empty, join, raw, ident } from "./core.js";
1
+ export { Sql, Slot, empty, join, raw, ident, slot } from "./core.js";
2
2
  export { sql } from "./sql.js";
package/dist/src/sql.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { join, raw, Sql, ident, literal, Slot, RawValue } from "./core.js";
1
+ import { join, raw, Sql, ident, literal, Slot, RawValue, slot } from "./core.js";
2
2
  declare namespace sql {
3
3
  /**
4
4
  * SQL クエリーの構築に使用できる生の値、または別の Sql インスタンスを表す型です。
@@ -20,24 +20,14 @@ declare namespace sql {
20
20
  /**
21
21
  * 安全な SQL クエリーを構築するためのクラス型です。
22
22
  *
23
- * @template TRawBindings クエリーに渡される生の値のタプル型です。
23
+ * @template TBindings クエリーに渡される生の値のタプル型です。
24
24
  */
25
- type Sql<TRawBindings extends readonly RawValue[] = readonly RawValue[]> = import("./core.js").Sql<TRawBindings>;
25
+ type Sql<TBindings extends readonly RawValue[] = readonly RawValue[]> = import("./core.js").Sql<TBindings>;
26
26
  }
27
- /**
28
- * 新しい Slot インスタンスを作成します。
29
- *
30
- * @template TName スロットの名前となる文字列リテラル型です。
31
- * @template TValue スロットに許容される値の型です。
32
- * @param name スロット名です。
33
- * @param defaultValue デフォルト値です。
34
- * @returns 作成された新しい Slot インスタンスです。
35
- */
36
- declare function slot<const TName extends string, TValue extends RawValue = RawValue>(name: TName, defaultValue?: TValue): sql.Slot<TName, TValue>;
37
27
  /**
38
28
  * テンプレートリテラルを使用して SQL クエリーを安全に構築するためのタグ関数です。
39
29
  *
40
- * @template TRawBindings クエリーに渡される生の値のタプル型です。
30
+ * @template TBindings クエリーに渡される生の値のタプル型です。
41
31
  * @param strings テンプレートリテラルの静的な文字列部分の配列です。
42
32
  * @param bindings テンプレートリテラルに埋め込まれた動的な値の配列です。
43
33
  * @returns パラメーター化された SQL 情報を保持する Sql インスタンスを返します。
@@ -46,7 +36,7 @@ declare function slot<const TName extends string, TValue extends RawValue = RawV
46
36
  * const query = sql`SELECT * FROM users WHERE id = ${1}`;
47
37
  * ```
48
38
  */
49
- declare const sql: (<const TRawBindings extends readonly RawValue[]>(strings: TemplateStringsArray, ...bindings: TRawBindings) => sql.Sql<TRawBindings>) & {
39
+ declare const sql: (<const TBindings extends readonly RawValue[]>(strings: TemplateStringsArray, ...bindings: TBindings) => sql.Sql<TBindings>) & {
50
40
  /**
51
41
  * Sql クラスです。
52
42
  */
@@ -72,7 +62,7 @@ declare const sql: (<const TRawBindings extends readonly RawValue[]>(strings: Te
72
62
  /**
73
63
  * 空の SQL クエリーを表す定数です。
74
64
  */
75
- readonly empty: Sql<readonly unknown[]>;
65
+ readonly empty: Sql<[]>;
76
66
  /**
77
67
  * 識別子(テーブル名等)を安全にエスケープするための関数です。
78
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAElF,kBAAU,GAAG,CAAC;IACZ;;OAEG;IACH,KAAY,QAAQ,GAAG,OAAO,WAAW,EAAE,QAAQ,CAAC;IAEpD;;OAEG;IACH,KAAY,KAAK,GAAG,OAAO,WAAW,EAAE,KAAK,CAAC;IAE9C;;;;;;;OAOG;IACH,KAAY,IAAI,CACd,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAChC,OAAO,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE5C;;;;OAIG;IACH,KAAY,GAAG,CAAC,YAAY,SAAS,SAAS,QAAQ,EAAE,GAAG,SAAS,QAAQ,EAAE,IAC5E,OAAO,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,iBAAS,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAC1E,IAAI,EAAE,KAAK,EACX,YAAY,CAAC,EAAE,MAAM,GACpB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAM3B;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,GAAG,UACY,YAAY,SAAS,SAAS,QAAQ,EAAE,WAChD,oBAAoB,eAChB,YAAY,KACxB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;IAItB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;OAIG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAGN,CAAC;AAEF,OAAO,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAExF,kBAAU,GAAG,CAAC;IACZ;;OAEG;IACH,KAAY,QAAQ,GAAG,OAAO,WAAW,EAAE,QAAQ,CAAC;IAEpD;;OAEG;IACH,KAAY,KAAK,GAAG,OAAO,WAAW,EAAE,KAAK,CAAC;IAE9C;;;;;;;OAOG;IACH,KAAY,IAAI,CACd,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAChC,OAAO,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE5C;;;;OAIG;IACH,KAAY,GAAG,CAAC,SAAS,SAAS,SAAS,QAAQ,EAAE,GAAG,SAAS,QAAQ,EAAE,IACzE,OAAO,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,GAAG,UACY,SAAS,SAAS,SAAS,QAAQ,EAAE,WAC7C,oBAAoB,eAChB,SAAS,KACrB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;IAInB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;OAIG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAGN,CAAC;AAEF,OAAO,EAAE,GAAG,EAAE,CAAC"}
package/dist/src/sql.js CHANGED
@@ -1,11 +1,8 @@
1
- import { empty, join, raw, Sql, ident, literal, Slot } from "./core.js";
2
- function slot(...args) {
3
- return new sql.Slot(...args);
4
- }
1
+ import { empty, join, raw, Sql, ident, literal, Slot, slot } from "./core.js";
5
2
  /**
6
3
  * テンプレートリテラルを使用して SQL クエリーを安全に構築するためのタグ関数です。
7
4
  *
8
- * @template TRawBindings クエリーに渡される生の値のタプル型です。
5
+ * @template TBindings クエリーに渡される生の値のタプル型です。
9
6
  * @param strings テンプレートリテラルの静的な文字列部分の配列です。
10
7
  * @param bindings テンプレートリテラルに埋め込まれた動的な値の配列です。
11
8
  * @returns パラメーター化された SQL 情報を保持する Sql インスタンスを返します。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pgsql-template-tag",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/tai-kun/pgsql-template-tag",
6
6
  "license": "MIT",
package/src/core.ts CHANGED
@@ -477,14 +477,14 @@ export class Sql<const TRawBindings extends readonly RawValue[] = readonly RawVa
477
477
  * @param value SQL に含める生の文字列です。
478
478
  * @returns 指定された文字列を持つ Sql インスタンスを返します。
479
479
  */
480
- export function raw(value: string): Sql {
480
+ export function raw(value: string): Sql<[]> {
481
481
  return new Sql([value], []);
482
482
  }
483
483
 
484
484
  /**
485
485
  * 空の SQL インスタンスを表す定数です。
486
486
  */
487
- export const empty: Sql = raw("");
487
+ export const empty: Sql<[]> = raw("");
488
488
 
489
489
  /**
490
490
  * 複数の SQL 断片や値を、指定されたセパレーターで結合します。
@@ -495,7 +495,10 @@ export const empty: Sql = raw("");
495
495
  * @param separator 結合時に挿入される文字列です。デフォルトはカンマ(,)です。
496
496
  * @returns 結合された新しい Sql インスタンスを返します。
497
497
  */
498
- export function join(values: readonly RawValue[], separator: string | undefined = ","): Sql {
498
+ export function join<const TValues extends readonly RawValue[]>(
499
+ values: TValues,
500
+ separator: string | undefined = ",",
501
+ ): Sql<TValues> {
499
502
  if (values.length === 0) {
500
503
  return empty;
501
504
  }
@@ -536,3 +539,21 @@ const SINGLE_QUOTE_REGEX = /'/g;
536
539
  export function literal(value: string): string {
537
540
  return "'" + value.replace(SINGLE_QUOTE_REGEX, "''") + "'";
538
541
  }
542
+
543
+ /**
544
+ * 新しい Slot インスタンスを作成します。
545
+ *
546
+ * @template TName スロットの名前となる文字列リテラル型です。
547
+ * @template TValue スロットに許容される値の型です。
548
+ * @param name スロット名です。
549
+ * @param defaultValue デフォルト値です。
550
+ * @returns 作成された新しい Slot インスタンスです。
551
+ */
552
+ export function slot<const TName extends string, TValue extends RawValue = RawValue>(
553
+ name: TName,
554
+ defaultValue?: TValue,
555
+ ): Slot<TName, TValue>;
556
+
557
+ export function slot(...args: [any]): Slot {
558
+ return new Slot(...args);
559
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { type Value, type RawValue, Sql, Slot, empty, join, raw, ident } from "./core.js";
1
+ export { type Value, type RawValue, Sql, Slot, empty, join, raw, ident, slot } from "./core.js";
2
2
 
3
3
  export { sql } from "./sql.js";
package/src/sql.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { empty, join, raw, Sql, ident, literal, Slot, RawValue } from "./core.js";
1
+ import { empty, join, raw, Sql, ident, literal, Slot, RawValue, slot } from "./core.js";
2
2
 
3
3
  namespace sql {
4
4
  /**
@@ -27,34 +27,16 @@ namespace sql {
27
27
  /**
28
28
  * 安全な SQL クエリーを構築するためのクラス型です。
29
29
  *
30
- * @template TRawBindings クエリーに渡される生の値のタプル型です。
30
+ * @template TBindings クエリーに渡される生の値のタプル型です。
31
31
  */
32
- export type Sql<TRawBindings extends readonly RawValue[] = readonly RawValue[]> =
33
- import("./core.js").Sql<TRawBindings>;
34
- }
35
-
36
- /**
37
- * 新しい Slot インスタンスを作成します。
38
- *
39
- * @template TName スロットの名前となる文字列リテラル型です。
40
- * @template TValue スロットに許容される値の型です。
41
- * @param name スロット名です。
42
- * @param defaultValue デフォルト値です。
43
- * @returns 作成された新しい Slot インスタンスです。
44
- */
45
- function slot<const TName extends string, TValue extends RawValue = RawValue>(
46
- name: TName,
47
- defaultValue?: TValue,
48
- ): sql.Slot<TName, TValue>;
49
-
50
- function slot(...args: [any]): sql.Slot {
51
- return new sql.Slot(...args);
32
+ export type Sql<TBindings extends readonly RawValue[] = readonly RawValue[]> =
33
+ import("./core.js").Sql<TBindings>;
52
34
  }
53
35
 
54
36
  /**
55
37
  * テンプレートリテラルを使用して SQL クエリーを安全に構築するためのタグ関数です。
56
38
  *
57
- * @template TRawBindings クエリーに渡される生の値のタプル型です。
39
+ * @template TBindings クエリーに渡される生の値のタプル型です。
58
40
  * @param strings テンプレートリテラルの静的な文字列部分の配列です。
59
41
  * @param bindings テンプレートリテラルに埋め込まれた動的な値の配列です。
60
42
  * @returns パラメーター化された SQL 情報を保持する Sql インスタンスを返します。
@@ -64,10 +46,10 @@ function slot(...args: [any]): sql.Slot {
64
46
  * ```
65
47
  */
66
48
  const sql = /*#__PURE__*/ Object.assign(
67
- function sql<const TRawBindings extends readonly RawValue[]>(
49
+ function sql<const TBindings extends readonly RawValue[]>(
68
50
  strings: TemplateStringsArray,
69
- ...bindings: TRawBindings
70
- ): sql.Sql<TRawBindings> {
51
+ ...bindings: TBindings
52
+ ): sql.Sql<TBindings> {
71
53
  return new Sql(strings, bindings);
72
54
  },
73
55
  {