Skip to content

Commit fc0af20

Browse files
committed
Refactor module exports and improve type usage
Refactored module exports to use named exports and index files for better structure and tree-shaking. Replaced default exports with named exports, consolidated DNS record types, and updated imports to use type-only imports where appropriate. Improved error handling imports, reorganized response and record modules, and renamed files for clarity. These changes enhance maintainability, type safety, and code clarity.
1 parent 380fc24 commit fc0af20

28 files changed

+132
-127
lines changed

deno.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
]
1818
},
1919
"compilerOptions": {
20-
"experimentalDecorators": true,
2120
"lib": [
2221
"ES6",
2322
"DOM",
@@ -42,7 +41,8 @@
4241
"guard-for-in",
4342
"no-eval",
4443
"no-sparse-arrays",
45-
"prefer-ascii"
44+
"prefer-ascii",
45+
"verbatim-module-syntax"
4646
],
4747
"exclude": [
4848
"no-inferrable-types"

src/api/create_dns_record.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1-
import ApiRequestError from '../error/api_request_error.ts';
2-
import FetchRequestError from '../error/fetch_request_error.ts';
3-
import { DnsRecord } from '../record/dns_record.ts';
4-
import { ApiRequestOptions } from './api_request_options.ts';
1+
import * as error from '../error/index.ts';
2+
import type { DnsRecord } from '../record/dns_record.ts';
3+
import type { ApiRequestOptions } from './api_request_options.ts';
54

6-
export default function createDnsRecord(
5+
6+
/**
7+
* This function creates a DNS record.
8+
*
9+
* @param options Options for the API fetch
10+
*/
11+
export function createDnsRecord(
712
record : DnsRecord,
813
options : ApiRequestOptions
914
) : void {
@@ -26,11 +31,11 @@ export default function createDnsRecord(
2631
if (response.ok) {
2732
return response.json();
2833
}
29-
throw new FetchRequestError({cause: response.statusText});
34+
throw new error.FetchRequestError({cause: response.statusText});
3035
})
3136
.then((responseJson) => {
3237
if (!responseJson.success) {
33-
throw new ApiRequestError({cause: responseJson.errors})
38+
throw new error.ApiRequestError({cause: responseJson.errors})
3439
}
3540
});
3641
}

src/api/index.ts

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,5 @@
1-
import createDnsRecord from './create_dns_record.ts';
2-
import listDnsRecords from './list_dns_records.ts'
3-
import updateDnsRecord from './update_dns_record.ts'
4-
5-
const api = {
6-
createDnsRecord,
7-
listDnsRecords,
8-
updateDnsRecord
9-
}
10-
11-
export {
12-
createDnsRecord,
13-
listDnsRecords,
14-
updateDnsRecord
15-
}
16-
17-
export default api;
1+
export { createDnsRecord } from './create_dns_record.ts'
2+
export { listDnsRecords } from './list_dns_records.ts'
3+
export { updateDnsRecord } from './update_dns_record.ts'
4+
export type { ApiRequestOptions } from './api_request_options.ts'
5+
export type * as response from './response/index.ts'

src/api/list_dns_records.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
import ApiRequestError from '../error/api_request_error.ts';
2-
import FetchRequestError from '../error/fetch_request_error.ts';
3-
import { DnsRecordList } from '../record/dns_record_list.ts';
4-
import supportedDnsRecordTypes from '../record/dns_record_type.ts';
5-
import { ApiRequestOptions } from './api_request_options.ts';
1+
import * as error from '../error/index.ts';
2+
import type { DnsRecordList } from '../record/dns_record_list.ts';
3+
import * as record from '../record/index.ts';
4+
import type { ApiRequestOptions } from './api_request_options.ts';
65

76
/**
87
* This function gets all DNS records, filtered by the DNS record types.
98
*
109
* @param options Options for the API fetch
1110
* @returns List of all DNS records found.
1211
*/
13-
export default function listDnsRecordsFromApi(options : ApiRequestOptions) : Promise<DnsRecordList[]> {
12+
export function listDnsRecords(options : ApiRequestOptions) : Promise<DnsRecordList[]> {
1413
return fetch(
15-
`${options.apiEndpoint}zones/${options.zoneId}/dns_records?type=${supportedDnsRecordTypes.join(',')}`,
14+
`${options.apiEndpoint}zones/${options.zoneId}/dns_records?type=${record.dnsRecordTypes.join(',')}`,
1615
{
1716
method: 'GET',
1817
headers: {
@@ -25,12 +24,12 @@ export default function listDnsRecordsFromApi(options : ApiRequestOptions) : Pro
2524
if (response.ok) {
2625
return response.json();
2726
}
28-
throw new FetchRequestError({cause: response.statusText});
27+
throw new error.FetchRequestError({cause: response.statusText});
2928
})
3029
.then((responseJson) => {
3130
if (responseJson.success) {
3231
return responseJson.result
3332
}
34-
throw new ApiRequestError({cause: responseJson.errors})
33+
throw new error.ApiRequestError({cause: responseJson.errors})
3534
});
3635
}

src/api/response/dns_records/create_dns_record_response.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22
import type { Errors } from '../errors.ts';
33
import type { Messages } from '../messages.ts';
44
import type { ResultInfo } from '../result_info.ts';
5-
import type { ARecord } from './records/a_record.ts';
6-
import type { AAAARecord } from './records/aaaa_record.ts';
7-
import type { CNAMERecord } from './records/cname_record.ts';
5+
import type * as records from './records/index.ts'
6+
87

98
/**
109
* This interface represents the response of a DNS record that got created.
1110
*/
1211
export interface CreateNdsRecordResponse {
1312
result : (
14-
| ARecord
15-
| AAAARecord
16-
| CNAMERecord
13+
| records.ARecord
14+
| records.AAAARecord
15+
| records.CNAMERecord
1716
)[],
1817
errors : Errors[],
1918
messages : Messages[],
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export type { CreateNdsRecordResponse } from './create_dns_record_response.ts'
2+
export type { ListDnsRecordsResponse } from './list_dns_records_response.ts'
3+
export type * as records from './records/index.ts'

src/api/response/dns_records/list_dns_records_response.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22
import type { Errors } from '../errors.ts';
33
import type { Messages } from '../messages.ts';
44
import type { ResultInfo } from '../result_info.ts';
5-
import type { ARecord } from './records/a_record.ts';
6-
import type { AAAARecord } from './records/aaaa_record.ts';
7-
import type { CNAMERecord } from './records/cname_record.ts';
5+
import type * as records from './records/index.ts'
6+
87

98
/**
109
* This interface represents the response of a DNS record list.
1110
*/
1211
export interface ListDnsRecordsResponse {
1312
result : (
14-
| ARecord
15-
| AAAARecord
16-
| CNAMERecord
13+
| records.ARecord
14+
| records.AAAARecord
15+
| records.CNAMERecord
1716
)[],
1817
errors : Errors[],
1918
messages : Messages[],
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export type { ARecord } from './a_record.ts'
2+
export type { AAAARecord } from './aaaa_record.ts'
3+
export type { CNAMERecord } from './cname_record.ts'

src/api/response/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export type { Errors } from './errors.ts'
2+
export type { Messages } from './messages.ts'
3+
export type { ResultInfo } from './result_info.ts'
4+
export type * as dnsRecords from './dns_records/index.ts';

src/api/update_dns_record.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import ApiRequestError from '../error/api_request_error.ts';
2-
import FetchRequestError from '../error/fetch_request_error.ts';
3-
import { DnsRecord } from '../record/dns_record.ts';
4-
import { ApiRequestOptions } from './api_request_options.ts';
1+
import * as error from '../error/index.ts';
2+
import type { DnsRecord } from '../record/dns_record.ts';
3+
import type { ApiRequestOptions } from './api_request_options.ts';
54

6-
export default function updateDnsRecord(
5+
export function updateDnsRecord(
76
recordId : string,
87
record : DnsRecord,
98
options : ApiRequestOptions
@@ -23,11 +22,11 @@ export default function updateDnsRecord(
2322
if (response.ok) {
2423
return response.json();
2524
}
26-
throw new FetchRequestError({cause: response.statusText});
25+
throw new error.FetchRequestError({cause: response.statusText});
2726
})
2827
.then((responseJson) => {
2928
if (!responseJson.success) {
30-
throw new ApiRequestError({cause: responseJson.errors})
29+
throw new error.ApiRequestError({cause: responseJson.errors})
3130
}
3231
});
3332
}

0 commit comments

Comments
 (0)