pgsql-template-tag 0.0.4 → 0.0.5

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.
@@ -81,4 +81,13 @@ export declare function join(values: readonly RawValue[], separator?: string | u
81
81
  * @returns エスケープ済みの識別子文字列を返します。
82
82
  */
83
83
  export declare function ident(value: string): string;
84
+ /**
85
+ * 文字列を SQL のリテラル文字列として安全にエスケープします。
86
+ *
87
+ * 一重引用符を二重にすることでエスケープを行い、全体を一重引用符で囲みます。
88
+ *
89
+ * @param value エスケープする文字列です。
90
+ * @returns エスケープ済みのリテラル文字列を返します。
91
+ */
92
+ export declare function literal(value: string): string;
84
93
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC;AAE5B;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC;AAsBnC;;;GAGG;AACH,qBAAa,GAAG;IACd;;;;;;OAMG;IACH,IAAW,IAAI,IAAI,MAAM,CAexB;IAED;;OAEG;IACH,SAAgB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAgB;IAElC;;;;;OAKG;gBACgB,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,QAAQ,EAAE;IAsElF;;;;OAIG;IACI,MAAM,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,KAAK,EAAE,CAAC;KACjB;IAOD;;;;OAIG;IACI,QAAQ,IAAI,MAAM;CAG1B;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAEtC;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,GAAa,CAAC;AAElC;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,GAAE,MAAM,GAAG,SAAe,GAAG,GAAG,CAM1F;AAOD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC;AAE5B;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC;AAsBnC;;;GAGG;AACH,qBAAa,GAAG;IACd;;;;;;OAMG;IACH,IAAW,IAAI,IAAI,MAAM,CAexB;IAED;;OAEG;IACH,SAAgB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAgB;IAElC;;;;;OAKG;gBACgB,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,QAAQ,EAAE;IAsElF;;;;OAIG;IACI,MAAM,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,KAAK,EAAE,CAAC;KACjB;IAOD;;;;OAIG;IACI,QAAQ,IAAI,MAAM;CAG1B;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAEtC;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,GAAa,CAAC;AAElC;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,GAAE,MAAM,GAAG,SAAe,GAAG,GAAG,CAM1F;AAOD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAOD;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C"}
package/dist/src/core.js CHANGED
@@ -148,3 +148,18 @@ const DOUBLE_QUOTE_REGEX = /"/g;
148
148
  export function ident(value) {
149
149
  return '"' + value.replace(DOUBLE_QUOTE_REGEX, '""') + '"';
150
150
  }
151
+ /**
152
+ * 一重引用符をエスケープするための正規表現です。
153
+ */
154
+ const SINGLE_QUOTE_REGEX = /'/g;
155
+ /**
156
+ * 文字列を SQL のリテラル文字列として安全にエスケープします。
157
+ *
158
+ * 一重引用符を二重にすることでエスケープを行い、全体を一重引用符で囲みます。
159
+ *
160
+ * @param value エスケープする文字列です。
161
+ * @returns エスケープ済みのリテラル文字列を返します。
162
+ */
163
+ export function literal(value) {
164
+ return "'" + value.replace(SINGLE_QUOTE_REGEX, "''") + "'";
165
+ }
package/dist/src/sql.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { join, raw, Sql, ident } from "./core.js";
1
+ import { join, raw, Sql, ident, literal } from "./core.js";
2
2
  declare namespace sql {
3
3
  /**
4
4
  * SQL クエリーの構築に使用できる生の値、または別の Sql インスタンスを表す型です。
@@ -45,6 +45,10 @@ declare const sql: ((strings: TemplateStringsArray, ...bindings: readonly sql.Ra
45
45
  * 識別子(テーブル名等)を安全にエスケープするための関数です。
46
46
  */
47
47
  readonly ident: typeof ident;
48
+ /**
49
+ * 文字列を安全にエスケープするための関数です。
50
+ */
51
+ readonly literal: typeof literal;
48
52
  };
49
53
  export { sql };
50
54
  //# sourceMappingURL=sql.d.ts.map
@@ -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,MAAM,WAAW,CAAC;AAEzD,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;;OAEG;IACH,KAAY,GAAG,GAAG,OAAO,WAAW,EAAE,GAAG,CAAC;CAC3C;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,GAAG,aACe,oBAAoB,eAAe,SAAS,GAAG,CAAC,QAAQ,EAAE,KAAG,GAAG,CAAC,GAAG;IAIxF;;OAEG;;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,MAAM,WAAW,CAAC;AAElE,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;;OAEG;IACH,KAAY,GAAG,GAAG,OAAO,WAAW,EAAE,GAAG,CAAC;CAC3C;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,GAAG,aACe,oBAAoB,eAAe,SAAS,GAAG,CAAC,QAAQ,EAAE,KAAG,GAAG,CAAC,GAAG;IAIxF;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAGN,CAAC;AAEF,OAAO,EAAE,GAAG,EAAE,CAAC"}
package/dist/src/sql.js CHANGED
@@ -1,4 +1,4 @@
1
- import { empty, join, raw, Sql, ident } from "./core.js";
1
+ import { empty, join, raw, Sql, ident, literal } from "./core.js";
2
2
  /**
3
3
  * テンプレートリテラルを使用して SQL クエリーを安全に構築するためのタグ関数です。
4
4
  *
@@ -33,5 +33,9 @@ const sql = /*#__PURE__*/ Object.assign(function sql(strings, ...bindings) {
33
33
  * 識別子(テーブル名等)を安全にエスケープするための関数です。
34
34
  */
35
35
  ident,
36
+ /**
37
+ * 文字列を安全にエスケープするための関数です。
38
+ */
39
+ literal,
36
40
  });
37
41
  export { sql };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pgsql-template-tag",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/tai-kun/pgsql-template-tag",
6
6
  "license": "MIT",
package/src/core.ts CHANGED
@@ -218,3 +218,20 @@ const DOUBLE_QUOTE_REGEX = /"/g;
218
218
  export function ident(value: string): string {
219
219
  return '"' + value.replace(DOUBLE_QUOTE_REGEX, '""') + '"';
220
220
  }
221
+
222
+ /**
223
+ * 一重引用符をエスケープするための正規表現です。
224
+ */
225
+ const SINGLE_QUOTE_REGEX = /'/g;
226
+
227
+ /**
228
+ * 文字列を SQL のリテラル文字列として安全にエスケープします。
229
+ *
230
+ * 一重引用符を二重にすることでエスケープを行い、全体を一重引用符で囲みます。
231
+ *
232
+ * @param value エスケープする文字列です。
233
+ * @returns エスケープ済みのリテラル文字列を返します。
234
+ */
235
+ export function literal(value: string): string {
236
+ return "'" + value.replace(SINGLE_QUOTE_REGEX, "''") + "'";
237
+ }
package/src/sql.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { empty, join, raw, Sql, ident } from "./core.js";
1
+ import { empty, join, raw, Sql, ident, literal } from "./core.js";
2
2
 
3
3
  namespace sql {
4
4
  /**
@@ -57,6 +57,11 @@ const sql = /*#__PURE__*/ Object.assign(
57
57
  * 識別子(テーブル名等)を安全にエスケープするための関数です。
58
58
  */
59
59
  ident,
60
+
61
+ /**
62
+ * 文字列を安全にエスケープするための関数です。
63
+ */
64
+ literal,
60
65
  } as const,
61
66
  );
62
67