diff --git a/.eslintrc.js b/.eslintrc.js index 2faf987..98eb8df 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -10,6 +10,17 @@ module.exports = { "prettier", ], ignorePatterns: ["**/node_modules", "**/lib", "**/package-lock.json"], + overrides: [ + { + files: ["src/**/*.ts"], + rules: { + "no-relative-import-paths/no-relative-import-paths": [ + "warn", + { prefix: "~", rootDir: "src" }, + ], + }, + }, + ], parser: "@typescript-eslint/parser", plugins: [ "@typescript-eslint", diff --git a/package-lock.json b/package-lock.json index 2308cce..3674be8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "@print-one/print-one-js", "version": "1.2.1", + "hasInstallScript": true, "license": "MIT", "dependencies": { "@jest/test-sequencer": "^29.7.0", @@ -39,6 +40,7 @@ "rimraf": "^5.0.5", "semantic-release": "^22.0.6", "ts-jest": "^29.1.1", + "ts-patch": "^3.1.2", "typescript": "^5.3.3", "typescript-transform-paths": "^3.4.6" } @@ -4333,6 +4335,32 @@ "node": ">=10.13.0" } }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/globals": { "version": "13.23.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", @@ -5737,6 +5765,15 @@ "node": "*" } }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -11265,6 +11302,24 @@ } } }, + "node_modules/ts-patch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-3.1.2.tgz", + "integrity": "sha512-n58F5AqjUMdp9RAKq+E1YBkmONltPVbt1nN+wrmZXoYZek6QcvaTuqvKMhYhr5BxtC53kD/exxIPA1cP1RQxsA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "global-prefix": "^3.0.0", + "minimist": "^1.2.8", + "resolve": "^1.22.2", + "semver": "^7.5.4", + "strip-ansi": "^6.0.1" + }, + "bin": { + "ts-patch": "bin/ts-patch.js", + "tspc": "bin/tspc.js" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index 871e81e..412c21f 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "clean": "bsm", "format": "bsm", "lint": "bsm", + "postinstall": "bsm", "prepublishOnly": "bsm build", "semantic-release": "semantic-release", "setup": "bsm build", @@ -56,6 +57,7 @@ "rimraf": "^5.0.5", "semantic-release": "^22.0.6", "ts-jest": "^29.1.1", + "ts-patch": "^3.1.2", "typescript": "^5.3.3", "typescript-transform-paths": "^3.4.6" }, diff --git a/package.scripts.js b/package.scripts.js index c67e9e8..a938552 100644 --- a/package.scripts.js +++ b/package.scripts.js @@ -15,6 +15,7 @@ module.exports = { eslint: "eslint .", prettier: "prettier -c .", }, + postinstall: ["ts-patch install"], test: { $env: "file:.env", _ci: "jest --runInBand --forceExit --detectOpenHandles", diff --git a/src/AxiosHttpHandler.ts b/src/AxiosHttpHandler.ts index f1a085c..c7af320 100644 --- a/src/AxiosHttpHandler.ts +++ b/src/AxiosHttpHandler.ts @@ -1,7 +1,7 @@ import axios, { Axios, AxiosRequestConfig, AxiosResponse } from "axios"; import debug from "debug"; -import { HttpHandler } from "./HttpHandler"; -import { PrintOneOptions } from "./PrintOne"; +import { HttpHandler } from "~/HttpHandler"; +import { PrintOneOptions } from "~/PrintOne"; export class AxiosHTTPHandler extends HttpHandler< AxiosRequestConfig, diff --git a/src/HttpHandler.ts b/src/HttpHandler.ts index dfa7982..5d11e98 100644 --- a/src/HttpHandler.ts +++ b/src/HttpHandler.ts @@ -1,6 +1,6 @@ import debug from "debug"; -import { PrintOneError } from "./errors/PrintOneError"; -import { PrintOneOptions } from "./PrintOne"; +import { PrintOneError } from "~/errors/PrintOneError"; +import { PrintOneOptions } from "~/PrintOne"; export abstract class HttpHandler { protected readonly debug: debug.Debugger; diff --git a/src/PrintOne.ts b/src/PrintOne.ts index 78b8e6e..8880d38 100644 --- a/src/PrintOne.ts +++ b/src/PrintOne.ts @@ -1,7 +1,7 @@ -import { Company } from "./models/Company"; +import { Company } from "~/models/Company"; import debug from "debug"; -import { HttpHandler } from "./HttpHandler"; -import { ICompany } from "./models/_interfaces/ICompany"; +import { HttpHandler } from "~/HttpHandler"; +import { ICompany } from "~/models/_interfaces/ICompany"; import { ContainsFilter, containsFilterToQuery, @@ -15,23 +15,23 @@ import { mapInFilter, PaginationOptions, sortToQuery, -} from "./utils"; -import { IPaginatedResponse } from "./models/_interfaces/IPaginatedResponse"; -import { ICustomFile } from "./models/_interfaces/ICustomFile"; -import { PaginatedResponse } from "./models/PaginatedResponse"; -import { CustomFile } from "./models/CustomFile"; -import { ITemplate } from "./models/_interfaces/ITemplate"; -import { CreateTemplate, Template } from "./models/Template"; -import { CreateOrder, Order } from "./models/Order"; -import { IOrder } from "./models/_interfaces/IOrder"; -import { FriendlyStatus } from "./enums/Status"; -import { Format } from "./enums/Format"; -import { AxiosHTTPHandler } from "./AxiosHttpHandler"; -import { CreateCsvOrder, CsvOrder } from "./models/CsvOrder"; -import { ICsvOrder } from "./models/_interfaces/ICsvOrder"; -import { Batch, CreateBatch } from "./models/Batch"; -import { IBatch } from "./models/_interfaces/IBatch"; -import { BatchStatus } from "./enums/BatchStatus"; +} from "~/utils"; +import { IPaginatedResponse } from "~/models/_interfaces/IPaginatedResponse"; +import { ICustomFile } from "~/models/_interfaces/ICustomFile"; +import { PaginatedResponse } from "~/models/PaginatedResponse"; +import { CustomFile } from "~/models/CustomFile"; +import { ITemplate } from "~/models/_interfaces/ITemplate"; +import { CreateTemplate, Template } from "~/models/Template"; +import { CreateOrder, Order } from "~/models/Order"; +import { IOrder } from "~/models/_interfaces/IOrder"; +import { FriendlyStatus } from "~/enums/Status"; +import { Format } from "~/enums/Format"; +import { AxiosHTTPHandler } from "~/AxiosHttpHandler"; +import { CreateCsvOrder, CsvOrder } from "~/models/CsvOrder"; +import { ICsvOrder } from "~/models/_interfaces/ICsvOrder"; +import { Batch, CreateBatch } from "~/models/Batch"; +import { IBatch } from "~/models/_interfaces/IBatch"; +import { BatchStatus } from "~/enums/BatchStatus"; export type RequestHandler = new ( token: string, diff --git a/src/index.ts b/src/index.ts index 911a9a5..8dce3f7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import { PrintOne } from "./PrintOne"; +import { PrintOne } from "~/PrintOne"; export default PrintOne; diff --git a/src/models/Batch.ts b/src/models/Batch.ts index 18ea920..e804160 100644 --- a/src/models/Batch.ts +++ b/src/models/Batch.ts @@ -1,15 +1,15 @@ -import { OrderPaginatedQuery, Protected } from "../PrintOne"; -import { IBatch } from "./_interfaces/IBatch"; -import { Finish } from "../enums/Finish"; -import { BatchStatus } from "../enums/BatchStatus"; -import { Template } from "./Template"; -import { PaginatedResponse } from "./PaginatedResponse"; -import { Order } from "./Order"; -import { Address } from "./Address"; -import { IOrder } from "./_interfaces/IOrder"; -import { Format } from "../enums/Format"; -import { CreateBatchCsvOrder, CsvOrder } from "./CsvOrder"; -import { ICsvOrder } from "./_interfaces/ICsvOrder"; +import { OrderPaginatedQuery, Protected } from "~/PrintOne"; +import { IBatch } from "~/models/_interfaces/IBatch"; +import { Finish } from "~/enums/Finish"; +import { BatchStatus } from "~/enums/BatchStatus"; +import { Template } from "~/models/Template"; +import { PaginatedResponse } from "~/models/PaginatedResponse"; +import { Order } from "~/models/Order"; +import { Address } from "~/models/Address"; +import { IOrder } from "~/models/_interfaces/IOrder"; +import { Format } from "~/enums/Format"; +import { CreateBatchCsvOrder, CsvOrder } from "~/models/CsvOrder"; +import { ICsvOrder } from "~/models/_interfaces/ICsvOrder"; export type CreateBatch = { name: string; diff --git a/src/models/Company.ts b/src/models/Company.ts index 407418d..f94e536 100644 --- a/src/models/Company.ts +++ b/src/models/Company.ts @@ -1,5 +1,5 @@ -import { ICompany } from "./_interfaces/ICompany"; -import { Protected } from "../PrintOne"; +import { ICompany } from "~/models/_interfaces/ICompany"; +import { Protected } from "~/PrintOne"; export class Company { constructor( diff --git a/src/models/CsvOrder.ts b/src/models/CsvOrder.ts index 4faa571..f49f3d8 100644 --- a/src/models/CsvOrder.ts +++ b/src/models/CsvOrder.ts @@ -1,12 +1,12 @@ -import { OrderPaginatedQuery, Protected } from "../PrintOne"; -import { Finish } from "../enums/Finish"; -import { Format } from "../enums/Format"; -import { Address } from "./Address"; -import { Template } from "./Template"; -import { ICsvOrder } from "./_interfaces/ICsvOrder"; -import { CsvStatus, FriendlyCsvStatusText } from "src/enums/CsvStatus"; -import { Order } from "./Order"; -import { PaginatedResponse } from "./PaginatedResponse"; +import { OrderPaginatedQuery, Protected } from "~/PrintOne"; +import { Finish } from "~/enums/Finish"; +import { Format } from "~/enums/Format"; +import { Address } from "~/models/Address"; +import { Template } from "~/models/Template"; +import { ICsvOrder } from "~/models/_interfaces/ICsvOrder"; +import { CsvStatus, FriendlyCsvStatusText } from "~/enums/CsvStatus"; +import { Order } from "~/models/Order"; +import { PaginatedResponse } from "~/models/PaginatedResponse"; export type CreateCsvOrder = { file: ArrayBuffer; diff --git a/src/models/CustomFile.ts b/src/models/CustomFile.ts index 5978f01..56895b1 100644 --- a/src/models/CustomFile.ts +++ b/src/models/CustomFile.ts @@ -1,5 +1,5 @@ -import { Protected } from "../PrintOne"; -import { ICustomFile } from "./_interfaces/ICustomFile"; +import { Protected } from "~/PrintOne"; +import { ICustomFile } from "~/models/_interfaces/ICustomFile"; export class CustomFile { constructor( diff --git a/src/models/Order.ts b/src/models/Order.ts index 5576a9b..4cb63fd 100644 --- a/src/models/Order.ts +++ b/src/models/Order.ts @@ -1,11 +1,11 @@ -import { IOrder } from "./_interfaces/IOrder"; -import { Protected } from "../PrintOne"; -import { Finish } from "../enums/Finish"; -import { Format } from "../enums/Format"; -import { Address } from "./Address"; -import { Template } from "./Template"; -import { FriendlyStatus, Status } from "../enums/Status"; -import { sleep } from "../utils"; +import { IOrder } from "~/models/_interfaces/IOrder"; +import { Protected } from "~/PrintOne"; +import { Finish } from "~/enums/Finish"; +import { Format } from "~/enums/Format"; +import { Address } from "~/models/Address"; +import { Template } from "~/models/Template"; +import { FriendlyStatus, Status } from "~/enums/Status"; +import { sleep } from "~/utils"; export type CreateOrder = { recipient: Address; diff --git a/src/models/PaginatedResponse.ts b/src/models/PaginatedResponse.ts index ee845cc..ec614d3 100644 --- a/src/models/PaginatedResponse.ts +++ b/src/models/PaginatedResponse.ts @@ -1,5 +1,5 @@ -import { IPaginatedResponse } from "./_interfaces/IPaginatedResponse"; -import { Protected } from "../PrintOne"; +import { IPaginatedResponse } from "~/models/_interfaces/IPaginatedResponse"; +import { Protected } from "~/PrintOne"; export type Meta = { total: number; diff --git a/src/models/Preview.ts b/src/models/Preview.ts index bef0f6d..bb760c6 100644 --- a/src/models/Preview.ts +++ b/src/models/Preview.ts @@ -1,10 +1,10 @@ -import { IPreview } from "./_interfaces/IPreview"; -import { Protected } from "../PrintOne"; -import { PrintOneError } from "../errors/PrintOneError"; -import { PreviewDetails } from "./PreviewDetails"; -import { IPreviewDetails } from "./_interfaces/IPreviewDetails"; -import { TimeoutError } from "../errors/TimeoutError"; -import { sleep } from "../utils"; +import { IPreview } from "~/models/_interfaces/IPreview"; +import { Protected } from "~/PrintOne"; +import { PrintOneError } from "~/errors/PrintOneError"; +import { PreviewDetails } from "~/models/PreviewDetails"; +import { IPreviewDetails } from "~/models/_interfaces/IPreviewDetails"; +import { TimeoutError } from "~/errors/TimeoutError"; +import { sleep } from "~/utils"; export class Preview { private _data: IPreview; diff --git a/src/models/PreviewDetails.ts b/src/models/PreviewDetails.ts index 1eef89d..1c5c4f9 100644 --- a/src/models/PreviewDetails.ts +++ b/src/models/PreviewDetails.ts @@ -1,5 +1,5 @@ -import { Protected } from "../PrintOne"; -import { IPreviewDetails } from "./_interfaces/IPreviewDetails"; +import { Protected } from "~/PrintOne"; +import { IPreviewDetails } from "~/models/_interfaces/IPreviewDetails"; export class PreviewDetails { private _data: IPreviewDetails; diff --git a/src/models/Template.ts b/src/models/Template.ts index 93feb04..4e537f0 100644 --- a/src/models/Template.ts +++ b/src/models/Template.ts @@ -1,8 +1,8 @@ -import { Protected } from "../PrintOne"; -import { IFullTemplate, ITemplate } from "./_interfaces/ITemplate"; -import { Format } from "../enums/Format"; -import { IPreview } from "./_interfaces/IPreview"; -import { Preview } from "./Preview"; +import { Protected } from "~/PrintOne"; +import { IFullTemplate, ITemplate } from "~/models/_interfaces/ITemplate"; +import { Format } from "~/enums/Format"; +import { IPreview } from "~/models/_interfaces/IPreview"; +import { Preview } from "~/models/Preview"; export type CreateTemplate = { name: string; diff --git a/src/models/_interfaces/ICsvOrder.ts b/src/models/_interfaces/ICsvOrder.ts index 55dc8c0..d8db446 100644 --- a/src/models/_interfaces/ICsvOrder.ts +++ b/src/models/_interfaces/ICsvOrder.ts @@ -1,4 +1,4 @@ -import { Address } from "../../models/Address"; +import { Address } from "~/models/Address"; export type ICsvOrder = { id: string; diff --git a/src/models/_interfaces/IOrder.ts b/src/models/_interfaces/IOrder.ts index 082732b..cf59ddc 100644 --- a/src/models/_interfaces/IOrder.ts +++ b/src/models/_interfaces/IOrder.ts @@ -1,4 +1,4 @@ -import { Address } from "../../models/Address"; +import { Address } from "~/models/Address"; export type IOrder = { id: string; diff --git a/tsconfig.json b/tsconfig.json index 9363306..91f11e5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,8 +22,10 @@ { "transform": "typescript-transform-paths" }, { "transform": "typescript-transform-paths", "afterDeclarations": true } ], - - "baseUrl": "./", + "paths": { + "~/*": ["*"] + }, + "baseUrl": "./src", "outDir": "./lib" },