@dittowords/cli 2.5.2 → 2.6.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.
- package/.idea/workspace.xml +124 -0
- package/README.md +9 -3
- package/bin/ditto.js +0 -0
- package/bin/pull.js +23 -6
- package/bin/pull.js.map +1 -1
- package/lib/pull.test.ts +33 -3
- package/lib/pull.ts +26 -6
- package/package.json +1 -1
- package/yarn-error.log +4466 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="ChangeListManager">
|
|
4
|
+
<list default="true" id="feed0935-3e92-4ed5-8f31-d50d40a3160d" name="Changes" comment="context -> githubActionRequest" />
|
|
5
|
+
<option name="SHOW_DIALOG" value="false" />
|
|
6
|
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
7
|
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
8
|
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
9
|
+
</component>
|
|
10
|
+
<component name="Git.Settings">
|
|
11
|
+
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
12
|
+
</component>
|
|
13
|
+
<component name="GitSEFilterConfiguration">
|
|
14
|
+
<file-type-list>
|
|
15
|
+
<filtered-out-file-type name="LOCAL_BRANCH" />
|
|
16
|
+
<filtered-out-file-type name="REMOTE_BRANCH" />
|
|
17
|
+
<filtered-out-file-type name="TAG" />
|
|
18
|
+
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
|
|
19
|
+
</file-type-list>
|
|
20
|
+
</component>
|
|
21
|
+
<component name="ProjectId" id="22eyXkIpY8uECD7XHWWVJVH2o1w" />
|
|
22
|
+
<component name="ProjectViewState">
|
|
23
|
+
<option name="hideEmptyMiddlePackages" value="true" />
|
|
24
|
+
<option name="showLibraryContents" value="true" />
|
|
25
|
+
</component>
|
|
26
|
+
<component name="PropertiesComponent">
|
|
27
|
+
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
|
28
|
+
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
|
29
|
+
<property name="WebServerToolWindowFactoryState" value="false" />
|
|
30
|
+
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
|
31
|
+
<property name="node.js.detected.package.eslint" value="true" />
|
|
32
|
+
<property name="node.js.selected.package.eslint" value="(autodetect)" />
|
|
33
|
+
<property name="nodejs.jest.jest_package" value="$PROJECT_DIR$/node_modules/jest" />
|
|
34
|
+
<property name="nodejs_package_manager_path" value="yarn" />
|
|
35
|
+
<property name="ts.external.directory.path" value="$PROJECT_DIR$/node_modules/typescript/lib" />
|
|
36
|
+
<property name="vue.rearranger.settings.migration" value="true" />
|
|
37
|
+
</component>
|
|
38
|
+
<component name="RunManager">
|
|
39
|
+
<configuration name="processMetaOption tests" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
|
|
40
|
+
<node-interpreter value="project" />
|
|
41
|
+
<node-options value="" />
|
|
42
|
+
<jest-package value="$PROJECT_DIR$/node_modules/jest" />
|
|
43
|
+
<working-dir value="$PROJECT_DIR$" />
|
|
44
|
+
<envs />
|
|
45
|
+
<scope-kind value="SUITE" />
|
|
46
|
+
<test-file value="$PROJECT_DIR$/lib/utils/processMetaOption.test.js" />
|
|
47
|
+
<test-names>
|
|
48
|
+
<test-name value="processMetaOption tests" />
|
|
49
|
+
</test-names>
|
|
50
|
+
<method v="2" />
|
|
51
|
+
</configuration>
|
|
52
|
+
<recent_temporary>
|
|
53
|
+
<list>
|
|
54
|
+
<item itemvalue="Jest.processMetaOption tests" />
|
|
55
|
+
</list>
|
|
56
|
+
</recent_temporary>
|
|
57
|
+
</component>
|
|
58
|
+
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
|
59
|
+
<component name="TaskManager">
|
|
60
|
+
<task active="true" id="Default" summary="Default task">
|
|
61
|
+
<changelist id="feed0935-3e92-4ed5-8f31-d50d40a3160d" name="Changes" comment="" />
|
|
62
|
+
<created>1640212388756</created>
|
|
63
|
+
<option name="number" value="Default" />
|
|
64
|
+
<option name="presentableId" value="Default" />
|
|
65
|
+
<updated>1640212388756</updated>
|
|
66
|
+
<workItem from="1640212390396" duration="2754000" />
|
|
67
|
+
<workItem from="1652899005217" duration="17894000" />
|
|
68
|
+
<workItem from="1653328043941" duration="20000" />
|
|
69
|
+
<workItem from="1653329434368" duration="3872000" />
|
|
70
|
+
</task>
|
|
71
|
+
<task id="LOCAL-00001" summary="Review option changing">
|
|
72
|
+
<created>1653329636527</created>
|
|
73
|
+
<option name="number" value="00001" />
|
|
74
|
+
<option name="presentableId" value="LOCAL-00001" />
|
|
75
|
+
<option name="project" value="LOCAL" />
|
|
76
|
+
<updated>1653329636527</updated>
|
|
77
|
+
</task>
|
|
78
|
+
<task id="LOCAL-00002" summary="Saftey check for options">
|
|
79
|
+
<created>1653329947356</created>
|
|
80
|
+
<option name="number" value="00002" />
|
|
81
|
+
<option name="presentableId" value="LOCAL-00002" />
|
|
82
|
+
<option name="project" value="LOCAL" />
|
|
83
|
+
<updated>1653329947356</updated>
|
|
84
|
+
</task>
|
|
85
|
+
<task id="LOCAL-00003" summary="Generic meta passing to endpoints">
|
|
86
|
+
<created>1653331832365</created>
|
|
87
|
+
<option name="number" value="00003" />
|
|
88
|
+
<option name="presentableId" value="LOCAL-00003" />
|
|
89
|
+
<option name="project" value="LOCAL" />
|
|
90
|
+
<updated>1653331832365</updated>
|
|
91
|
+
</task>
|
|
92
|
+
<task id="LOCAL-00004" summary="context -> githubActionRequest">
|
|
93
|
+
<created>1653332089321</created>
|
|
94
|
+
<option name="number" value="00004" />
|
|
95
|
+
<option name="presentableId" value="LOCAL-00004" />
|
|
96
|
+
<option name="project" value="LOCAL" />
|
|
97
|
+
<updated>1653332089321</updated>
|
|
98
|
+
</task>
|
|
99
|
+
<option name="localTasksCounter" value="5" />
|
|
100
|
+
<servers />
|
|
101
|
+
</component>
|
|
102
|
+
<component name="TypeScriptGeneratedFilesManager">
|
|
103
|
+
<option name="version" value="3" />
|
|
104
|
+
</component>
|
|
105
|
+
<component name="Vcs.Log.Tabs.Properties">
|
|
106
|
+
<option name="TAB_STATES">
|
|
107
|
+
<map>
|
|
108
|
+
<entry key="MAIN">
|
|
109
|
+
<value>
|
|
110
|
+
<State />
|
|
111
|
+
</value>
|
|
112
|
+
</entry>
|
|
113
|
+
</map>
|
|
114
|
+
</option>
|
|
115
|
+
<option name="oldMeFiltersMigrated" value="true" />
|
|
116
|
+
</component>
|
|
117
|
+
<component name="VcsManagerConfiguration">
|
|
118
|
+
<MESSAGE value="Review option changing" />
|
|
119
|
+
<MESSAGE value="Saftey check for options" />
|
|
120
|
+
<MESSAGE value="Generic meta passing to endpoints" />
|
|
121
|
+
<MESSAGE value="context -> githubActionRequest" />
|
|
122
|
+
<option name="LAST_COMMIT_MESSAGE" value="context -> githubActionRequest" />
|
|
123
|
+
</component>
|
|
124
|
+
</project>
|
package/README.md
CHANGED
|
@@ -67,7 +67,7 @@ it's better to fully delete the file and then re-run the CLI so that a new key i
|
|
|
67
67
|
|
|
68
68
|
**Action:** Pulls text data from projects linked in `config.yml` and stores it in the `ditto/` folder.
|
|
69
69
|
|
|
70
|
-
The data will be stored in JSON files according to the `format` property specified in `config.yml`. If no format is specified, the default structured format will be used. Every time text is pulled, the existing text data is removed before new data is generated and stored.
|
|
70
|
+
The data will be stored in JSON, XML, or .strings files according to the `format` property specified in `config.yml`. If no format is specified, the default structured format will be used. Every time text is pulled, the existing text data is removed before new data is generated and stored.
|
|
71
71
|
|
|
72
72
|
For more details on files generated by the `pull` command, see [JSON Files](#json-files).
|
|
73
73
|
|
|
@@ -142,7 +142,7 @@ If you run the CLI in a directory that does not contain a `ditto/` folder, the f
|
|
|
142
142
|
|
|
143
143
|
##### `format`
|
|
144
144
|
|
|
145
|
-
The format the specified projects should be stored in. Acceptable values are `structured`
|
|
145
|
+
The format the specified projects should be stored in. Acceptable values are `structured`, `flat`, `android`, and `ios-strings`.
|
|
146
146
|
|
|
147
147
|
If not specified, the default format containing block and frame data will be used.
|
|
148
148
|
|
|
@@ -165,7 +165,7 @@ If you run the CLI in a directory that does not contain a `ditto/` folder, the f
|
|
|
165
165
|
|
|
166
166
|
- #### JSON Files
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
For `structured` and `flat` formats the copy pulled from your Ditto projects is saved to JSON files in the `ditto/` folder.
|
|
169
169
|
|
|
170
170
|
The number of files present and the convention with which they're named will vary according to the options specified in `config.yml`:
|
|
171
171
|
|
|
@@ -174,6 +174,12 @@ If you run the CLI in a directory that does not contain a `ditto/` folder, the f
|
|
|
174
174
|
- If the `variants` option is unset and the `format` open is `flat` or `structured`, files will be written on a per-project basis following the pattern `[project-id].json`.
|
|
175
175
|
- If the `variants` option is `true` and the `format` option is `flat` or `structured`, files will be written on a per-project per-variant basis following the pattern `[project-id__variant-api-id].json`. These files will NOT contain the top-level `projects` and `project_xyz` keys.
|
|
176
176
|
|
|
177
|
+
- #### Mobile files (XML and .strings)
|
|
178
|
+
|
|
179
|
+
When `format` is set to `android`, the resulting files will be in XML format. More information about the contents of the XML files can be found [here](https://developer.dittowords.com/api-reference#android).
|
|
180
|
+
|
|
181
|
+
When `format` is set to `ios-strings`, the resulting files will be in .strings format. More information about the contents of the .strings files can be found [here](https://developer.dittowords.com/api-reference#ios-strings).
|
|
182
|
+
|
|
177
183
|
- #### `index.js`
|
|
178
184
|
|
|
179
185
|
An automatically generated driver file that simplifies the process of passing text data to Ditto JavaScript SDKs. This file has a standardized format that is always the same independent of the CLI configuration used to generate it.
|
package/bin/ditto.js
CHANGED
|
File without changes
|
package/bin/pull.js
CHANGED
|
@@ -13,7 +13,7 @@ const consts_1 = __importDefault(require("./consts"));
|
|
|
13
13
|
const output_1 = __importDefault(require("./output"));
|
|
14
14
|
const token_1 = require("./init/token");
|
|
15
15
|
const sourcesToText_1 = __importDefault(require("./utils/sourcesToText"));
|
|
16
|
-
const NON_DEFAULT_FORMATS = ["flat", "structured"];
|
|
16
|
+
const NON_DEFAULT_FORMATS = ["flat", "structured", "android", "ios-strings"];
|
|
17
17
|
const DEFAULT_FORMAT_KEYS = ["projects", "exported_at"];
|
|
18
18
|
const hasVariantData = (data) => {
|
|
19
19
|
const hasTopLevelKeys = Object.keys(data).filter((key) => !DEFAULT_FORMAT_KEYS.includes(key))
|
|
@@ -26,6 +26,15 @@ async function askForAnotherToken() {
|
|
|
26
26
|
const message = "Looks like the API key you have saved no longer works. Please enter another one.";
|
|
27
27
|
await (0, token_1.collectAndSaveToken)(message);
|
|
28
28
|
}
|
|
29
|
+
function getExtension(format) {
|
|
30
|
+
if (format === "android") {
|
|
31
|
+
return ".xml";
|
|
32
|
+
}
|
|
33
|
+
if (format === "ios-strings") {
|
|
34
|
+
return ".strings";
|
|
35
|
+
}
|
|
36
|
+
return ".json";
|
|
37
|
+
}
|
|
29
38
|
/**
|
|
30
39
|
* For a given variant:
|
|
31
40
|
* - if format is unspecified, fetch data for all projects from `/projects` and
|
|
@@ -49,9 +58,13 @@ async function downloadAndSaveVariant(variantApiId, projects, format, token) {
|
|
|
49
58
|
if (!hasVariantData(data)) {
|
|
50
59
|
return "";
|
|
51
60
|
}
|
|
52
|
-
const
|
|
61
|
+
const extension = getExtension(format);
|
|
62
|
+
const filename = fileName + ("__" + (variantApiId || "base")) + extension;
|
|
53
63
|
const filepath = path_1.default.join(consts_1.default.TEXT_DIR, filename);
|
|
54
|
-
|
|
64
|
+
let dataString = data;
|
|
65
|
+
if (extension === ".json") {
|
|
66
|
+
dataString = JSON.stringify(data, null, 2);
|
|
67
|
+
}
|
|
55
68
|
fs_1.default.writeFileSync(filepath, dataString);
|
|
56
69
|
return getSavedMessage(filename);
|
|
57
70
|
}));
|
|
@@ -101,9 +114,13 @@ async function downloadAndSaveBase(projects, format, token, options) {
|
|
|
101
114
|
params,
|
|
102
115
|
headers: { Authorization: `token ${token}` },
|
|
103
116
|
});
|
|
104
|
-
const
|
|
117
|
+
const extension = getExtension(format);
|
|
118
|
+
const filename = `${fileName}${extension}`;
|
|
105
119
|
const filepath = path_1.default.join(consts_1.default.TEXT_DIR, filename);
|
|
106
|
-
|
|
120
|
+
let dataString = data;
|
|
121
|
+
if (extension === ".json") {
|
|
122
|
+
dataString = JSON.stringify(data, null, 2);
|
|
123
|
+
}
|
|
107
124
|
fs_1.default.writeFileSync(filepath, dataString);
|
|
108
125
|
return getSavedMessage(filename);
|
|
109
126
|
}));
|
|
@@ -128,7 +145,7 @@ function cleanOutputFiles() {
|
|
|
128
145
|
}
|
|
129
146
|
const fileNames = fs_1.default.readdirSync(consts_1.default.TEXT_DIR);
|
|
130
147
|
fileNames.forEach((fileName) => {
|
|
131
|
-
if (/\.js(on)
|
|
148
|
+
if (/\.js(on)?|\.xml|\.strings$/.test(fileName)) {
|
|
132
149
|
fs_1.default.unlinkSync(path_1.default.resolve(consts_1.default.TEXT_DIR, fileName));
|
|
133
150
|
}
|
|
134
151
|
});
|
package/bin/pull.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../lib/pull.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../lib/pull.ts"],"names":[],"mappings":"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"}
|
package/lib/pull.test.ts
CHANGED
|
@@ -13,7 +13,8 @@ const testProjects = [
|
|
|
13
13
|
];
|
|
14
14
|
|
|
15
15
|
jest.mock("./api");
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
const mockApi = api as jest.Mocked<typeof api>;
|
|
17
18
|
|
|
18
19
|
jest.mock("./consts", () => ({
|
|
19
20
|
TEXT_DIR: ".testing",
|
|
@@ -43,15 +44,17 @@ afterAll(() => {
|
|
|
43
44
|
});
|
|
44
45
|
|
|
45
46
|
describe("cleanOutputFiles", () => {
|
|
46
|
-
it("removes .js and .
|
|
47
|
+
it("removes .js, .json, .xml, and .strings files", () => {
|
|
47
48
|
cleanOutputDir();
|
|
48
49
|
|
|
49
50
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.json"), "test");
|
|
50
51
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.js"), "test");
|
|
52
|
+
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.xml"), "test");
|
|
53
|
+
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.strings"), "test");
|
|
51
54
|
// this file shouldn't be deleted
|
|
52
55
|
fs.writeFileSync(path.resolve(consts.TEXT_DIR, "test.txt"), "test");
|
|
53
56
|
|
|
54
|
-
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(
|
|
57
|
+
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(5);
|
|
55
58
|
|
|
56
59
|
cleanOutputFiles();
|
|
57
60
|
|
|
@@ -112,6 +115,7 @@ describe("downloadAndSaveBase", () => {
|
|
|
112
115
|
it("writes to text.json for default format", async () => {
|
|
113
116
|
cleanOutputDir();
|
|
114
117
|
|
|
118
|
+
mockApi.get.mockResolvedValueOnce({ data: [] });
|
|
115
119
|
const output = await downloadAndSaveBase(testProjects, "");
|
|
116
120
|
|
|
117
121
|
expect(/saved to.*text\.json/.test(output)).toEqual(true);
|
|
@@ -122,6 +126,7 @@ describe("downloadAndSaveBase", () => {
|
|
|
122
126
|
it("writes multiple files for flat format", async () => {
|
|
123
127
|
cleanOutputDir();
|
|
124
128
|
|
|
129
|
+
mockApi.get.mockResolvedValue({ data: [] });
|
|
125
130
|
const output = await downloadAndSaveBase(testProjects, "flat");
|
|
126
131
|
expect(/saved to.*Project 1\.json/.test(output)).toEqual(true);
|
|
127
132
|
expect(/saved to.*Project 2\.json/.test(output)).toEqual(true);
|
|
@@ -132,6 +137,7 @@ describe("downloadAndSaveBase", () => {
|
|
|
132
137
|
it("writes multiple files for structured format", async () => {
|
|
133
138
|
cleanOutputDir();
|
|
134
139
|
|
|
140
|
+
mockApi.get.mockResolvedValue({ data: [] });
|
|
135
141
|
const output = await downloadAndSaveBase(testProjects, "structured");
|
|
136
142
|
|
|
137
143
|
expect(/saved to.*Project 1\.json/.test(output)).toEqual(true);
|
|
@@ -139,4 +145,28 @@ describe("downloadAndSaveBase", () => {
|
|
|
139
145
|
expect(output.match(/saved to/g)?.length).toEqual(2);
|
|
140
146
|
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(2);
|
|
141
147
|
});
|
|
148
|
+
|
|
149
|
+
it("writes .xml files for android", async () => {
|
|
150
|
+
cleanOutputDir();
|
|
151
|
+
|
|
152
|
+
mockApi.get.mockResolvedValue({ data: "hello" });
|
|
153
|
+
const output = await downloadAndSaveBase(testProjects, "android");
|
|
154
|
+
|
|
155
|
+
expect(/saved to.*Project 1\.xml/.test(output)).toEqual(true);
|
|
156
|
+
expect(/saved to.*Project 2\.xml/.test(output)).toEqual(true);
|
|
157
|
+
expect(output.match(/saved to/g)?.length).toEqual(2);
|
|
158
|
+
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(2);
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
it("writes .strings files for ios-strings", async () => {
|
|
162
|
+
cleanOutputDir();
|
|
163
|
+
|
|
164
|
+
mockApi.get.mockResolvedValue({ data: "hello" });
|
|
165
|
+
const output = await downloadAndSaveBase(testProjects, "ios-strings");
|
|
166
|
+
|
|
167
|
+
expect(/saved to.*Project 1\.strings/.test(output)).toEqual(true);
|
|
168
|
+
expect(/saved to.*Project 2\.strings/.test(output)).toEqual(true);
|
|
169
|
+
expect(output.match(/saved to/g)?.length).toEqual(2);
|
|
170
|
+
expect(fs.readdirSync(consts.TEXT_DIR).length).toEqual(2);
|
|
171
|
+
});
|
|
142
172
|
});
|
package/lib/pull.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { collectAndSaveToken } from "./init/token";
|
|
|
11
11
|
import sourcesToText from "./utils/sourcesToText";
|
|
12
12
|
import { SourceInformation, Token, Project } from "./types";
|
|
13
13
|
|
|
14
|
-
const NON_DEFAULT_FORMATS = ["flat", "structured"];
|
|
14
|
+
const NON_DEFAULT_FORMATS = ["flat", "structured", "android", "ios-strings"];
|
|
15
15
|
|
|
16
16
|
const DEFAULT_FORMAT_KEYS = ["projects", "exported_at"];
|
|
17
17
|
const hasVariantData = (data: any) => {
|
|
@@ -31,6 +31,16 @@ async function askForAnotherToken() {
|
|
|
31
31
|
await collectAndSaveToken(message);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
function getExtension(format: string) {
|
|
35
|
+
if (format === "android") {
|
|
36
|
+
return ".xml";
|
|
37
|
+
}
|
|
38
|
+
if (format === "ios-strings") {
|
|
39
|
+
return ".strings";
|
|
40
|
+
}
|
|
41
|
+
return ".json";
|
|
42
|
+
}
|
|
43
|
+
|
|
34
44
|
/**
|
|
35
45
|
* For a given variant:
|
|
36
46
|
* - if format is unspecified, fetch data for all projects from `/projects` and
|
|
@@ -63,10 +73,16 @@ async function downloadAndSaveVariant(
|
|
|
63
73
|
return "";
|
|
64
74
|
}
|
|
65
75
|
|
|
66
|
-
const
|
|
76
|
+
const extension = getExtension(format);
|
|
77
|
+
|
|
78
|
+
const filename =
|
|
79
|
+
fileName + ("__" + (variantApiId || "base")) + extension;
|
|
67
80
|
const filepath = path.join(consts.TEXT_DIR, filename);
|
|
68
81
|
|
|
69
|
-
|
|
82
|
+
let dataString = data;
|
|
83
|
+
if (extension === ".json") {
|
|
84
|
+
dataString = JSON.stringify(data, null, 2);
|
|
85
|
+
}
|
|
70
86
|
|
|
71
87
|
fs.writeFileSync(filepath, dataString);
|
|
72
88
|
|
|
@@ -145,10 +161,14 @@ async function downloadAndSaveBase(
|
|
|
145
161
|
headers: { Authorization: `token ${token}` },
|
|
146
162
|
});
|
|
147
163
|
|
|
148
|
-
const
|
|
164
|
+
const extension = getExtension(format);
|
|
165
|
+
const filename = `${fileName}${extension}`;
|
|
149
166
|
const filepath = path.join(consts.TEXT_DIR, filename);
|
|
150
167
|
|
|
151
|
-
|
|
168
|
+
let dataString = data;
|
|
169
|
+
if (extension === ".json") {
|
|
170
|
+
dataString = JSON.stringify(data, null, 2);
|
|
171
|
+
}
|
|
152
172
|
|
|
153
173
|
fs.writeFileSync(filepath, dataString);
|
|
154
174
|
|
|
@@ -182,7 +202,7 @@ function cleanOutputFiles() {
|
|
|
182
202
|
|
|
183
203
|
const fileNames = fs.readdirSync(consts.TEXT_DIR);
|
|
184
204
|
fileNames.forEach((fileName) => {
|
|
185
|
-
if (/\.js(on)
|
|
205
|
+
if (/\.js(on)?|\.xml|\.strings$/.test(fileName)) {
|
|
186
206
|
fs.unlinkSync(path.resolve(consts.TEXT_DIR, fileName));
|
|
187
207
|
}
|
|
188
208
|
});
|