From b989adc01dccbde8dd9b9d0d27cc560b89ab9af7 Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Tue, 21 Feb 2023 13:23:07 -0600 Subject: [PATCH] fix: make changes to allow esm imports to work properly --- .eslintignore | 3 +- .eslintrc.json | 14 ++- package.json | 5 +- scripts/create_dist_package_json.js | 15 +++ scripts/create_dist_package_json.sh | 11 -- src/index.ts | 129 +++++++++++----------- src/models/ApiResponse.ts | 114 +++++++++---------- src/models/ApiResponseFactory.ts | 4 +- src/models/Attachment.ts | 2 +- src/models/AttachmentListRecordValue.ts | 6 +- src/models/DateRecordValue.ts | 4 +- src/models/DecimalRecordValue.ts | 4 +- src/models/Delegate.ts | 108 +++++++++--------- src/models/DelegateListRecordValue.ts | 6 +- src/models/Field.ts | 4 +- src/models/FileInfo.ts | 2 +- src/models/FileListRecordValue.ts | 6 +- src/models/FormulaField.ts | 10 +- src/models/GetPagedAppsResponse.ts | 4 +- src/models/GetPagedFieldsResponse.ts | 4 +- src/models/GetPagedRecordsResponse.ts | 52 ++++----- src/models/GetPagedReportsResponse.ts | 4 +- src/models/GetRecordRequest.ts | 2 +- src/models/GetRecordsByAppIdRequest.ts | 4 +- src/models/GetRecordsRequest.ts | 90 +++++++-------- src/models/GuidListRecordValue.ts | 4 +- src/models/GuidRecordValue.ts | 4 +- src/models/IntegerListRecordValue.ts | 4 +- src/models/IntegerRecordValue.ts | 4 +- src/models/ListField.ts | 10 +- src/models/ListItemResponse.ts | 2 +- src/models/OnspringClient.ts | 64 ++++++----- src/models/PagingRequest.ts | 2 +- src/models/QueryFilter.ts | 2 +- src/models/QueryRecordsRequest.ts | 6 +- src/models/Record.ts | 4 +- src/models/RecordValue.ts | 18 +-- src/models/ReferenceField.ts | 8 +- src/models/ReportData.ts | 2 +- src/models/SaveRecordResponse.ts | 2 +- src/models/ScoringGroupListRecordValue.ts | 6 +- src/models/StringListRecordValue.ts | 4 +- src/models/StringRecordValue.ts | 4 +- src/models/TimeSpanData.ts | 4 +- src/models/TimeSpanRecordValue.ts | 6 +- tsconfig.json | 1 + 46 files changed, 392 insertions(+), 376 deletions(-) create mode 100644 scripts/create_dist_package_json.js delete mode 100644 scripts/create_dist_package_json.sh diff --git a/.eslintignore b/.eslintignore index bac51cb..3ee9d05 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,4 +3,5 @@ coverage/ dist/ node_modules/ -.github/ \ No newline at end of file +.github/ +scripts/ \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index 7f15e2c..3c07d60 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,7 +3,7 @@ "browser": true, "es2021": true }, - "plugins": ["@typescript-eslint", "mocha"], + "plugins": ["@typescript-eslint", "mocha", "import"], "extends": [ "standard-with-typescript", "eslint:recommended", @@ -13,11 +13,16 @@ ], "overrides": [ { - "files": ["tests/**/*.spec.ts", "integrationTests/**/*.spec.ts"], + "files": [ + "tests/**/*.spec.ts", + "integrationTests/**/*.spec.ts", + "integrationTests/utils/**" + ], "rules": { "@typescript-eslint/no-unused-expressions": "off", "@typescript-eslint/consistent-type-assertions": "off", - "no-new": "off" + "no-new": "off", + "import/extensions": "off" } } ], @@ -30,6 +35,7 @@ "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off", "@typescript-eslint/no-useless-constructor": "off", - "@typescript-eslint/no-extraneous-class": "off" + "@typescript-eslint/no-extraneous-class": "off", + "import/extensions": ["error", "always", { "ignorePackages": true }] } } diff --git a/package.json b/package.json index 718f06f..5f85799 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,12 @@ "License.txt", "package.json" ], + "types": "dist/types/index.d.ts", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/types/index.d.ts", "exports": { ".": { + "types": "./dist/types/index.d.ts", "import": "./dist/esm/index.js", "require": "./dist/cjs/index.js" } @@ -47,7 +48,7 @@ "lint-fix": "eslint --fix --ignore-path .eslintignore --ext .js,.ts . --max-warnings=0", "format-staged": "pretty-quick --staged", "format": "pretty-quick", - "build": "npm run tests && npm run clean && tsc --project tsconfig.cjs.json && tsc --project tsconfig.esm.json && ./scripts/create_dist_package_json.sh", + "build": "npm run tests && npm run clean && tsc --project tsconfig.cjs.json && tsc --project tsconfig.esm.json && node ./scripts/create_dist_package_json.js", "test:unit": "mocha -r ts-node/register", "test:integration": "mocha -r ts-node/register -r integrationTests/mochaRootHooks.ts", "tests:unit": "mocha -R progress -r ts-node/register ./tests/**/*.spec.ts", diff --git a/scripts/create_dist_package_json.js b/scripts/create_dist_package_json.js new file mode 100644 index 0000000..e95068e --- /dev/null +++ b/scripts/create_dist_package_json.js @@ -0,0 +1,15 @@ +const fs = require('fs'); +const path = require('path'); + +const esmPackageJson = `{ + "type": "module" +}`; + +const cjsPackageJson = `{ + "type": "commonjs" +}`; + +const parentDir = path.resolve(__dirname, '..'); + +fs.writeFileSync(path.join(parentDir, 'dist/esm/package.json'), esmPackageJson); +fs.writeFileSync(path.join(parentDir, 'dist/cjs/package.json'), cjsPackageJson); diff --git a/scripts/create_dist_package_json.sh b/scripts/create_dist_package_json.sh deleted file mode 100644 index 716fd35..0000000 --- a/scripts/create_dist_package_json.sh +++ /dev/null @@ -1,11 +0,0 @@ -cat > dist/cjs/package.json < dist/mjs/package.json < { public asGetPagedAppsResponseType(): ApiResponse { const apiResponse = this as ApiResponse; -const apps = apiResponse.data.items.map((item: any) => { - return new App(item.href, item.id, item.name); -}); + const apps = apiResponse.data.items.map((item: any) => { + return new App(item.href, item.id, item.name); + }); -const getAppsPagedResponse = new GetPagedAppsResponse( - apps, - apiResponse.data.pageNumber, - apiResponse.data.pageSize, - apiResponse.data.totalPages, - apiResponse.data.totalRecords -); + const getAppsPagedResponse = new GetPagedAppsResponse( + apps, + apiResponse.data.pageNumber, + apiResponse.data.pageSize, + apiResponse.data.totalPages, + apiResponse.data.totalRecords + ); return new ApiResponse( apiResponse.statusCode, diff --git a/src/models/ApiResponseFactory.ts b/src/models/ApiResponseFactory.ts index f4cc601..054751a 100644 --- a/src/models/ApiResponseFactory.ts +++ b/src/models/ApiResponseFactory.ts @@ -1,7 +1,7 @@ import { type AxiosResponse } from 'axios'; -import { HttpStatusCode } from '../enums/HttpStatusCode'; -import { ApiResponse } from './ApiResponse'; import { type Readable } from 'stream'; +import { HttpStatusCode } from '../enums/HttpStatusCode.js'; +import { ApiResponse } from './ApiResponse.js'; /** * @class ApiResponseFactory - Factory class for creating ApiResponse objects diff --git a/src/models/Attachment.ts b/src/models/Attachment.ts index 3e60423..65e0f63 100644 --- a/src/models/Attachment.ts +++ b/src/models/Attachment.ts @@ -1,4 +1,4 @@ -import { type FileStorageSite } from '../enums/FileStorageSite'; +import { type FileStorageSite } from '../enums/FileStorageSite.js'; /** * @class Attachment - Represents an attachment. diff --git a/src/models/AttachmentListRecordValue.ts b/src/models/AttachmentListRecordValue.ts index 5db3593..f506322 100644 --- a/src/models/AttachmentListRecordValue.ts +++ b/src/models/AttachmentListRecordValue.ts @@ -1,6 +1,6 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { type Attachment } from './Attachment'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { type Attachment } from './Attachment.js'; +import { RecordValue } from './RecordValue.js'; /** * @class AttachmentListRecordValue - A record value represented by a list of attachments. diff --git a/src/models/DateRecordValue.ts b/src/models/DateRecordValue.ts index 577436e..7b329f7 100644 --- a/src/models/DateRecordValue.ts +++ b/src/models/DateRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; /** * @class DateRecordValue - A value for a date field in a record. diff --git a/src/models/DecimalRecordValue.ts b/src/models/DecimalRecordValue.ts index 38d206b..06f45df 100644 --- a/src/models/DecimalRecordValue.ts +++ b/src/models/DecimalRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValue } from './RecordValue'; -import { RecordValueType } from '../enums/RecordValueType'; +import { RecordValue } from './RecordValue.js'; +import { RecordValueType } from '../enums/RecordValueType.js'; export class DecimalRecordValue extends RecordValue { constructor(fieldId: number, value: number) { diff --git a/src/models/Delegate.ts b/src/models/Delegate.ts index d2c1dc2..3c25690 100644 --- a/src/models/Delegate.ts +++ b/src/models/Delegate.ts @@ -1,54 +1,54 @@ -import { type DelegateType } from '../enums/DelegateType'; - -/** - * @class Delegate - Represents a delegate. - */ -export class Delegate { - /** - * @property {DelegateType} delegateType - The type of delegate. - */ - public delegateType: DelegateType; - - /** - * @property {string | null} name - The name of the delegate. - */ - public name: string | null; - - /** - * @property {string} emailAddress - The email address of the delegate. - */ - public emailAddress: string; - - /** - * @property {Date} delegationDateTime - The date and time the delegate was assigned. - */ - public delegationDateTime: Date; - - /** - * @property {Date | null} delegationCompletedDateTime - The date and time the delegate completed the survey. - */ - public delegationCompletedDateTime: Date | null; - - /** - * @constructor - Creates a new instance of Delegate. - * @param {DelegateType} delegateType - The type of delegate. - * @param {string | null} name - The name of the delegate. - * @param {string} emailAddress - The email address of the delegate. - * @param {Date} delegationDateTime - The date and time the delegate was assigned. - * @param {Date | null} delegationCompletedDateTime - The date and time the delegate completed the survey. - * @returns {Delegate} - A new instance of Delegate. - */ - constructor( - delegateType: DelegateType, - name: string | null, - emailAddress: string, - delegationDateTime: Date, - delegationCompletedDateTime: Date | null - ) { - this.delegateType = delegateType; - this.name = name; - this.emailAddress = emailAddress; - this.delegationDateTime = delegationDateTime; - this.delegationCompletedDateTime = delegationCompletedDateTime; - } -} +import { type DelegateType } from '../enums/DelegateType.js'; + +/** + * @class Delegate - Represents a delegate. + */ +export class Delegate { + /** + * @property {DelegateType} delegateType - The type of delegate. + */ + public delegateType: DelegateType; + + /** + * @property {string | null} name - The name of the delegate. + */ + public name: string | null; + + /** + * @property {string} emailAddress - The email address of the delegate. + */ + public emailAddress: string; + + /** + * @property {Date} delegationDateTime - The date and time the delegate was assigned. + */ + public delegationDateTime: Date; + + /** + * @property {Date | null} delegationCompletedDateTime - The date and time the delegate completed the survey. + */ + public delegationCompletedDateTime: Date | null; + + /** + * @constructor - Creates a new instance of Delegate. + * @param {DelegateType} delegateType - The type of delegate. + * @param {string | null} name - The name of the delegate. + * @param {string} emailAddress - The email address of the delegate. + * @param {Date} delegationDateTime - The date and time the delegate was assigned. + * @param {Date | null} delegationCompletedDateTime - The date and time the delegate completed the survey. + * @returns {Delegate} - A new instance of Delegate. + */ + constructor( + delegateType: DelegateType, + name: string | null, + emailAddress: string, + delegationDateTime: Date, + delegationCompletedDateTime: Date | null + ) { + this.delegateType = delegateType; + this.name = name; + this.emailAddress = emailAddress; + this.delegationDateTime = delegationDateTime; + this.delegationCompletedDateTime = delegationCompletedDateTime; + } +} diff --git a/src/models/DelegateListRecordValue.ts b/src/models/DelegateListRecordValue.ts index 1ac9a6f..335d7c7 100644 --- a/src/models/DelegateListRecordValue.ts +++ b/src/models/DelegateListRecordValue.ts @@ -1,6 +1,6 @@ -import { RecordValue } from './RecordValue'; -import { RecordValueType } from '../enums/RecordValueType'; -import { type Delegate } from './Delegate'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { type Delegate } from './Delegate.js'; +import { RecordValue } from './RecordValue.js'; export class DelegateListRecordValue extends RecordValue { constructor(fieldId: number, value: Delegate[]) { diff --git a/src/models/Field.ts b/src/models/Field.ts index 51afe04..e05700b 100644 --- a/src/models/Field.ts +++ b/src/models/Field.ts @@ -1,5 +1,5 @@ -import { type FieldStatus } from '../enums/FieldStatus'; -import { type FieldType } from '../enums/FieldType'; +import { type FieldStatus } from '../enums/FieldStatus.js'; +import { type FieldType } from '../enums/FieldType.js'; /** * @class Field - Represents a Field. diff --git a/src/models/FileInfo.ts b/src/models/FileInfo.ts index abc5198..b19fa3e 100644 --- a/src/models/FileInfo.ts +++ b/src/models/FileInfo.ts @@ -1,4 +1,4 @@ -import { FieldType } from '../enums/FieldType'; +import { FieldType } from '../enums/FieldType.js'; /** * @class FileInfo - Represents a file info. diff --git a/src/models/FileListRecordValue.ts b/src/models/FileListRecordValue.ts index bd49bc5..c2b18b1 100644 --- a/src/models/FileListRecordValue.ts +++ b/src/models/FileListRecordValue.ts @@ -1,6 +1,6 @@ -import { RecordValue } from './RecordValue'; -import { RecordValueType } from '../enums/RecordValueType'; -import { type File } from './File'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { type File } from './File.js'; +import { RecordValue } from './RecordValue.js'; export class FileListRecordValue extends RecordValue { constructor(fieldId: number, value: File[]) { diff --git a/src/models/FormulaField.ts b/src/models/FormulaField.ts index 442adc6..67e323f 100644 --- a/src/models/FormulaField.ts +++ b/src/models/FormulaField.ts @@ -1,8 +1,8 @@ -import { type FieldStatus } from '../enums/FieldStatus'; -import { type FieldType } from '../enums/FieldType'; -import { type FormulaOutputType } from '../enums/FormulaOutputType'; -import { Field } from './Field'; -import { type ListValue } from './ListValue'; +import { type FieldStatus } from '../enums/FieldStatus.js'; +import { type FieldType } from '../enums/FieldType.js'; +import { type FormulaOutputType } from '../enums/FormulaOutputType.js'; +import { Field } from './Field.js'; +import { type ListValue } from './ListValue.js'; /** * @class FormulaField - Represents a formula field. diff --git a/src/models/GetPagedAppsResponse.ts b/src/models/GetPagedAppsResponse.ts index 83b70e3..2cc539c 100644 --- a/src/models/GetPagedAppsResponse.ts +++ b/src/models/GetPagedAppsResponse.ts @@ -1,5 +1,5 @@ -import { PagedResponse } from './PagedResponse'; -import { type App } from './App'; +import { type App } from './App.js'; +import { PagedResponse } from './PagedResponse.js'; /** * @class GetPagedAppsResponse - A paged response model for the GetApps method. diff --git a/src/models/GetPagedFieldsResponse.ts b/src/models/GetPagedFieldsResponse.ts index 995de95..4f431fd 100644 --- a/src/models/GetPagedFieldsResponse.ts +++ b/src/models/GetPagedFieldsResponse.ts @@ -1,5 +1,5 @@ -import { type Field } from './Field'; -import { PagedResponse } from './PagedResponse'; +import { type Field } from './Field.js'; +import { PagedResponse } from './PagedResponse.js'; /** * @class GetPagedFieldsResponse - A response containing a paged collection of fields. diff --git a/src/models/GetPagedRecordsResponse.ts b/src/models/GetPagedRecordsResponse.ts index 107c277..683b282 100644 --- a/src/models/GetPagedRecordsResponse.ts +++ b/src/models/GetPagedRecordsResponse.ts @@ -1,26 +1,26 @@ -import { type Record } from './Record'; -import { PagedResponse } from './PagedResponse'; - -/** - * @class GetPagedRecordsResponse - A response containing a paged collection of records. - */ -export class GetPagedRecordsResponse extends PagedResponse { - /** - * @constructor - Creates a new instance of the GetPagedRecordsResponse class. - * @param {Record[]} items - The items in the collection. - * @param {number} pageNumber - The page number of the response. - * @param {number} pageSize - The page size of the response. - * @param {number} totalPages - The total number of pages in the response. - * @param {number} totalRecords - The total number of records in the response. - * @returns {GetPagedRecordsResponse} - A new instance of the GetPagedRecordsResponse class. - */ - constructor( - items: Record[], - pageNumber: number, - pageSize: number, - totalPages: number, - totalRecords: number - ) { - super(items, pageNumber, pageSize, totalPages, totalRecords); - } -} +import { PagedResponse } from './PagedResponse.js'; +import { type Record } from './Record.js'; + +/** + * @class GetPagedRecordsResponse - A response containing a paged collection of records. + */ +export class GetPagedRecordsResponse extends PagedResponse { + /** + * @constructor - Creates a new instance of the GetPagedRecordsResponse class. + * @param {Record[]} items - The items in the collection. + * @param {number} pageNumber - The page number of the response. + * @param {number} pageSize - The page size of the response. + * @param {number} totalPages - The total number of pages in the response. + * @param {number} totalRecords - The total number of records in the response. + * @returns {GetPagedRecordsResponse} - A new instance of the GetPagedRecordsResponse class. + */ + constructor( + items: Record[], + pageNumber: number, + pageSize: number, + totalPages: number, + totalRecords: number + ) { + super(items, pageNumber, pageSize, totalPages, totalRecords); + } +} diff --git a/src/models/GetPagedReportsResponse.ts b/src/models/GetPagedReportsResponse.ts index c0efb25..dd270aa 100644 --- a/src/models/GetPagedReportsResponse.ts +++ b/src/models/GetPagedReportsResponse.ts @@ -1,5 +1,5 @@ -import { PagedResponse } from './PagedResponse'; -import { type Report } from './Report'; +import { PagedResponse } from './PagedResponse.js'; +import { type Report } from './Report.js'; /** * @class GetPagedReportsResponse - Represents a response containing a paged list of reports. diff --git a/src/models/GetRecordRequest.ts b/src/models/GetRecordRequest.ts index 2a3a2e5..71de44d 100644 --- a/src/models/GetRecordRequest.ts +++ b/src/models/GetRecordRequest.ts @@ -1,4 +1,4 @@ -import { DataFormat } from '../enums/DataFormat'; +import { DataFormat } from '../enums/DataFormat.js'; /** * @class GetRecordRequest - A request to get a record. diff --git a/src/models/GetRecordsByAppIdRequest.ts b/src/models/GetRecordsByAppIdRequest.ts index b49435b..993b616 100644 --- a/src/models/GetRecordsByAppIdRequest.ts +++ b/src/models/GetRecordsByAppIdRequest.ts @@ -1,5 +1,5 @@ -import { DataFormat } from '../enums/DataFormat'; -import { PagingRequest } from './PagingRequest'; +import { DataFormat } from '../enums/DataFormat.js'; +import { PagingRequest } from './PagingRequest.js'; export class GetRecordsByAppIdRequest { /** diff --git a/src/models/GetRecordsRequest.ts b/src/models/GetRecordsRequest.ts index b1a0f8e..eda7b22 100644 --- a/src/models/GetRecordsRequest.ts +++ b/src/models/GetRecordsRequest.ts @@ -1,45 +1,45 @@ -import { DataFormat } from '../enums/DataFormat'; - -/** - * @class GetRecordsRequest - Request to get records by their ids - */ -export class GetRecordsRequest { - /** - * @property {number} appId - The id of the app the records belong to. - */ - appId: number; - - /** - * @property {number[]} recordIds - The ids of the records to get. - */ - recordIds: number[]; - - /** - * @property {number[]} fieldIds - The ids of the fields to include in the response. - */ - fieldIds: number[]; - - /** - * @property {DataFormat} dataFormat - The format of the data in the response. - */ - dataFormat: DataFormat; - - /** - * @constructor - Creates a new instance of GetRecordsRequest - * @param {number} appId - The id of the app the records belong to. - * @param {number[]} recordIds - The ids of the records to get. - * @param {number[]} fieldIds - The ids of the fields to include in the response. - * @param {DataFormat} dataFormat - The format of the data in the response. - */ - constructor( - appId: number, - recordIds: number[], - fieldIds: number[] = [], - dataFormat: DataFormat = DataFormat.Raw - ) { - this.appId = appId; - this.recordIds = recordIds; - this.fieldIds = fieldIds; - this.dataFormat = dataFormat; - } -} +import { DataFormat } from '../enums/DataFormat.js'; + +/** + * @class GetRecordsRequest - Request to get records by their ids + */ +export class GetRecordsRequest { + /** + * @property {number} appId - The id of the app the records belong to. + */ + appId: number; + + /** + * @property {number[]} recordIds - The ids of the records to get. + */ + recordIds: number[]; + + /** + * @property {number[]} fieldIds - The ids of the fields to include in the response. + */ + fieldIds: number[]; + + /** + * @property {DataFormat} dataFormat - The format of the data in the response. + */ + dataFormat: DataFormat; + + /** + * @constructor - Creates a new instance of GetRecordsRequest + * @param {number} appId - The id of the app the records belong to. + * @param {number[]} recordIds - The ids of the records to get. + * @param {number[]} fieldIds - The ids of the fields to include in the response. + * @param {DataFormat} dataFormat - The format of the data in the response. + */ + constructor( + appId: number, + recordIds: number[], + fieldIds: number[] = [], + dataFormat: DataFormat = DataFormat.Raw + ) { + this.appId = appId; + this.recordIds = recordIds; + this.fieldIds = fieldIds; + this.dataFormat = dataFormat; + } +} diff --git a/src/models/GuidListRecordValue.ts b/src/models/GuidListRecordValue.ts index 7e9a064..fa61a6f 100644 --- a/src/models/GuidListRecordValue.ts +++ b/src/models/GuidListRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; export class GuidListRecordValue extends RecordValue { constructor(fieldId: number, value: string[]) { diff --git a/src/models/GuidRecordValue.ts b/src/models/GuidRecordValue.ts index 9af101c..354ed79 100644 --- a/src/models/GuidRecordValue.ts +++ b/src/models/GuidRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; export class GuidRecordValue extends RecordValue { constructor(fieldId: number, value: string) { diff --git a/src/models/IntegerListRecordValue.ts b/src/models/IntegerListRecordValue.ts index 0fce22b..7160477 100644 --- a/src/models/IntegerListRecordValue.ts +++ b/src/models/IntegerListRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; export class IntegerListRecordValue extends RecordValue { constructor(fieldId: number, value: number[]) { diff --git a/src/models/IntegerRecordValue.ts b/src/models/IntegerRecordValue.ts index a1be6ab..b2c92f4 100644 --- a/src/models/IntegerRecordValue.ts +++ b/src/models/IntegerRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; /** * @class IntegerRecordValue - A record value represented by an integer. diff --git a/src/models/ListField.ts b/src/models/ListField.ts index 5e92cdc..dad67ac 100644 --- a/src/models/ListField.ts +++ b/src/models/ListField.ts @@ -1,8 +1,8 @@ -import { type FieldStatus } from '../enums/FieldStatus'; -import { type FieldType } from '../enums/FieldType'; -import { type Multiplicity } from '../enums/Multiplicity'; -import { Field } from './Field'; -import { type ListValue } from './ListValue'; +import { type FieldStatus } from '../enums/FieldStatus.js'; +import { type FieldType } from '../enums/FieldType.js'; +import { type Multiplicity } from '../enums/Multiplicity.js'; +import { Field } from './Field.js'; +import { type ListValue } from './ListValue.js'; /** * @class ListField - Represents a list field. diff --git a/src/models/ListItemResponse.ts b/src/models/ListItemResponse.ts index 24dc238..d53f02f 100644 --- a/src/models/ListItemResponse.ts +++ b/src/models/ListItemResponse.ts @@ -1,4 +1,4 @@ -import { CreatedWithIdResponse } from './CreatedWithIdResponse'; +import { CreatedWithIdResponse } from './CreatedWithIdResponse.js'; /** * @class ListItemResponse - Represents a respons when a list item is created or updated. */ diff --git a/src/models/OnspringClient.ts b/src/models/OnspringClient.ts index 2b58b6a..c57e623 100644 --- a/src/models/OnspringClient.ts +++ b/src/models/OnspringClient.ts @@ -1,36 +1,36 @@ import axios, { - type CreateAxiosDefaults, type AxiosInstance, type AxiosRequestConfig, + type CreateAxiosDefaults, } from 'axios'; -import { PagingRequest } from './PagingRequest'; -import { ArgumentValidator } from './ArgumentValidator'; -import { EndpointFactory } from './EndpointFactory'; -import { ApiResponseFactory } from './ApiResponseFactory'; -import { DataFormat } from '../enums/DataFormat'; -import { ReportDataType } from '../enums/ReportDataType'; -import { Record } from './Record'; -import { type ApiResponse } from './ApiResponse'; -import { type GetPagedAppsResponse } from './GetPagedAppsResponse'; -import { type App } from './App'; -import { type CollectionResponse } from './CollectionResponse'; -import { type Field } from './Field'; -import { type GetPagedFieldsResponse } from './GetPagedFieldsResponse'; -import { type SaveFileRequest } from './SaveFileRequest'; -import { type CreatedWithIdResponse } from './CreatedWithIdResponse'; -import { type FileInfo } from './FileInfo'; -import { type File } from './File'; -import { type ListItemResponse } from './ListItemResponse'; -import { type ListItemRequest } from './ListItemRequest'; -import { type GetPagedReportsResponse } from './GetPagedReportsResponse'; -import { type ReportData } from './ReportData'; -import { type GetRecordRequest } from './GetRecordRequest'; -import { type GetRecordsByAppIdRequest } from './GetRecordsByAppIdRequest'; -import { type GetPagedRecordsResponse } from './GetPagedRecordsResponse'; -import { type GetRecordsRequest } from './GetRecordsRequest'; -import { type QueryRecordsRequest } from './QueryRecordsRequest'; -import { type SaveRecordResponse } from './SaveRecordResponse'; -import { type SaveRecordRequest } from './SaveRecordRequest'; +import { DataFormat } from '../enums/DataFormat.js'; +import { ReportDataType } from '../enums/ReportDataType.js'; +import { type ApiResponse } from './ApiResponse.js'; +import { ApiResponseFactory } from './ApiResponseFactory.js'; +import { type App } from './App.js'; +import { ArgumentValidator } from './ArgumentValidator.js'; +import { type CollectionResponse } from './CollectionResponse.js'; +import { type CreatedWithIdResponse } from './CreatedWithIdResponse.js'; +import { EndpointFactory } from './EndpointFactory.js'; +import { type Field } from './Field.js'; +import { type File } from './File.js'; +import { type FileInfo } from './FileInfo.js'; +import { type GetPagedAppsResponse } from './GetPagedAppsResponse.js'; +import { type GetPagedFieldsResponse } from './GetPagedFieldsResponse.js'; +import { type GetPagedRecordsResponse } from './GetPagedRecordsResponse.js'; +import { type GetPagedReportsResponse } from './GetPagedReportsResponse.js'; +import { type GetRecordRequest } from './GetRecordRequest.js'; +import { type GetRecordsByAppIdRequest } from './GetRecordsByAppIdRequest.js'; +import { type GetRecordsRequest } from './GetRecordsRequest.js'; +import { type ListItemRequest } from './ListItemRequest.js'; +import { type ListItemResponse } from './ListItemResponse.js'; +import { PagingRequest } from './PagingRequest.js'; +import { type QueryRecordsRequest } from './QueryRecordsRequest.js'; +import { Record } from './Record.js'; +import { type ReportData } from './ReportData.js'; +import { type SaveFileRequest } from './SaveFileRequest.js'; +import { type SaveRecordRequest } from './SaveRecordRequest.js'; +import { type SaveRecordResponse } from './SaveRecordResponse.js'; /** * @class OnspringClient - A client that can communicate with the Onspring API. @@ -49,7 +49,11 @@ export class OnspringClient { * @throws {Error} - Thrown when the apiKey is null/undefined/empty/whitespace. * @returns {OnspringClient} - A new instance of the OnspringClient class. */ - constructor(baseUrl: string | undefined | null, apiKey: string | undefined | null, config: CreateAxiosDefaults = {}) { + constructor( + baseUrl: string | undefined | null, + apiKey: string | undefined | null, + config: CreateAxiosDefaults = {} + ) { if (ArgumentValidator.isValidUrl(baseUrl) === false || baseUrl === null) { throw new Error('baseUrl must be an absolute and well-formed URI.'); } diff --git a/src/models/PagingRequest.ts b/src/models/PagingRequest.ts index 532a0c5..1efcabf 100644 --- a/src/models/PagingRequest.ts +++ b/src/models/PagingRequest.ts @@ -1,4 +1,4 @@ -import { ArgumentValidator } from './ArgumentValidator'; +import { ArgumentValidator } from './ArgumentValidator.js'; /** * @class PagingRequest - Paging request model diff --git a/src/models/QueryFilter.ts b/src/models/QueryFilter.ts index 8bc6e49..fbd49e1 100644 --- a/src/models/QueryFilter.ts +++ b/src/models/QueryFilter.ts @@ -1,4 +1,4 @@ -import { FilterOperators } from '../enums/FilterOperators'; +import { FilterOperators } from '../enums/FilterOperators.js'; export class QueryFilter { public fieldId: number; diff --git a/src/models/QueryRecordsRequest.ts b/src/models/QueryRecordsRequest.ts index fec0562..ce536f5 100644 --- a/src/models/QueryRecordsRequest.ts +++ b/src/models/QueryRecordsRequest.ts @@ -1,6 +1,6 @@ -import { DataFormat } from '../enums/DataFormat'; -import { PagingRequest } from './PagingRequest'; -import { type QueryFilter } from './QueryFilter'; +import { DataFormat } from '../enums/DataFormat.js'; +import { PagingRequest } from './PagingRequest.js'; +import { type QueryFilter } from './QueryFilter.js'; /** * @class QueryRecordsRequest - Request to query for records. diff --git a/src/models/Record.ts b/src/models/Record.ts index 92a804b..4379b50 100644 --- a/src/models/Record.ts +++ b/src/models/Record.ts @@ -1,5 +1,5 @@ -import { type RecordValue } from './RecordValue'; -import { SaveRecordRequest } from './SaveRecordRequest'; +import { type RecordValue } from './RecordValue.js'; +import { SaveRecordRequest } from './SaveRecordRequest.js'; /** * @class Record - A record in an app. diff --git a/src/models/RecordValue.ts b/src/models/RecordValue.ts index 3c5c99b..9d2368b 100644 --- a/src/models/RecordValue.ts +++ b/src/models/RecordValue.ts @@ -1,12 +1,12 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { type Attachment } from './Attachment'; -import { type AttachmentListRecordValue } from './AttachmentListRecordValue'; -import { type Delegate } from './Delegate'; -import { type DelegateListRecordValue } from './DelegateListRecordValue'; -import { type ScoringGroup } from './ScoringGroup'; -import { type ScoringGroupListRecordValue } from './ScoringGroupListRecordValue'; -import { type TimeSpanData } from './TimeSpanData'; -import { type TimeSpanRecordValue } from './TimeSpanRecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { type Attachment } from './Attachment.js'; +import { type AttachmentListRecordValue } from './AttachmentListRecordValue.js'; +import { type Delegate } from './Delegate.js'; +import { type DelegateListRecordValue } from './DelegateListRecordValue.js'; +import { type ScoringGroup } from './ScoringGroup.js'; +import { type ScoringGroupListRecordValue } from './ScoringGroupListRecordValue.js'; +import { type TimeSpanData } from './TimeSpanData.js'; +import { type TimeSpanRecordValue } from './TimeSpanRecordValue.js'; /** * @class RecordValue - A value for a field in a record. diff --git a/src/models/ReferenceField.ts b/src/models/ReferenceField.ts index bc92985..3098024 100644 --- a/src/models/ReferenceField.ts +++ b/src/models/ReferenceField.ts @@ -1,7 +1,7 @@ -import { type FieldStatus } from '../enums/FieldStatus'; -import { type FieldType } from '../enums/FieldType'; -import { type Multiplicity } from '../enums/Multiplicity'; -import { Field } from './Field'; +import { type FieldStatus } from '../enums/FieldStatus.js'; +import { type FieldType } from '../enums/FieldType.js'; +import { type Multiplicity } from '../enums/Multiplicity.js'; +import { Field } from './Field.js'; /** * @class ReferenceField - Represents a reference field. diff --git a/src/models/ReportData.ts b/src/models/ReportData.ts index ed513d6..d0b2a05 100644 --- a/src/models/ReportData.ts +++ b/src/models/ReportData.ts @@ -1,4 +1,4 @@ -import { type Row } from './Row'; +import { type Row } from './Row.js'; /** * @class ReportData - Represents the data for a report. diff --git a/src/models/SaveRecordResponse.ts b/src/models/SaveRecordResponse.ts index ad70380..8af03f0 100644 --- a/src/models/SaveRecordResponse.ts +++ b/src/models/SaveRecordResponse.ts @@ -1,4 +1,4 @@ -import { CreatedWithIdResponse } from './CreatedWithIdResponse'; +import { CreatedWithIdResponse } from './CreatedWithIdResponse.js'; export class SaveRecordResponse extends CreatedWithIdResponse { public warnings: string[]; diff --git a/src/models/ScoringGroupListRecordValue.ts b/src/models/ScoringGroupListRecordValue.ts index 67b4859..39cd571 100644 --- a/src/models/ScoringGroupListRecordValue.ts +++ b/src/models/ScoringGroupListRecordValue.ts @@ -1,6 +1,6 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; -import { type ScoringGroup } from './ScoringGroup'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; +import { type ScoringGroup } from './ScoringGroup.js'; export class ScoringGroupListRecordValue extends RecordValue { constructor(fieldId: number, value: ScoringGroup[]) { diff --git a/src/models/StringListRecordValue.ts b/src/models/StringListRecordValue.ts index 674dadb..943cf73 100644 --- a/src/models/StringListRecordValue.ts +++ b/src/models/StringListRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; export class StringListRecordValue extends RecordValue { constructor(fieldId: number, value: string[]) { diff --git a/src/models/StringRecordValue.ts b/src/models/StringRecordValue.ts index ee59dd7..ba4df9e 100644 --- a/src/models/StringRecordValue.ts +++ b/src/models/StringRecordValue.ts @@ -1,5 +1,5 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; /** * @class StringRecordValue - A record value represented by a string. diff --git a/src/models/TimeSpanData.ts b/src/models/TimeSpanData.ts index 70b7dfc..c996b72 100644 --- a/src/models/TimeSpanData.ts +++ b/src/models/TimeSpanData.ts @@ -1,5 +1,5 @@ -import { type TimeSpanIncrement } from '../enums/TimeSpanIncrement'; -import { type TimeSpanRecurrenceType } from '../enums/TimeSpanRecurrenceType'; +import { type TimeSpanIncrement } from '../enums/TimeSpanIncrement.js'; +import { type TimeSpanRecurrenceType } from '../enums/TimeSpanRecurrenceType.js'; export class TimeSpanData { /** diff --git a/src/models/TimeSpanRecordValue.ts b/src/models/TimeSpanRecordValue.ts index cead1dc..186cba7 100644 --- a/src/models/TimeSpanRecordValue.ts +++ b/src/models/TimeSpanRecordValue.ts @@ -1,6 +1,6 @@ -import { RecordValueType } from '../enums/RecordValueType'; -import { RecordValue } from './RecordValue'; -import { type TimeSpanData } from './TimeSpanData'; +import { RecordValueType } from '../enums/RecordValueType.js'; +import { RecordValue } from './RecordValue.js'; +import { type TimeSpanData } from './TimeSpanData.js'; export class TimeSpanRecordValue extends RecordValue { constructor(fieldId: number, value: TimeSpanData) { diff --git a/tsconfig.json b/tsconfig.json index 8f64e61..45334d1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,6 +13,7 @@ "module": "commonjs", "target": "ES6" }, + "experimentalResolver": true, "moduleTypes": { "*.ts": "cjs" }