{ "id": "141856", "key": "AC-3293", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false }, "project": { "id": "12217", "key": "AC", "name": "Appcelerator - INBOX", "projectCategory": { "id": "10000", "description": "", "name": "Customer Service" } }, "resolution": { "id": "3", "description": "The problem is a duplicate of an existing issue.", "name": "Duplicate" }, "resolutiondate": "2014-12-18T15:52:50.000+0000", "created": "2014-12-18T10:01:10.000+0000", "labels": [ "alloy", "config.json" ], "versions": [], "issuelinks": [], "assignee": { "name": "rtlechuga", "key": "rtlechuga", "displayName": "Radamantis Torres-Lechuga", "active": false, "timeZone": "Asia/Dubai" }, "updated": "2016-03-08T07:57:42.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "14544", "name": "Alloy", "description": "Please enter tickets related to the Alloy here." } ], "description": "Currently, the merge between different targets (by environment, deploy-type etc) within the same {{config.json}} as well as the merge of the app-level {{config.json}} and the one of the selected theme is shallow.\r\n\r\nI'd like the merge to be deep.\r\n\r\nh1. Use case\r\n\r\n*app/config.json*\r\n{code:json}\r\n{\r\n \"global\": {\r\n \"colors\": {\r\n \"dark\": \"red\"\r\n \"light\": \"white\"\r\n }\r\n },\r\n \"os:ios\": {\r\n \"colors\": {\r\n \"dark\": \"blue\"\r\n }\r\n }\r\n}\r\n{code}\r\n\r\n*app/themes/mine/config.json*\r\n{code:json}\r\n{\r\n \"os:ios\": {\r\n \"colors\": {\r\n \"dark\": \"green\"\r\n }\r\n }\r\n}\r\n{code}\r\n\r\nh1. Current result\r\n\r\n*Resources/iphone/alloy/CFG.js*\r\n{code}\r\nmodule.exports = {\r\n \"colors\": {\r\n \"dark\": \"green\"\r\n }\r\n};\r\n{code}\r\n\r\nh1. Desired result\r\n\r\n*Resources/iphone/alloy/CFG.js*\r\n{code}\r\nmodule.exports = {\r\n \"colors\": {\r\n \"light\": \"white\",\r\n \"dark\": \"green\"\r\n }\r\n};\r\n{code}", "attachment": [], "flagged": false, "summary": "Alloy: Project Configuration File should be deep-merged", "creator": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": "master", "comment": { "comments": [ { "id": "337004", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Duplicates ALOY-1199", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-12-18T15:52:50.000+0000", "updated": "2014-12-18T15:52:50.000+0000" }, { "id": "337006", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Had to read ALOY-1199 3 times before I saw it, but indeed... Duplicate, but very much wanted.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-12-18T16:01:50.000+0000", "updated": "2014-12-18T16:01:50.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }