static export()

in src/js/utils/RuleExporter.js [130:167]


  static export(
    rules: Immutable.Map<string, Rule>,
    settings: TransformationSettings
  ): JSONFormat {
    let exported = {
      // We are NOT using ElectronRemote.app.getName() because it defaults to
      // the 'productName' field in the package.json file
      // (Facebook Instant Articles Builder) and we are looking for 'name'
      generator_name: GENERATOR_NAME,
      generator_version: ElectronRemote.app.getVersion(),
      rules: [
        { class: 'TextNodeRule' },
        ...Array.from(
          rules
            .filter(rule => RuleUtils.isValid(rule))
            .map((rule: Rule): ?RuleJSON => this.createJSONFromRule(rule))
            .filter(Boolean)
            .values()
        ),
      ],
    };

    if (settings && settings.styleName) {
      exported = { style_name: settings.styleName, ...exported };
    }

    const ads = this.createAdsJSON(settings);
    if (ads) {
      exported = { ads, ...exported };
    }

    const analytics = this.createAnalyticsJSON(settings);
    if (analytics) {
      exported = { analytics, ...exported };
    }

    return exported;
  }