@dittowords/cli 3.4.2 → 3.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/README.md +17 -14
- package/bin/api.js +5 -6
- package/bin/api.js.map +1 -1
- package/bin/http/fetchComponents.js +3 -5
- package/bin/http/fetchComponents.js.map +1 -1
- package/bin/http/fetchVariants.js +3 -5
- package/bin/http/fetchVariants.js.map +1 -1
- package/bin/init/project.js +3 -6
- package/bin/init/project.js.map +1 -1
- package/bin/init/token.js +1 -1
- package/bin/init/token.js.map +1 -1
- package/bin/lib/add-project.js +36 -0
- package/bin/lib/add-project.js.map +1 -0
- package/bin/lib/api.js +20 -0
- package/bin/lib/api.js.map +1 -0
- package/bin/lib/config.js +202 -0
- package/bin/lib/config.js.map +1 -0
- package/bin/lib/consts.js +21 -0
- package/bin/lib/consts.js.map +1 -0
- package/bin/lib/ditto.js +121 -0
- package/bin/lib/ditto.js.map +1 -0
- package/bin/lib/generate-suggestions.js +71 -0
- package/bin/lib/generate-suggestions.js.map +1 -0
- package/bin/lib/http/fetchComponents.js +13 -0
- package/bin/lib/http/fetchComponents.js.map +1 -0
- package/bin/lib/http/fetchVariants.js +26 -0
- package/bin/lib/http/fetchVariants.js.map +1 -0
- package/bin/lib/init/init.js +50 -0
- package/bin/lib/init/init.js.map +1 -0
- package/bin/lib/init/project.js +108 -0
- package/bin/lib/init/project.js.map +1 -0
- package/bin/lib/init/token.js +91 -0
- package/bin/lib/init/token.js.map +1 -0
- package/bin/lib/output.js +34 -0
- package/bin/lib/output.js.map +1 -0
- package/bin/lib/pull.js +264 -0
- package/bin/lib/pull.js.map +1 -0
- package/bin/lib/remove-project.js +35 -0
- package/bin/lib/remove-project.js.map +1 -0
- package/bin/lib/replace.js +107 -0
- package/bin/lib/replace.js.map +1 -0
- package/bin/lib/types.js +3 -0
- package/bin/lib/types.js.map +1 -0
- package/bin/lib/utils/cleanFileName.js +11 -0
- package/bin/lib/utils/cleanFileName.js.map +1 -0
- package/bin/lib/utils/generateJsDriver.js +56 -0
- package/bin/lib/utils/generateJsDriver.js.map +1 -0
- package/bin/lib/utils/getSelectedProjects.js +61 -0
- package/bin/lib/utils/getSelectedProjects.js.map +1 -0
- package/bin/lib/utils/processMetaOption.js +15 -0
- package/bin/lib/utils/processMetaOption.js.map +1 -0
- package/bin/lib/utils/projectsToText.js +25 -0
- package/bin/lib/utils/projectsToText.js.map +1 -0
- package/bin/lib/utils/promptForProject.js +43 -0
- package/bin/lib/utils/promptForProject.js.map +1 -0
- package/bin/lib/utils/quit.js +10 -0
- package/bin/lib/utils/quit.js.map +1 -0
- package/bin/lib/utils/sourcesToText.js +25 -0
- package/bin/lib/utils/sourcesToText.js.map +1 -0
- package/bin/package.json +76 -0
- package/bin/pull.js +11 -5
- package/bin/pull.js.map +1 -1
- package/lib/api.ts +5 -5
- package/lib/http/fetchComponents.ts +2 -1
- package/lib/http/fetchVariants.ts +2 -1
- package/lib/init/project.ts +3 -6
- package/lib/init/token.ts +2 -2
- package/lib/pull.test.ts +32 -7
- package/lib/pull.ts +13 -6
- package/lib/replace.test.ts +1 -0
- package/lib/types.ts +9 -1
- package/package.json +1 -1
package/bin/lib/pull.js
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.pull = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const api_1 = __importDefault(require("./api"));
|
|
11
|
+
const config_1 = __importDefault(require("./config"));
|
|
12
|
+
const consts_1 = __importDefault(require("./consts"));
|
|
13
|
+
const output_1 = __importDefault(require("./output"));
|
|
14
|
+
const token_1 = require("./init/token");
|
|
15
|
+
const sourcesToText_1 = __importDefault(require("./utils/sourcesToText"));
|
|
16
|
+
const generateJsDriver_1 = require("./utils/generateJsDriver");
|
|
17
|
+
const cleanFileName_1 = require("./utils/cleanFileName");
|
|
18
|
+
const fetchVariants_1 = require("./http/fetchVariants");
|
|
19
|
+
const SUPPORTED_FORMATS = [
|
|
20
|
+
"flat",
|
|
21
|
+
"structured",
|
|
22
|
+
"android",
|
|
23
|
+
"ios-strings",
|
|
24
|
+
];
|
|
25
|
+
const JSON_FORMATS = ["flat", "structured"];
|
|
26
|
+
const FORMAT_EXTENSIONS = {
|
|
27
|
+
flat: ".json",
|
|
28
|
+
structured: ".json",
|
|
29
|
+
android: ".xml",
|
|
30
|
+
"ios-strings": ".strings",
|
|
31
|
+
};
|
|
32
|
+
const getFormatDataIsValid = {
|
|
33
|
+
flat: (data) => data !== "{}",
|
|
34
|
+
structured: (data) => data !== "{}",
|
|
35
|
+
android: (data) => data.includes("<string"),
|
|
36
|
+
"ios-strings": (data) => !!data,
|
|
37
|
+
};
|
|
38
|
+
const getFormat = (formatFromSource) => {
|
|
39
|
+
const f = formatFromSource;
|
|
40
|
+
if (f && SUPPORTED_FORMATS.includes(f)) {
|
|
41
|
+
return f;
|
|
42
|
+
}
|
|
43
|
+
return "flat";
|
|
44
|
+
};
|
|
45
|
+
const getFormatExtension = (format) => {
|
|
46
|
+
return FORMAT_EXTENSIONS[format];
|
|
47
|
+
};
|
|
48
|
+
const DEFAULT_FORMAT_KEYS = ["projects", "exported_at"];
|
|
49
|
+
const hasVariantData = (data) => {
|
|
50
|
+
const hasTopLevelKeys = Object.keys(data).filter((key) => !DEFAULT_FORMAT_KEYS.includes(key))
|
|
51
|
+
.length > 0;
|
|
52
|
+
const hasProjectKeys = data.projects && Object.keys(data.projects).length > 0;
|
|
53
|
+
return hasTopLevelKeys || hasProjectKeys;
|
|
54
|
+
};
|
|
55
|
+
async function askForAnotherToken() {
|
|
56
|
+
config_1.default.deleteToken(consts_1.default.CONFIG_FILE, consts_1.default.API_HOST);
|
|
57
|
+
const message = "Looks like the API key you have saved no longer works. Please enter another one.";
|
|
58
|
+
await (0, token_1.collectAndSaveToken)(message);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* For a given variant:
|
|
62
|
+
* - if format is unspecified, fetch data for all projects from `/projects` and
|
|
63
|
+
* save in `{variantApiId}.json`
|
|
64
|
+
* - if format is `flat` or `structured`, fetch data for each project from `/project/:project_id` and
|
|
65
|
+
* save in `{projectName}-${variantApiId}.json`
|
|
66
|
+
*/
|
|
67
|
+
async function downloadAndSaveVariant(variantApiId, projects, format, status, richText, token) {
|
|
68
|
+
const params = { variant: variantApiId };
|
|
69
|
+
if (format)
|
|
70
|
+
params.format = format;
|
|
71
|
+
if (status)
|
|
72
|
+
params.status = status;
|
|
73
|
+
if (richText)
|
|
74
|
+
params.includeRichText = richText.toString();
|
|
75
|
+
const savedMessages = await Promise.all(projects.map(async ({ id, fileName }) => {
|
|
76
|
+
const { data } = await api_1.default.get(`/projects/${id}`, {
|
|
77
|
+
params,
|
|
78
|
+
headers: { Authorization: `token ${token}` },
|
|
79
|
+
});
|
|
80
|
+
if (!hasVariantData(data)) {
|
|
81
|
+
return "";
|
|
82
|
+
}
|
|
83
|
+
const extension = getFormatExtension(format);
|
|
84
|
+
const filename = (0, cleanFileName_1.cleanFileName)(fileName + ("__" + (variantApiId || "base")) + extension);
|
|
85
|
+
const filepath = path_1.default.join(consts_1.default.TEXT_DIR, filename);
|
|
86
|
+
let dataString = data;
|
|
87
|
+
if (extension === ".json") {
|
|
88
|
+
dataString = JSON.stringify(data, null, 2);
|
|
89
|
+
}
|
|
90
|
+
const dataIsValid = getFormatDataIsValid[format];
|
|
91
|
+
if (!dataIsValid(dataString)) {
|
|
92
|
+
return "";
|
|
93
|
+
}
|
|
94
|
+
fs_1.default.writeFileSync(filepath, dataString);
|
|
95
|
+
return getSavedMessage(filename);
|
|
96
|
+
}));
|
|
97
|
+
return savedMessages.join("");
|
|
98
|
+
}
|
|
99
|
+
async function downloadAndSaveVariants(variants, projects, format, status, richText, token) {
|
|
100
|
+
const messages = await Promise.all([
|
|
101
|
+
downloadAndSaveVariant(null, projects, format, status, richText, token),
|
|
102
|
+
...variants.map(({ apiID }) => downloadAndSaveVariant(apiID, projects, format, status, richText, token)),
|
|
103
|
+
]);
|
|
104
|
+
return messages.join("");
|
|
105
|
+
}
|
|
106
|
+
async function downloadAndSaveBase(projects, format, status, richText, token, options) {
|
|
107
|
+
const params = { ...options?.meta };
|
|
108
|
+
if (format)
|
|
109
|
+
params.format = format;
|
|
110
|
+
if (status)
|
|
111
|
+
params.status = status;
|
|
112
|
+
if (richText)
|
|
113
|
+
params.includeRichText = richText.toString();
|
|
114
|
+
const savedMessages = await Promise.all(projects.map(async ({ id, fileName }) => {
|
|
115
|
+
const { data } = await api_1.default.get(`/projects/${id}`, {
|
|
116
|
+
params,
|
|
117
|
+
headers: { Authorization: `token ${token}` },
|
|
118
|
+
});
|
|
119
|
+
const extension = getFormatExtension(format);
|
|
120
|
+
const filename = (0, cleanFileName_1.cleanFileName)(`${fileName}__base${extension}`);
|
|
121
|
+
const filepath = path_1.default.join(consts_1.default.TEXT_DIR, filename);
|
|
122
|
+
let dataString = data;
|
|
123
|
+
if (extension === ".json") {
|
|
124
|
+
dataString = JSON.stringify(data, null, 2);
|
|
125
|
+
}
|
|
126
|
+
const dataIsValid = getFormatDataIsValid[format];
|
|
127
|
+
if (!dataIsValid(dataString)) {
|
|
128
|
+
return "";
|
|
129
|
+
}
|
|
130
|
+
fs_1.default.writeFileSync(filepath, dataString);
|
|
131
|
+
return getSavedMessage(filename);
|
|
132
|
+
}));
|
|
133
|
+
return savedMessages.join("");
|
|
134
|
+
}
|
|
135
|
+
function getSavedMessage(file) {
|
|
136
|
+
return `Successfully saved to ${output_1.default.info(file)}\n`;
|
|
137
|
+
}
|
|
138
|
+
function cleanOutputFiles() {
|
|
139
|
+
if (!fs_1.default.existsSync(consts_1.default.TEXT_DIR)) {
|
|
140
|
+
fs_1.default.mkdirSync(consts_1.default.TEXT_DIR);
|
|
141
|
+
}
|
|
142
|
+
const fileNames = fs_1.default.readdirSync(consts_1.default.TEXT_DIR);
|
|
143
|
+
fileNames.forEach((fileName) => {
|
|
144
|
+
if (/\.js(on)?|\.xml|\.strings$/.test(fileName)) {
|
|
145
|
+
fs_1.default.unlinkSync(path_1.default.resolve(consts_1.default.TEXT_DIR, fileName));
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
return "Cleaning old output files..\n";
|
|
149
|
+
}
|
|
150
|
+
async function downloadAndSave(source, token, options) {
|
|
151
|
+
const { validProjects, format: formatFromSource, shouldFetchComponentLibrary, status, richText, componentFolders, } = source;
|
|
152
|
+
const format = getFormat(formatFromSource);
|
|
153
|
+
let msg = "";
|
|
154
|
+
const spinner = (0, ora_1.default)(msg);
|
|
155
|
+
spinner.start();
|
|
156
|
+
const variants = await (0, fetchVariants_1.fetchVariants)(source);
|
|
157
|
+
try {
|
|
158
|
+
msg += cleanOutputFiles();
|
|
159
|
+
msg += `\nFetching the latest text from ${(0, sourcesToText_1.default)(validProjects, shouldFetchComponentLibrary)}\n`;
|
|
160
|
+
const meta = options ? options.meta : {};
|
|
161
|
+
if (shouldFetchComponentLibrary) {
|
|
162
|
+
// Always include a variant with an apiID of undefined to ensure that we
|
|
163
|
+
// fetch the base text for the component library.
|
|
164
|
+
const componentVariants = [{ apiID: undefined }, ...(variants || [])];
|
|
165
|
+
const params = new URLSearchParams();
|
|
166
|
+
if (options?.meta)
|
|
167
|
+
Object.entries(options.meta).forEach(([k, v]) => params.append(k, v));
|
|
168
|
+
if (format)
|
|
169
|
+
params.append("format", format);
|
|
170
|
+
if (status)
|
|
171
|
+
params.append("status", status);
|
|
172
|
+
if (richText)
|
|
173
|
+
params.append("includeRichText", richText.toString());
|
|
174
|
+
if (componentFolders) {
|
|
175
|
+
componentFolders.forEach(({ id }) => params.append("folder_id[]", id));
|
|
176
|
+
}
|
|
177
|
+
const messages = await Promise.all(componentVariants.map(async ({ apiID: variantApiId }) => {
|
|
178
|
+
const p = new URLSearchParams(params);
|
|
179
|
+
if (variantApiId)
|
|
180
|
+
p.append("variant", variantApiId);
|
|
181
|
+
const { data } = await api_1.default.get(`/components`, { params: p });
|
|
182
|
+
const nameExt = getFormatExtension(format);
|
|
183
|
+
const nameBase = "ditto-component-library";
|
|
184
|
+
const namePostfix = `__${variantApiId || "base"}`;
|
|
185
|
+
const fileName = (0, cleanFileName_1.cleanFileName)(`${nameBase}${namePostfix}${nameExt}`);
|
|
186
|
+
const filePath = path_1.default.join(consts_1.default.TEXT_DIR, fileName);
|
|
187
|
+
let dataString = data;
|
|
188
|
+
if (nameExt === ".json") {
|
|
189
|
+
dataString = JSON.stringify(data, null, 2);
|
|
190
|
+
}
|
|
191
|
+
const dataIsValid = getFormatDataIsValid[format];
|
|
192
|
+
if (!dataIsValid(dataString)) {
|
|
193
|
+
return "";
|
|
194
|
+
}
|
|
195
|
+
await new Promise((r) => fs_1.default.writeFile(filePath, dataString, r));
|
|
196
|
+
return getSavedMessage(fileName);
|
|
197
|
+
}));
|
|
198
|
+
msg += messages.join("");
|
|
199
|
+
}
|
|
200
|
+
if (validProjects.length) {
|
|
201
|
+
msg += variants
|
|
202
|
+
? await downloadAndSaveVariants(variants, validProjects, format, status, richText, token)
|
|
203
|
+
: await downloadAndSaveBase(validProjects, format, status, richText, token, {
|
|
204
|
+
meta,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
const sources = [...validProjects];
|
|
208
|
+
if (shouldFetchComponentLibrary) {
|
|
209
|
+
sources.push({
|
|
210
|
+
id: "ditto_component_library",
|
|
211
|
+
name: "Ditto Component Library",
|
|
212
|
+
fileName: "ditto-component-library",
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
if (JSON_FORMATS.includes(format))
|
|
216
|
+
msg += (0, generateJsDriver_1.generateJsDriver)(sources);
|
|
217
|
+
msg += `\n${output_1.default.success("Done")}!`;
|
|
218
|
+
spinner.stop();
|
|
219
|
+
return console.log(msg);
|
|
220
|
+
}
|
|
221
|
+
catch (e) {
|
|
222
|
+
console.error(e);
|
|
223
|
+
spinner.stop();
|
|
224
|
+
let error = e.message;
|
|
225
|
+
if (e.response && e.response.status === 404) {
|
|
226
|
+
await askForAnotherToken();
|
|
227
|
+
(0, exports.pull)();
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
if (e.response && e.response.status === 401) {
|
|
231
|
+
error = "You don't have access to the selected projects";
|
|
232
|
+
msg = `${output_1.default.errorText(error)}.\nChoose others using the ${output_1.default.info("project")} command, or update your API key.`;
|
|
233
|
+
return console.log(msg);
|
|
234
|
+
}
|
|
235
|
+
if (e.response && e.response.status === 403) {
|
|
236
|
+
error =
|
|
237
|
+
"One or more of the requested projects don't have Developer Mode enabled";
|
|
238
|
+
msg = `${output_1.default.errorText(error)}.\nPlease choose different projects using the ${output_1.default.info("project")} command, or turn on Developer Mode for all selected projects. Learn more here: ${output_1.default.subtle("https://www.dittowords.com/docs/ditto-developer-mode")}.`;
|
|
239
|
+
return console.log(msg);
|
|
240
|
+
}
|
|
241
|
+
if (e.response && e.response.status === 400) {
|
|
242
|
+
error = "projects not found";
|
|
243
|
+
}
|
|
244
|
+
msg = `We hit an error fetching text from the projects: ${output_1.default.errorText(error)}.\nChoose others using the ${output_1.default.info("project")} command.`;
|
|
245
|
+
return console.log(msg);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const pull = (options) => {
|
|
249
|
+
const meta = options ? options.meta : {};
|
|
250
|
+
const token = config_1.default.getToken(consts_1.default.CONFIG_FILE, consts_1.default.API_HOST);
|
|
251
|
+
const sourceInformation = config_1.default.parseSourceInformation();
|
|
252
|
+
return downloadAndSave(sourceInformation, token, { meta });
|
|
253
|
+
};
|
|
254
|
+
exports.pull = pull;
|
|
255
|
+
exports.default = {
|
|
256
|
+
pull: exports.pull,
|
|
257
|
+
_testing: {
|
|
258
|
+
cleanOutputFiles,
|
|
259
|
+
downloadAndSaveVariant,
|
|
260
|
+
downloadAndSaveVariants,
|
|
261
|
+
downloadAndSaveBase,
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
//# sourceMappingURL=pull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../lib/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const config_1 = __importDefault(require("./config"));
|
|
7
|
+
const consts_1 = __importDefault(require("./consts"));
|
|
8
|
+
const output_1 = __importDefault(require("./output"));
|
|
9
|
+
const getSelectedProjects_1 = require("./utils/getSelectedProjects");
|
|
10
|
+
const promptForProject_1 = __importDefault(require("./utils/promptForProject"));
|
|
11
|
+
async function removeProject() {
|
|
12
|
+
const projects = (0, getSelectedProjects_1.getSelectedProjects)();
|
|
13
|
+
const isUsingComponents = (0, getSelectedProjects_1.getIsUsingComponents)();
|
|
14
|
+
if (!projects.length && !isUsingComponents) {
|
|
15
|
+
console.log("\n" +
|
|
16
|
+
"No projects found in your current configuration.\n" +
|
|
17
|
+
`Try adding one with: ${output_1.default.info("ditto-cli project add")}\n`);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const projectToRemove = await (0, promptForProject_1.default)({
|
|
21
|
+
projects,
|
|
22
|
+
message: "Select a project to remove",
|
|
23
|
+
});
|
|
24
|
+
if (!projectToRemove)
|
|
25
|
+
return;
|
|
26
|
+
config_1.default.writeProjectConfigData(consts_1.default.PROJECT_CONFIG_FILE, {
|
|
27
|
+
components: isUsingComponents && projectToRemove.id !== "components",
|
|
28
|
+
projects: projects.filter(({ id }) => id !== projectToRemove.id),
|
|
29
|
+
});
|
|
30
|
+
console.log(`\n${output_1.default.info(projectToRemove.name)} has been removed from your selected projects. ` +
|
|
31
|
+
`\nWe saved your updated configuration to: ${output_1.default.info(consts_1.default.PROJECT_CONFIG_FILE)}` +
|
|
32
|
+
"\n");
|
|
33
|
+
}
|
|
34
|
+
exports.default = removeProject;
|
|
35
|
+
//# sourceMappingURL=remove-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-project.js","sourceRoot":"","sources":["../../lib/remove-project.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,sDAA8B;AAC9B,sDAA8B;AAC9B,qEAGqC;AACrC,gFAAwD;AAExD,KAAK,UAAU,aAAa;IAC1B,MAAM,QAAQ,GAAG,IAAA,yCAAmB,GAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,IAAA,0CAAoB,GAAE,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE;QAC1C,OAAO,CAAC,GAAG,CACT,IAAI;YACF,oDAAoD;YACpD,wBAAwB,gBAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CACnE,CAAC;QACF,OAAO;KACR;IAED,MAAM,eAAe,GAAG,MAAM,IAAA,0BAAgB,EAAC;QAC7C,QAAQ;QACR,OAAO,EAAE,4BAA4B;KACtC,CAAC,CAAC;IACH,IAAI,CAAC,eAAe;QAAE,OAAO;IAE7B,gBAAM,CAAC,sBAAsB,CAAC,gBAAM,CAAC,mBAAmB,EAAE;QACxD,UAAU,EAAE,iBAAiB,IAAI,eAAe,CAAC,EAAE,KAAK,YAAY;QACpE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;KACjE,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CACT,KAAK,gBAAM,CAAC,IAAI,CACd,eAAe,CAAC,IAAI,CACrB,iDAAiD;QAChD,6CAA6C,gBAAM,CAAC,IAAI,CACtD,gBAAM,CAAC,mBAAmB,CAC3B,EAAE;QACH,IAAI,CACP,CAAC;AACJ,CAAC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.replaceJSXTextInFile = exports.parseOptions = exports.replace = void 0;
|
|
30
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
31
|
+
const parser_1 = require("@babel/parser");
|
|
32
|
+
const traverse_1 = __importDefault(require("@babel/traverse"));
|
|
33
|
+
const t = __importStar(require("@babel/types"));
|
|
34
|
+
const core_1 = require("@babel/core");
|
|
35
|
+
async function replaceJSXTextInFile(filePath, replacement) {
|
|
36
|
+
const code = await fs_extra_1.default.readFile(filePath, "utf-8");
|
|
37
|
+
const ast = (0, parser_1.parse)(code, {
|
|
38
|
+
sourceType: "module",
|
|
39
|
+
plugins: ["jsx", "typescript"],
|
|
40
|
+
});
|
|
41
|
+
(0, traverse_1.default)(ast, {
|
|
42
|
+
JSXText(path) {
|
|
43
|
+
const { searchString, replaceWith } = replacement;
|
|
44
|
+
const regex = new RegExp(searchString, "gi");
|
|
45
|
+
if (regex.test(path.node.value)) {
|
|
46
|
+
const splitValues = splitByCaseInsensitive(path.node.value, searchString);
|
|
47
|
+
const nodes = [];
|
|
48
|
+
splitValues.forEach((splitValue) => {
|
|
49
|
+
if (splitValue.toLowerCase() === searchString.toLowerCase()) {
|
|
50
|
+
const identifier = t.jsxIdentifier("DittoComponent");
|
|
51
|
+
const componentId = t.jsxAttribute(t.jsxIdentifier("componentId"), t.stringLiteral(replaceWith));
|
|
52
|
+
const o = t.jsxOpeningElement(identifier, [componentId], true);
|
|
53
|
+
const jsxElement = t.jsxElement(o, undefined, [], true);
|
|
54
|
+
nodes.push(jsxElement);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
nodes.push(t.jsxText(splitValue));
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
path.replaceWithMultiple(nodes);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
// transfromFromAst types are wrong?
|
|
65
|
+
/* @ts-ignore */
|
|
66
|
+
const { code: transformedCode } = (0, core_1.transformFromAst)(ast, code, {
|
|
67
|
+
// Don't let this codebase's Babel config affect the code we're transforming.
|
|
68
|
+
configFile: false,
|
|
69
|
+
});
|
|
70
|
+
fs_extra_1.default.writeFile(filePath, transformedCode);
|
|
71
|
+
}
|
|
72
|
+
exports.replaceJSXTextInFile = replaceJSXTextInFile;
|
|
73
|
+
function splitByCaseInsensitive(str, delimiter) {
|
|
74
|
+
return str.split(new RegExp(`(${delimiter})`, "gi")).filter((s) => s !== "");
|
|
75
|
+
}
|
|
76
|
+
function replace(options) {
|
|
77
|
+
let filePath;
|
|
78
|
+
let searchString;
|
|
79
|
+
let replaceWith;
|
|
80
|
+
try {
|
|
81
|
+
const parsedOptions = parseOptions(options);
|
|
82
|
+
filePath = parsedOptions.filePath;
|
|
83
|
+
searchString = parsedOptions.searchString;
|
|
84
|
+
replaceWith = parsedOptions.replaceWith;
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
console.error(e);
|
|
88
|
+
console.error("Usage for replace: ditto-cli replace <file path> <search string> <replace with>");
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
replaceJSXTextInFile(filePath, { searchString, replaceWith });
|
|
92
|
+
}
|
|
93
|
+
exports.replace = replace;
|
|
94
|
+
function parseOptions(options) {
|
|
95
|
+
if (options.length !== 3) {
|
|
96
|
+
throw new Error("The options array must contain <file path> <search string> <replace with>.");
|
|
97
|
+
}
|
|
98
|
+
const filePath = options[0];
|
|
99
|
+
// Check if the file path exists and points to a regular file (not a directory or other file system object).
|
|
100
|
+
const isFilePathValid = fs_extra_1.default.existsSync(filePath) && fs_extra_1.default.lstatSync(filePath).isFile();
|
|
101
|
+
if (!isFilePathValid) {
|
|
102
|
+
throw new Error(`${filePath} is not a valid file path.`);
|
|
103
|
+
}
|
|
104
|
+
return { filePath, searchString: options[1], replaceWith: options[2] };
|
|
105
|
+
}
|
|
106
|
+
exports.parseOptions = parseOptions;
|
|
107
|
+
//# sourceMappingURL=replace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace.js","sourceRoot":"","sources":["../../lib/replace.ts"],"names":[],"mappings":"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"}
|
package/bin/lib/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cleanFileName = void 0;
|
|
4
|
+
function cleanFileName(fileName) {
|
|
5
|
+
return fileName
|
|
6
|
+
.replace(/\s{1,}/g, "-")
|
|
7
|
+
.replace(/[^a-zA-Z0-9-_.]/g, "")
|
|
8
|
+
.toLowerCase();
|
|
9
|
+
}
|
|
10
|
+
exports.cleanFileName = cleanFileName;
|
|
11
|
+
//# sourceMappingURL=cleanFileName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanFileName.js","sourceRoot":"","sources":["../../../lib/utils/cleanFileName.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ;SACZ,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,WAAW,EAAE,CAAC;AACnB,CAAC;AALD,sCAKC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateJsDriver = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const consts_1 = __importDefault(require("../consts"));
|
|
10
|
+
const output_1 = __importDefault(require("../output"));
|
|
11
|
+
const cleanFileName_1 = require("./cleanFileName");
|
|
12
|
+
// compatability with legacy method of specifying project ids
|
|
13
|
+
// that is still used by the default format
|
|
14
|
+
const stringifySourceId = (projectId) => projectId === "ditto_component_library" ? projectId : `project_${projectId}`;
|
|
15
|
+
/**
|
|
16
|
+
* Generates an index.js file that can be consumed
|
|
17
|
+
* by an SDK - this is a big DX improvement because
|
|
18
|
+
* it provides a single entry point to get all data
|
|
19
|
+
* (including variants) instead of having to import
|
|
20
|
+
* each generated file individually.
|
|
21
|
+
*
|
|
22
|
+
* The generated file will have a unified format
|
|
23
|
+
* independent of the CLI configuration used to fetch
|
|
24
|
+
* data from Ditto.
|
|
25
|
+
*/
|
|
26
|
+
// TODO: support ESM
|
|
27
|
+
function generateJsDriver(sources) {
|
|
28
|
+
const fileNames = fs_1.default
|
|
29
|
+
.readdirSync(consts_1.default.TEXT_DIR)
|
|
30
|
+
.filter((fileName) => /\.json$/.test(fileName));
|
|
31
|
+
const sourceIdsByName = sources.reduce((agg, source) => {
|
|
32
|
+
if (source.fileName) {
|
|
33
|
+
return { ...agg, [(0, cleanFileName_1.cleanFileName)(source.fileName)]: source.id };
|
|
34
|
+
}
|
|
35
|
+
return agg;
|
|
36
|
+
}, {});
|
|
37
|
+
const data = fileNames.reduce((obj, fileName) => {
|
|
38
|
+
const [sourceId, rest] = fileName.split("__");
|
|
39
|
+
const [variantApiId] = rest.split(".");
|
|
40
|
+
const projectId = sourceIdsByName[sourceId];
|
|
41
|
+
const projectIdStr = stringifySourceId(projectId);
|
|
42
|
+
if (!obj[projectIdStr]) {
|
|
43
|
+
obj[projectIdStr] = {};
|
|
44
|
+
}
|
|
45
|
+
obj[projectIdStr][variantApiId] = `require('./${fileName}')`;
|
|
46
|
+
return obj;
|
|
47
|
+
}, {});
|
|
48
|
+
let dataString = `module.exports = ${JSON.stringify(data, null, 2)}`
|
|
49
|
+
// remove quotes around require statements
|
|
50
|
+
.replace(/"require\((.*)\)"/g, "require($1)");
|
|
51
|
+
const filePath = path_1.default.resolve(consts_1.default.TEXT_DIR, "index.js");
|
|
52
|
+
fs_1.default.writeFileSync(filePath, dataString, { encoding: "utf8" });
|
|
53
|
+
return `Generated .js SDK driver at ${output_1.default.info(filePath)}`;
|
|
54
|
+
}
|
|
55
|
+
exports.generateJsDriver = generateJsDriver;
|
|
56
|
+
//# sourceMappingURL=generateJsDriver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateJsDriver.js","sourceRoot":"","sources":["../../../lib/utils/generateJsDriver.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,uDAA+B;AAC/B,uDAA+B;AAE/B,mDAAgD;AAEhD,6DAA6D;AAC7D,2CAA2C;AAC3C,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAC9C,SAAS,KAAK,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC;AAE/E;;;;;;;;;;GAUG;AAEH,oBAAoB;AACpB,SAAgB,gBAAgB,CAAC,OAAiB;IAChD,MAAM,SAAS,GAAG,YAAE;SACjB,WAAW,CAAC,gBAAM,CAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElD,MAAM,eAAe,GAA2B,OAAO,CAAC,MAAM,CAC5D,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACd,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,IAAA,6BAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;SAChE;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAC3B,CAAC,GAA2C,EAAE,QAAQ,EAAE,EAAE;QACxD,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACtB,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;SACxB;QAED,GAAG,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,cAAc,QAAQ,IAAI,CAAC;QAC7D,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAI,UAAU,GAAG,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAClE,0CAA0C;SACzC,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAE7D,OAAO,+BAA+B,gBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChE,CAAC;AA1CD,4CA0CC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.getIsUsingComponents = exports.getSelectedProjects = void 0;
|
|
30
|
+
const js_yaml_1 = __importStar(require("js-yaml"));
|
|
31
|
+
const consts_1 = require("../consts");
|
|
32
|
+
const config_1 = __importDefault(require("../config"));
|
|
33
|
+
function jsonIsConfigYAML(json) {
|
|
34
|
+
return typeof json === "object";
|
|
35
|
+
}
|
|
36
|
+
function yamlToJson(_yaml) {
|
|
37
|
+
try {
|
|
38
|
+
let configYaml = js_yaml_1.default.load(_yaml);
|
|
39
|
+
if (!jsonIsConfigYAML(configYaml)) {
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
return configYaml;
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
if (e instanceof js_yaml_1.YAMLException) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
throw e;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Returns an array containing all valid projects ({ id, name })
|
|
55
|
+
* currently contained in the project config file.
|
|
56
|
+
*/
|
|
57
|
+
const getSelectedProjects = (configFile = consts_1.PROJECT_CONFIG_FILE) => config_1.default.parseSourceInformation(configFile).validProjects;
|
|
58
|
+
exports.getSelectedProjects = getSelectedProjects;
|
|
59
|
+
const getIsUsingComponents = (configFile = consts_1.PROJECT_CONFIG_FILE) => config_1.default.parseSourceInformation(configFile).shouldFetchComponentLibrary;
|
|
60
|
+
exports.getIsUsingComponents = getIsUsingComponents;
|
|
61
|
+
//# sourceMappingURL=getSelectedProjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSelectedProjects.js","sourceRoot":"","sources":["../../../lib/utils/getSelectedProjects.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mDAA8C;AAE9C,sCAAgD;AAEhD,uDAAwD;AAExD,SAAS,gBAAgB,CAAC,IAAa;IACrC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI;QACF,IAAI,UAAU,GAAG,iBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACjC,OAAO,EAAE,CAAC;SACX;QACD,OAAO,UAAU,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,uBAAa,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAAC,UAAU,GAAG,4BAAmB,EAAE,EAAE,CACtE,gBAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;AAD7C,QAAA,mBAAmB,uBAC0B;AAEnD,MAAM,oBAAoB,GAAG,CAAC,UAAU,GAAG,4BAAmB,EAAE,EAAE,CACvE,gBAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,2BAA2B,CAAC;AAD3D,QAAA,oBAAoB,wBACuC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const processMetaOption = (inputArr) => {
|
|
4
|
+
const res = {};
|
|
5
|
+
if (!Array.isArray(inputArr)) {
|
|
6
|
+
return res;
|
|
7
|
+
}
|
|
8
|
+
inputArr.forEach((element) => {
|
|
9
|
+
const [key, value] = element.split(":");
|
|
10
|
+
res[key] = value;
|
|
11
|
+
});
|
|
12
|
+
return res;
|
|
13
|
+
};
|
|
14
|
+
exports.default = processMetaOption;
|
|
15
|
+
//# sourceMappingURL=processMetaOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processMetaOption.js","sourceRoot":"","sources":["../../../lib/utils/processMetaOption.ts"],"names":[],"mappings":";;AAAA,MAAM,iBAAiB,GAAG,CAAC,QAAyB,EAAE,EAAE;IACtD,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC5B,OAAO,GAAG,CAAC;KACZ;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSourceUrl = void 0;
|
|
7
|
+
const output_1 = __importDefault(require("../output"));
|
|
8
|
+
const getSourceUrl = (sourceId) => {
|
|
9
|
+
let base = "https://app.dittowords.com";
|
|
10
|
+
if (sourceId === "ditto_component_library") {
|
|
11
|
+
return `${base}/components`;
|
|
12
|
+
}
|
|
13
|
+
return `${base}/doc/${sourceId}`;
|
|
14
|
+
};
|
|
15
|
+
exports.getSourceUrl = getSourceUrl;
|
|
16
|
+
const projectsToText = (projects) => {
|
|
17
|
+
return ((projects || []).reduce((outputString, { name, id }) => outputString +
|
|
18
|
+
("\n" +
|
|
19
|
+
"- " +
|
|
20
|
+
output_1.default.info(name) +
|
|
21
|
+
" " +
|
|
22
|
+
output_1.default.subtle((0, exports.getSourceUrl)(id))), "") + "\n");
|
|
23
|
+
};
|
|
24
|
+
exports.default = projectsToText;
|
|
25
|
+
//# sourceMappingURL=projectsToText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectsToText.js","sourceRoot":"","sources":["../../../lib/utils/projectsToText.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAGxB,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC/C,IAAI,IAAI,GAAG,4BAA4B,CAAC;IAExC,IAAI,QAAQ,KAAK,yBAAyB,EAAE;QAC1C,OAAO,GAAG,IAAI,aAAa,CAAC;KAC7B;IAED,OAAO,GAAG,IAAI,QAAQ,QAAQ,EAAE,CAAC;AACnC,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB;AAEF,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAE,EAAE;IAC7C,OAAO,CACL,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CACrB,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAC7B,YAAY;QACZ,CAAC,IAAI;YACH,IAAI;YACJ,gBAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACjB,GAAG;YACH,gBAAM,CAAC,MAAM,CAAC,IAAA,oBAAY,EAAC,EAAE,CAAC,CAAC,CAAC,EACpC,EAAE,CACH,GAAG,IAAI,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|