Skip to content

Commit d2e076d

Browse files
committed
#327: Fix tree shaking mechanism and remove circular dependencies
- Improved the tree shaking process to ensure unused code is properly eliminated across the entire library. - Refactored the codebase to resolve circular dependencies, improving tree shaking and maintainability.
1 parent e050109 commit d2e076d

File tree

5 files changed

+188
-195
lines changed

5 files changed

+188
-195
lines changed

Diff for: src/agile/client/agileClient.ts

+14-16
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
import { BaseClient } from '../../clients';
2-
import {
3-
Backlog,
4-
Board,
5-
Builds,
6-
Deployments,
7-
DevelopmentInformation,
8-
DevopsComponents,
9-
Epic,
10-
FeatureFlags,
11-
Issue,
12-
Operations,
13-
RemoteLinks,
14-
SecurityInformation,
15-
Sprint,
16-
} from '..';
1+
import { BaseClient } from '../../clients/baseClient';
2+
import { Backlog } from '../backlog';
3+
import { Board } from '../board';
4+
import { Builds } from '../builds';
5+
import { Deployments } from '../deployments';
6+
import { DevelopmentInformation } from '../developmentInformation';
7+
import { DevopsComponents } from '../devopsComponents';
8+
import { Epic } from '../epic';
9+
import { FeatureFlags } from '../featureFlags';
10+
import { Issue } from '../issue';
11+
import { Operations } from '../operations';
12+
import { RemoteLinks } from '../remoteLinks';
13+
import { SecurityInformation } from '../securityInformation';
14+
import { Sprint } from '../sprint';
1715

1816
export class AgileClient extends BaseClient {
1917
backlog = new Backlog(this);

Diff for: src/serviceDesk/client/serviceDeskClient.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BaseClient } from '../../clients';
1+
import { BaseClient } from '../../clients/baseClient';
22
import { Customer } from '../customer';
33
import { Info } from '../info';
44
import { Insight } from '../insight';

Diff for: src/version2/client/version2Client.ts

+86-88
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,89 @@
1-
import { BaseClient } from '../../clients';
2-
import {
3-
AnnouncementBanner,
4-
ApplicationRoles,
5-
AppMigration,
6-
AppProperties,
7-
AuditRecords,
8-
Avatars,
9-
Dashboards,
10-
DynamicModules,
11-
Filters,
12-
FilterSharing,
13-
GroupAndUserPicker,
14-
Groups,
15-
IssueAttachments,
16-
IssueCommentProperties,
17-
IssueComments,
18-
IssueCustomFieldConfigurationApps,
19-
IssueCustomFieldContexts,
20-
IssueCustomFieldOptions,
21-
IssueCustomFieldOptionsApps,
22-
IssueCustomFieldValuesApps,
23-
IssueFieldConfigurations,
24-
IssueFields,
25-
IssueLinks,
26-
IssueLinkTypes,
27-
IssueNavigatorSettings,
28-
IssueNotificationSchemes,
29-
IssuePriorities,
30-
IssueProperties,
31-
IssueRemoteLinks,
32-
IssueResolutions,
33-
Issues,
34-
IssueSearch,
35-
IssueSecurityLevel,
36-
IssueSecuritySchemes,
37-
IssueTypeProperties,
38-
IssueTypes,
39-
IssueTypeSchemes,
40-
IssueTypeScreenSchemes,
41-
IssueVotes,
42-
IssueWatchers,
43-
IssueWorklogProperties,
44-
IssueWorklogs,
45-
JiraExpressions,
46-
JiraSettings,
47-
JQL,
48-
JqlFunctionsApps,
49-
Labels,
50-
LicenseMetrics,
51-
Myself,
52-
Permissions,
53-
PermissionSchemes,
54-
ProjectAvatars,
55-
ProjectCategories,
56-
ProjectComponents,
57-
ProjectEmail,
58-
ProjectFeatures,
59-
ProjectKeyAndNameValidation,
60-
ProjectPermissionSchemes,
61-
ProjectProperties,
62-
ProjectRoleActors,
63-
ProjectRoles,
64-
Projects,
65-
ProjectTypes,
66-
ProjectVersions,
67-
Screens,
68-
ScreenSchemes,
69-
ScreenTabFields,
70-
ScreenTabs,
71-
ServerInfo,
72-
Status,
73-
Tasks,
74-
TimeTracking,
75-
UIModificationsApps,
76-
UserProperties,
77-
Users,
78-
UserSearch,
79-
Webhooks,
80-
Workflows,
81-
WorkflowSchemeDrafts,
82-
WorkflowSchemeProjectAssociations,
83-
WorkflowSchemes,
84-
WorkflowStatusCategories,
85-
WorkflowStatuses,
86-
WorkflowTransitionProperties,
87-
WorkflowTransitionRules,
88-
} from '..';
1+
import { BaseClient } from '../../clients/baseClient';
2+
import { AnnouncementBanner } from '../announcementBanner';
3+
import { ApplicationRoles } from '../applicationRoles';
4+
import { AppMigration } from '../appMigration';
5+
import { AppProperties } from '../appProperties';
6+
import { AuditRecords } from '../auditRecords';
7+
import { Avatars } from '../avatars';
8+
import { Dashboards } from '../dashboards';
9+
import { DynamicModules } from '../dynamicModules';
10+
import { Filters } from '../filters';
11+
import { FilterSharing } from '../filterSharing';
12+
import { GroupAndUserPicker } from '../groupAndUserPicker';
13+
import { Groups } from '../groups';
14+
import { IssueAttachments } from '../issueAttachments';
15+
import { IssueCommentProperties } from '../issueCommentProperties';
16+
import { IssueComments } from '../issueComments';
17+
import { IssueCustomFieldConfigurationApps } from '../issueCustomFieldConfigurationApps';
18+
import { IssueCustomFieldContexts } from '../issueCustomFieldContexts';
19+
import { IssueCustomFieldOptions } from '../issueCustomFieldOptions';
20+
import { IssueCustomFieldOptionsApps } from '../issueCustomFieldOptionsApps';
21+
import { IssueCustomFieldValuesApps } from '../issueCustomFieldValuesApps';
22+
import { IssueFieldConfigurations } from '../issueFieldConfigurations';
23+
import { IssueFields } from '../issueFields';
24+
import { IssueLinks } from '../issueLinks';
25+
import { IssueLinkTypes } from '../issueLinkTypes';
26+
import { IssueNavigatorSettings } from '../issueNavigatorSettings';
27+
import { IssueNotificationSchemes } from '../issueNotificationSchemes';
28+
import { IssuePriorities } from '../issuePriorities';
29+
import { IssueProperties } from '../issueProperties';
30+
import { IssueRemoteLinks } from '../issueRemoteLinks';
31+
import { IssueResolutions } from '../issueResolutions';
32+
import { Issues } from '../issues';
33+
import { IssueSearch } from '../issueSearch';
34+
import { IssueSecurityLevel } from '../issueSecurityLevel';
35+
import { IssueSecuritySchemes } from '../issueSecuritySchemes';
36+
import { IssueTypeProperties } from '../issueTypeProperties';
37+
import { IssueTypes } from '../issueTypes';
38+
import { IssueTypeSchemes } from '../issueTypeSchemes';
39+
import { IssueTypeScreenSchemes } from '../issueTypeScreenSchemes';
40+
import { IssueVotes } from '../issueVotes';
41+
import { IssueWatchers } from '../issueWatchers';
42+
import { IssueWorklogProperties } from '../issueWorklogProperties';
43+
import { IssueWorklogs } from '../issueWorklogs';
44+
import { JiraExpressions } from '../jiraExpressions';
45+
import { JiraSettings } from '../jiraSettings';
46+
import { JQL } from '../jQL';
47+
import { JqlFunctionsApps } from '../jqlFunctionsApps';
48+
import { Labels } from '../labels';
49+
import { LicenseMetrics } from '../licenseMetrics';
50+
import { Myself } from '../myself';
51+
import { Permissions } from '../permissions';
52+
import { PermissionSchemes } from '../permissionSchemes';
53+
import { ProjectAvatars } from '../projectAvatars';
54+
import { ProjectCategories } from '../projectCategories';
55+
import { ProjectComponents } from '../projectComponents';
56+
import { ProjectEmail } from '../projectEmail';
57+
import { ProjectFeatures } from '../projectFeatures';
58+
import { ProjectKeyAndNameValidation } from '../projectKeyAndNameValidation';
59+
import { ProjectPermissionSchemes } from '../projectPermissionSchemes';
60+
import { ProjectProperties } from '../projectProperties';
61+
import { ProjectRoleActors } from '../projectRoleActors';
62+
import { ProjectRoles } from '../projectRoles';
63+
import { Projects } from '../projects';
64+
import { ProjectTypes } from '../projectTypes';
65+
import { ProjectVersions } from '../projectVersions';
66+
import { Screens } from '../screens';
67+
import { ScreenSchemes } from '../screenSchemes';
68+
import { ScreenTabFields } from '../screenTabFields';
69+
import { ScreenTabs } from '../screenTabs';
70+
import { ServerInfo } from '../serverInfo';
71+
import { Status } from '../status';
72+
import { Tasks } from '../tasks';
73+
import { TimeTracking } from '../timeTracking';
74+
import { UIModificationsApps } from '../uIModificationsApps';
75+
import { UserProperties } from '../userProperties';
76+
import { Users } from '../users';
77+
import { UserSearch } from '../userSearch';
78+
import { Webhooks } from '../webhooks';
79+
import { Workflows } from '../workflows';
80+
import { WorkflowSchemeDrafts } from '../workflowSchemeDrafts';
81+
import { WorkflowSchemeProjectAssociations } from '../workflowSchemeProjectAssociations';
82+
import { WorkflowSchemes } from '../workflowSchemes';
83+
import { WorkflowStatusCategories } from '../workflowStatusCategories';
84+
import { WorkflowStatuses } from '../workflowStatuses';
85+
import { WorkflowTransitionProperties } from '../workflowTransitionProperties';
86+
import { WorkflowTransitionRules } from '../workflowTransitionRules';
8987

9088
export class Version2Client extends BaseClient {
9189
announcementBanner = new AnnouncementBanner(this);

Diff for: src/version3/client/version3Client.ts

+87-89
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,90 @@
1-
import { BaseClient } from '../../clients';
2-
import {
3-
AnnouncementBanner,
4-
ApplicationRoles,
5-
AppMigration,
6-
AppProperties,
7-
AuditRecords,
8-
Avatars,
9-
Dashboards,
10-
DynamicModules,
11-
Filters,
12-
FilterSharing,
13-
GroupAndUserPicker,
14-
Groups,
15-
InstanceInformation,
16-
IssueAttachments,
17-
IssueCommentProperties,
18-
IssueComments,
19-
IssueCustomFieldConfigurationApps,
20-
IssueCustomFieldContexts,
21-
IssueCustomFieldOptions,
22-
IssueCustomFieldOptionsApps,
23-
IssueCustomFieldValuesApps,
24-
IssueFieldConfigurations,
25-
IssueFields,
26-
IssueLinks,
27-
IssueLinkTypes,
28-
IssueNavigatorSettings,
29-
IssueNotificationSchemes,
30-
IssuePriorities,
31-
IssueProperties,
32-
IssueRemoteLinks,
33-
IssueResolutions,
34-
Issues,
35-
IssueSearch,
36-
IssueSecurityLevel,
37-
IssueSecuritySchemes,
38-
IssueTypeProperties,
39-
IssueTypes,
40-
IssueTypeSchemes,
41-
IssueTypeScreenSchemes,
42-
IssueVotes,
43-
IssueWatchers,
44-
IssueWorklogProperties,
45-
IssueWorklogs,
46-
JiraExpressions,
47-
JiraSettings,
48-
JQL,
49-
JqlFunctionsApps,
50-
Labels,
51-
LicenseMetrics,
52-
Myself,
53-
Permissions,
54-
PermissionSchemes,
55-
ProjectAvatars,
56-
ProjectCategories,
57-
ProjectComponents,
58-
ProjectEmail,
59-
ProjectFeatures,
60-
ProjectKeyAndNameValidation,
61-
ProjectPermissionSchemes,
62-
ProjectProperties,
63-
ProjectRoleActors,
64-
ProjectRoles,
65-
Projects,
66-
ProjectTypes,
67-
ProjectVersions,
68-
Screens,
69-
ScreenSchemes,
70-
ScreenTabFields,
71-
ScreenTabs,
72-
ServerInfo,
73-
Status,
74-
Tasks,
75-
TimeTracking,
76-
UIModificationsApps,
77-
UserProperties,
78-
Users,
79-
UserSearch,
80-
Webhooks,
81-
Workflows,
82-
WorkflowSchemeDrafts,
83-
WorkflowSchemeProjectAssociations,
84-
WorkflowSchemes,
85-
WorkflowStatusCategories,
86-
WorkflowStatuses,
87-
WorkflowTransitionProperties,
88-
WorkflowTransitionRules,
89-
} from '..';
1+
import { BaseClient } from '../../clients/baseClient';
2+
import { AnnouncementBanner } from '../announcementBanner';
3+
import { AppMigration } from '../appMigration';
4+
import { AppProperties } from '../appProperties';
5+
import { ApplicationRoles } from '../applicationRoles';
6+
import { AuditRecords } from '../auditRecords';
7+
import { Avatars } from '../avatars';
8+
import { Dashboards } from '../dashboards';
9+
import { DynamicModules } from '../dynamicModules';
10+
import { FilterSharing } from '../filterSharing';
11+
import { Filters } from '../filters';
12+
import { GroupAndUserPicker } from '../groupAndUserPicker';
13+
import { Groups } from '../groups';
14+
import { InstanceInformation } from '../instanceInformation';
15+
import { IssueAttachments } from '../issueAttachments';
16+
import { IssueCommentProperties } from '../issueCommentProperties';
17+
import { IssueComments } from '../issueComments';
18+
import { IssueCustomFieldConfigurationApps } from '../issueCustomFieldConfigurationApps';
19+
import { IssueCustomFieldContexts } from '../issueCustomFieldContexts';
20+
import { IssueCustomFieldOptions } from '../issueCustomFieldOptions';
21+
import { IssueCustomFieldOptionsApps } from '../issueCustomFieldOptionsApps';
22+
import { IssueCustomFieldValuesApps } from '../issueCustomFieldValuesApps';
23+
import { IssueFieldConfigurations } from '../issueFieldConfigurations';
24+
import { IssueFields } from '../issueFields';
25+
import { IssueLinkTypes } from '../issueLinkTypes';
26+
import { IssueLinks } from '../issueLinks';
27+
import { IssueNavigatorSettings } from '../issueNavigatorSettings';
28+
import { IssueNotificationSchemes } from '../issueNotificationSchemes';
29+
import { IssuePriorities } from '../issuePriorities';
30+
import { IssueProperties } from '../issueProperties';
31+
import { IssueRemoteLinks } from '../issueRemoteLinks';
32+
import { IssueResolutions } from '../issueResolutions';
33+
import { IssueSearch } from '../issueSearch';
34+
import { IssueSecurityLevel } from '../issueSecurityLevel';
35+
import { IssueSecuritySchemes } from '../issueSecuritySchemes';
36+
import { IssueTypeProperties } from '../issueTypeProperties';
37+
import { IssueTypeSchemes } from '../issueTypeSchemes';
38+
import { IssueTypeScreenSchemes } from '../issueTypeScreenSchemes';
39+
import { IssueTypes } from '../issueTypes';
40+
import { IssueVotes } from '../issueVotes';
41+
import { IssueWatchers } from '../issueWatchers';
42+
import { IssueWorklogProperties } from '../issueWorklogProperties';
43+
import { IssueWorklogs } from '../issueWorklogs';
44+
import { Issues } from '../issues';
45+
import { JiraExpressions } from '../jiraExpressions';
46+
import { JiraSettings } from '../jiraSettings';
47+
import { JQL } from '../jQL';
48+
import { JqlFunctionsApps } from '../jqlFunctionsApps';
49+
import { Labels } from '../labels';
50+
import { LicenseMetrics } from '../licenseMetrics';
51+
import { Myself } from '../myself';
52+
import { PermissionSchemes } from '../permissionSchemes';
53+
import { Permissions } from '../permissions';
54+
import { ProjectAvatars } from '../projectAvatars';
55+
import { ProjectCategories } from '../projectCategories';
56+
import { ProjectComponents } from '../projectComponents';
57+
import { ProjectEmail } from '../projectEmail';
58+
import { ProjectFeatures } from '../projectFeatures';
59+
import { ProjectKeyAndNameValidation } from '../projectKeyAndNameValidation';
60+
import { ProjectPermissionSchemes } from '../projectPermissionSchemes';
61+
import { ProjectProperties } from '../projectProperties';
62+
import { ProjectRoleActors } from '../projectRoleActors';
63+
import { ProjectRoles } from '../projectRoles';
64+
import { ProjectTypes } from '../projectTypes';
65+
import { ProjectVersions } from '../projectVersions';
66+
import { Projects } from '../projects';
67+
import { ScreenSchemes } from '../screenSchemes';
68+
import { ScreenTabFields } from '../screenTabFields';
69+
import { ScreenTabs } from '../screenTabs';
70+
import { Screens } from '../screens';
71+
import { ServerInfo } from '../serverInfo';
72+
import { Status } from '../status';
73+
import { Tasks } from '../tasks';
74+
import { TimeTracking } from '../timeTracking';
75+
import { UIModificationsApps } from '../uIModificationsApps';
76+
import { UserProperties } from '../userProperties';
77+
import { UserSearch } from '../userSearch';
78+
import { Users } from '../users';
79+
import { Webhooks } from '../webhooks';
80+
import { Workflows } from '../workflows';
81+
import { WorkflowSchemeDrafts } from '../workflowSchemeDrafts';
82+
import { WorkflowSchemeProjectAssociations } from '../workflowSchemeProjectAssociations';
83+
import { WorkflowSchemes } from '../workflowSchemes';
84+
import { WorkflowStatusCategories } from '../workflowStatusCategories';
85+
import { WorkflowStatuses } from '../workflowStatuses';
86+
import { WorkflowTransitionProperties } from '../workflowTransitionProperties';
87+
import { WorkflowTransitionRules } from '../workflowTransitionRules';
9088

9189
export class Version3Client extends BaseClient {
9290
announcementBanner = new AnnouncementBanner(this);

0 commit comments

Comments
 (0)