diff --git a/.changeset/three-chairs-move.md b/.changeset/three-chairs-move.md new file mode 100644 index 0000000..ae38b8c --- /dev/null +++ b/.changeset/three-chairs-move.md @@ -0,0 +1,5 @@ +--- +"d1-orm": minor +--- + +Adding insert or replace diff --git a/src/model.ts b/src/model.ts index 5cf89ed..210cae7 100644 --- a/src/model.ts +++ b/src/model.ts @@ -140,7 +140,10 @@ export class Model { /** * @param data The data to insert into the table, as an object with the column names as keys and the values as values. */ - public async InsertOne(data: Partial, orReplace = false): Promise> { + public async InsertOne( + data: Partial, + orReplace = false + ): Promise> { const qt = orReplace ? QueryType.INSERT_OR_REPLACE : QueryType.INSERT; const statement = GenerateQuery(qt, this.tableName, { data }); return this.#D1Orm @@ -152,7 +155,10 @@ export class Model { /** * @param data The data to insert into the table, as an array of objects with the column names as keys and the values as values. */ - public async InsertMany(data: Partial[], orReplace = false): Promise[]> { + public async InsertMany( + data: Partial[], + orReplace = false + ): Promise[]> { const qt = orReplace ? QueryType.INSERT_OR_REPLACE : QueryType.INSERT; const stmts: D1PreparedStatement[] = []; for (const row of data) { diff --git a/test/querybuilder.test.js b/test/querybuilder.test.js index 14b1c0d..cc312c7 100644 --- a/test/querybuilder.test.js +++ b/test/querybuilder.test.js @@ -179,9 +179,9 @@ describe("Query Builder", () => { }); describe(QueryType.INSERT_OR_REPLACE, () => { it("should throw an error if no data is provided", () => { - expect(() => GenerateQuery(QueryType.INSERT_OR_REPLACE, "test")).to.throw( - "Must provide data to insert" - ); + expect(() => + GenerateQuery(QueryType.INSERT_OR_REPLACE, "test") + ).to.throw("Must provide data to insert"); }); it("should throw an error if empty data is provided", () => { expect(() => @@ -192,7 +192,9 @@ describe("Query Builder", () => { const statement = GenerateQuery(QueryType.INSERT_OR_REPLACE, "test", { data: { id: 1 }, }); - expect(statement.query).to.equal("INSERT or REPLACE INTO `test` (id) VALUES (?)"); + expect(statement.query).to.equal( + "INSERT or REPLACE INTO `test` (id) VALUES (?)" + ); expect(statement.bindings.length).to.equal(1); expect(statement.bindings[0]).to.equal(1); });