@dittowords/cli 3.6.1 → 3.8.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/cli.iml ADDED
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ <excludeFolder url="file://$MODULE_DIR$/bin" />
9
+ </content>
10
+ <orderEntry type="inheritedJdk" />
11
+ <orderEntry type="sourceFolder" forTests="false" />
12
+ </component>
13
+ </module>
@@ -0,0 +1,65 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <code_scheme name="Project" version="173">
3
+ <HTMLCodeStyleSettings>
4
+ <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
+ <option name="HTML_ENFORCE_QUOTES" value="true" />
6
+ </HTMLCodeStyleSettings>
7
+ <JSCodeStyleSettings version="0">
8
+ <option name="FORCE_SEMICOLON_STYLE" value="true" />
9
+ <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
10
+ <option name="FORCE_QUOTE_STYlE" value="true" />
11
+ <option name="ENFORCE_TRAILING_COMMA" value="Remove" />
12
+ <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
13
+ <option name="SPACES_WITHIN_IMPORTS" value="true" />
14
+ </JSCodeStyleSettings>
15
+ <TypeScriptCodeStyleSettings version="0">
16
+ <option name="FORCE_SEMICOLON_STYLE" value="true" />
17
+ <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
18
+ <option name="FORCE_QUOTE_STYlE" value="true" />
19
+ <option name="ENFORCE_TRAILING_COMMA" value="Remove" />
20
+ <option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
21
+ <option name="SPACES_WITHIN_IMPORTS" value="true" />
22
+ </TypeScriptCodeStyleSettings>
23
+ <VueCodeStyleSettings>
24
+ <option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
25
+ <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
26
+ </VueCodeStyleSettings>
27
+ <codeStyleSettings language="CSS">
28
+ <indentOptions>
29
+ <option name="INDENT_SIZE" value="2" />
30
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
31
+ <option name="TAB_SIZE" value="2" />
32
+ </indentOptions>
33
+ </codeStyleSettings>
34
+ <codeStyleSettings language="HTML">
35
+ <option name="SOFT_MARGINS" value="80" />
36
+ <indentOptions>
37
+ <option name="INDENT_SIZE" value="2" />
38
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
39
+ <option name="TAB_SIZE" value="2" />
40
+ </indentOptions>
41
+ </codeStyleSettings>
42
+ <codeStyleSettings language="JavaScript">
43
+ <option name="SOFT_MARGINS" value="80" />
44
+ <indentOptions>
45
+ <option name="INDENT_SIZE" value="2" />
46
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
47
+ <option name="TAB_SIZE" value="2" />
48
+ </indentOptions>
49
+ </codeStyleSettings>
50
+ <codeStyleSettings language="TypeScript">
51
+ <option name="SOFT_MARGINS" value="80" />
52
+ <indentOptions>
53
+ <option name="INDENT_SIZE" value="2" />
54
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
55
+ <option name="TAB_SIZE" value="2" />
56
+ </indentOptions>
57
+ </codeStyleSettings>
58
+ <codeStyleSettings language="Vue">
59
+ <option name="SOFT_MARGINS" value="80" />
60
+ <indentOptions>
61
+ <option name="CONTINUATION_INDENT_SIZE" value="2" />
62
+ </indentOptions>
63
+ </codeStyleSettings>
64
+ </code_scheme>
65
+ </component>
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
+ </state>
5
+ </component>
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ </profile>
6
+ </component>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/cli.iml" filepath="$PROJECT_DIR$/.idea/cli.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PrettierConfiguration">
4
+ <option name="myRunOnSave" value="true" />
5
+ </component>
6
+ </project>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,180 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="d2834f12-3435-41b5-8efa-c62f3f4baa0d" name="Changes" comment="simplify generate-suggestions flag passing" />
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_BRANCH_BY_REPOSITORY">
12
+ <map>
13
+ <entry key="$PROJECT_DIR$" value="ash/dit-4251-enable-component-imports-via-the-cli" />
14
+ </map>
15
+ </option>
16
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
17
+ </component>
18
+ <component name="GitSEFilterConfiguration">
19
+ <file-type-list>
20
+ <filtered-out-file-type name="LOCAL_BRANCH" />
21
+ <filtered-out-file-type name="REMOTE_BRANCH" />
22
+ <filtered-out-file-type name="TAG" />
23
+ <filtered-out-file-type name="COMMIT_BY_MESSAGE" />
24
+ </file-type-list>
25
+ </component>
26
+ <component name="ProjectId" id="2QnCWGsMrfsa99lySJEn0m45dgP" />
27
+ <component name="ProjectViewState">
28
+ <option name="hideEmptyMiddlePackages" value="true" />
29
+ <option name="showLibraryContents" value="true" />
30
+ <option name="showMembers" value="true" />
31
+ </component>
32
+ <component name="PropertiesComponent">
33
+ <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
34
+ <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
35
+ <property name="WebServerToolWindowFactoryState" value="false" />
36
+ <property name="last_opened_file_path" value="$PROJECT_DIR$/lib/http" />
37
+ <property name="node.js.detected.package.eslint" value="true" />
38
+ <property name="node.js.detected.package.standard" value="true" />
39
+ <property name="node.js.selected.package.eslint" value="(autodetect)" />
40
+ <property name="node.js.selected.package.standard" value="" />
41
+ <property name="nodejs.jest.jest_package" value="$PROJECT_DIR$/node_modules/jest" />
42
+ <property name="nodejs_package_manager_path" value="yarn" />
43
+ <property name="prettierjs.PrettierConfiguration.Package" value="$PROJECT_DIR$/node_modules/prettier" />
44
+ <property name="settings.editor.selected.configurable" value="settings.javascript.prettier" />
45
+ <property name="ts.external.directory.path" value="$PROJECT_DIR$/node_modules/typescript/lib" />
46
+ <property name="vue.rearranger.settings.migration" value="true" />
47
+ </component>
48
+ <component name="RecentsManager">
49
+ <key name="CopyFile.RECENT_KEYS">
50
+ <recent name="$PROJECT_DIR$/lib/http" />
51
+ </key>
52
+ </component>
53
+ <component name="RunManager">
54
+ <configuration name="generate-suggestions.test.ts" type="JavaScriptTestRunnerJest" temporary="true" nameIsGenerated="true">
55
+ <node-interpreter value="project" />
56
+ <node-options value="" />
57
+ <jest-package value="$PROJECT_DIR$/node_modules/jest" />
58
+ <working-dir value="$PROJECT_DIR$" />
59
+ <envs />
60
+ <scope-kind value="TEST_FILE" />
61
+ <test-file value="$PROJECT_DIR$/lib/generate-suggestions.test.ts" />
62
+ <method v="2" />
63
+ </configuration>
64
+ <recent_temporary>
65
+ <list>
66
+ <item itemvalue="Jest.generate-suggestions.test.ts" />
67
+ </list>
68
+ </recent_temporary>
69
+ </component>
70
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
71
+ <component name="TaskManager">
72
+ <task active="true" id="Default" summary="Default task">
73
+ <changelist id="d2834f12-3435-41b5-8efa-c62f3f4baa0d" name="Changes" comment="" />
74
+ <created>1685979990050</created>
75
+ <option name="number" value="Default" />
76
+ <option name="presentableId" value="Default" />
77
+ <updated>1685979990050</updated>
78
+ <workItem from="1685979994523" duration="162000" />
79
+ <workItem from="1685980169522" duration="92000" />
80
+ <workItem from="1685980274824" duration="41000" />
81
+ <workItem from="1685980327587" duration="27000" />
82
+ <workItem from="1685980367078" duration="303000" />
83
+ <workItem from="1685980682884" duration="824000" />
84
+ <workItem from="1685986712012" duration="5115000" />
85
+ <workItem from="1686000886228" duration="2633000" />
86
+ <workItem from="1686069506429" duration="76000" />
87
+ <workItem from="1686087849012" duration="140000" />
88
+ <workItem from="1686168915499" duration="2643000" />
89
+ <workItem from="1686172029566" duration="4862000" />
90
+ </task>
91
+ <task id="LOCAL-00001" summary="Remove eslint">
92
+ <created>1685986802039</created>
93
+ <option name="number" value="00001" />
94
+ <option name="presentableId" value="LOCAL-00001" />
95
+ <option name="project" value="LOCAL" />
96
+ <updated>1685986802039</updated>
97
+ </task>
98
+ <task id="LOCAL-00002" summary="Add -cf flag to generate-suggestions">
99
+ <created>1685993746601</created>
100
+ <option name="number" value="00002" />
101
+ <option name="presentableId" value="LOCAL-00002" />
102
+ <option name="project" value="LOCAL" />
103
+ <updated>1685993746601</updated>
104
+ </task>
105
+ <task id="LOCAL-00003" summary="Remove redundant variable">
106
+ <created>1685993770336</created>
107
+ <option name="number" value="00003" />
108
+ <option name="presentableId" value="LOCAL-00003" />
109
+ <option name="project" value="LOCAL" />
110
+ <updated>1685993770336</updated>
111
+ </task>
112
+ <task id="LOCAL-00004" summary="Add command to show component-folders">
113
+ <created>1686001523646</created>
114
+ <option name="number" value="00004" />
115
+ <option name="presentableId" value="LOCAL-00004" />
116
+ <option name="project" value="LOCAL" />
117
+ <updated>1686001523646</updated>
118
+ </task>
119
+ <task id="LOCAL-00005" summary="Command description">
120
+ <created>1686002294377</created>
121
+ <option name="number" value="00005" />
122
+ <option name="presentableId" value="LOCAL-00005" />
123
+ <option name="project" value="LOCAL" />
124
+ <updated>1686002294377</updated>
125
+ </task>
126
+ <task id="LOCAL-00006" summary="Stringify print">
127
+ <created>1686069574434</created>
128
+ <option name="number" value="00006" />
129
+ <option name="presentableId" value="LOCAL-00006" />
130
+ <option name="project" value="LOCAL" />
131
+ <updated>1686069574434</updated>
132
+ </task>
133
+ <task id="LOCAL-00007" summary="Add import-component function">
134
+ <created>1686238984111</created>
135
+ <option name="number" value="00007" />
136
+ <option name="presentableId" value="LOCAL-00007" />
137
+ <option name="project" value="LOCAL" />
138
+ <updated>1686238984111</updated>
139
+ </task>
140
+ <task id="LOCAL-00008" summary="simplify generate-suggestions flag passing">
141
+ <created>1686244114837</created>
142
+ <option name="number" value="00008" />
143
+ <option name="presentableId" value="LOCAL-00008" />
144
+ <option name="project" value="LOCAL" />
145
+ <updated>1686244114837</updated>
146
+ </task>
147
+ <option name="localTasksCounter" value="9" />
148
+ <servers />
149
+ </component>
150
+ <component name="TypeScriptGeneratedFilesManager">
151
+ <option name="version" value="3" />
152
+ </component>
153
+ <component name="Vcs.Log.Tabs.Properties">
154
+ <option name="TAB_STATES">
155
+ <map>
156
+ <entry key="MAIN">
157
+ <value>
158
+ <State />
159
+ </value>
160
+ </entry>
161
+ </map>
162
+ </option>
163
+ <option name="oldMeFiltersMigrated" value="true" />
164
+ </component>
165
+ <component name="VcsManagerConfiguration">
166
+ <MESSAGE value="Remove eslint" />
167
+ <MESSAGE value="Add -cf flag to generate-suggestions" />
168
+ <MESSAGE value="Remove redundant variable" />
169
+ <MESSAGE value="Add command to show component-folders" />
170
+ <MESSAGE value="Command description" />
171
+ <MESSAGE value="Stringify print" />
172
+ <MESSAGE value="Add import-component function" />
173
+ <MESSAGE value="simplify generate-suggestions flag passing" />
174
+ <option name="LAST_COMMIT_MESSAGE" value="simplify generate-suggestions flag passing" />
175
+ </component>
176
+ <component name="XSLT-Support.FileAssociations.UIState">
177
+ <expand />
178
+ <select />
179
+ </component>
180
+ </project>
package/README.md CHANGED
@@ -84,6 +84,12 @@ For more details on files generated by this command, see [Output Files](#output-
84
84
 
85
85
  **Action:** Lists projects in `config.yml` and permits selecting one to remove from `config.yml` via an interactive prompt.
86
86
 
87
+ ### Component folders
88
+
89
+ **Usage:** `ditto-cli component-folders`
90
+
91
+ **Action:** List component folders in your workspace. More information about component folders can be found here: https://www.dittowords.com/docs/component-folders.
92
+
87
93
  ## Configuration
88
94
 
89
95
  The `config.yml` file is the source of truth for a given directory about how the CLI should fetch and store data from Ditto. It includes information about which Ditto projects the CLI should pull text from, whether or not the component library should be included, in what format the text should be stored, and more.
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.showComponentFolders = void 0;
4
+ const fetchComponentFolders_1 = require("./http/fetchComponentFolders");
5
+ async function showComponentFolders() {
6
+ const folders = await (0, fetchComponentFolders_1.fetchComponentFolders)();
7
+ console.log(JSON.stringify(folders));
8
+ }
9
+ exports.showComponentFolders = showComponentFolders;
10
+ //# sourceMappingURL=component-folders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-folders.js","sourceRoot":"","sources":["../lib/component-folders.ts"],"names":[],"mappings":";;;AAAA,wEAAqE;AAErE,KAAK,UAAU,oBAAoB;IACjC,MAAM,OAAO,GAAG,MAAM,IAAA,6CAAqB,GAAE,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACvC,CAAC;AAEQ,oDAAoB"}
package/bin/ditto.js CHANGED
@@ -18,12 +18,12 @@ const remove_project_1 = __importDefault(require("./remove-project"));
18
18
  const replace_1 = require("./replace");
19
19
  const generate_suggestions_1 = require("./generate-suggestions");
20
20
  const processMetaOption_1 = __importDefault(require("./utils/processMetaOption"));
21
+ const component_folders_1 = require("./component-folders");
21
22
  function getVersion() {
22
23
  const packageJsonPath = path_1.default.join(__dirname, "..", "package.json");
23
24
  const packageJsonContent = fs_1.default.readFileSync(packageJsonPath, "utf8");
24
25
  const packageJson = JSON.parse(packageJsonContent);
25
- const version = packageJson.version;
26
- return version;
26
+ return packageJson.version;
27
27
  }
28
28
  const VERSION = getVersion();
29
29
  const COMMANDS = [
@@ -45,6 +45,10 @@ const COMMANDS = [
45
45
  },
46
46
  ],
47
47
  },
48
+ {
49
+ name: "component-folders",
50
+ description: "List component folders in your workspace. More information about component folders can be found here: https://www.dittowords.com/docs/component-folders.",
51
+ },
48
52
  {
49
53
  name: "generate-suggestions",
50
54
  description: "Find text that can be potentially replaced with Ditto text",
@@ -56,6 +60,9 @@ const COMMANDS = [
56
60
  description: "Files to search for text (will override -d)",
57
61
  processor: (value) => value.split(","),
58
62
  },
63
+ "-cf, --component-folder [value]": {
64
+ description: "Component folder to search for matches",
65
+ },
59
66
  },
60
67
  },
61
68
  {
@@ -136,10 +143,14 @@ const executeCommand = async (command, options) => {
136
143
  case "project remove": {
137
144
  return (0, remove_project_1.default)();
138
145
  }
146
+ case "component-folders": {
147
+ return (0, component_folders_1.showComponentFolders)();
148
+ }
139
149
  case "generate-suggestions": {
140
150
  return (0, generate_suggestions_1.generateSuggestions)({
141
- ...(options.directory ? { directory: options.directory } : {}),
142
- ...(options.files ? { files: options.files } : {}),
151
+ directory: options.directory,
152
+ files: options.files,
153
+ componentFolder: options.componentFolder,
143
154
  });
144
155
  }
145
156
  case "replace": {
package/bin/ditto.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ditto.js","sourceRoot":"","sources":["../lib/ditto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ditto.js","sourceRoot":"","sources":["../lib/ditto.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@ const parser_1 = require("@babel/parser");
10
10
  const traverse_1 = __importDefault(require("@babel/traverse"));
11
11
  const fetchComponents_1 = require("./http/fetchComponents");
12
12
  async function generateSuggestions(flags) {
13
- const components = await (0, fetchComponents_1.fetchComponents)();
13
+ const components = await (0, fetchComponents_1.fetchComponents)({
14
+ ...(flags.componentFolder ? { componentFolder: flags.componentFolder } : {})
15
+ });
14
16
  const directory = flags.directory || ".";
15
17
  const results = await findComponentsInJSXFiles({
16
18
  directory,
@@ -1 +1 @@
1
- {"version":3,"file":"generate-suggestions.js","sourceRoot":"","sources":["../lib/generate-suggestions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-suggestions.js","sourceRoot":"","sources":["../lib/generate-suggestions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchComponentFolders = void 0;
4
+ const api_1 = require("../api");
5
+ async function fetchComponentFolders() {
6
+ const api = (0, api_1.createApiClient)();
7
+ const { data } = await api.get("/component-folders", {});
8
+ return data;
9
+ }
10
+ exports.fetchComponentFolders = fetchComponentFolders;
11
+ //# sourceMappingURL=fetchComponentFolders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchComponentFolders.js","sourceRoot":"","sources":["../../lib/http/fetchComponentFolders.ts"],"names":[],"mappings":";;;AAAA,gCAAyC;AAMlC,KAAK,UAAU,qBAAqB;IACzC,MAAM,GAAG,GAAG,IAAA,qBAAe,GAAE,CAAC;IAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B,oBAAoB,EACpB,EAAE,CACH,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AATD,sDASC"}
@@ -2,10 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchComponents = void 0;
4
4
  const api_1 = require("../api");
5
- async function fetchComponents() {
5
+ async function fetchComponents(options) {
6
6
  const api = (0, api_1.createApiClient)();
7
- const { data } = await api.get("/components", {});
8
- return data;
7
+ if (options.componentFolder) {
8
+ try {
9
+ const { data } = await api.get(`/component-folders/${options.componentFolder}/components`, {});
10
+ return data;
11
+ }
12
+ catch (e) {
13
+ console.log(`Failed to get components for ${options.componentFolder}. Please verify the folder's API ID.`);
14
+ return {};
15
+ }
16
+ }
17
+ else {
18
+ const { data } = await api.get("/components", {});
19
+ return data;
20
+ }
9
21
  }
10
22
  exports.fetchComponents = fetchComponents;
11
23
  //# sourceMappingURL=fetchComponents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchComponents.js","sourceRoot":"","sources":["../../lib/http/fetchComponents.ts"],"names":[],"mappings":";;;AAAA,gCAAyC;AAalC,KAAK,UAAU,eAAe;IACnC,MAAM,GAAG,GAAG,IAAA,qBAAe,GAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAO3B,aAAa,EAAE,EAAE,CAAC,CAAC;IAEtB,OAAO,IAAI,CAAC;AACd,CAAC;AAZD,0CAYC"}
1
+ {"version":3,"file":"fetchComponents.js","sourceRoot":"","sources":["../../lib/http/fetchComponents.ts"],"names":[],"mappings":";;;AAAA,gCAAyC;AAalC,KAAK,UAAU,eAAe,CAAC,OAErC;IACC,MAAM,GAAG,GAAG,IAAA,qBAAe,GAAE,CAAC;IAE9B,IAAI,OAAO,CAAC,eAAe,EAAE;QAC3B,IAAI;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAyB,sBAAsB,OAAO,CAAC,eAAe,aAAa,EAAE,EAAE,CAAC,CAAC;YAEvH,OAAO,IAAI,CAAC;SACb;QACD,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAC,eAAe,sCAAsC,CAAC,CAAA;YAC1G,OAAO,EAAE,CAAA;SACV;KAEF;SACI;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAyB,aAAa,EAAE,EAAE,CAAC,CAAC;QAE1E,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAtBD,0CAsBC"}
@@ -0,0 +1,9 @@
1
+ import { fetchComponentFolders } from "./http/fetchComponentFolders";
2
+
3
+ async function showComponentFolders() {
4
+ const folders = await fetchComponentFolders();
5
+
6
+ console.log(JSON.stringify(folders));
7
+ }
8
+
9
+ export { showComponentFolders };
package/lib/ditto.ts CHANGED
@@ -15,14 +15,13 @@ import { replace } from "./replace";
15
15
  import { generateSuggestions } from "./generate-suggestions";
16
16
 
17
17
  import processMetaOption from "./utils/processMetaOption";
18
+ import { showComponentFolders } from "./component-folders";
18
19
 
19
20
  function getVersion(): string {
20
21
  const packageJsonPath = path.join(__dirname, "..", "package.json");
21
22
  const packageJsonContent = fs.readFileSync(packageJsonPath, "utf8");
22
23
  const packageJson = JSON.parse(packageJsonContent) as { version: string };
23
- const version = packageJson.version;
24
-
25
- return version;
24
+ return packageJson.version;
26
25
  }
27
26
 
28
27
  const VERSION = getVersion();
@@ -32,6 +31,7 @@ type Command =
32
31
  | "project"
33
32
  | "project add"
34
33
  | "project remove"
34
+ | "component-folders"
35
35
  | "generate-suggestions"
36
36
  | "replace";
37
37
 
@@ -63,6 +63,11 @@ const COMMANDS: CommandConfig<Command>[] = [
63
63
  },
64
64
  ],
65
65
  },
66
+ {
67
+ name: "component-folders",
68
+ description:
69
+ "List component folders in your workspace. More information about component folders can be found here: https://www.dittowords.com/docs/component-folders.",
70
+ },
66
71
  {
67
72
  name: "generate-suggestions",
68
73
  description: "Find text that can be potentially replaced with Ditto text",
@@ -74,6 +79,9 @@ const COMMANDS: CommandConfig<Command>[] = [
74
79
  description: "Files to search for text (will override -d)",
75
80
  processor: (value: string) => value.split(","),
76
81
  },
82
+ "-cf, --component-folder [value]": {
83
+ description: "Component folder to search for matches",
84
+ },
77
85
  },
78
86
  },
79
87
  {
@@ -168,10 +176,14 @@ const executeCommand = async (
168
176
  case "project remove": {
169
177
  return removeProject();
170
178
  }
179
+ case "component-folders": {
180
+ return showComponentFolders();
181
+ }
171
182
  case "generate-suggestions": {
172
183
  return generateSuggestions({
173
- ...(options.directory ? { directory: options.directory } : {}),
174
- ...(options.files ? { files: options.files } : {}),
184
+ directory: options.directory,
185
+ files: options.files,
186
+ componentFolder: options.componentFolder,
175
187
  });
176
188
  }
177
189
  case "replace": {
@@ -9,6 +9,11 @@ import {
9
9
  fetchComponents,
10
10
  } from "./http/fetchComponents";
11
11
 
12
+ interface Occurrence {
13
+ lineNumber: number;
14
+ preview: string;
15
+ }
16
+
12
17
  interface Result extends FetchComponentResponseComponent {
13
18
  apiId: string;
14
19
  occurrences: {
@@ -16,16 +21,14 @@ interface Result extends FetchComponentResponseComponent {
16
21
  };
17
22
  }
18
23
 
19
- interface Occurrence {
20
- lineNumber: number;
21
- preview: string;
22
- }
23
-
24
24
  async function generateSuggestions(flags: {
25
25
  directory?: string;
26
26
  files?: string[];
27
+ componentFolder?: string;
27
28
  }) {
28
- const components = await fetchComponents();
29
+ const components = await fetchComponents({
30
+ ...(flags.componentFolder ? { componentFolder: flags.componentFolder} : {})
31
+ });
29
32
  const directory = flags.directory || ".";
30
33
 
31
34
  const results: { [apiId: string]: Result } = await findComponentsInJSXFiles({
@@ -0,0 +1,16 @@
1
+ import { createApiClient } from "../api";
2
+
3
+ interface FetchComponentFoldersResponse {
4
+ [id: string]: string;
5
+ }
6
+
7
+ export async function fetchComponentFolders(): Promise<FetchComponentFoldersResponse> {
8
+ const api = createApiClient();
9
+
10
+ const { data } = await api.get<FetchComponentFoldersResponse>(
11
+ "/component-folders",
12
+ {}
13
+ );
14
+
15
+ return data;
16
+ }
@@ -11,16 +11,26 @@ export interface FetchComponentResponse {
11
11
  [compApiId: string]: FetchComponentResponseComponent;
12
12
  }
13
13
 
14
- export async function fetchComponents(): Promise<FetchComponentResponse> {
14
+ export async function fetchComponents(options: {
15
+ componentFolder?: string;
16
+ }): Promise<FetchComponentResponse> {
15
17
  const api = createApiClient();
16
- const { data } = await api.get<{
17
- [compApiId: string]: {
18
- name: string;
19
- text: string;
20
- status: "NONE" | "WIP" | "REVIEW" | "FINAL";
21
- folder: "string" | null;
22
- };
23
- }>("/components", {});
24
18
 
25
- return data;
19
+ if (options.componentFolder) {
20
+ try {
21
+ const { data } = await api.get<FetchComponentResponse>(`/component-folders/${options.componentFolder}/components`, {});
22
+
23
+ return data;
24
+ }
25
+ catch (e) {
26
+ console.log(`Failed to get components for ${options.componentFolder}. Please verify the folder's API ID.`)
27
+ return {}
28
+ }
29
+
30
+ }
31
+ else {
32
+ const { data } = await api.get<FetchComponentResponse>("/components", {});
33
+
34
+ return data;
35
+ }
26
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dittowords/cli",
3
- "version": "3.6.1",
3
+ "version": "3.8.0",
4
4
  "description": "Command Line Interface for Ditto (dittowords.com).",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -40,8 +40,6 @@
40
40
  "@types/js-yaml": "^4.0.5",
41
41
  "@types/node": "^18.0.0",
42
42
  "babel-jest": "^29.3.1",
43
- "eslint": "^8.27.0",
44
- "eslint-config-airbnb-base": "^14.2.0",
45
43
  "husky": "^7.0.4",
46
44
  "jest": "^29.3.1",
47
45
  "lint-staged": "^11.2.4",
@@ -2,7 +2,7 @@ import React from "react";
2
2
  function HelloWorld() {
3
3
  return (
4
4
  <div>
5
- <p>good bye</p>
5
+ <p>good bye?</p>
6
6
  </div>
7
7
  );
8
8
  }
package/.eslintrc.js DELETED
@@ -1,17 +0,0 @@
1
- module.exports = {
2
- env: {
3
- browser: true,
4
- commonjs: true,
5
- es2020: true,
6
- "jest/globals": true,
7
- },
8
- extends: ["airbnb-base"],
9
- parserOptions: {
10
- ecmaVersion: 11,
11
- },
12
- plugins: ["jest"],
13
- rules: {
14
- "no-console": "off",
15
- "no-underscore-dangle": ["error", { allow: ["_id", "__get__"] }],
16
- },
17
- };