diff options
author | Darius Jahandarie <djahandarie@gmail.com> | 2023-11-08 03:11:35 +0900 |
---|---|---|
committer | Darius Jahandarie <djahandarie@gmail.com> | 2023-11-08 03:23:17 +0900 |
commit | 0f4d36938fd0d844f548aa5a7f7e7842df8dfb41 (patch) | |
tree | 5b6be3620a557d0b9177047003f6d742d9d2a32d /dev/schema-validate.js | |
parent | ef79eab44bfd000792c610b968b5ceefd41e76a0 (diff) |
Switch to vitest for ESM support; other fixes
Diffstat (limited to 'dev/schema-validate.js')
-rw-r--r-- | dev/schema-validate.js | 60 |
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 -}; |