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 +20 -9
- package/out/cli.js.map +2 -2
- package/package.json +1 -1
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
|
|
243335
|
-
|
|
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);
|