diff --git a/config.js b/config.js index 07f21867..61914b71 100644 --- a/config.js +++ b/config.js @@ -350,4 +350,11 @@ config.enableSwaggerHttps = false */ config.swaggerHost = undefined +/** + * If set to true, models will be loaded as esm modules (export default) + * - options: 'true', 'false' (default: 'false') + * @type {boolean} + */ +config.esm = false + module.exports = config diff --git a/docs/configuration.md b/docs/configuration.md index 3164eee3..99ae056a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -487,3 +487,13 @@ config.enableSwaggerHttps = false */ config.swaggerHost = undefined ``` + + ## esm +```javascript +/** + * If set to true, models will be loaded as esm modules (export default) + * - options: 'true', 'false' (default: 'false') + * @type {boolean} + */ +config.esm = false +``` diff --git a/utilities/model-generator.js b/utilities/model-generator.js index e7f993ea..d0ea138e 100644 --- a/utilities/model-generator.js +++ b/utilities/model-generator.js @@ -47,7 +47,8 @@ module.exports = function(mongoose, logger, config) { const ext = path.extname(file) if (ext === '.js') { const modelName = path.basename(file, '.js') - const schema = require(modelPath + '/' + modelName)(mongoose) + const schemaPrecursor = require(modelPath + '/' + modelName) + const schema = (config.esm ? schemaPrecursor.default : schemaPrecursor)(mongoose) // EXPL: Add text index if enabled if (config.enableTextSearch) { diff --git a/website/versioned_docs/version-2.0.x/configuration.md b/website/versioned_docs/version-2.0.x/configuration.md index 2f55350b..e6cdeb95 100644 --- a/website/versioned_docs/version-2.0.x/configuration.md +++ b/website/versioned_docs/version-2.0.x/configuration.md @@ -486,3 +486,13 @@ config.enableSwaggerHttps = false */ config.swaggerHost = undefined ``` + + ## esm +```javascript +/** + * If set to true, models will be loaded as esm modules (export default) + * - options: 'true', 'false' (default: 'false') + * @type {boolean} + */ +config.esm = false +```