When installing orval and attempting to simply run it, I get this error:
Error compiling schema, function code: const schema16 = scope.schema[10];return function validate14(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if((!(data && typeof data == "object" && !Array.isArray(data))) && (data !== null)){const err0 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: schema16.type},message:"must be object,null"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data && typeof data == "object" && !Array.isArray(data)){for(const key0 in data){if(!(key0 === "keyedBy")){const err1 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.keyedBy !== undefined){if(typeof data.keyedBy !== "string"){const err2 = {instancePath:instancePath+"/keyedBy",schemaPath:"#/properties/keyedBy/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}}if(errors > 0){const emErrors0 = {"type":[]};for(const err3 of vErrors){if(((((({"str":"err3"}.keyword !== "errorMessage") && (!{"str":"err3"}.emUsed)) && ({"str":"err3"}.instancePath === instancePath)) && ({"str":"err3"}.keyword in {"str":"emErrors0"})) && ({"str":"err3"}.schemaPath.indexOf("#") === 0)) && (/^\/[^\/]*$/.test({"str":"err3"}.schemaPath.slice(1)))){{"str":"emErrors0"}[{"str":"err3"}.keyword].push({"str":"err3"});{"str":"err3"}.emUsed = true;}}for(const key1 in emErrors0){if({"str":"emErrors0"}[{"str":"key1"}].length){if(vErrors === null){vErrors = [{"str":"err4"}];}else {vErrors.push({"str":"err4"});}errors++;}}const emErrs0 = [];for(const err5 of vErrors){if(!{"str":"err5"}.emUsed){{"str":"emErrs0"}.push({"str":"err5"});}}vErrors = emErrs0;errors = {"str":"emErrs0"}.length;}validate14.errors = vErrors;return errors === 0;}
~/node_modules/@stoplight/spectral-core/node_modules/ajv/dist/compile/index.js:125
throw e;
^
SyntaxError: Unexpected token ':'
at new Function (<anonymous>)
at Ajv.compileSchema (~/node_modules/@stoplight/spectral-core/node_modules/ajv/dist/compile/index.js:92:30)
at Ajv._compileSchemaEnv (~/node_modules/@stoplight/spectral-core/node_modules/ajv/dist/core.js:473:37)
at Ajv.compile (~/node_modules/@stoplight/spectral-core/node_modules/ajv/dist/core.js:160:38)
at createRulesetFunction (~/node_modules/@stoplight/spectral-core/dist/ruleset/function.js:68:80)
at Object.<anonymous> (~/node_modules/@stoplight/spectral-functions/dist/alphabetical.js:30:61)
at Module._compile (node:internal/modules/cjs/loader:1546:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1691:10)
at Module.load (node:internal/modules/cjs/loader:1317:32)
at Module._load (node:internal/modules/cjs/loader:1127:12)
I replaced the path to node_modules with ~ just so my directory structure wasn't included but otherwise left it the same.
running on a mac, with bun, in a vite, typescript, react project.
I have tried adding a orval.config.ts, and swapping between it being .ts and .js and tried with no config. Both give the same result. Also tried bunx orval and also added it as a script in package.json "orval": "orval --config ./orval.config.ts".
I found https://github.com/stoplightio/spectral/issues/2693 which seems to be referencing basically the same issue but directly related to stoplightio/spectral which orval relies on. Going to try downgrading orval further but seemed to have the issue on any 7. package version.
Any help is appreciated.
For now, there is no fix for this issue. You need to install the latest version of AJV dependency as Orval is still using an old version.
For me, npm i -D ajv@latest did the trick
Check this related issue for the fix : https://github.com/orval-labs/orval/issues/1454
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With