@platformatic/sql-json-schema-mapper 0.6.1 → 0.7.0

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.
@@ -1 +1 @@
1
- {"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js":{"path":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js","statementMap":{"0":{"start":{"line":57,"column":17},"end":{"line":57,"column":30}},"1":{"start":{"line":58,"column":21},"end":{"line":58,"column":23}},"2":{"start":{"line":59,"column":19},"end":{"line":59,"column":21}},"3":{"start":{"line":60,"column":2},"end":{"line":79,"column":3}},"4":{"start":{"line":61,"column":18},"end":{"line":61,"column":30}},"5":{"start":{"line":62,"column":17},"end":{"line":62,"column":55}},"6":{"start":{"line":72,"column":4},"end":{"line":74,"column":5}},"7":{"start":{"line":73,"column":6},"end":{"line":73,"column":49}},"8":{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},"9":{"start":{"line":77,"column":6},"end":{"line":77,"column":36}},"10":{"start":{"line":80,"column":2},"end":{"line":87,"column":3}},"11":{"start":{"line":90,"column":0},"end":{"line":90,"column":70}}},"fnMap":{"0":{"name":"mapSQLTypeToOpenAPIType","decl":{"start":{"line":3,"column":9},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":43},"end":{"line":54,"column":1}},"line":3},"1":{"name":"mapSQLEntityToJSONSchema","decl":{"start":{"line":56,"column":9},"end":{"line":56,"column":33}},"loc":{"start":{"line":56,"column":43},"end":{"line":88,"column":1}},"line":56}},"branchMap":{"0":{"loc":{"start":{"line":72,"column":4},"end":{"line":74,"column":5}},"type":"if","locations":[{"start":{"line":72,"column":4},"end":{"line":74,"column":5}},{"start":{"line":72,"column":4},"end":{"line":74,"column":5}}],"line":72},"1":{"loc":{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},{"start":{"line":75,"column":4},"end":{"line":78,"column":5}}],"line":75},"2":{"loc":{"start":{"line":75,"column":8},"end":{"line":75,"column":46}},"type":"binary-expr","locations":[{"start":{"line":75,"column":8},"end":{"line":75,"column":25}},{"start":{"line":75,"column":29},"end":{"line":75,"column":46}}],"line":75}},"s":{"0":1,"1":1,"2":1,"3":1,"4":4,"5":4,"6":4,"7":2,"8":4,"9":1,"10":1,"11":1},"f":{"0":4,"1":1},"b":{"0":[2,2],"1":[1,3],"2":[4,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e25ecbcff5f52d9503b9db16833905cfe6c51dea","contentHash":"4e04633579c15fbb5963749ce418746fc3eaf04a1b3fd963d95dc960df49ed0e"}}
1
+ {"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js":{"path":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js","statementMap":{"0":{"start":{"line":57,"column":17},"end":{"line":57,"column":30}},"1":{"start":{"line":58,"column":21},"end":{"line":58,"column":23}},"2":{"start":{"line":59,"column":19},"end":{"line":59,"column":21}},"3":{"start":{"line":60,"column":2},"end":{"line":83,"column":3}},"4":{"start":{"line":61,"column":18},"end":{"line":61,"column":30}},"5":{"start":{"line":62,"column":17},"end":{"line":62,"column":55}},"6":{"start":{"line":72,"column":4},"end":{"line":74,"column":5}},"7":{"start":{"line":73,"column":6},"end":{"line":73,"column":49}},"8":{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},"9":{"start":{"line":77,"column":6},"end":{"line":77,"column":36}},"10":{"start":{"line":84,"column":2},"end":{"line":91,"column":3}},"11":{"start":{"line":94,"column":0},"end":{"line":94,"column":70}}},"fnMap":{"0":{"name":"mapSQLTypeToOpenAPIType","decl":{"start":{"line":3,"column":9},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":43},"end":{"line":54,"column":1}},"line":3},"1":{"name":"mapSQLEntityToJSONSchema","decl":{"start":{"line":56,"column":9},"end":{"line":56,"column":33}},"loc":{"start":{"line":56,"column":43},"end":{"line":92,"column":1}},"line":56}},"branchMap":{"0":{"loc":{"start":{"line":72,"column":4},"end":{"line":74,"column":5}},"type":"if","locations":[{"start":{"line":72,"column":4},"end":{"line":74,"column":5}},{"start":{"line":72,"column":4},"end":{"line":74,"column":5}}],"line":72},"1":{"loc":{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},{"start":{"line":75,"column":4},"end":{"line":78,"column":5}}],"line":75},"2":{"loc":{"start":{"line":75,"column":8},"end":{"line":75,"column":46}},"type":"binary-expr","locations":[{"start":{"line":75,"column":8},"end":{"line":75,"column":25}},{"start":{"line":75,"column":29},"end":{"line":75,"column":46}}],"line":75}},"s":{"0":1,"1":1,"2":1,"3":1,"4":4,"5":4,"6":4,"7":2,"8":4,"9":1,"10":1,"11":1},"f":{"0":4,"1":1},"b":{"0":[2,2],"1":[1,3],"2":[4,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fed278c48ca0ed9847356e48af19cb304a81df74","contentHash":"2dc11762e41ce65e7eaf09cad100713a4a81a849ed47a4605d680cd7fbbede02"}}
@@ -0,0 +1 @@
1
+ {"parent":null,"pid":70081,"argv":["/Users/matteo/.nvm/versions/node/v16.17.0/bin/node","/Users/matteo/Repositories/platformatic/node_modules/.pnpm/tap@16.3.0/node_modules/tap/bin/run.js","test/simple.test.js"],"execArgv":[],"cwd":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper","time":1668505903261,"ppid":70075,"coverageFilename":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/.nyc_output/9197e367-8f93-4327-b88d-065b0d2086be.json","externalId":"","uuid":"9197e367-8f93-4327-b88d-065b0d2086be","files":[]}
@@ -0,0 +1 @@
1
+ {"parent":"9197e367-8f93-4327-b88d-065b0d2086be","pid":70083,"argv":["/Users/matteo/.nvm/versions/node/v16.17.0/bin/node","/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/test/simple.test.js"],"execArgv":[],"cwd":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper","time":1668505903619,"ppid":70081,"coverageFilename":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/.nyc_output/f49b5f59-1b8a-4ec3-9304-1ab005b9b509.json","externalId":"test/simple.test.js","uuid":"f49b5f59-1b8a-4ec3-9304-1ab005b9b509","files":["/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js"]}
@@ -1 +1 @@
1
- {"processes":{"8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef":{"parent":"d0b88887-f0a9-4dd3-8907-67197d76b283","externalId":"test/simple.test.js","children":[]},"d0b88887-f0a9-4dd3-8907-67197d76b283":{"parent":null,"children":["8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef"]}},"files":{"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js":["8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef"]},"externalIds":{"test/simple.test.js":{"root":"8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef","children":[]}}}
1
+ {"processes":{"9197e367-8f93-4327-b88d-065b0d2086be":{"parent":null,"children":["f49b5f59-1b8a-4ec3-9304-1ab005b9b509"]},"f49b5f59-1b8a-4ec3-9304-1ab005b9b509":{"parent":"9197e367-8f93-4327-b88d-065b0d2086be","externalId":"test/simple.test.js","children":[]}},"files":{"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js":["f49b5f59-1b8a-4ec3-9304-1ab005b9b509"]},"externalIds":{"test/simple.test.js":{"root":"f49b5f59-1b8a-4ec3-9304-1ab005b9b509","children":[]}}}
package/index.js CHANGED
@@ -76,6 +76,10 @@ function mapSQLEntityToJSONSchema (entity) {
76
76
  // we skip the primary key for creation
77
77
  required.push(field.camelcase)
78
78
  }
79
+ /* istanbul ignore next */
80
+ if (field.enum) {
81
+ properties[field.camelcase].enum = field.enum
82
+ }
79
83
  }
80
84
  return {
81
85
  $id: entity.name,
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@platformatic/sql-json-schema-mapper",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Map SQL entity to JSON schema",
5
5
  "main": "index.js",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "git+https://github.com/plaformatic/platformatic.git"
8
+ "url": "git+https://github.com/platformatic/platformatic.git"
9
9
  },
10
10
  "author": "Matteo Collina <hello@matteocollina.com>",
11
11
  "license": "Apache-2.0",
12
12
  "bugs": {
13
- "url": "https://github.com/plaformatic/platformatic/issues"
13
+ "url": "https://github.com/platformatic/platformatic/issues"
14
14
  },
15
- "homepage": "https://github.com/plaformatic/platformatic#readme",
15
+ "homepage": "https://github.com/platformatic/platformatic#readme",
16
16
  "devDependencies": {
17
- "@platformatic/sql-mapper": "0.6.1",
17
+ "@platformatic/sql-mapper": "0.7.0",
18
18
  "fastify": "^4.6.0",
19
19
  "snazzy": "^9.0.0",
20
20
  "standard": "^17.0.0",
package/test/helper.js CHANGED
@@ -69,4 +69,9 @@ module.exports.clear = async function (db, sql) {
69
69
  await db.query(sql`DROP TABLE graphs`)
70
70
  } catch {
71
71
  }
72
+
73
+ try {
74
+ await db.query(sql`DROP Type pagetype`)
75
+ } catch {
76
+ }
72
77
  }
@@ -3,7 +3,7 @@
3
3
  const t = require('tap')
4
4
  const sqlMapper = require('@platformatic/sql-mapper')
5
5
  const fastify = require('fastify')
6
- const { clear, connInfo, isSQLite, isMariaDB } = require('./helper')
6
+ const { clear, connInfo, isSQLite, isMariaDB, isPg } = require('./helper')
7
7
  const { mapSQLEntityToJSONSchema } = require('..')
8
8
  const { test } = t
9
9
 
@@ -15,12 +15,22 @@ async function createBasicPages (db, sql) {
15
15
  metadata JSON,
16
16
  description TEXT
17
17
  );`)
18
+ } else if (isPg) {
19
+ await db.query(sql`CREATE TYPE pagetype as enum ('blank', 'non-blank');
20
+ CREATE TABLE pages (
21
+ id SERIAL PRIMARY KEY,
22
+ title VARCHAR(42) NOT NULL,
23
+ metadata JSON,
24
+ description TEXT,
25
+ type pagetype
26
+ );`)
18
27
  } else {
19
28
  await db.query(sql`CREATE TABLE pages (
20
29
  id SERIAL PRIMARY KEY,
21
30
  title VARCHAR(42) NOT NULL,
22
31
  metadata JSON,
23
- description TEXT
32
+ description TEXT,
33
+ type ENUM ('blank', 'non-blank')
24
34
  );`)
25
35
  }
26
36
  }
@@ -59,5 +69,8 @@ test('simple db, simple rest API', async (t) => {
59
69
  t.same(pageJsonSchema.properties.metadata, { type: 'object', additionalProperties: true, nullable: true })
60
70
  }
61
71
  t.same(pageJsonSchema.required, ['title'])
72
+ if (!isSQLite) {
73
+ t.same(pageJsonSchema.properties.type, { type: 'string', nullable: true, enum: ['blank', 'non-blank'] })
74
+ }
62
75
  }
63
76
  })
@@ -1 +0,0 @@
1
- {"parent":"d0b88887-f0a9-4dd3-8907-67197d76b283","pid":36105,"argv":["/Users/matteo/.nvm/versions/node/v18.12.0/bin/node","/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/test/simple.test.js"],"execArgv":[],"cwd":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper","time":1668007514117,"ppid":36104,"coverageFilename":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/.nyc_output/8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef.json","externalId":"test/simple.test.js","uuid":"8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef","files":["/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js"]}
@@ -1 +0,0 @@
1
- {"parent":null,"pid":36104,"argv":["/Users/matteo/.nvm/versions/node/v18.12.0/bin/node","/Users/matteo/Repositories/platformatic/node_modules/.pnpm/tap@16.3.0/node_modules/tap/bin/run.js","test/simple.test.js"],"execArgv":[],"cwd":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper","time":1668007513757,"ppid":36098,"coverageFilename":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/.nyc_output/d0b88887-f0a9-4dd3-8907-67197d76b283.json","externalId":"","uuid":"d0b88887-f0a9-4dd3-8907-67197d76b283","files":[]}