sql-typechecker 0.0.19 → 0.0.22

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/out/cli.js CHANGED
@@ -243330,10 +243330,13 @@ CREATE FUNCTION ${f.name.name}(${argsForCreateFunction}) RETURNS ${f.multipleRow
243330
243330
  $$${f.code}$$ LANGUAGE ${f.language};
243331
243331
  `;
243332
243332
  const funcInvocation = `${f.name.name}(${f.inputs.map((inp, i) => "$" + (i + 1) + "::" + showTypeDroppingNullable(inp.type))})${asExpression}`;
243333
- const deserializationAndReturn = f.returns.kind === "void" ? "" : `
243334
- const rows = res.rows.map(row => ${genDeserialization(f.returns, "row")});
243335
- return rows${f.multipleRows ? "" : "[0]"};
243336
- `;
243333
+ const deserializationAndReturn = f.returns.kind === "void" ? "" : f.multipleRows === true ? `return res.rows.map(row => ${genDeserialization(f.returns, "row")});` : `
243334
+ const row = res.rows[0];
243335
+ if (row.some(f => f !== null)){
243336
+ return ${genDeserialization(f.returns, "row")}
243337
+ } else {
243338
+ return undefined;
243339
+ }`;
243337
243340
  return `
243338
243341
  export async function ${f.name.name}(pool: Pool, args: ${argsType})
243339
243342
  : Promise<${returnTypeAsString}>{
@@ -243390,15 +243393,15 @@ ${f.name?.name}?: ${showTypeAsTypescriptType(f.type)}`).join(",");
243390
243393
  const insert = `
243391
243394
  export async function insert(pool: Pool, row: {${inputRow}}): Promise<{${primaryKeySingleCol.name.name}: ${showTypeAsTypescriptType(primaryKeySingleCol.type)}} | null>{
243392
243395
 
243393
- const providedFields = Object.keys(row);
243396
+ const providedFields = Object.keys(row) as (keyof typeof row)[];
243394
243397
 
243395
243398
  const res = await pool.query({
243396
243399
  text: "INSERT INTO ${showQName(table.name)} (" + (providedFields.join(", ")) + ") VALUES (" + providedFields.map((_, i) => "$" + (i + 1)).join(", ") +") RETURNING ${primaryKeySingleCol.name.name}",
243397
243400
  values: providedFields.map(f => row[f]),
243398
243401
  rowMode: "array",
243399
243402
  });
243400
- if (res && res[0]){
243401
- return {${primaryKeySingleCol.name.name}: res[0][0]};
243403
+ if (res && res.rows[0]){
243404
+ return {${primaryKeySingleCol.name.name}: res.rows[0][0]};
243402
243405
  } else {
243403
243406
  return null;
243404
243407
  }
@@ -243408,12 +243411,12 @@ ${f.name?.name}?: ${showTypeAsTypescriptType(f.type)}`).join(",");
243408
243411
  const update = `
243409
243412
  export async function update(pool: Pool, pk: {${primaryKeySingleCol.name.name}: ${showTypeAsTypescriptType(primaryKeySingleCol.type)}}, row: {${inputRowForUpdate}}): Promise<null>{
243410
243413
 
243411
- const providedFields = Object.keys(row);
243414
+ const providedFields = Object.keys(row) as (keyof typeof row)[] ;
243412
243415
  if (providedFields.length === 0){ return null; }
243413
243416
 
243414
243417
  await pool.query({
243415
243418
  text: "UPDATE ${showQName(table.name)} SET " + providedFields.map((f, i) => f + " = $" + (i + 2)).join(", ") + " WHERE ${primaryKeySingleCol.name.name} = $1",
243416
- values: [pk.${primaryKeySingleCol.name.name}].concat(providedFields.map(f => row[f])),
243419
+ values: ([pk.${primaryKeySingleCol.name.name}] as any[]).concat(providedFields.map(f => row[f])),
243417
243420
  rowMode: "array",
243418
243421
  });
243419
243422
  return null;
@@ -243496,6 +243499,12 @@ async function go() {
243496
243499
  }
243497
243500
  await fs.appendFile(domainFile, `
243498
243501
  `, "utf-8");
243502
+ const tablesIndexFile = path.format({
243503
+ dir: outDir,
243504
+ name: "tables",
243505
+ ext: ".ts"
243506
+ });
243507
+ await prepOutFile(tablesIndexFile);
243499
243508
  await fs.mkdir(path.join(outDir, "tables"), {recursive: true});
243500
243509
  for (let table of g.tables) {
243501
243510
  const tableOutFile = path.format({
@@ -243507,6 +243516,8 @@ async function go() {
243507
243516
  const text = genCrudOperations(table);
243508
243517
  await fs.appendFile(tableOutFile, mkImportDomainsStatement(g.domains, tableOutFile, domainFile), "utf8");
243509
243518
  await fs.appendFile(tableOutFile, prettier.format(text, {parser: "typescript"}), "utf-8");
243519
+ await fs.appendFile(tablesIndexFile, `export * as ${table.name.name} from "./tables/${table.name.name}";
243520
+ `);
243510
243521
  }
243511
243522
  for (let f of allStatements) {
243512
243523
  const createFunctionStatements = f.statements.filter(isCreateFunctionStatement);