Skip to content

Commit 3fb3539

Browse files
committed
feat: improve query speed
1 parent bd7eb93 commit 3fb3539

File tree

4 files changed

+150
-7
lines changed

4 files changed

+150
-7
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@
3232
"description": "Enter your custom OpenAI entrypoint",
3333
"type": "textfield",
3434
"title": "OpenAI API Entrypoint",
35-
"default": "https://ai.mingming.dev/v1/chat/completions",
35+
"default": "https://openai.mingming.dev/v1/chat/completions",
3636
"required": true
3737
}
3838
],
3939
"dependencies": {
4040
"@raycast/api": "^1.48.9",
41+
"change-case": "^4.1.2",
4142
"node-fetch": "^3.3.1"
4243
},
4344
"devDependencies": {

src/constants.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
11
/**
22
* Turn on the type of query needed on demand
33
*/
4-
export const CASES = ["camelCase", "PascalCase", "CONSTANT_CASE", "param-case", "snake_case"] as const;
4+
export const CASES = [
5+
"noCase",
6+
"camelCase",
7+
"capitalCase",
8+
"constantCase",
9+
"dotCase",
10+
"headerCase",
11+
"paramCase",
12+
"pascalCase",
13+
"pathCase",
14+
"sentenceCase",
15+
"snakeCase",
16+
] as const;

src/useQuery.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import * as changeCase from "change-case";
12
import { LocalStorage, getPreferenceValues } from "@raycast/api";
23
import fetch from "node-fetch";
4+
35
import { CASES } from "./constants";
46
import type { Result, ChatCompletion } from "./types";
57

@@ -22,14 +24,11 @@ export async function queryVariableNames(content: string, signal?: AbortSignal):
2224
Authorization: `Bearer ${apiKey}`,
2325
},
2426
body: JSON.stringify({
25-
// https://platform.openai.com/docs/api-reference/chat/create
2627
model: "gpt-3.5-turbo",
2728
messages: [
2829
{
2930
role: "user",
30-
content: `Translate variable names into English and apply naming conventions: ${CASES.join(",")}.
31-
Save the result in the format: [{value: 'result', type: 'convention'}]. Serialize the output without any explanation.
32-
The string to be translated is "${content}"`,
31+
content: `Translate to en: \n\n ${content}`,
3332
},
3433
],
3534
}),
@@ -41,7 +40,8 @@ export async function queryVariableNames(content: string, signal?: AbortSignal):
4140
const content = (await response.json()) as ChatCompletion;
4241
let result: Result[] = [];
4342
try {
44-
result = JSON.parse(content?.choices?.[0]?.message?.content);
43+
const text = (content?.choices?.[0]?.message?.content || "").replace(/\n|\./g, "");
44+
result = CASES.map((type) => ({ value: changeCase[type](text), type }));
4545
} catch (error) {
4646
result = [];
4747
}

yarn.lock

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,23 @@ callsites@^3.0.0:
333333
resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
334334
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
335335

336+
camel-case@^4.1.2:
337+
version "4.1.2"
338+
resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
339+
integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
340+
dependencies:
341+
pascal-case "^3.1.2"
342+
tslib "^2.0.3"
343+
344+
capital-case@^1.0.4:
345+
version "1.0.4"
346+
resolved "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669"
347+
integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==
348+
dependencies:
349+
no-case "^3.0.4"
350+
tslib "^2.0.3"
351+
upper-case-first "^2.0.2"
352+
336353
chalk@^2.0.0:
337354
version "2.4.2"
338355
resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
@@ -350,6 +367,24 @@ chalk@^4.0.0:
350367
ansi-styles "^4.1.0"
351368
supports-color "^7.1.0"
352369

370+
change-case@^4.1.2:
371+
version "4.1.2"
372+
resolved "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12"
373+
integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==
374+
dependencies:
375+
camel-case "^4.1.2"
376+
capital-case "^1.0.4"
377+
constant-case "^3.0.4"
378+
dot-case "^3.0.4"
379+
header-case "^2.0.4"
380+
no-case "^3.0.4"
381+
param-case "^3.0.4"
382+
pascal-case "^3.1.2"
383+
path-case "^3.0.4"
384+
sentence-case "^3.0.4"
385+
snake-case "^3.0.4"
386+
tslib "^2.0.3"
387+
353388
color-convert@^1.9.0:
354389
version "1.9.3"
355390
resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@@ -379,6 +414,15 @@ [email protected]:
379414
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
380415
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
381416

417+
constant-case@^3.0.4:
418+
version "3.0.4"
419+
resolved "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1"
420+
integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==
421+
dependencies:
422+
no-case "^3.0.4"
423+
tslib "^2.0.3"
424+
upper-case "^2.0.2"
425+
382426
cross-spawn@^7.0.2:
383427
version "7.0.3"
384428
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -424,6 +468,14 @@ doctrine@^3.0.0:
424468
dependencies:
425469
esutils "^2.0.2"
426470

471+
dot-case@^3.0.4:
472+
version "3.0.4"
473+
resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
474+
integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
475+
dependencies:
476+
no-case "^3.0.4"
477+
tslib "^2.0.3"
478+
427479
emoji-regex@^8.0.0:
428480
version "8.0.0"
429481
resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -708,6 +760,14 @@ has-flag@^4.0.0:
708760
resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
709761
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
710762

763+
header-case@^2.0.4:
764+
version "2.0.4"
765+
resolved "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063"
766+
integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==
767+
dependencies:
768+
capital-case "^1.0.4"
769+
tslib "^2.0.3"
770+
711771
ignore@^4.0.6:
712772
version "4.0.6"
713773
resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
@@ -824,6 +884,13 @@ loose-envify@^1.1.0:
824884
dependencies:
825885
js-tokens "^3.0.0 || ^4.0.0"
826886

887+
lower-case@^2.0.2:
888+
version "2.0.2"
889+
resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
890+
integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
891+
dependencies:
892+
tslib "^2.0.3"
893+
827894
lru-cache@^6.0.0:
828895
version "6.0.0"
829896
resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
@@ -866,6 +933,14 @@ natural-compare@^1.4.0:
866933
resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
867934
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
868935

936+
no-case@^3.0.4:
937+
version "3.0.4"
938+
resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
939+
integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
940+
dependencies:
941+
lower-case "^2.0.2"
942+
tslib "^2.0.3"
943+
869944
node-domexception@^1.0.0:
870945
version "1.0.0"
871946
resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
@@ -899,13 +974,37 @@ optionator@^0.9.1:
899974
type-check "^0.4.0"
900975
word-wrap "^1.2.3"
901976

977+
param-case@^3.0.4:
978+
version "3.0.4"
979+
resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
980+
integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
981+
dependencies:
982+
dot-case "^3.0.4"
983+
tslib "^2.0.3"
984+
902985
parent-module@^1.0.0:
903986
version "1.0.1"
904987
resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
905988
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
906989
dependencies:
907990
callsites "^3.0.0"
908991

992+
pascal-case@^3.1.2:
993+
version "3.1.2"
994+
resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
995+
integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
996+
dependencies:
997+
no-case "^3.0.4"
998+
tslib "^2.0.3"
999+
1000+
path-case@^3.0.4:
1001+
version "3.0.4"
1002+
resolved "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f"
1003+
integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==
1004+
dependencies:
1005+
dot-case "^3.0.4"
1006+
tslib "^2.0.3"
1007+
9091008
path-is-absolute@^1.0.0:
9101009
version "1.0.1"
9111010
resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -1014,6 +1113,15 @@ semver@^7.2.1, semver@^7.3.7:
10141113
dependencies:
10151114
lru-cache "^6.0.0"
10161115

1116+
sentence-case@^3.0.4:
1117+
version "3.0.4"
1118+
resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f"
1119+
integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==
1120+
dependencies:
1121+
no-case "^3.0.4"
1122+
tslib "^2.0.3"
1123+
upper-case-first "^2.0.2"
1124+
10171125
shebang-command@^2.0.0:
10181126
version "2.0.0"
10191127
resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -1040,6 +1148,14 @@ slice-ansi@^4.0.0:
10401148
astral-regex "^2.0.0"
10411149
is-fullwidth-code-point "^3.0.0"
10421150

1151+
snake-case@^3.0.4:
1152+
version "3.0.4"
1153+
resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
1154+
integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
1155+
dependencies:
1156+
dot-case "^3.0.4"
1157+
tslib "^2.0.3"
1158+
10431159
sprintf-js@~1.0.2:
10441160
version "1.0.3"
10451161
resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -1144,6 +1260,20 @@ typescript@^4.4.3:
11441260
resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
11451261
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
11461262

1263+
upper-case-first@^2.0.2:
1264+
version "2.0.2"
1265+
resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324"
1266+
integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==
1267+
dependencies:
1268+
tslib "^2.0.3"
1269+
1270+
upper-case@^2.0.2:
1271+
version "2.0.2"
1272+
resolved "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a"
1273+
integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==
1274+
dependencies:
1275+
tslib "^2.0.3"
1276+
11471277
uri-js@^4.2.2:
11481278
version "4.4.1"
11491279
resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"

0 commit comments

Comments
 (0)