@scalar/snippetz 0.2.20 → 0.3.1
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/dist/clients.d.ts.map +1 -1
- package/dist/clients.js +2 -1
- package/dist/clients.js.map +2 -2
- package/dist/httpsnippet-lite/esm/targets/c/libcurl/client.d.ts.map +1 -1
- package/dist/httpsnippet-lite/esm/targets/c/libcurl/client.js +37 -8
- package/dist/httpsnippet-lite/esm/targets/c/libcurl/client.js.map +2 -2
- package/dist/httpsnippet-lite/esm/targets/go/native/client.d.ts.map +1 -1
- package/dist/httpsnippet-lite/esm/targets/go/native/client.js +76 -30
- package/dist/httpsnippet-lite/esm/targets/go/native/client.js.map +2 -2
- package/dist/httpsnippet-lite/esm/targets/java/okhttp/client.d.ts.map +1 -1
- package/dist/httpsnippet-lite/esm/targets/java/okhttp/client.js +25 -9
- package/dist/httpsnippet-lite/esm/targets/java/okhttp/client.js.map +2 -2
- package/dist/httpsnippet-lite/esm/targets/kotlin/okhttp/client.d.ts.map +1 -1
- package/dist/httpsnippet-lite/esm/targets/kotlin/okhttp/client.js +25 -9
- package/dist/httpsnippet-lite/esm/targets/kotlin/okhttp/client.js.map +2 -2
- package/dist/httpsnippet-lite/esm/targets/shell/httpie/client.d.ts.map +1 -1
- package/dist/httpsnippet-lite/esm/targets/shell/httpie/client.js +11 -0
- package/dist/httpsnippet-lite/esm/targets/shell/httpie/client.js.map +2 -2
- package/dist/plugins/js/axios/index.d.ts +1 -1
- package/dist/plugins/js/axios/index.d.ts.map +1 -1
- package/dist/plugins/js/axios/index.js +4 -1
- package/dist/plugins/js/axios/index.js.map +2 -2
- package/dist/plugins/js/fetch/fetch.d.ts.map +1 -1
- package/dist/plugins/js/fetch/fetch.js +30 -9
- package/dist/plugins/js/fetch/fetch.js.map +2 -2
- package/dist/plugins/js/fetch/index.d.ts +1 -1
- package/dist/plugins/js/fetch/index.d.ts.map +1 -1
- package/dist/plugins/js/fetch/index.js +4 -1
- package/dist/plugins/js/fetch/index.js.map +2 -2
- package/dist/plugins/js/ofetch/ofetch.d.ts.map +1 -1
- package/dist/plugins/js/ofetch/ofetch.js +1 -10
- package/dist/plugins/js/ofetch/ofetch.js.map +2 -2
- package/dist/plugins/node/fetch/fetch.d.ts.map +1 -1
- package/dist/plugins/node/fetch/fetch.js +37 -9
- package/dist/plugins/node/fetch/fetch.js.map +2 -2
- package/dist/plugins/node/ofetch/ofetch.d.ts.map +1 -1
- package/dist/plugins/node/ofetch/ofetch.js +1 -10
- package/dist/plugins/node/ofetch/ofetch.js.map +2 -2
- package/dist/plugins/node/undici/undici.d.ts.map +1 -1
- package/dist/plugins/node/undici/undici.js +4 -6
- package/dist/plugins/node/undici/undici.js.map +2 -2
- package/dist/plugins/python/httpx/async.d.ts +6 -0
- package/dist/plugins/python/httpx/async.d.ts.map +1 -0
- package/dist/plugins/python/httpx/async.js +16 -0
- package/dist/plugins/python/httpx/async.js.map +7 -0
- package/dist/plugins/python/httpx/index.d.ts +3 -0
- package/dist/plugins/python/httpx/index.d.ts.map +1 -0
- package/dist/plugins/python/httpx/index.js +3 -0
- package/dist/plugins/python/httpx/index.js.map +7 -0
- package/dist/plugins/python/httpx/sync.d.ts +6 -0
- package/dist/plugins/python/httpx/sync.d.ts.map +1 -0
- package/dist/plugins/python/httpx/sync.js +13 -0
- package/dist/plugins/python/httpx/sync.js.map +7 -0
- package/dist/plugins/python/requests/requests.d.ts.map +1 -1
- package/dist/plugins/python/requests/requests.js +2 -92
- package/dist/plugins/python/requests/requests.js.map +2 -2
- package/dist/plugins/python/requestsLike.d.ts +3 -0
- package/dist/plugins/python/requestsLike.d.ts.map +1 -0
- package/dist/plugins/python/requestsLike.js +120 -0
- package/dist/plugins/python/requestsLike.js.map +7 -0
- package/dist/snippetz.d.ts +1 -1
- package/dist/utils/create-search-params.d.ts +4 -0
- package/dist/utils/create-search-params.d.ts.map +1 -0
- package/dist/utils/create-search-params.js +11 -0
- package/dist/utils/create-search-params.js.map +7 -0
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/index.js.map +2 -2
- package/dist/utils/objectToString.d.ts +8 -0
- package/dist/utils/objectToString.d.ts.map +1 -1
- package/dist/utils/objectToString.js +20 -15
- package/dist/utils/objectToString.js.map +2 -2
- package/package.json +10 -5
- package/dist/plugins/c/libcurl/libcurl.test.js +0 -200
- package/dist/plugins/c/libcurl/libcurl.test.js.map +0 -7
- package/dist/plugins/clojure/clj_http/clj_http.test.js +0 -151
- package/dist/plugins/clojure/clj_http/clj_http.test.js.map +0 -7
- package/dist/plugins/dart/http/http.test.js +0 -550
- package/dist/plugins/dart/http/http.test.js.map +0 -7
- package/dist/plugins/go/native/native.test.js +0 -367
- package/dist/plugins/go/native/native.test.js.map +0 -7
- package/dist/plugins/http/http11/http11.test.js +0 -175
- package/dist/plugins/http/http11/http11.test.js.map +0 -7
- package/dist/plugins/js/fetch/fetch.test.js +0 -111
- package/dist/plugins/js/fetch/fetch.test.js.map +0 -7
- package/dist/plugins/js/ofetch/ofetch.test.js +0 -123
- package/dist/plugins/js/ofetch/ofetch.test.js.map +0 -7
- package/dist/plugins/node/fetch/fetch.test.js +0 -111
- package/dist/plugins/node/fetch/fetch.test.js.map +0 -7
- package/dist/plugins/node/ofetch/ofetch.test.js +0 -123
- package/dist/plugins/node/ofetch/ofetch.test.js.map +0 -7
- package/dist/plugins/node/undici/undici.test.js +0 -133
- package/dist/plugins/node/undici/undici.test.js.map +0 -7
- package/dist/plugins/php/curl/curl.test.js +0 -564
- package/dist/plugins/php/curl/curl.test.js.map +0 -7
- package/dist/plugins/php/guzzle/guzzle.test.js +0 -546
- package/dist/plugins/php/guzzle/guzzle.test.js.map +0 -7
- package/dist/plugins/python/requests/requests.test.js +0 -390
- package/dist/plugins/python/requests/requests.test.js.map +0 -7
- package/dist/plugins/ruby/native/native.test.js +0 -240
- package/dist/plugins/ruby/native/native.test.js.map +0 -7
- package/dist/plugins/shell/curl/curl.test.js +0 -427
- package/dist/plugins/shell/curl/curl.test.js.map +0 -7
- package/dist/plugins/shell/httpie/httpie.test.js +0 -113
- package/dist/plugins/shell/httpie/httpie.test.js.map +0 -7
- package/dist/plugins/shell/wget/wget.test.js +0 -143
- package/dist/plugins/shell/wget/wget.test.js.map +0 -7
- package/dist/plugins/swift/nsurlsession/nsurlsession.test.js +0 -344
- package/dist/plugins/swift/nsurlsession/nsurlsession.test.js.map +0 -7
- package/dist/snippetz.test.js +0 -79
- package/dist/snippetz.test.js.map +0 -7
- package/dist/utils/arrayToObject.d.ts +0 -8
- package/dist/utils/arrayToObject.d.ts.map +0 -1
- package/dist/utils/arrayToObject.js +0 -10
- package/dist/utils/arrayToObject.js.map +0 -7
- package/dist/utils/convertWithHttpSnippetLite.test.js +0 -106
- package/dist/utils/convertWithHttpSnippetLite.test.js.map +0 -7
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { shellWget } from "./wget.js";
|
|
3
|
-
describe("shellWget", () => {
|
|
4
|
-
it("returns a basic request", () => {
|
|
5
|
-
const result = shellWget.generate({
|
|
6
|
-
url: "https://example.com"
|
|
7
|
-
});
|
|
8
|
-
expect(result).toBe(`wget --quiet \\
|
|
9
|
-
--method GET \\
|
|
10
|
-
--output-document \\
|
|
11
|
-
- https://example.com`);
|
|
12
|
-
});
|
|
13
|
-
it("returns a POST request", () => {
|
|
14
|
-
const result = shellWget.generate({
|
|
15
|
-
url: "https://example.com",
|
|
16
|
-
method: "post"
|
|
17
|
-
});
|
|
18
|
-
expect(result).toBe(`wget --quiet \\
|
|
19
|
-
--method POST \\
|
|
20
|
-
--output-document \\
|
|
21
|
-
- https://example.com`);
|
|
22
|
-
});
|
|
23
|
-
it("has headers", () => {
|
|
24
|
-
const result = shellWget.generate({
|
|
25
|
-
url: "https://example.com",
|
|
26
|
-
headers: [
|
|
27
|
-
{
|
|
28
|
-
name: "Content-Type",
|
|
29
|
-
value: "application/json"
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
});
|
|
33
|
-
expect(result).toBe(`wget --quiet \\
|
|
34
|
-
--method GET \\
|
|
35
|
-
--header 'Content-Type: application/json' \\
|
|
36
|
-
--output-document \\
|
|
37
|
-
- https://example.com`);
|
|
38
|
-
});
|
|
39
|
-
it.skip("handles multipart form data with files", () => {
|
|
40
|
-
const result = shellWget.generate({
|
|
41
|
-
url: "https://example.com",
|
|
42
|
-
method: "POST",
|
|
43
|
-
postData: {
|
|
44
|
-
mimeType: "multipart/form-data",
|
|
45
|
-
params: [
|
|
46
|
-
{
|
|
47
|
-
name: "file",
|
|
48
|
-
fileName: "test.txt"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: "field",
|
|
52
|
-
value: "value"
|
|
53
|
-
}
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
expect(result).toBe(`wget --quiet \\
|
|
58
|
-
--method POST \\
|
|
59
|
-
--body-file='test.txt' \\
|
|
60
|
-
--body-data 'field=value' \\
|
|
61
|
-
--output-document \\
|
|
62
|
-
- https://example.com`);
|
|
63
|
-
});
|
|
64
|
-
it.skip("handles url-encoded form data with special characters", () => {
|
|
65
|
-
const result = shellWget.generate({
|
|
66
|
-
url: "https://example.com",
|
|
67
|
-
method: "POST",
|
|
68
|
-
postData: {
|
|
69
|
-
mimeType: "application/x-www-form-urlencoded",
|
|
70
|
-
params: [
|
|
71
|
-
{
|
|
72
|
-
name: "special chars!@#",
|
|
73
|
-
value: "value"
|
|
74
|
-
}
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
expect(result).toBe(`wget --quiet \\
|
|
79
|
-
--method POST \\
|
|
80
|
-
--body-data 'special%20chars!%40%23=value' \\
|
|
81
|
-
--output-document \\
|
|
82
|
-
- https://example.com`);
|
|
83
|
-
});
|
|
84
|
-
it("handles binary data", () => {
|
|
85
|
-
const result = shellWget.generate({
|
|
86
|
-
url: "https://example.com",
|
|
87
|
-
method: "POST",
|
|
88
|
-
postData: {
|
|
89
|
-
mimeType: "application/octet-stream",
|
|
90
|
-
text: "binary content"
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
expect(result).toBe(`wget --quiet \\
|
|
94
|
-
--method POST \\
|
|
95
|
-
--body-data 'binary content' \\
|
|
96
|
-
--output-document \\
|
|
97
|
-
- https://example.com`);
|
|
98
|
-
});
|
|
99
|
-
it("handles special characters in URL", () => {
|
|
100
|
-
const result = shellWget.generate({
|
|
101
|
-
url: "https://example.com/path with spaces/[brackets]"
|
|
102
|
-
});
|
|
103
|
-
expect(result).toBe(`wget --quiet \\
|
|
104
|
-
--method GET \\
|
|
105
|
-
--output-document \\
|
|
106
|
-
- 'https://example.com/path%20with%20spaces/[brackets]'`);
|
|
107
|
-
});
|
|
108
|
-
it("handles multiple headers with same name", () => {
|
|
109
|
-
const result = shellWget.generate({
|
|
110
|
-
url: "https://example.com",
|
|
111
|
-
headers: [
|
|
112
|
-
{ name: "X-Custom", value: "value1" },
|
|
113
|
-
{ name: "X-Custom", value: "value2" }
|
|
114
|
-
]
|
|
115
|
-
});
|
|
116
|
-
expect(result).toBe(`wget --quiet \\
|
|
117
|
-
--method GET \\
|
|
118
|
-
--header 'X-Custom: value2' \\
|
|
119
|
-
--output-document \\
|
|
120
|
-
- https://example.com`);
|
|
121
|
-
});
|
|
122
|
-
it("handles headers with empty values", () => {
|
|
123
|
-
const result = shellWget.generate({
|
|
124
|
-
url: "https://example.com",
|
|
125
|
-
headers: [{ name: "X-Empty", value: "" }]
|
|
126
|
-
});
|
|
127
|
-
expect(result).toBe(`wget --quiet \\
|
|
128
|
-
--method GET \\
|
|
129
|
-
--header 'X-Empty: ' \\
|
|
130
|
-
--output-document \\
|
|
131
|
-
- https://example.com`);
|
|
132
|
-
});
|
|
133
|
-
it("handles query string parameters", () => {
|
|
134
|
-
const result = shellWget.generate({
|
|
135
|
-
url: "https://example.com/api?param1=value1¶m2=special value¶m3=123"
|
|
136
|
-
});
|
|
137
|
-
expect(result).toBe(`wget --quiet \\
|
|
138
|
-
--method GET \\
|
|
139
|
-
--output-document \\
|
|
140
|
-
- 'https://example.com/api?param1=value1¶m2=special%20value¶m3=123'`);
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=wget.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/plugins/shell/wget/wget.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { shellWget } from './wget'\n\ndescribe('shellWget', () => {\n it('returns a basic request', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method GET \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it('returns a POST request', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n method: 'post',\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method POST \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it('has headers', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n })\n expect(result).toBe(`wget --quiet \\\\\n --method GET \\\\\n --header 'Content-Type: application/json' \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it.skip('handles multipart form data with files', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'multipart/form-data',\n params: [\n {\n name: 'file',\n fileName: 'test.txt',\n },\n {\n name: 'field',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method POST \\\\\n --body-file='test.txt' \\\\\n --body-data 'field=value' \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it.skip('handles url-encoded form data with special characters', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/x-www-form-urlencoded',\n params: [\n {\n name: 'special chars!@#',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method POST \\\\\n --body-data 'special%20chars!%40%23=value' \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it('handles binary data', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/octet-stream',\n text: 'binary content',\n },\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method POST \\\\\n --body-data 'binary content' \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it('handles special characters in URL', () => {\n const result = shellWget.generate({\n url: 'https://example.com/path with spaces/[brackets]',\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method GET \\\\\n --output-document \\\\\n - 'https://example.com/path%20with%20spaces/[brackets]'`)\n })\n\n it('handles multiple headers with same name', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n headers: [\n { name: 'X-Custom', value: 'value1' },\n { name: 'X-Custom', value: 'value2' },\n ],\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method GET \\\\\n --header 'X-Custom: value2' \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it('handles headers with empty values', () => {\n const result = shellWget.generate({\n url: 'https://example.com',\n headers: [{ name: 'X-Empty', value: '' }],\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method GET \\\\\n --header 'X-Empty: ' \\\\\n --output-document \\\\\n - https://example.com`)\n })\n\n it('handles query string parameters', () => {\n const result = shellWget.generate({\n url: 'https://example.com/api?param1=value1¶m2=special value¶m3=123',\n })\n\n expect(result).toBe(`wget --quiet \\\\\n --method GET \\\\\n --output-document \\\\\n - 'https://example.com/api?param1=value1¶m2=special%20value¶m3=123'`)\n })\n})\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { swiftNsurlsession } from "./nsurlsession.js";
|
|
3
|
-
describe("swiftNsurlsession", () => {
|
|
4
|
-
it("returns a basic request", () => {
|
|
5
|
-
const result = swiftNsurlsession.generate({
|
|
6
|
-
url: "https://example.com"
|
|
7
|
-
});
|
|
8
|
-
expect(result).toBe(
|
|
9
|
-
`import Foundation
|
|
10
|
-
|
|
11
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
12
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
13
|
-
timeoutInterval: 10.0)
|
|
14
|
-
request.httpMethod = "GET"
|
|
15
|
-
|
|
16
|
-
let session = URLSession.shared
|
|
17
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
18
|
-
if (error != nil) {
|
|
19
|
-
print(error as Any)
|
|
20
|
-
} else {
|
|
21
|
-
let httpResponse = response as? HTTPURLResponse
|
|
22
|
-
print(httpResponse)
|
|
23
|
-
}
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
dataTask.resume()`
|
|
27
|
-
);
|
|
28
|
-
});
|
|
29
|
-
it("returns a POST request", () => {
|
|
30
|
-
const result = swiftNsurlsession.generate({
|
|
31
|
-
url: "https://example.com",
|
|
32
|
-
method: "post"
|
|
33
|
-
});
|
|
34
|
-
expect(result).toBe(
|
|
35
|
-
`import Foundation
|
|
36
|
-
|
|
37
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
38
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
39
|
-
timeoutInterval: 10.0)
|
|
40
|
-
request.httpMethod = "POST"
|
|
41
|
-
|
|
42
|
-
let session = URLSession.shared
|
|
43
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
44
|
-
if (error != nil) {
|
|
45
|
-
print(error as Any)
|
|
46
|
-
} else {
|
|
47
|
-
let httpResponse = response as? HTTPURLResponse
|
|
48
|
-
print(httpResponse)
|
|
49
|
-
}
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
dataTask.resume()`
|
|
53
|
-
);
|
|
54
|
-
});
|
|
55
|
-
it("has headers", () => {
|
|
56
|
-
const result = swiftNsurlsession.generate({
|
|
57
|
-
url: "https://example.com",
|
|
58
|
-
headers: [
|
|
59
|
-
{
|
|
60
|
-
name: "Content-Type",
|
|
61
|
-
value: "application/json"
|
|
62
|
-
}
|
|
63
|
-
]
|
|
64
|
-
});
|
|
65
|
-
expect(result).toBe(
|
|
66
|
-
`import Foundation
|
|
67
|
-
|
|
68
|
-
let headers = ["Content-Type": "application/json"]
|
|
69
|
-
|
|
70
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
71
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
72
|
-
timeoutInterval: 10.0)
|
|
73
|
-
request.httpMethod = "GET"
|
|
74
|
-
request.allHTTPHeaderFields = headers
|
|
75
|
-
|
|
76
|
-
let session = URLSession.shared
|
|
77
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
78
|
-
if (error != nil) {
|
|
79
|
-
print(error as Any)
|
|
80
|
-
} else {
|
|
81
|
-
let httpResponse = response as? HTTPURLResponse
|
|
82
|
-
print(httpResponse)
|
|
83
|
-
}
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
dataTask.resume()`
|
|
87
|
-
);
|
|
88
|
-
});
|
|
89
|
-
it("handles multipart form data with files", () => {
|
|
90
|
-
const result = swiftNsurlsession.generate({
|
|
91
|
-
url: "https://example.com",
|
|
92
|
-
method: "POST",
|
|
93
|
-
postData: {
|
|
94
|
-
mimeType: "multipart/form-data",
|
|
95
|
-
params: [
|
|
96
|
-
{
|
|
97
|
-
name: "file",
|
|
98
|
-
fileName: "test.txt"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
name: "field",
|
|
102
|
-
value: "value"
|
|
103
|
-
}
|
|
104
|
-
]
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
expect(result).toBe(
|
|
108
|
-
`import Foundation
|
|
109
|
-
let parameters = [
|
|
110
|
-
[
|
|
111
|
-
"name": "file",
|
|
112
|
-
"fileName": "test.txt"
|
|
113
|
-
],
|
|
114
|
-
[
|
|
115
|
-
"name": "field",
|
|
116
|
-
"value": "value"
|
|
117
|
-
]
|
|
118
|
-
]
|
|
119
|
-
|
|
120
|
-
let boundary = "undefined"
|
|
121
|
-
|
|
122
|
-
var body = ""
|
|
123
|
-
var error: NSError? = nil
|
|
124
|
-
for param in parameters {
|
|
125
|
-
let paramName = param["name"]!
|
|
126
|
-
body += "--\\(boundary)\\r\\n"
|
|
127
|
-
body += "Content-Disposition:form-data; name=\\"\\(paramName)\\""
|
|
128
|
-
if let filename = param["fileName"] {
|
|
129
|
-
let contentType = param["content-type"]!
|
|
130
|
-
let fileContent = String(contentsOfFile: filename, encoding: String.Encoding.utf8)
|
|
131
|
-
if (error != nil) {
|
|
132
|
-
print(error as Any)
|
|
133
|
-
}
|
|
134
|
-
body += "; filename=\\"\\(filename)\\"\\r\\n"
|
|
135
|
-
body += "Content-Type: \\(contentType)\\r\\n\\r\\n"
|
|
136
|
-
body += fileContent
|
|
137
|
-
} else if let paramValue = param["value"] {
|
|
138
|
-
body += "\\r\\n\\r\\n\\(paramValue)"
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
143
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
144
|
-
timeoutInterval: 10.0)
|
|
145
|
-
request.httpMethod = "POST"
|
|
146
|
-
request.httpBody = postData as Data
|
|
147
|
-
|
|
148
|
-
let session = URLSession.shared
|
|
149
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
150
|
-
if (error != nil) {
|
|
151
|
-
print(error as Any)
|
|
152
|
-
} else {
|
|
153
|
-
let httpResponse = response as? HTTPURLResponse
|
|
154
|
-
print(httpResponse)
|
|
155
|
-
}
|
|
156
|
-
})
|
|
157
|
-
|
|
158
|
-
dataTask.resume()`
|
|
159
|
-
);
|
|
160
|
-
});
|
|
161
|
-
it("handles url-encoded form data with special characters", () => {
|
|
162
|
-
const result = swiftNsurlsession.generate({
|
|
163
|
-
url: "https://example.com",
|
|
164
|
-
method: "POST",
|
|
165
|
-
postData: {
|
|
166
|
-
mimeType: "application/x-www-form-urlencoded",
|
|
167
|
-
params: [
|
|
168
|
-
{
|
|
169
|
-
name: "special chars!@#",
|
|
170
|
-
value: "value"
|
|
171
|
-
}
|
|
172
|
-
]
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
expect(result).toBe(
|
|
176
|
-
`import Foundation
|
|
177
|
-
|
|
178
|
-
let postData = NSMutableData(data: "special chars!@#=value".data(using: String.Encoding.utf8)!)
|
|
179
|
-
|
|
180
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
181
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
182
|
-
timeoutInterval: 10.0)
|
|
183
|
-
request.httpMethod = "POST"
|
|
184
|
-
request.httpBody = postData as Data
|
|
185
|
-
|
|
186
|
-
let session = URLSession.shared
|
|
187
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
188
|
-
if (error != nil) {
|
|
189
|
-
print(error as Any)
|
|
190
|
-
} else {
|
|
191
|
-
let httpResponse = response as? HTTPURLResponse
|
|
192
|
-
print(httpResponse)
|
|
193
|
-
}
|
|
194
|
-
})
|
|
195
|
-
|
|
196
|
-
dataTask.resume()`
|
|
197
|
-
);
|
|
198
|
-
});
|
|
199
|
-
it("handles binary data", () => {
|
|
200
|
-
const result = swiftNsurlsession.generate({
|
|
201
|
-
url: "https://example.com",
|
|
202
|
-
method: "POST",
|
|
203
|
-
postData: {
|
|
204
|
-
mimeType: "application/octet-stream",
|
|
205
|
-
text: "binary content"
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
expect(result).toBe(
|
|
209
|
-
`import Foundation
|
|
210
|
-
|
|
211
|
-
let postData = NSData(data: "binary content".data(using: String.Encoding.utf8)!)
|
|
212
|
-
|
|
213
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
214
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
215
|
-
timeoutInterval: 10.0)
|
|
216
|
-
request.httpMethod = "POST"
|
|
217
|
-
request.httpBody = postData as Data
|
|
218
|
-
|
|
219
|
-
let session = URLSession.shared
|
|
220
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
221
|
-
if (error != nil) {
|
|
222
|
-
print(error as Any)
|
|
223
|
-
} else {
|
|
224
|
-
let httpResponse = response as? HTTPURLResponse
|
|
225
|
-
print(httpResponse)
|
|
226
|
-
}
|
|
227
|
-
})
|
|
228
|
-
|
|
229
|
-
dataTask.resume()`
|
|
230
|
-
);
|
|
231
|
-
});
|
|
232
|
-
it("handles special characters in URL", () => {
|
|
233
|
-
const result = swiftNsurlsession.generate({
|
|
234
|
-
url: "https://example.com/path with spaces/[brackets]"
|
|
235
|
-
});
|
|
236
|
-
expect(result).toBe(
|
|
237
|
-
`import Foundation
|
|
238
|
-
|
|
239
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com/path%20with%20spaces/[brackets]")! as URL,
|
|
240
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
241
|
-
timeoutInterval: 10.0)
|
|
242
|
-
request.httpMethod = "GET"
|
|
243
|
-
|
|
244
|
-
let session = URLSession.shared
|
|
245
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
246
|
-
if (error != nil) {
|
|
247
|
-
print(error as Any)
|
|
248
|
-
} else {
|
|
249
|
-
let httpResponse = response as? HTTPURLResponse
|
|
250
|
-
print(httpResponse)
|
|
251
|
-
}
|
|
252
|
-
})
|
|
253
|
-
|
|
254
|
-
dataTask.resume()`
|
|
255
|
-
);
|
|
256
|
-
});
|
|
257
|
-
it("handles multiple headers with same name", () => {
|
|
258
|
-
const result = swiftNsurlsession.generate({
|
|
259
|
-
url: "https://example.com",
|
|
260
|
-
headers: [
|
|
261
|
-
{ name: "X-Custom", value: "value1" },
|
|
262
|
-
{ name: "X-Custom", value: "value2" }
|
|
263
|
-
]
|
|
264
|
-
});
|
|
265
|
-
expect(result).toBe(
|
|
266
|
-
`import Foundation
|
|
267
|
-
|
|
268
|
-
let headers = ["X-Custom": "value2"]
|
|
269
|
-
|
|
270
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
271
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
272
|
-
timeoutInterval: 10.0)
|
|
273
|
-
request.httpMethod = "GET"
|
|
274
|
-
request.allHTTPHeaderFields = headers
|
|
275
|
-
|
|
276
|
-
let session = URLSession.shared
|
|
277
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
278
|
-
if (error != nil) {
|
|
279
|
-
print(error as Any)
|
|
280
|
-
} else {
|
|
281
|
-
let httpResponse = response as? HTTPURLResponse
|
|
282
|
-
print(httpResponse)
|
|
283
|
-
}
|
|
284
|
-
})
|
|
285
|
-
|
|
286
|
-
dataTask.resume()`
|
|
287
|
-
);
|
|
288
|
-
});
|
|
289
|
-
it("handles headers with empty values", () => {
|
|
290
|
-
const result = swiftNsurlsession.generate({
|
|
291
|
-
url: "https://example.com",
|
|
292
|
-
headers: [{ name: "X-Empty", value: "" }]
|
|
293
|
-
});
|
|
294
|
-
expect(result).toBe(
|
|
295
|
-
`import Foundation
|
|
296
|
-
|
|
297
|
-
let headers = ["X-Empty": ""]
|
|
298
|
-
|
|
299
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com")! as URL,
|
|
300
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
301
|
-
timeoutInterval: 10.0)
|
|
302
|
-
request.httpMethod = "GET"
|
|
303
|
-
request.allHTTPHeaderFields = headers
|
|
304
|
-
|
|
305
|
-
let session = URLSession.shared
|
|
306
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
307
|
-
if (error != nil) {
|
|
308
|
-
print(error as Any)
|
|
309
|
-
} else {
|
|
310
|
-
let httpResponse = response as? HTTPURLResponse
|
|
311
|
-
print(httpResponse)
|
|
312
|
-
}
|
|
313
|
-
})
|
|
314
|
-
|
|
315
|
-
dataTask.resume()`
|
|
316
|
-
);
|
|
317
|
-
});
|
|
318
|
-
it("handles query string parameters", () => {
|
|
319
|
-
const result = swiftNsurlsession.generate({
|
|
320
|
-
url: "https://example.com/api?param1=value1¶m2=special value¶m3=123"
|
|
321
|
-
});
|
|
322
|
-
expect(result).toBe(
|
|
323
|
-
`import Foundation
|
|
324
|
-
|
|
325
|
-
let request = NSMutableURLRequest(url: NSURL(string: "https://example.com/api?param1=value1¶m2=special%20value¶m3=123")! as URL,
|
|
326
|
-
cachePolicy: .useProtocolCachePolicy,
|
|
327
|
-
timeoutInterval: 10.0)
|
|
328
|
-
request.httpMethod = "GET"
|
|
329
|
-
|
|
330
|
-
let session = URLSession.shared
|
|
331
|
-
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
|
|
332
|
-
if (error != nil) {
|
|
333
|
-
print(error as Any)
|
|
334
|
-
} else {
|
|
335
|
-
let httpResponse = response as? HTTPURLResponse
|
|
336
|
-
print(httpResponse)
|
|
337
|
-
}
|
|
338
|
-
})
|
|
339
|
-
|
|
340
|
-
dataTask.resume()`
|
|
341
|
-
);
|
|
342
|
-
});
|
|
343
|
-
});
|
|
344
|
-
//# sourceMappingURL=nsurlsession.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/plugins/swift/nsurlsession/nsurlsession.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { swiftNsurlsession } from './nsurlsession'\n\ndescribe('swiftNsurlsession', () => {\n it('returns a basic request', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"GET\"\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('returns a POST request', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n method: 'post',\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"POST\"\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('has headers', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n })\n expect(result).toBe(\n `import Foundation\n\nlet headers = [\"Content-Type\": \"application/json\"]\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"GET\"\nrequest.allHTTPHeaderFields = headers\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('handles multipart form data with files', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'multipart/form-data',\n params: [\n {\n name: 'file',\n fileName: 'test.txt',\n },\n {\n name: 'field',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(\n `import Foundation\nlet parameters = [\n [\n \"name\": \"file\",\n \"fileName\": \"test.txt\"\n ],\n [\n \"name\": \"field\",\n \"value\": \"value\"\n ]\n]\n\nlet boundary = \"undefined\"\n\nvar body = \"\"\nvar error: NSError? = nil\nfor param in parameters {\n let paramName = param[\"name\"]!\n body += \"--\\\\(boundary)\\\\r\\\\n\"\n body += \"Content-Disposition:form-data; name=\\\\\"\\\\(paramName)\\\\\"\"\n if let filename = param[\"fileName\"] {\n let contentType = param[\"content-type\"]!\n let fileContent = String(contentsOfFile: filename, encoding: String.Encoding.utf8)\n if (error != nil) {\n print(error as Any)\n }\n body += \"; filename=\\\\\"\\\\(filename)\\\\\"\\\\r\\\\n\"\n body += \"Content-Type: \\\\(contentType)\\\\r\\\\n\\\\r\\\\n\"\n body += fileContent\n } else if let paramValue = param[\"value\"] {\n body += \"\\\\r\\\\n\\\\r\\\\n\\\\(paramValue)\"\n }\n}\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"POST\"\nrequest.httpBody = postData as Data\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('handles url-encoded form data with special characters', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/x-www-form-urlencoded',\n params: [\n {\n name: 'special chars!@#',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet postData = NSMutableData(data: \"special chars!@#=value\".data(using: String.Encoding.utf8)!)\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"POST\"\nrequest.httpBody = postData as Data\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('handles binary data', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/octet-stream',\n text: 'binary content',\n },\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet postData = NSData(data: \"binary content\".data(using: String.Encoding.utf8)!)\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"POST\"\nrequest.httpBody = postData as Data\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('handles special characters in URL', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com/path with spaces/[brackets]',\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com/path%20with%20spaces/[brackets]\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"GET\"\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('handles multiple headers with same name', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n headers: [\n { name: 'X-Custom', value: 'value1' },\n { name: 'X-Custom', value: 'value2' },\n ],\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet headers = [\"X-Custom\": \"value2\"]\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"GET\"\nrequest.allHTTPHeaderFields = headers\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('handles headers with empty values', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com',\n headers: [{ name: 'X-Empty', value: '' }],\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet headers = [\"X-Empty\": \"\"]\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"GET\"\nrequest.allHTTPHeaderFields = headers\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n\n it('handles query string parameters', () => {\n const result = swiftNsurlsession.generate({\n url: 'https://example.com/api?param1=value1¶m2=special value¶m3=123',\n })\n\n expect(result).toBe(\n `import Foundation\n\nlet request = NSMutableURLRequest(url: NSURL(string: \"https://example.com/api?param1=value1¶m2=special%20value¶m3=123\")! as URL,\n cachePolicy: .useProtocolCachePolicy,\n timeoutInterval: 10.0)\nrequest.httpMethod = \"GET\"\n\nlet session = URLSession.shared\nlet dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in\n if (error != nil) {\n print(error as Any)\n } else {\n let httpResponse = response as? HTTPURLResponse\n print(httpResponse)\n }\n})\n\ndataTask.resume()`,\n )\n })\n})\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/snippetz.test.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { snippetz } from "./snippetz.js";
|
|
3
|
-
describe("snippetz", async () => {
|
|
4
|
-
it("returns code for undici", async () => {
|
|
5
|
-
const snippet = snippetz().print("node", "undici", {
|
|
6
|
-
url: "https://example.com"
|
|
7
|
-
});
|
|
8
|
-
expect(snippet).toBe(`import { request } from 'undici'
|
|
9
|
-
|
|
10
|
-
const { statusCode, body } = await request('https://example.com')`);
|
|
11
|
-
});
|
|
12
|
-
it("loads some clients by default", async () => {
|
|
13
|
-
expect(snippetz().clients()).toEqual(
|
|
14
|
-
expect.arrayContaining([
|
|
15
|
-
{
|
|
16
|
-
key: "node",
|
|
17
|
-
title: "Node.js",
|
|
18
|
-
default: "fetch",
|
|
19
|
-
clients: expect.arrayContaining([
|
|
20
|
-
expect.objectContaining({
|
|
21
|
-
client: "undici"
|
|
22
|
-
}),
|
|
23
|
-
expect.objectContaining({
|
|
24
|
-
client: "fetch"
|
|
25
|
-
})
|
|
26
|
-
])
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
key: "shell",
|
|
30
|
-
title: "Shell",
|
|
31
|
-
default: "curl",
|
|
32
|
-
clients: expect.arrayContaining([
|
|
33
|
-
expect.objectContaining({
|
|
34
|
-
client: "curl"
|
|
35
|
-
}),
|
|
36
|
-
expect.objectContaining({
|
|
37
|
-
client: "wget"
|
|
38
|
-
}),
|
|
39
|
-
expect.objectContaining({
|
|
40
|
-
client: "httpie"
|
|
41
|
-
})
|
|
42
|
-
])
|
|
43
|
-
}
|
|
44
|
-
])
|
|
45
|
-
);
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
describe("plugins", async () => {
|
|
49
|
-
it("returns true if it has the plugin", async () => {
|
|
50
|
-
const result = snippetz().plugins();
|
|
51
|
-
expect(result).toEqual(
|
|
52
|
-
expect.arrayContaining([
|
|
53
|
-
{
|
|
54
|
-
target: "node",
|
|
55
|
-
client: "undici"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
target: "node",
|
|
59
|
-
client: "fetch"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
target: "shell",
|
|
63
|
-
client: "curl"
|
|
64
|
-
}
|
|
65
|
-
])
|
|
66
|
-
);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
describe("hasPlugin", async () => {
|
|
70
|
-
it("returns true if it has the plugin", async () => {
|
|
71
|
-
const result = snippetz().hasPlugin("node", "undici");
|
|
72
|
-
expect(result).toBe(true);
|
|
73
|
-
});
|
|
74
|
-
it("returns false if it doesn\u2019t know the plugin", async () => {
|
|
75
|
-
const result = snippetz().hasPlugin("node", "fantasy");
|
|
76
|
-
expect(result).toBe(false);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
//# sourceMappingURL=snippetz.test.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/snippetz.test.ts"],
|
|
4
|
-
"sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { snippetz } from './snippetz'\n\ndescribe('snippetz', async () => {\n it('returns code for undici', async () => {\n const snippet = snippetz().print('node', 'undici', {\n url: 'https://example.com',\n })\n\n expect(snippet).toBe(`import { request } from 'undici'\n\nconst { statusCode, body } = await request('https://example.com')`)\n })\n\n it('loads some clients by default', async () => {\n expect(snippetz().clients()).toEqual(\n expect.arrayContaining([\n {\n key: 'node',\n title: 'Node.js',\n default: 'fetch',\n clients: expect.arrayContaining([\n expect.objectContaining({\n client: 'undici',\n }),\n expect.objectContaining({\n client: 'fetch',\n }),\n ]),\n },\n {\n key: 'shell',\n title: 'Shell',\n default: 'curl',\n clients: expect.arrayContaining([\n expect.objectContaining({\n client: 'curl',\n }),\n expect.objectContaining({\n client: 'wget',\n }),\n expect.objectContaining({\n client: 'httpie',\n }),\n ]),\n },\n ]),\n )\n })\n})\n\ndescribe('plugins', async () => {\n it('returns true if it has the plugin', async () => {\n const result = snippetz().plugins()\n\n expect(result).toEqual(\n expect.arrayContaining([\n {\n target: 'node',\n client: 'undici',\n },\n {\n target: 'node',\n client: 'fetch',\n },\n {\n target: 'shell',\n client: 'curl',\n },\n ]),\n )\n })\n})\n\ndescribe('hasPlugin', async () => {\n it('returns true if it has the plugin', async () => {\n const result = snippetz().hasPlugin('node', 'undici')\n\n expect(result).toBe(true)\n })\n\n it('returns false if it doesn\u2019t know the plugin', async () => {\n const result = snippetz().hasPlugin('node', 'fantasy')\n\n expect(result).toBe(false)\n })\n})\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,gBAAgB;AAEzB,SAAS,YAAY,YAAY;AAC/B,KAAG,2BAA2B,YAAY;AACxC,UAAM,UAAU,SAAS,EAAE,MAAM,QAAQ,UAAU;AAAA,MACjD,KAAK;AAAA,IACP,CAAC;AAED,WAAO,OAAO,EAAE,KAAK;AAAA;AAAA,kEAEyC;AAAA,EAChE,CAAC;AAED,KAAG,iCAAiC,YAAY;AAC9C,WAAO,SAAS,EAAE,QAAQ,CAAC,EAAE;AAAA,MAC3B,OAAO,gBAAgB;AAAA,QACrB;AAAA,UACE,KAAK;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,UACT,SAAS,OAAO,gBAAgB;AAAA,YAC9B,OAAO,iBAAiB;AAAA,cACtB,QAAQ;AAAA,YACV,CAAC;AAAA,YACD,OAAO,iBAAiB;AAAA,cACtB,QAAQ;AAAA,YACV,CAAC;AAAA,UACH,CAAC;AAAA,QACH;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,UACT,SAAS,OAAO,gBAAgB;AAAA,YAC9B,OAAO,iBAAiB;AAAA,cACtB,QAAQ;AAAA,YACV,CAAC;AAAA,YACD,OAAO,iBAAiB;AAAA,cACtB,QAAQ;AAAA,YACV,CAAC;AAAA,YACD,OAAO,iBAAiB;AAAA,cACtB,QAAQ;AAAA,YACV,CAAC;AAAA,UACH,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAED,SAAS,WAAW,YAAY;AAC9B,KAAG,qCAAqC,YAAY;AAClD,UAAM,SAAS,SAAS,EAAE,QAAQ;AAElC,WAAO,MAAM,EAAE;AAAA,MACb,OAAO,gBAAgB;AAAA,QACrB;AAAA,UACE,QAAQ;AAAA,UACR,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,QAAQ;AAAA,UACR,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,QAAQ;AAAA,UACR,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAED,SAAS,aAAa,YAAY;AAChC,KAAG,qCAAqC,YAAY;AAClD,UAAM,SAAS,SAAS,EAAE,UAAU,QAAQ,QAAQ;AAEpD,WAAO,MAAM,EAAE,KAAK,IAAI;AAAA,EAC1B,CAAC;AAED,KAAG,oDAA+C,YAAY;AAC5D,UAAM,SAAS,SAAS,EAAE,UAAU,QAAQ,SAAS;AAErD,WAAO,MAAM,EAAE,KAAK,KAAK;AAAA,EAC3B,CAAC;AACH,CAAC;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts an array of name/value pairs into an object with those mappings
|
|
3
|
-
*
|
|
4
|
-
* @example
|
|
5
|
-
* arrayToObject([{ name: 'foo', value: 'bar' }]) // => { foo: 'bar' }
|
|
6
|
-
*/
|
|
7
|
-
export declare function arrayToObject(items: any): any;
|
|
8
|
-
//# sourceMappingURL=arrayToObject.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrayToObject.d.ts","sourceRoot":"","sources":["../../src/utils/arrayToObject.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,OAKvC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/arrayToObject.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Converts an array of name/value pairs into an object with those mappings\n *\n * @example\n * arrayToObject([{ name: 'foo', value: 'bar' }]) // => { foo: 'bar' }\n */\nexport function arrayToObject(items: any) {\n return items.reduce((acc: any, item: any) => {\n acc[item.name] = item.value\n return acc\n }, {})\n}\n"],
|
|
5
|
-
"mappings": "AAMO,SAAS,cAAc,OAAY;AACxC,SAAO,MAAM,OAAO,CAAC,KAAU,SAAc;AAC3C,QAAI,KAAK,IAAI,IAAI,KAAK;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACP;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|