Выполните конфигурацию JS (Объект) перед анализом в JSON - PullRequest
0 голосов
/ 24 сентября 2019

Как выполнить функции в файле JavaScript (конфигурации для моего внутреннего сервера) перед анализом в JSON?

Пример: config.js

module.exports = {
    structure_layout: {
        BUILDING: "BUILDING",
        FLOOR: "FLOOR",
        ROOM: "ROOM",
    },
    structure: {
        HOUSE: {
            type: function () {
                return this.structure_layout.BUILDING
            }
        },
        FLAT: {
            type: function () {
                return this.structure_layout.FLOOR
            }
        },
    }
};

Ожидается config.json после разбора:

{
  "structure_layout": {
    "BUILDING": "BUILDING",
    "FLOOR": "FLOOR",
    "ROOM": "ROOM"
  },
  "structure": {
    "HOUSE": {
      "type": "BUILDING"
    },
    "FLAT": {
      "type": "FLOOR"
    }
  }
}

Прямо сейчас с JSON.stringify Я получаю пустые type атрибуты

Возможно ли это?

Есть ли другой способопределить js версию конфигурации без использования функций с таким же результатом?

1 Ответ

1 голос
/ 25 сентября 2019

Вы можете просто запустить код перед назначением module.exports.Вам не нужны функции, просто присвойте то, что вы хотите, свойствам.

const config = {
    structure_layout: {
        BUILDING: "BUILDING",
        FLOOR: "FLOOR",
        ROOM: "ROOM",
    },
    structure: {}
};

config.structure.HOUSE = {type: config.structure_layout.BUILDING};
config.structure.FLAT = {type: config.structure_layout.FLOOR};

module.exports = config;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...