summaryrefslogtreecommitdiff
path: root/dev/schema-validate.js
diff options
context:
space:
mode:
authorDarius Jahandarie <djahandarie@gmail.com>2023-11-08 03:11:35 +0900
committerDarius Jahandarie <djahandarie@gmail.com>2023-11-08 03:23:17 +0900
commit0f4d36938fd0d844f548aa5a7f7e7842df8dfb41 (patch)
tree5b6be3620a557d0b9177047003f6d742d9d2a32d /dev/schema-validate.js
parentef79eab44bfd000792c610b968b5ceefd41e76a0 (diff)
Switch to vitest for ESM support; other fixes
Diffstat (limited to 'dev/schema-validate.js')
-rw-r--r--dev/schema-validate.js60
1 files changed, 3 insertions, 57 deletions
diff --git a/dev/schema-validate.js b/dev/schema-validate.js
index 1d7607b7..fbd6b06a 100644
--- a/dev/schema-validate.js
+++ b/dev/schema-validate.js
@@ -16,21 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-const fs = require('fs');
-const {performance} = require('perf_hooks');
-const {VM} = require('./vm');
-
-const vm = new VM();
-vm.execute([
- 'js/core.js',
- 'js/general/cache-map.js',
- 'js/data/json-schema.js'
-]);
-const JsonSchema = vm.get('JsonSchema');
+import Ajv from 'ajv';
+import {JsonSchema} from '../ext/js/data/json-schema.js';
class JsonSchemaAjv {
constructor(schema) {
- const Ajv = require('ajv');
const ajv = new Ajv({
meta: false,
strictTuples: false,
@@ -49,53 +39,9 @@ class JsonSchemaAjv {
}
}
-function createJsonSchema(mode, schema) {
+export function createJsonSchema(mode, schema) {
switch (mode) {
case 'ajv': return new JsonSchemaAjv(schema);
default: return new JsonSchema(schema);
}
}
-
-function main() {
- const args = process.argv.slice(2);
- if (args.length < 2) {
- console.log([
- 'Usage:',
- ' node schema-validate [--ajv] <schema-file-name> <data-file-names>...'
- ].join('\n'));
- return;
- }
-
- let mode = null;
- if (args[0] === '--ajv') {
- mode = 'ajv';
- args.splice(0, 1);
- }
-
- const schemaSource = fs.readFileSync(args[0], {encoding: 'utf8'});
- const schema = JSON.parse(schemaSource);
-
- for (const dataFileName of args.slice(1)) {
- const start = performance.now();
- try {
- console.log(`Validating ${dataFileName}...`);
- const dataSource = fs.readFileSync(dataFileName, {encoding: 'utf8'});
- const data = JSON.parse(dataSource);
- createJsonSchema(mode, schema).validate(data);
- const end = performance.now();
- console.log(`No issues detected (${((end - start) / 1000).toFixed(2)}s)`);
- } catch (e) {
- const end = performance.now();
- console.log(`Encountered an error (${((end - start) / 1000).toFixed(2)}s)`);
- console.warn(e);
- }
- }
-}
-
-
-if (require.main === module) { main(); }
-
-
-module.exports = {
- createJsonSchema
-};