Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6bb8aef

Browse files
committedJul 9, 2021
Removed IImageKit and Changed ImageKit to class
1 parent 31fa2dc commit 6bb8aef

File tree

5 files changed

+267
-56
lines changed

5 files changed

+267
-56
lines changed
 

‎.babelrc

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
2-
"presets": [
3-
"@babel/preset-typescript",
4-
[
5-
"@babel/env",
6-
{
7-
"targets": "> 0.25%, not dead"
8-
}
9-
]
2+
"plugins": ["@babel/plugin-proposal-class-properties"],
3+
"presets": [
4+
"@babel/preset-typescript",
5+
[
6+
"@babel/env",
7+
{
8+
"targets": "> 0.25%, not dead"
9+
}
1010
]
11-
}
11+
]
12+
}

‎package-lock.json

Lines changed: 215 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"@rollup/plugin-node-resolve": "^8.4.0",
2222
"@rollup/plugin-typescript": "^8.2.1",
2323
"@types/node": "^15.6.1",
24+
"babel-plugin-transform-class-properties": "^6.24.1",
2425
"chai": "^4.2.0",
2526
"codecov": "^3.8.0",
2627
"esm": "^3.2.25",

‎src/index.ts

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { url } from "./url/index";
2-
import { upload } from "./upload/index";
31
import { version } from "../package.json";
4-
import transformationUtils from "./utils/transformation";
52
import errorMessages from "./constants/errorMessages";
6-
import { IImageKit, ImageKitOptions, TransformationPosition, UploadOptions, UploadResponse, UrlOptions } from "./interfaces";
3+
import { ImageKitOptions, UploadOptions, UploadResponse, UrlOptions } from "./interfaces";
4+
import { upload } from "./upload/index";
5+
import { url } from "./url/index";
6+
import transformationUtils from "./utils/transformation";
77

88
function mandatoryParametersAvailable(options: ImageKitOptions) {
99
return options.urlEndpoint;
@@ -13,46 +13,52 @@ function privateKeyPassed(options: ImageKitOptions) {
1313
return typeof (options as any).privateKey != "undefined";
1414
}
1515

16-
const ImageKit = function (
17-
this: IImageKit,
18-
opts: {
19-
publicKey: string;
20-
urlEndpoint: string;
21-
authenticationEndpoint?: string;
22-
transformationPosition?: TransformationPosition;
23-
},
24-
) {
25-
opts = opts || {};
26-
this.options = {
16+
class ImageKit {
17+
options: ImageKitOptions = {
2718
sdkVersion: `javascript-${version}`,
2819
publicKey: "",
2920
urlEndpoint: "",
3021
transformationPosition: transformationUtils.getDefault(),
3122
};
3223

33-
this.options = {
34-
...this.options,
35-
...opts,
36-
};
24+
constructor(opts: Omit<ImageKitOptions, "sdkVersion">) {
25+
this.options = { ...this.options, ...(opts || {}) };
26+
if (!mandatoryParametersAvailable(this.options)) {
27+
throw errorMessages.MANDATORY_INITIALIZATION_MISSING;
28+
}
29+
if (privateKeyPassed(this.options)) {
30+
throw errorMessages.PRIVATE_KEY_CLIENT_SIDE;
31+
}
3732

38-
if (!mandatoryParametersAvailable(this.options)) {
39-
throw errorMessages.MANDATORY_INITIALIZATION_MISSING;
40-
}
41-
if (privateKeyPassed(this.options)) {
42-
throw errorMessages.PRIVATE_KEY_CLIENT_SIDE;
33+
if (!transformationUtils.validParameters(this.options)) {
34+
throw errorMessages.INVALID_TRANSFORMATION_POSITION;
35+
}
4336
}
4437

45-
if (!transformationUtils.validParameters(this.options)) {
46-
throw errorMessages.INVALID_TRANSFORMATION_POSITION;
47-
}
48-
49-
/* URL Builder */
50-
this.url = function (urlOptions: UrlOptions): string {
38+
/**
39+
* You can add multiple origins in the same ImageKit.io account.
40+
* URL endpoints allow you to configure which origins are accessible through your account and set their preference order as well.
41+
*
42+
* @see {@link https://github.com/imagekit-developer/imagekit-nodejs#url-generation}
43+
* @see {@link https://docs.imagekit.io/integration/url-endpoints}
44+
*
45+
* @param urlOptions
46+
*/
47+
url(urlOptions: UrlOptions): string {
5148
return url(urlOptions, this.options);
52-
};
49+
}
5350

54-
/* Upload API */
55-
this.upload = function (
51+
/**
52+
* You can upload files to ImageKit.io media library from your server-side using private API key authentication.
53+
*
54+
* File size limit
55+
* The maximum upload file size is limited to 25MB.
56+
*
57+
* @see {@link https://docs.imagekit.io/api-reference/upload-file-api/server-side-file-upload}
58+
*
59+
* @param uploadOptions
60+
*/
61+
upload(
5662
uploadOptions: UploadOptions,
5763
callback?: (err: Error | null, response: UploadResponse | null) => void,
5864
options?: Partial<ImageKitOptions>,
@@ -62,7 +68,7 @@ const ImageKit = function (
6268
...options,
6369
};
6470
return upload(uploadOptions, mergedOptions, callback);
65-
};
66-
};
71+
}
72+
}
6773

6874
export default ImageKit;

‎src/interfaces/index.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,5 @@ import { TransformationPosition } from "./Transformation";
33
import { UploadOptions } from "./UploadOptions";
44
import { UploadResponse, FileType } from "./UploadResponse";
55
import { UrlOptions } from "./UrlOptions";
6-
export interface IImageKit {
7-
options: ImageKitOptions;
8-
url: (urlOptions: UrlOptions) => string;
9-
upload: (
10-
uploadOptions: UploadOptions,
11-
callback?: (err: Error | null, response: UploadResponse | null) => void,
12-
options?: Partial<ImageKitOptions>,
13-
) => void;
14-
}
156

167
export { ImageKitOptions, TransformationPosition, UploadOptions, UploadResponse, FileType, UrlOptions };

0 commit comments

Comments
 (0)
Please sign in to comment.