nextemos 3.6.5 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ interface IThumbImage {
2
+ width?: number;
3
+ height?: number;
4
+ path: string;
5
+ quality?: number;
6
+ format?: string;
7
+ options?: {
8
+ service?: string;
9
+ backColor?: string;
10
+ quality?: number;
11
+ customOptions?: string;
12
+ };
13
+ }
14
+ declare const cdn: {
15
+ url: string;
16
+ thumbImage: (props: IThumbImage) => string;
17
+ getFile: (path?: string) => string;
18
+ };
19
+ export default cdn;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Ortam değişkenlerinden CDN URL'si alınıyor, tanımlı değilse varsayılan olarak 'https://images.proj-e.com' kullanılıyor
4
+ const CDN_URL = process.env.CDN_URL || 'https://images.proj-e.com';
5
+ // Ortam değişkenlerinden CDN sağlayıcısı alınıyor
6
+ const CDN_PROVIDER = process.env.CDN_PROVIDER;
7
+ // CDN işlemleri için kullanılan nesne
8
+ const cdn = {
9
+ // CDN URL'sini döndüren özellik
10
+ url: CDN_URL,
11
+ // Thumbnail URL'si oluşturan fonksiyon
12
+ thumbImage: function (props) {
13
+ switch (CDN_PROVIDER) { // CDN sağlayıcısına göre işlemci fonksiyonunu seçiyor
14
+ case 'huawei':
15
+ return huaweiImageProcessor(props); // Huawei işlemcisi kullanılıyor
16
+ case 'medianova':
17
+ return medianovaImageProcessor(props); // Medianova işlemcisi kullanılıyor
18
+ default:
19
+ return thumborImageProcessor(props); // Varsayılan olarak Thumbor işlemcisi kullanılıyor
20
+ }
21
+ },
22
+ // CDN'deki dosyayı linkini getiren fonksiyon
23
+ getFile: function name(path = '') {
24
+ return `${this.url}/${path}`;
25
+ }
26
+ };
27
+ // Değerin geçerli olup olmadığını kontrol eden ve string olarak döndüren yardımcı fonksiyon
28
+ const getValueOrDefault = (value) => (!value || value <= 0) ? "-" : value.toString(); // Geçerli değilse "-" döner, aksi halde değeri string olarak döner
29
+ // Huawei CDN sağlayıcısı için thumbnail URL'si oluşturan fonksiyon
30
+ const huaweiImageProcessor = (props) => {
31
+ var _a, _b, _c, _d, _e, _f;
32
+ // Varsayılan servis türü "mnresize" olarak ayarlanıyor
33
+ let service = "mnresize";
34
+ // Varsayılan genişlik ve yükseklik 0 olarak atanıyor
35
+ const width = (_a = props.width) !== null && _a !== void 0 ? _a : 0;
36
+ const height = (_b = props.height) !== null && _b !== void 0 ? _b : 0;
37
+ // Eğer props içinde servis belirtilmişse, o servis kullanılıyor
38
+ if ((_c = props.options) === null || _c === void 0 ? void 0 : _c.service)
39
+ service = (_d = props.options) === null || _d === void 0 ? void 0 : _d.service;
40
+ // Thumbnail URL'si oluşturmak için bir dizi başlatılıyor
41
+ const thumbUrl = new Array();
42
+ thumbUrl.push(CDN_URL); // CDN URL'si ekleniyor
43
+ thumbUrl.push(service); // Seçilen servis türü ekleniyor
44
+ thumbUrl.push(getValueOrDefault(width)); // Genişlik ekleniyor
45
+ thumbUrl.push(getValueOrDefault(height)); // Yükseklik ekleniyor
46
+ // Eğer arka plan rengi belirtilmişse, o da ekleniyor
47
+ if ((_e = props.options) === null || _e === void 0 ? void 0 : _e.backColor)
48
+ thumbUrl.push((_f = props.options) === null || _f === void 0 ? void 0 : _f.backColor);
49
+ // Görüntü yolu ekleniyor
50
+ thumbUrl.push(props.path);
51
+ // Sonuç olarak oluşturulan URL döndürülüyor
52
+ return thumbUrl.join('/');
53
+ };
54
+ // Medianova CDN sağlayıcısı için thumbnail URL'si oluşturan fonksiyon
55
+ const medianovaImageProcessor = (props) => {
56
+ // Şu an için Huawei işlemcisi ile aynı işlevi görüyor
57
+ return huaweiImageProcessor(props);
58
+ };
59
+ // Thumbor CDN sağlayıcısı için thumbnail URL'si oluşturan fonksiyon
60
+ const thumborImageProcessor = (props) => {
61
+ var _a, _b, _c, _d, _e, _f;
62
+ // Varsayılan hash değeri "unsafe" olarak ayarlanıyor
63
+ let hash = "unsafe";
64
+ // Varsayılan genişlik ve yükseklik 0 olarak atanıyor
65
+ const width = (_a = props.width) !== null && _a !== void 0 ? _a : 0;
66
+ const height = (_b = props.height) !== null && _b !== void 0 ? _b : 0;
67
+ // Thumbnail URL'si oluşturmak için bir dizi başlatılıyor
68
+ const thumbUrl = new Array();
69
+ thumbUrl.push(CDN_URL); // CDN URL'si ekleniyor
70
+ thumbUrl.push(hash); // Hash ekleniyor
71
+ // Genişlik veya yükseklik tanımlıysa, boyutlar ekleniyor
72
+ if (width > 0 || height > 0)
73
+ thumbUrl.push(`${props.width}x${props.height}`);
74
+ // Filtreler için bir dizi başlatılıyor
75
+ const filters = new Array();
76
+ // Kalite tanımlıysa ve 0'dan büyükse, kalite filtresi ekleniyor
77
+ if (((_c = props.options) === null || _c === void 0 ? void 0 : _c.quality) && ((_d = props.options) === null || _d === void 0 ? void 0 : _d.quality) > 0)
78
+ filters.push(`:quality(${props.options.quality})`);
79
+ // Arka plan rengi tanımlıysa, arka plan rengi filtresi ekleniyor
80
+ if ((_e = props.options) === null || _e === void 0 ? void 0 : _e.backColor)
81
+ filters.push(`:background_color(${props.options.backColor})`);
82
+ // Özelleştirilmiş diğer seçenekler tanımlıysa, onlar da ekleniyor
83
+ if ((_f = props.options) === null || _f === void 0 ? void 0 : _f.customOptions)
84
+ filters.push(`:(${props.options.customOptions})`);
85
+ // Filtreler birleştirilerek URL'ye ekleniyor
86
+ thumbUrl.push(filters.join(''));
87
+ // Ortam değişkeninden Thumbor kaynağı alınıyor, eğer tanımlıysa URL'ye ekleniyor
88
+ const source = process.env.THUMBOR_SOURCE || '';
89
+ if (source)
90
+ thumbUrl.push(source);
91
+ // Görüntü yolu ekleniyor
92
+ thumbUrl.push(props.path);
93
+ // Sonuç olarak oluşturulan URL döndürülüyor
94
+ return thumbUrl.join('/');
95
+ };
96
+ exports.default = cdn;
@@ -1,3 +1,4 @@
1
1
  export { default as fetchRequest } from './fetchRequest';
2
2
  export { default as toIntArray } from './toIntArray';
3
3
  export { default as toQueryString } from './toQueryString';
4
+ export { default as cdn } from './cdn';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.toQueryString = exports.toIntArray = exports.fetchRequest = void 0;
6
+ exports.cdn = exports.toQueryString = exports.toIntArray = exports.fetchRequest = void 0;
7
7
  /// helpers
8
8
  var fetchRequest_1 = require("./fetchRequest");
9
9
  Object.defineProperty(exports, "fetchRequest", { enumerable: true, get: function () { return __importDefault(fetchRequest_1).default; } });
@@ -11,3 +11,5 @@ var toIntArray_1 = require("./toIntArray");
11
11
  Object.defineProperty(exports, "toIntArray", { enumerable: true, get: function () { return __importDefault(toIntArray_1).default; } });
12
12
  var toQueryString_1 = require("./toQueryString");
13
13
  Object.defineProperty(exports, "toQueryString", { enumerable: true, get: function () { return __importDefault(toQueryString_1).default; } });
14
+ var cdn_1 = require("./cdn");
15
+ Object.defineProperty(exports, "cdn", { enumerable: true, get: function () { return __importDefault(cdn_1).default; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nextemos",
3
- "version": "3.6.5",
3
+ "version": "3.7.1",
4
4
  "description": "For helpers and hooks used in NextJS projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",