@platformatic/sql-json-schema-mapper 0.6.1 → 0.8.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.
- package/.nyc_output/{8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef.json → 77a51ed1-28eb-4f3a-81ac-882440355c34.json} +1 -1
- package/.nyc_output/{d0b88887-f0a9-4dd3-8907-67197d76b283.json → e67c9e41-1f24-460e-9d74-6a0d2ffd0c2f.json} +0 -0
- package/.nyc_output/processinfo/77a51ed1-28eb-4f3a-81ac-882440355c34.json +1 -0
- package/.nyc_output/processinfo/e67c9e41-1f24-460e-9d74-6a0d2ffd0c2f.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/index.js +4 -0
- package/package.json +5 -5
- package/test/helper.js +5 -0
- package/test/simple.test.js +15 -2
- package/.nyc_output/processinfo/8bb1690a-4b68-4b2f-b5b4-d07f1c6653ef.json +0 -1
- package/.nyc_output/processinfo/d0b88887-f0a9-4dd3-8907-67197d76b283.json +0 -1
|
@@ -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":
|
|
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"}}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"parent":"e67c9e41-1f24-460e-9d74-6a0d2ffd0c2f","pid":63727,"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":1669240052905,"ppid":63725,"coverageFilename":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/.nyc_output/77a51ed1-28eb-4f3a-81ac-882440355c34.json","externalId":"test/simple.test.js","uuid":"77a51ed1-28eb-4f3a-81ac-882440355c34","files":["/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"parent":null,"pid":63725,"argv":["/Users/matteo/.nvm/versions/node/v16.17.0/bin/node","/Users/matteo/Repositories/platformatic/node_modules/.pnpm/tap@16.3.1/node_modules/tap/bin/run.js","test/simple.test.js"],"execArgv":[],"cwd":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper","time":1669240052464,"ppid":63719,"coverageFilename":"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/.nyc_output/e67c9e41-1f24-460e-9d74-6a0d2ffd0c2f.json","externalId":"","uuid":"e67c9e41-1f24-460e-9d74-6a0d2ffd0c2f","files":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"processes":{"
|
|
1
|
+
{"processes":{"77a51ed1-28eb-4f3a-81ac-882440355c34":{"parent":"e67c9e41-1f24-460e-9d74-6a0d2ffd0c2f","externalId":"test/simple.test.js","children":[]},"e67c9e41-1f24-460e-9d74-6a0d2ffd0c2f":{"parent":null,"children":["77a51ed1-28eb-4f3a-81ac-882440355c34"]}},"files":{"/Users/matteo/Repositories/platformatic/packages/sql-json-schema-mapper/index.js":["77a51ed1-28eb-4f3a-81ac-882440355c34"]},"externalIds":{"test/simple.test.js":{"root":"77a51ed1-28eb-4f3a-81ac-882440355c34","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.
|
|
3
|
+
"version": "0.8.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/
|
|
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/
|
|
13
|
+
"url": "https://github.com/platformatic/platformatic/issues"
|
|
14
14
|
},
|
|
15
|
-
"homepage": "https://github.com/
|
|
15
|
+
"homepage": "https://github.com/platformatic/platformatic#readme",
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@platformatic/sql-mapper": "0.
|
|
17
|
+
"@platformatic/sql-mapper": "0.8.0",
|
|
18
18
|
"fastify": "^4.6.0",
|
|
19
19
|
"snazzy": "^9.0.0",
|
|
20
20
|
"standard": "^17.0.0",
|
package/test/helper.js
CHANGED
package/test/simple.test.js
CHANGED
|
@@ -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":[]}
|