react-native-config-ultimate 0.0.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/gradle.properties +6 -0
  3. package/lib/commonjs/NativeUltimateConfig.js +20 -0
  4. package/lib/commonjs/NativeUltimateConfig.js.map +1 -0
  5. package/lib/commonjs/bin.spec.js +48 -0
  6. package/lib/commonjs/bin.spec.js.map +1 -0
  7. package/lib/commonjs/cli.js +146 -0
  8. package/lib/commonjs/cli.js.map +1 -0
  9. package/lib/commonjs/cli.spec.js +190 -0
  10. package/lib/commonjs/cli.spec.js.map +1 -0
  11. package/lib/commonjs/flatten.js +23 -0
  12. package/lib/commonjs/flatten.js.map +1 -0
  13. package/lib/commonjs/flatten.spec.js +32 -0
  14. package/lib/commonjs/flatten.spec.js.map +1 -0
  15. package/lib/commonjs/index.js +34 -0
  16. package/lib/commonjs/index.js.map +1 -0
  17. package/lib/commonjs/load-env.js +86 -0
  18. package/lib/commonjs/load-env.js.map +1 -0
  19. package/lib/commonjs/load-env.spec.js +257 -0
  20. package/lib/commonjs/load-env.spec.js.map +1 -0
  21. package/lib/commonjs/main.js +36 -0
  22. package/lib/commonjs/main.js.map +1 -0
  23. package/lib/commonjs/main.spec.js +228 -0
  24. package/lib/commonjs/main.spec.js.map +1 -0
  25. package/lib/commonjs/package.json +1 -0
  26. package/lib/commonjs/render-env.js +90 -0
  27. package/lib/commonjs/render-env.js.map +1 -0
  28. package/lib/commonjs/render-env.spec.js +397 -0
  29. package/lib/commonjs/render-env.spec.js.map +1 -0
  30. package/lib/commonjs/resolve-env.js +30 -0
  31. package/lib/commonjs/resolve-env.js.map +1 -0
  32. package/lib/commonjs/resolve-env.spec.js +31 -0
  33. package/lib/commonjs/resolve-env.spec.js.map +1 -0
  34. package/lib/commonjs/templates/ConfigValues.h.handlebars +24 -0
  35. package/lib/commonjs/templates/index.d.ts.handlebars +18 -0
  36. package/lib/commonjs/templates/index.web.js.handlebars +1 -0
  37. package/lib/commonjs/templates/override.js.handlebars +16 -0
  38. package/lib/commonjs/templates/rncu.xcconfig.handlebars +4 -0
  39. package/lib/commonjs/templates/rncu.yaml.handlebars +7 -0
  40. package/lib/commonjs/validate-env.js +63 -0
  41. package/lib/commonjs/validate-env.js.map +1 -0
  42. package/lib/commonjs/validate-env.spec.js +325 -0
  43. package/lib/commonjs/validate-env.spec.js.map +1 -0
  44. package/lib/commonjs/write-env.js +80 -0
  45. package/lib/commonjs/write-env.js.map +1 -0
  46. package/lib/commonjs/write-env.spec.js +115 -0
  47. package/lib/commonjs/write-env.spec.js.map +1 -0
  48. package/lib/module/NativeUltimateConfig.js +16 -0
  49. package/lib/module/NativeUltimateConfig.js.map +1 -0
  50. package/lib/module/bin.spec.js +47 -0
  51. package/lib/module/bin.spec.js.map +1 -0
  52. package/lib/module/cli.js +139 -0
  53. package/lib/module/cli.js.map +1 -0
  54. package/lib/module/cli.spec.js +190 -0
  55. package/lib/module/cli.spec.js.map +1 -0
  56. package/lib/module/flatten.js +18 -0
  57. package/lib/module/flatten.js.map +1 -0
  58. package/lib/module/flatten.spec.js +31 -0
  59. package/lib/module/flatten.spec.js.map +1 -0
  60. package/lib/module/index.js +30 -0
  61. package/lib/module/index.js.map +1 -0
  62. package/lib/module/load-env.js +81 -0
  63. package/lib/module/load-env.js.map +1 -0
  64. package/lib/module/load-env.spec.js +257 -0
  65. package/lib/module/load-env.spec.js.map +1 -0
  66. package/lib/module/main.js +31 -0
  67. package/lib/module/main.js.map +1 -0
  68. package/lib/module/main.spec.js +224 -0
  69. package/lib/module/main.spec.js.map +1 -0
  70. package/lib/module/render-env.js +84 -0
  71. package/lib/module/render-env.js.map +1 -0
  72. package/lib/module/render-env.spec.js +396 -0
  73. package/lib/module/render-env.spec.js.map +1 -0
  74. package/lib/module/resolve-env.js +26 -0
  75. package/lib/module/resolve-env.js.map +1 -0
  76. package/lib/module/resolve-env.spec.js +30 -0
  77. package/lib/module/resolve-env.spec.js.map +1 -0
  78. package/lib/module/templates/ConfigValues.h.handlebars +24 -0
  79. package/lib/module/templates/index.d.ts.handlebars +18 -0
  80. package/lib/module/templates/index.web.js.handlebars +1 -0
  81. package/lib/module/templates/override.js.handlebars +16 -0
  82. package/lib/module/templates/rncu.xcconfig.handlebars +4 -0
  83. package/lib/module/templates/rncu.yaml.handlebars +7 -0
  84. package/lib/module/validate-env.js +59 -0
  85. package/lib/module/validate-env.js.map +1 -0
  86. package/lib/module/validate-env.spec.js +325 -0
  87. package/lib/module/validate-env.spec.js.map +1 -0
  88. package/lib/module/write-env.js +75 -0
  89. package/lib/module/write-env.js.map +1 -0
  90. package/lib/module/write-env.spec.js +115 -0
  91. package/lib/module/write-env.spec.js.map +1 -0
  92. package/lib/typescript/src/NativeUltimateConfig.d.ts +18 -0
  93. package/lib/typescript/src/NativeUltimateConfig.d.ts.map +1 -0
  94. package/lib/typescript/src/bin.spec.d.ts +2 -0
  95. package/lib/typescript/src/bin.spec.d.ts.map +1 -0
  96. package/lib/typescript/src/cli.d.ts +2 -0
  97. package/lib/typescript/src/cli.d.ts.map +1 -0
  98. package/lib/typescript/src/cli.spec.d.ts +14 -0
  99. package/lib/typescript/src/cli.spec.d.ts.map +1 -0
  100. package/lib/typescript/src/flatten.d.ts +8 -0
  101. package/lib/typescript/src/flatten.d.ts.map +1 -0
  102. package/lib/typescript/src/flatten.spec.d.ts +2 -0
  103. package/lib/typescript/src/flatten.spec.d.ts.map +1 -0
  104. package/lib/typescript/src/index.d.ts +6 -0
  105. package/lib/typescript/src/index.d.ts.map +1 -0
  106. package/lib/typescript/src/load-env.d.ts +23 -0
  107. package/lib/typescript/src/load-env.d.ts.map +1 -0
  108. package/lib/typescript/src/load-env.spec.d.ts +6 -0
  109. package/lib/typescript/src/load-env.spec.d.ts.map +1 -0
  110. package/lib/typescript/src/main.d.ts +12 -0
  111. package/lib/typescript/src/main.d.ts.map +1 -0
  112. package/lib/typescript/src/main.spec.d.ts +2 -0
  113. package/lib/typescript/src/main.spec.d.ts.map +1 -0
  114. package/lib/typescript/src/render-env.d.ts +11 -0
  115. package/lib/typescript/src/render-env.d.ts.map +1 -0
  116. package/lib/typescript/src/render-env.spec.d.ts +2 -0
  117. package/lib/typescript/src/render-env.spec.d.ts.map +1 -0
  118. package/lib/typescript/src/resolve-env.d.ts +35 -0
  119. package/lib/typescript/src/resolve-env.d.ts.map +1 -0
  120. package/lib/typescript/src/resolve-env.spec.d.ts +2 -0
  121. package/lib/typescript/src/resolve-env.spec.d.ts.map +1 -0
  122. package/lib/typescript/src/validate-env.d.ts +10 -0
  123. package/lib/typescript/src/validate-env.d.ts.map +1 -0
  124. package/lib/typescript/src/validate-env.spec.d.ts +2 -0
  125. package/lib/typescript/src/validate-env.spec.d.ts.map +1 -0
  126. package/lib/typescript/src/write-env.d.ts +13 -0
  127. package/lib/typescript/src/write-env.d.ts.map +1 -0
  128. package/lib/typescript/src/write-env.spec.d.ts +9 -0
  129. package/lib/typescript/src/write-env.spec.d.ts.map +1 -0
  130. package/package.json +86 -52
  131. package/src/NativeUltimateConfig.ts +1 -2
  132. package/src/cli.ts +161 -0
  133. package/src/flatten.ts +26 -0
  134. package/src/index.ts +37 -0
  135. package/src/load-env.ts +81 -0
  136. package/src/main.ts +39 -0
  137. package/src/render-env.ts +111 -0
  138. package/src/resolve-env.ts +45 -0
  139. package/src/validate-env.ts +71 -0
  140. package/src/write-env.ts +74 -0
  141. package/bin.js +0 -5
  142. package/index.js +0 -28
  143. package/override.js +0 -1
  144. package/src/NativeUltimateConfig.js +0 -4
  145. package/src/cli.js +0 -176
  146. package/src/flatten.js +0 -22
  147. package/src/load-env.js +0 -107
  148. package/src/main.js +0 -34
  149. package/src/render-env.js +0 -113
  150. package/src/resolve-env.js +0 -12
  151. package/src/validate-env.js +0 -59
  152. package/src/write-env.js +0 -102
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = render_env;
7
+ var path = _interopRequireWildcard(require("path"));
8
+ var fs = _interopRequireWildcard(require("fs"));
9
+ var _handlebars = _interopRequireDefault(require("handlebars"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const code_file_name = 'ConfigValues';
13
+ const config_file_name = 'rncu';
14
+
15
+ // ─── Handlebars helpers (registered once at module load, not per-call) ────────
16
+
17
+ function is_string(value) {
18
+ return typeof value === 'string';
19
+ }
20
+ function is_number(value) {
21
+ return typeof value === 'number';
22
+ }
23
+ function is_boolean(value) {
24
+ return typeof value === 'boolean';
25
+ }
26
+ function escape(value) {
27
+ if (is_string(value)) {
28
+ return value.replace(/\\/gm, '\\\\').replace(/"/gm, '\\"').replace(/\n/gm, '\\n').replace(/\r/gm, '\\r');
29
+ }
30
+ return value;
31
+ }
32
+ function xcconfig_format(value) {
33
+ if (is_string(value)) {
34
+ return value.replace(/\/\//gm, '/$()/');
35
+ }
36
+ return value;
37
+ }
38
+ function to_json(value) {
39
+ return JSON.stringify(value, null, 2);
40
+ }
41
+ _handlebars.default.registerHelper('isBoolean', is_boolean);
42
+ _handlebars.default.registerHelper('isString', is_string);
43
+ _handlebars.default.registerHelper('isNumber', is_number);
44
+ _handlebars.default.registerHelper('escape', escape);
45
+ _handlebars.default.registerHelper('xcconfigFormat', xcconfig_format);
46
+ _handlebars.default.registerHelper('toJSON', to_json);
47
+
48
+ // ─── Template cache (compiled once per template name, not per build) ──────────
49
+
50
+ const template_cache = new Map();
51
+ function get_compiled_template(template_name) {
52
+ const cached = template_cache.get(template_name);
53
+ if (cached) return cached;
54
+ const template_path = path.join(__dirname, 'templates', `${template_name}.handlebars`);
55
+ const compiled = _handlebars.default.compile(fs.readFileSync(template_path, 'utf8'));
56
+ template_cache.set(template_name, compiled);
57
+ return compiled;
58
+ }
59
+ function render_template(template_name, data) {
60
+ return get_compiled_template(template_name)(data);
61
+ }
62
+
63
+ // ─── Public API ───────────────────────────────────────────────────────────────
64
+
65
+ function render_env(project_root, lib_root, env, rc) {
66
+ const {
67
+ ios,
68
+ android,
69
+ web
70
+ } = env;
71
+ const map = {
72
+ [path.join(lib_root, 'index.d.ts')]: render_template('index.d.ts', ios),
73
+ [path.join(lib_root, 'index.web.js')]: render_template('index.web.js', web),
74
+ [path.join(lib_root, 'ios', `${code_file_name}.h`)]: render_template('ConfigValues.h', ios),
75
+ [path.join(lib_root, 'android', 'rncu.yaml')]: render_template('rncu.yaml', android)
76
+ };
77
+
78
+ // Only write xcconfig if the project has an ios folder.
79
+ // All RN apps have it; some react-native-web apps may not.
80
+ if (fs.existsSync(path.join(project_root, 'ios'))) {
81
+ map[path.join(project_root, 'ios', `${config_file_name}.xcconfig`)] = render_template('rncu.xcconfig', ios);
82
+ }
83
+ const js_override = rc && typeof rc.js_override === 'boolean' && rc.js_override;
84
+ map[path.join(lib_root, 'override.js')] = render_template('override.js', {
85
+ ios: js_override ? ios : {},
86
+ android: js_override ? android : {}
87
+ });
88
+ return map;
89
+ }
90
+ //# sourceMappingURL=render-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","_interopRequireWildcard","require","fs","_handlebars","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","code_file_name","config_file_name","is_string","value","is_number","is_boolean","escape","replace","xcconfig_format","to_json","JSON","stringify","handlebars","registerHelper","template_cache","Map","get_compiled_template","template_name","cached","template_path","join","__dirname","compiled","compile","readFileSync","render_template","data","render_env","project_root","lib_root","env","rc","ios","android","web","map","existsSync","js_override"],"sourceRoot":"../../src","sources":["render-env.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,397 @@
1
+ "use strict";
2
+
3
+ var path = _interopRequireWildcard(require("path"));
4
+ var fs = _interopRequireWildcard(require("fs"));
5
+ var _renderEnv = _interopRequireDefault(require("./render-env"));
6
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
8
+ // We need to mock fs for some tests, but test helpers with real handlebars
9
+ jest.mock('fs', () => ({
10
+ ...jest.requireActual('fs'),
11
+ existsSync: jest.fn(),
12
+ readFileSync: jest.fn()
13
+ }));
14
+ const mock_exists_sync = fs.existsSync;
15
+ const mock_read_file_sync = fs.readFileSync;
16
+ describe('render-env', () => {
17
+ const project_root = '/project';
18
+ const lib_root = '/project/node_modules/react-native-config-ultimate';
19
+ const sample_env = {
20
+ ios: {
21
+ API_URL: 'https://api.com',
22
+ DEBUG: true,
23
+ PORT: 3000
24
+ },
25
+ android: {
26
+ API_URL: 'https://api.com',
27
+ DEBUG: true,
28
+ PORT: 3000
29
+ },
30
+ web: {
31
+ API_URL: 'https://api.com',
32
+ DEBUG: true,
33
+ PORT: 3000
34
+ }
35
+ };
36
+ beforeEach(() => {
37
+ mock_exists_sync.mockReset();
38
+ mock_read_file_sync.mockReset();
39
+
40
+ // Default: ios folder exists
41
+ mock_exists_sync.mockImplementation(p => {
42
+ const path_str = p.toString();
43
+ // ios folder exists
44
+ if (path_str === path.join(project_root, 'ios')) return true;
45
+ // template files exist (use real fs for templates)
46
+ if (path_str.includes('templates')) {
47
+ return jest.requireActual('fs').existsSync(p);
48
+ }
49
+ return false;
50
+ });
51
+
52
+ // For templates, use real fs
53
+ mock_read_file_sync.mockImplementation((p, options) => {
54
+ const path_str = p.toString();
55
+ if (path_str.includes('templates')) {
56
+ return jest.requireActual('fs').readFileSync(p, options);
57
+ }
58
+ return 'mocked content';
59
+ });
60
+ });
61
+ describe('file generation', () => {
62
+ it('generates index.d.ts in lib root', () => {
63
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
64
+ const expected_path = path.join(lib_root, 'index.d.ts');
65
+ expect(result[expected_path]).toBeDefined();
66
+ });
67
+ it('generates index.web.js in lib root', () => {
68
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
69
+ const expected_path = path.join(lib_root, 'index.web.js');
70
+ expect(result[expected_path]).toBeDefined();
71
+ });
72
+ it('generates ConfigValues.h in ios folder', () => {
73
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
74
+ const expected_path = path.join(lib_root, 'ios', 'ConfigValues.h');
75
+ expect(result[expected_path]).toBeDefined();
76
+ });
77
+ it('generates rncu.yaml in android folder', () => {
78
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
79
+ const expected_path = path.join(lib_root, 'android', 'rncu.yaml');
80
+ expect(result[expected_path]).toBeDefined();
81
+ });
82
+ it('generates rncu.xcconfig in project ios folder when it exists', () => {
83
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
84
+ const expected_path = path.join(project_root, 'ios', 'rncu.xcconfig');
85
+ expect(result[expected_path]).toBeDefined();
86
+ });
87
+ it('does NOT generate rncu.xcconfig when project has no ios folder', () => {
88
+ mock_exists_sync.mockImplementation(p => {
89
+ const path_str = p.toString();
90
+ // ios folder does NOT exist
91
+ if (path_str === path.join(project_root, 'ios')) return false;
92
+ // template files exist (use real fs for templates)
93
+ if (path_str.includes('templates')) {
94
+ return jest.requireActual('fs').existsSync(p);
95
+ }
96
+ return false;
97
+ });
98
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
99
+ const xcconfig_path = path.join(project_root, 'ios', 'rncu.xcconfig');
100
+ expect(result[xcconfig_path]).toBeUndefined();
101
+ });
102
+ it('generates override.js in lib root', () => {
103
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
104
+ const expected_path = path.join(lib_root, 'override.js');
105
+ expect(result[expected_path]).toBeDefined();
106
+ });
107
+ });
108
+ describe('js_override RC option', () => {
109
+ it('passes empty objects to override.js when js_override is false', () => {
110
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env, {
111
+ js_override: false
112
+ });
113
+ const override_path = path.join(lib_root, 'override.js');
114
+ const content = result[override_path];
115
+
116
+ // The override.js template uses IOS_DATA and ANDROID_DATA variables
117
+ expect(content).toContain('IOS_DATA = {}');
118
+ expect(content).toContain('ANDROID_DATA = {}');
119
+ });
120
+ it('passes empty objects to override.js when js_override is undefined', () => {
121
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env, undefined);
122
+ const override_path = path.join(lib_root, 'override.js');
123
+ const content = result[override_path];
124
+ expect(content).toContain('IOS_DATA = {}');
125
+ expect(content).toContain('ANDROID_DATA = {}');
126
+ });
127
+ it('passes full env to override.js when js_override is true', () => {
128
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env, {
129
+ js_override: true
130
+ });
131
+ const override_path = path.join(lib_root, 'override.js');
132
+ const content = result[override_path];
133
+
134
+ // Should contain actual env values
135
+ expect(content).toContain('API_URL');
136
+ expect(content).toContain('https://api.com');
137
+ });
138
+ });
139
+ describe('template content', () => {
140
+ it('index.d.ts contains type declarations for ios env keys', () => {
141
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
142
+ const content = result[path.join(lib_root, 'index.d.ts')];
143
+ expect(content).toContain('API_URL');
144
+ expect(content).toContain('DEBUG');
145
+ expect(content).toContain('PORT');
146
+ });
147
+ it('index.web.js contains web env values', () => {
148
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
149
+ const content = result[path.join(lib_root, 'index.web.js')];
150
+ expect(content).toContain('API_URL');
151
+ expect(content).toContain('https://api.com');
152
+ });
153
+ it('rncu.yaml contains android env values', () => {
154
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
155
+ const content = result[path.join(lib_root, 'android', 'rncu.yaml')];
156
+ expect(content).toContain('API_URL');
157
+ });
158
+ it('rncu.xcconfig contains ios env values with xcconfig escaping', () => {
159
+ const result = (0, _renderEnv.default)(project_root, lib_root, sample_env);
160
+ const content = result[path.join(project_root, 'ios', 'rncu.xcconfig')];
161
+
162
+ // xcconfig escapes // to /$()/
163
+ expect(content).toContain('API_URL');
164
+ expect(content).toContain('/$()/'); // https:// becomes https:/$()/
165
+ });
166
+ });
167
+ });
168
+ describe('handlebars helpers (via template output)', () => {
169
+ // Test helpers indirectly through actual rendered output
170
+ const project_root = '/project';
171
+ const lib_root = '/project/node_modules/react-native-config-ultimate';
172
+ beforeEach(() => {
173
+ mock_exists_sync.mockImplementation(p => {
174
+ const path_str = p.toString();
175
+ if (path_str === path.join(project_root, 'ios')) return true;
176
+ if (path_str.includes('templates')) {
177
+ return jest.requireActual('fs').existsSync(p);
178
+ }
179
+ return false;
180
+ });
181
+ mock_read_file_sync.mockImplementation((p, options) => {
182
+ const path_str = p.toString();
183
+ if (path_str.includes('templates')) {
184
+ return jest.requireActual('fs').readFileSync(p, options);
185
+ }
186
+ return 'mocked content';
187
+ });
188
+ });
189
+ describe('escape helper', () => {
190
+ it('escapes backslashes in string values', () => {
191
+ const env = {
192
+ ios: {
193
+ PATH: 'C:\\Users\\test'
194
+ },
195
+ android: {
196
+ PATH: 'C:\\Users\\test'
197
+ },
198
+ web: {
199
+ PATH: 'C:\\Users\\test'
200
+ }
201
+ };
202
+ const result = (0, _renderEnv.default)(project_root, lib_root, env);
203
+ const content = result[path.join(lib_root, 'index.web.js')];
204
+
205
+ // Backslashes should be escaped
206
+ expect(content).toContain('\\\\');
207
+ });
208
+ it('escapes double quotes in string values', () => {
209
+ const env = {
210
+ ios: {
211
+ MSG: 'say "hello"'
212
+ },
213
+ android: {
214
+ MSG: 'say "hello"'
215
+ },
216
+ web: {
217
+ MSG: 'say "hello"'
218
+ }
219
+ };
220
+ const result = (0, _renderEnv.default)(project_root, lib_root, env);
221
+ const content = result[path.join(lib_root, 'index.web.js')];
222
+
223
+ // Quotes should be escaped
224
+ expect(content).toContain('\\"');
225
+ });
226
+ it('escapes newlines in string values', () => {
227
+ const env = {
228
+ ios: {
229
+ MSG: 'line1\nline2'
230
+ },
231
+ android: {
232
+ MSG: 'line1\nline2'
233
+ },
234
+ web: {
235
+ MSG: 'line1\nline2'
236
+ }
237
+ };
238
+ const result = (0, _renderEnv.default)(project_root, lib_root, env);
239
+ const content = result[path.join(lib_root, 'index.web.js')];
240
+
241
+ // Newlines should be escaped as \\n
242
+ expect(content).toContain('\\n');
243
+ });
244
+ });
245
+ describe('xcconfig_format helper', () => {
246
+ it('escapes // in URLs for xcconfig compatibility', () => {
247
+ const env = {
248
+ ios: {
249
+ URL: 'https://example.com/path//double'
250
+ },
251
+ android: {
252
+ URL: 'https://example.com'
253
+ },
254
+ web: {
255
+ URL: 'https://example.com'
256
+ }
257
+ };
258
+ const result = (0, _renderEnv.default)(project_root, lib_root, env);
259
+ const content = result[path.join(project_root, 'ios', 'rncu.xcconfig')];
260
+
261
+ // // should become /$()/ in xcconfig
262
+ expect(content).toContain('/$()');
263
+ });
264
+ });
265
+ describe('type helpers', () => {
266
+ it('handles boolean values correctly', () => {
267
+ const env = {
268
+ ios: {
269
+ ENABLED: true,
270
+ DISABLED: false
271
+ },
272
+ android: {
273
+ ENABLED: true,
274
+ DISABLED: false
275
+ },
276
+ web: {
277
+ ENABLED: true,
278
+ DISABLED: false
279
+ }
280
+ };
281
+ const result = (0, _renderEnv.default)(project_root, lib_root, env);
282
+ const content = result[path.join(lib_root, 'index.web.js')];
283
+
284
+ // Booleans should be rendered as true/false not "true"/"false"
285
+ expect(content).toMatch(/ENABLED.*true/);
286
+ expect(content).toMatch(/DISABLED.*false/);
287
+ });
288
+ it('handles number values correctly', () => {
289
+ const env = {
290
+ ios: {
291
+ PORT: 3000,
292
+ FLOAT: 3.14
293
+ },
294
+ android: {
295
+ PORT: 3000,
296
+ FLOAT: 3.14
297
+ },
298
+ web: {
299
+ PORT: 3000,
300
+ FLOAT: 3.14
301
+ }
302
+ };
303
+ const result = (0, _renderEnv.default)(project_root, lib_root, env);
304
+ const content = result[path.join(lib_root, 'index.web.js')];
305
+
306
+ // Numbers should be rendered as numbers not strings
307
+ expect(content).toMatch(/PORT.*3000/);
308
+ expect(content).toMatch(/FLOAT.*3\.14/);
309
+ });
310
+ it('handles string values correctly', () => {
311
+ const env = {
312
+ ios: {
313
+ NAME: 'test-app'
314
+ },
315
+ android: {
316
+ NAME: 'test-app'
317
+ },
318
+ web: {
319
+ NAME: 'test-app'
320
+ }
321
+ };
322
+ const result = (0, _renderEnv.default)(project_root, lib_root, env);
323
+ const content = result[path.join(lib_root, 'index.web.js')];
324
+
325
+ // Strings should be quoted
326
+ expect(content).toContain('"test-app"');
327
+ });
328
+ });
329
+ });
330
+ describe('template caching', () => {
331
+ const project_root = '/project';
332
+ const lib_root = '/project/node_modules/react-native-config-ultimate';
333
+ const sample_env = {
334
+ ios: {
335
+ KEY: 'value'
336
+ },
337
+ android: {
338
+ KEY: 'value'
339
+ },
340
+ web: {
341
+ KEY: 'value'
342
+ }
343
+ };
344
+ beforeEach(() => {
345
+ mock_exists_sync.mockImplementation(p => {
346
+ const path_str = p.toString();
347
+ if (path_str === path.join(project_root, 'ios')) return true;
348
+ if (path_str.includes('templates')) {
349
+ return jest.requireActual('fs').existsSync(p);
350
+ }
351
+ return false;
352
+ });
353
+ mock_read_file_sync.mockImplementation((p, options) => {
354
+ const path_str = p.toString();
355
+ if (path_str.includes('templates')) {
356
+ return jest.requireActual('fs').readFileSync(p, options);
357
+ }
358
+ return 'mocked content';
359
+ });
360
+ });
361
+ it('produces consistent output across multiple calls', () => {
362
+ const result1 = (0, _renderEnv.default)(project_root, lib_root, sample_env);
363
+ const result2 = (0, _renderEnv.default)(project_root, lib_root, sample_env);
364
+
365
+ // Same input should produce same output
366
+ expect(result1).toEqual(result2);
367
+ });
368
+ it('produces different output for different env values', () => {
369
+ const env1 = {
370
+ ios: {
371
+ A: 1
372
+ },
373
+ android: {
374
+ A: 1
375
+ },
376
+ web: {
377
+ A: 1
378
+ }
379
+ };
380
+ const env2 = {
381
+ ios: {
382
+ B: 2
383
+ },
384
+ android: {
385
+ B: 2
386
+ },
387
+ web: {
388
+ B: 2
389
+ }
390
+ };
391
+ const result1 = (0, _renderEnv.default)(project_root, lib_root, env1);
392
+ const result2 = (0, _renderEnv.default)(project_root, lib_root, env2);
393
+ const key = path.join(lib_root, 'index.d.ts');
394
+ expect(result1[key]).not.toEqual(result2[key]);
395
+ });
396
+ });
397
+ //# sourceMappingURL=render-env.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","_interopRequireWildcard","require","fs","_renderEnv","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","jest","mock","requireActual","existsSync","fn","readFileSync","mock_exists_sync","mock_read_file_sync","describe","project_root","lib_root","sample_env","ios","API_URL","DEBUG","PORT","android","web","beforeEach","mockReset","mockImplementation","p","path_str","toString","join","includes","options","it","result","render_env","expected_path","expect","toBeDefined","xcconfig_path","toBeUndefined","js_override","override_path","content","toContain","undefined","env","PATH","MSG","URL","ENABLED","DISABLED","toMatch","FLOAT","NAME","KEY","result1","result2","toEqual","env1","A","env2","B","key","not"],"sourceRoot":"../../src","sources":["render-env.spec.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = resolve_env;
7
+ /**
8
+ * Schema definition for a single environment variable.
9
+ * Used in `.rncurc.js` to validate env vars at build time.
10
+ *
11
+ * @example
12
+ * module.exports = {
13
+ * schema: {
14
+ * API_URL: { type: 'string', required: true },
15
+ * TIMEOUT_MS: { type: 'number', required: true },
16
+ * DEBUG: { type: 'boolean', required: false },
17
+ * ENV_NAME: { type: 'string', required: true, pattern: '^(dev|staging|prod)$' },
18
+ * }
19
+ * };
20
+ */
21
+
22
+ async function resolve_env(env, rc) {
23
+ if (rc && rc.on_env) {
24
+ const patched_env = await rc.on_env(env);
25
+ return typeof patched_env === 'undefined' ? env : patched_env;
26
+ } else {
27
+ return env;
28
+ }
29
+ }
30
+ //# sourceMappingURL=resolve-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolve_env","env","rc","on_env","patched_env"],"sourceRoot":"../../src","sources":["resolve-env.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAsBe,eAAeA,WAAWA,CAACC,GAAY,EAAEC,EAAO,EAAoB;EACjF,IAAIA,EAAE,IAAIA,EAAE,CAACC,MAAM,EAAE;IACnB,MAAMC,WAAW,GAAG,MAAMF,EAAE,CAACC,MAAM,CAACF,GAAG,CAAC;IACxC,OAAO,OAAOG,WAAW,KAAK,WAAW,GAAGH,GAAG,GAAIG,WAAuB;EAC5E,CAAC,MAAM;IACL,OAAOH,GAAG;EACZ;AACF","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _resolveEnv = _interopRequireDefault(require("./resolve-env"));
4
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
5
+ describe('resolve_env', () => {
6
+ const original = {
7
+ original: 'data'
8
+ };
9
+ it.each`
10
+ on_env_result | expected
11
+ ${1} | ${1}
12
+ ${''} | ${''}
13
+ ${'hello'} | ${'hello'}
14
+ ${0} | ${0}
15
+ ${1} | ${1}
16
+ ${false} | ${false}
17
+ ${true} | ${true}
18
+ ${null} | ${null}
19
+ ${undefined} | ${original}
20
+ `("when hook returns '$on_env_result' env is resolved to '$expected'", async ({
21
+ on_env_result,
22
+ expected
23
+ }) => {
24
+ const on_env = jest.fn();
25
+ on_env.mockReturnValueOnce(on_env_result);
26
+ expect(await (0, _resolveEnv.default)(original, {
27
+ on_env
28
+ })).toEqual(expected);
29
+ });
30
+ });
31
+ //# sourceMappingURL=resolve-env.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_resolveEnv","_interopRequireDefault","require","e","__esModule","default","describe","original","it","each","undefined","on_env_result","expected","on_env","jest","fn","mockReturnValueOnce","expect","resolve_env","toEqual"],"sourceRoot":"../../src","sources":["resolve-env.spec.ts"],"mappings":";;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGxCG,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5B,MAAMC,QAAiB,GAAG;IAAEA,QAAQ,EAAE;EAAO,CAAC;EAC9CC,EAAE,CAACC,IAAI;AACT;AACA,MAAM,CAAC,eAAe,CAAC;AACvB,MAAM,EAAE,cAAc,EAAE;AACxB,MAAM,OAAO,SAAS,OAAO;AAC7B,MAAM,CAAC,eAAe,CAAC;AACvB,MAAM,CAAC,eAAe,CAAC;AACvB,MAAM,KAAK,WAAW,KAAK;AAC3B,MAAM,IAAI,YAAY,IAAI;AAC1B,MAAM,IAAI,YAAY,IAAI;AAC1B,MAAMC,SAAS,OAAOH,QAAQ;AAC9B,GAAG,CACC,mEAAmE,EACnE,OAAO;IAAEI,aAAa;IAAEC;EAAwD,CAAC,KAAK;IACpF,MAAMC,MAAM,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACxBF,MAAM,CAACG,mBAAmB,CAACL,aAAa,CAAC;IACzCM,MAAM,CAAC,MAAM,IAAAC,mBAAW,EAACX,QAAQ,EAAE;MAAEM;IAAO,CAAC,CAAC,CAAC,CAACM,OAAO,CAACP,QAAQ,CAAC;EACnE,CACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ // DO NOT COMMIT OR EDIT THIS FILE
2
+ {{#each @root}}
3
+ {{#if (isString this)}}
4
+ #define {{@key}} @"{{{escape this}}}"
5
+ {{/if}}
6
+ {{#if (isBoolean this)}}
7
+ {{#if this}}
8
+ #define {{@key}} @(YES)
9
+ {{else}}
10
+ #define {{@key}} @(NO)
11
+ {{/if}}
12
+ {{/if}}
13
+ {{#if (isNumber this)}}
14
+ #define {{@key}} @({{{this}}})
15
+ {{/if}}
16
+ {{/each}}
17
+
18
+ static NSDictionary *getValues() {
19
+ return @{
20
+ {{#each @root}}
21
+ @"{{@key}}": {{@key}},
22
+ {{/each}}
23
+ };
24
+ }
@@ -0,0 +1,18 @@
1
+ // DO NOT COMMIT OR EDIT THIS FILE
2
+ export interface ConfigVariables {
3
+ {{#each @root}}
4
+ {{#if (isString this)}}
5
+ {{@key}}: string;
6
+ {{/if}}
7
+ {{#if (isBoolean this)}}
8
+ {{@key}}: boolean;
9
+ {{/if}}
10
+ {{#if (isNumber this)}}
11
+ {{@key}}: number;
12
+ {{/if}}
13
+ {{/each}}
14
+ }
15
+
16
+ declare const UltimateConfig: ConfigVariables;
17
+
18
+ export default UltimateConfig;
@@ -0,0 +1 @@
1
+ module.exports = {{{toJSON @root}}}
@@ -0,0 +1,16 @@
1
+ const RN = require("react-native");
2
+
3
+ const IOS_DATA = {{{toJSON @root.ios}}}
4
+
5
+ const ANDROID_DATA = {{{toJSON @root.android}}}
6
+
7
+ module.exports = {
8
+ {{#each @root.ios}}
9
+ get {{{@key}}}() {
10
+ return RN.Platform.select({
11
+ ios: IOS_DATA["{{{@key}}}"],
12
+ android: ANDROID_DATA["{{{@key}}}"],
13
+ });
14
+ },
15
+ {{/each}}
16
+ }