Есть модуль содержащий методы, и не содержащий не одного объявленного или инициализированной глобально переменной.
Есть механизм добавления свойств объекту Object.defineProperty.
Вопрос: можно ли(о правильности речь не идет) механизм Object.defineProperty использовать для добавления свойств к самому модулю (ведь при подключении модуля, он фактически становится объявленным объектом/переменной)?
Для ES Modules я не знаю точно что там как устроено, но для commonjs вполне себе можете. Это один из способов защитить экспорт от изменения в другом модуле.
// foo.js
Object.defineProperty(exports, 'bar', {
get: () => 1,
configurable: false
})