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;
}