From 9937fbe57e475cda512ce76d9a9722607ded6751 Mon Sep 17 00:00:00 2001 From: kirsanium Date: Wed, 5 Oct 2022 21:23:21 +0700 Subject: [PATCH] feat: allow comments by removing them --- examples/js/endpoints.yaml | 15 +++++++++------ src/cli.js | 6 ++++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/examples/js/endpoints.yaml b/examples/js/endpoints.yaml index 7d1d09a..92eea52 100644 --- a/examples/js/endpoints.yaml +++ b/examples/js/endpoints.yaml @@ -17,9 +17,12 @@ - path: /v1/collections/:collectionId/categories/count get: - query: >- + query: |- + -- comment SELECT COUNT(DISTINCT s.category_id) AS counter + -- comment2 FROM collections_series cs + -- comment3 JOIN series s ON s.id = cs.series_id WHERE cs.collection_id = :p.collectionId @@ -30,7 +33,7 @@ - path: /v1/categories get_list: - query: >- + query: |- SELECT id , name , name_ru @@ -42,7 +45,7 @@ id: type: integer post: - query: >- + query: |- INSERT INTO categories ( name @@ -67,7 +70,7 @@ - path: /v1/categories/:categoryId get: - query: >- + query: |- SELECT id , name , name_ru @@ -80,7 +83,7 @@ id: type: integer put: - query: >- + query: |- UPDATE categories SET name = :b.name , name_ru = :b.name_ru @@ -89,7 +92,7 @@ , updated_by = :b.user_id WHERE id = :p.categoryId delete: - query: >- + query: |- DELETE FROM categories WHERE id = :p.categoryId diff --git a/src/cli.js b/src/cli.js index e682d04..2796be4 100755 --- a/src/cli.js +++ b/src/cli.js @@ -89,6 +89,8 @@ const createApp = async (destDir, lang) => { fs.copyFileSync(`${__dirname}/templates/app.${ext}`, resultFile) }; +const removeComments = (query) => query.replace(/--.*\n/g, ''); + // "SELECT *\n FROM foo" => "SELECT * FROM foo" const flattenQuery = (query) => query.replace(/\n[ ]*/g, ' '); @@ -142,7 +144,7 @@ const createEndpoints = async (destDir, lang, config) => { queries = Object.values(method.aggregated_queries) } queries.forEach(query => { - const sql = removePlaceholders(flattenQuery(query)); + const sql = removePlaceholders(flattenQuery(removeComments(query))); console.log(`\t${sql}`); }) }); @@ -196,7 +198,7 @@ const createEndpoints = async (destDir, lang, config) => { // "SELECT *\n FROM foo WHERE id = :p.id" => "SELECT * FROM foo WHERE id = :id" "formatQuery": (query) => { - return removePlaceholders(flattenQuery(query)); + return removePlaceholders(flattenQuery(removeComments(query))); }, // (used only with Golang)