open-api
open-api copied to clipboard
[enhancement] openapi-response-validator: native ESM node modules default export not working as intended
Context
- openapi-response-validator version: 12.1.3
- Node version: 18.12.1
- Package type: module (native node ESM ending in
.js
)
Bug
import OpenAPIResponseValidator from 'openapi-response-validator'
const validator = new OpenAPIResponseValidator({ responses: { }, components: {}})
// throws "OpenAPIResponseValidator is not a constructor"
// because OpenAPIResponseValidator === { __esModule: true, default: function OpenAPIResponseValidator () {}}
Temp fixes
(clunky, TS types intellisense no longer working in VS Code)
import OpenAPIResponseValidator from 'openapi-response-validator'
const validator = new OpenAPIResponseValidator.default({ responses: { }, components: {}})
or (in generated code, not clean but working) Replace following statements
exports.__esModule = true
exports["default"] = OpenAPIResponseValidator
with
OpenAPIResponseValidator.default = OpenAPIResponseValidator
OpenAPIResponseValidator.__esModule = true
module.exports = OpenAPIResponseValidator
Solution
Provide different entrypoints in dist
and expose them to the relevant environments using package.json
main
, module
and exports
fields. Alternatively, manually wrap output in a UMD wrapper