MCPcopy Index your code
hub / github.com/Effect-TS/effect / makeCompiler

Function makeCompiler

packages/sql-mssql/src/MssqlClient.ts:465–501  ·  view source on GitHub ↗
(transform?: (_: string) => string)

Source from the content-addressed store, hash-verified

463 * @since 1.0.0
464 */
465export const makeCompiler = (transform?: (_: string) => string) =>
466 Statement.makeCompiler<MssqlCustom>({
467 dialect: "mssql",
468 placeholder(_) {
469 return `@${numberToParamName(_ - 1)}`
470 },
471 onIdentifier: transform ?
472 function(value, withoutTransform) {
473 return withoutTransform ? escape(value) : escape(transform(value))
474 } :
475 escape,
476 onRecordUpdate(placeholders, valueAlias, valueColumns, values, returning) {
477 const returningSql = returning ? returning[0] === "*" ? "OUTPUT INSERTED.* " : `OUTPUT ${returning[0]} ` : ""
478 return [
479 `${returningSql}FROM (values ${placeholders}) AS ${valueAlias}${valueColumns}`,
480 returning ?
481 returning[1].concat(values.flat()) :
482 values.flat()
483 ]
484 },
485 onCustom(type, placeholder) {
486 switch (type.kind) {
487 case "MssqlParam": {
488 return [placeholder(undefined), [type] as any]
489 }
490 }
491 },
492 onInsert(columns, placeholders, values, returning) {
493 const returningSql = returning ? returning[0] === "*" ? " OUTPUT INSERTED.*" : ` OUTPUT ${returning[0]}` : ""
494 return [
495 `(${columns.join(",")})${returningSql} VALUES ${placeholders}`,
496 returning ?
497 returning[1].concat(values.flat()) :
498 values.flat()
499 ]
500 }
501 })
502
503// compiler helpers
504

Callers 1

makeFunction · 0.70

Calls 2

escapeFunction · 0.70
transformInterface · 0.50

Tested by

no test coverage detected