@paroicms/public-server-lib 0.33.0 → 0.34.0
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.
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/server-image-cache-engine.helper.d.ts +17 -4
- package/dist/server-image-cache-engine.helper.js +15 -8
- package/dist/server-image-cache-engine.helper.js.map +1 -1
- package/package.json +4 -4
- package/types/backend-plugin-types.d.ts +64 -27
- package/dist/url.helpers.d.ts +0 -40
- package/dist/url.helpers.js +0 -44
- package/dist/url.helpers.js.map +0 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -4,6 +4,5 @@ export * from "./html-helpers/html-helpers.js";
|
|
|
4
4
|
export * from "./obfuscate.helper.js";
|
|
5
5
|
export * from "./server-image-cache-engine.helper.js";
|
|
6
6
|
export * from "./simple-i18n.js";
|
|
7
|
-
export * from "./url.helpers.js";
|
|
8
7
|
export * from "./vite-config.helper.js";
|
|
9
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare function isImageSize(imageSize: string): imageSize is ImageSize;
|
|
3
|
-
export declare function isVariantName(variantName: string): variantName is VariantName;
|
|
1
|
+
import { type ResizeRule, type SizeName } from "@paroicms/public-anywhere-lib";
|
|
4
2
|
export declare function generateImageSlug(fromName?: string): string | undefined;
|
|
5
|
-
export declare function
|
|
3
|
+
export declare function applyPixelRatioToSizeName(renderedSizeName: SizeName, pixelRatio: number): SizeName;
|
|
4
|
+
export declare function applyPixelRatioToResizeRule(renderedResizeRule: ResizeRule, pixelRatio: number): ResizeRule;
|
|
5
|
+
export declare function rawToRenderedSize(rawResizeR: {
|
|
6
|
+
rawWidth: number;
|
|
7
|
+
rawHeight: number;
|
|
8
|
+
}, pixelRatio: number): {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function renderedToRawSize(renderedSize: {
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
}, pixelRatio: number): {
|
|
16
|
+
rawWidth: number;
|
|
17
|
+
rawHeight: number;
|
|
18
|
+
};
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { nbVal } from "@paroi/data-formatters-lib";
|
|
2
2
|
import { generateSlug } from "@paroicms/public-anywhere-lib";
|
|
3
|
-
export function isImageSize(imageSize) {
|
|
4
|
-
return /^[0-9]+x|x[0-9]+|x[0-9]+x|[0-9]+x[0-9]+$/.test(imageSize);
|
|
5
|
-
}
|
|
6
|
-
export function isVariantName(variantName) {
|
|
7
|
-
return /^[0-9]+x[0-9]+$/.test(variantName);
|
|
8
|
-
}
|
|
9
3
|
export function generateImageSlug(fromName) {
|
|
10
4
|
if (!fromName)
|
|
11
5
|
return;
|
|
12
6
|
return generateSlug(fromName).substring(0, 12).replace(/-$/g, "");
|
|
13
7
|
}
|
|
14
|
-
export function
|
|
15
|
-
|
|
8
|
+
export function applyPixelRatioToSizeName(renderedSizeName, pixelRatio) {
|
|
9
|
+
return applyPixelRatioToResizeRule(renderedSizeName, pixelRatio);
|
|
10
|
+
}
|
|
11
|
+
export function applyPixelRatioToResizeRule(renderedResizeRule, pixelRatio) {
|
|
12
|
+
const splitted = renderedResizeRule.split("x");
|
|
16
13
|
if (splitted.length === 3) {
|
|
17
14
|
const value = splitted[1];
|
|
18
15
|
splitted[1] = `${Math.round(nbVal(value) * pixelRatio)}`;
|
|
@@ -27,4 +24,14 @@ export function applyRatioToImageSize(imageSize, pixelRatio) {
|
|
|
27
24
|
}
|
|
28
25
|
return splitted.join("x");
|
|
29
26
|
}
|
|
27
|
+
export function rawToRenderedSize(rawResizeR, pixelRatio) {
|
|
28
|
+
const width = Math.round(rawResizeR.rawWidth / pixelRatio);
|
|
29
|
+
const height = Math.round(rawResizeR.rawHeight / pixelRatio);
|
|
30
|
+
return { width, height };
|
|
31
|
+
}
|
|
32
|
+
export function renderedToRawSize(renderedSize, pixelRatio) {
|
|
33
|
+
const rawWidth = Math.round(renderedSize.width * pixelRatio);
|
|
34
|
+
const rawHeight = Math.round(renderedSize.height * pixelRatio);
|
|
35
|
+
return { rawWidth, rawHeight };
|
|
36
|
+
}
|
|
30
37
|
//# sourceMappingURL=server-image-cache-engine.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-image-cache-engine.helper.js","sourceRoot":"","sources":["../src/server-image-cache-engine.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"server-image-cache-engine.helper.js","sourceRoot":"","sources":["../src/server-image-cache-engine.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAkC,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7F,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,gBAA0B,EAC1B,UAAkB;IAElB,OAAO,2BAA2B,CAAC,gBAAgB,EAAE,UAAU,CAAa,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,kBAA8B,EAC9B,UAAkB;IAElB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,MAAM,KAAK,EAAE;YAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;QAC7E,IAAI,KAAK,KAAK,EAAE;YAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAe,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAAmD,EACnD,UAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;IAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,YAA+C,EAC/C,UAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC/D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paroicms/public-server-lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"description": "Common utilitaries for paroicms plugins (backend side).",
|
|
5
5
|
"author": "Paroi Team",
|
|
6
6
|
"repository": {
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "tsc",
|
|
17
17
|
"test": "vitest",
|
|
18
|
-
"test:
|
|
18
|
+
"test:once": "vitest run",
|
|
19
19
|
"clear": "rimraf dist/*",
|
|
20
20
|
"dev": "tsc --watch --preserveWatchOutput"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@paroi/data-formatters-lib": "~0.4.0",
|
|
24
|
-
"@paroicms/internal-anywhere-lib": "1.
|
|
25
|
-
"@paroicms/public-anywhere-lib": "0.
|
|
24
|
+
"@paroicms/internal-anywhere-lib": "1.29.0",
|
|
25
|
+
"@paroicms/public-anywhere-lib": "0.23.0",
|
|
26
26
|
"@types/express": "~4.17.21"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import type { Obj } from "@paroi/data-formatters-lib";
|
|
2
2
|
import type {
|
|
3
|
-
ImageSize,
|
|
4
3
|
JsonFieldValue,
|
|
4
|
+
MImageVariant,
|
|
5
|
+
MSourceImage,
|
|
6
|
+
MSourceMedia,
|
|
5
7
|
ParsedNodelId,
|
|
6
8
|
ReadFieldValue,
|
|
9
|
+
ResizeRule,
|
|
7
10
|
ScFieldDataType,
|
|
8
11
|
ScSiteSchema,
|
|
9
12
|
SiteIds,
|
|
10
13
|
ThemeConf,
|
|
11
14
|
UpdateLabelingFieldValue,
|
|
15
|
+
WithAttachedData,
|
|
12
16
|
} from "@paroicms/public-anywhere-lib";
|
|
13
17
|
import type Stream from "node:stream";
|
|
14
18
|
|
|
@@ -96,10 +100,13 @@ export interface BackendPluginInitService {
|
|
|
96
100
|
pluginAssetsUrl: string;
|
|
97
101
|
}
|
|
98
102
|
|
|
99
|
-
export type BackendHookHandler = (
|
|
103
|
+
export type BackendHookHandler = (
|
|
104
|
+
service: BackendPluginService,
|
|
105
|
+
params: any,
|
|
106
|
+
) => Promise<unknown> | unknown;
|
|
100
107
|
|
|
101
108
|
export type PluginLiquidFilterHandler = (
|
|
102
|
-
service:
|
|
109
|
+
service: PluginRenderingService,
|
|
103
110
|
value: unknown,
|
|
104
111
|
options: {
|
|
105
112
|
/**
|
|
@@ -110,18 +117,18 @@ export type PluginLiquidFilterHandler = (
|
|
|
110
117
|
},
|
|
111
118
|
) => string | Promise<string>;
|
|
112
119
|
|
|
113
|
-
export type PublicApiHandler = (
|
|
114
|
-
service: BackendPluginRenderService,
|
|
115
|
-
httpContext: PaHttpContext,
|
|
116
|
-
relativePath: string,
|
|
117
|
-
) => Promise<void> | void;
|
|
118
|
-
|
|
119
120
|
export type FieldPreprocessor = (
|
|
120
|
-
service:
|
|
121
|
+
service: PluginRenderingService,
|
|
121
122
|
value: ReadFieldValue,
|
|
122
123
|
options: FieldPreprocessorOptions,
|
|
123
124
|
) => ReadFieldValue | undefined | Promise<ReadFieldValue | undefined>;
|
|
124
125
|
|
|
126
|
+
export type PublicApiHandler = (
|
|
127
|
+
service: BackendPluginService,
|
|
128
|
+
httpContext: PaHttpContext,
|
|
129
|
+
relativePath: string,
|
|
130
|
+
) => Promise<void> | void;
|
|
131
|
+
|
|
125
132
|
export interface BackendPluginService {
|
|
126
133
|
fqdn: string;
|
|
127
134
|
siteUrl: string;
|
|
@@ -130,12 +137,38 @@ export interface BackendPluginService {
|
|
|
130
137
|
logger: AppLogger;
|
|
131
138
|
validateRecaptchaResponse: (gRecaptchaResponse: string | undefined) => Promise<boolean>;
|
|
132
139
|
sendMail: ({ subject, html, replyTo, to }: MailData) => Promise<void>;
|
|
133
|
-
executeHook
|
|
140
|
+
executeHook(hookName: string, params?: any): Promise<unknown[]>;
|
|
134
141
|
registeredSite: RegisteredSite;
|
|
135
142
|
configuration: PluginConfiguration;
|
|
136
143
|
pluginAssetsUrl: string;
|
|
137
144
|
/** This is the connector of the running instance of ParoiCMS. */
|
|
138
145
|
connector: RunningInstanceConnector;
|
|
146
|
+
getSiteFieldValue: (options: {
|
|
147
|
+
fieldName: string;
|
|
148
|
+
language?: string;
|
|
149
|
+
}) => Promise<ReadFieldValue | undefined>;
|
|
150
|
+
getMedia: (
|
|
151
|
+
sel: { mediaId: string } | { handle: string },
|
|
152
|
+
options?: {
|
|
153
|
+
absoluteUrl?: boolean;
|
|
154
|
+
withAttachedData?: WithAttachedData;
|
|
155
|
+
},
|
|
156
|
+
) => Promise<MSourceMedia | undefined>;
|
|
157
|
+
useUnversionedImage: (
|
|
158
|
+
/** An image or a `mediaId` */
|
|
159
|
+
image: MSourceImage | string,
|
|
160
|
+
/** Must be listed in the theme configuration */
|
|
161
|
+
resizeRule: ResizeRule,
|
|
162
|
+
options?: {
|
|
163
|
+
pixelRatio?: number;
|
|
164
|
+
absoluteUrl?: boolean;
|
|
165
|
+
},
|
|
166
|
+
) => Promise<MImageVariant | undefined>;
|
|
167
|
+
openRenderingService: (options: {
|
|
168
|
+
language: string;
|
|
169
|
+
/** This will be used for generating a cache key, so it has to be unique for the rendering. */
|
|
170
|
+
urlLike: string;
|
|
171
|
+
}) => Promise<PluginRenderingService>;
|
|
139
172
|
}
|
|
140
173
|
|
|
141
174
|
export interface NewSiteOptions {
|
|
@@ -145,11 +178,9 @@ export interface NewSiteOptions {
|
|
|
145
178
|
version?: string;
|
|
146
179
|
}
|
|
147
180
|
|
|
148
|
-
export interface
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
language?: string;
|
|
152
|
-
}) => Promise<ReadFieldValue | undefined>;
|
|
181
|
+
export interface PluginRenderingService {
|
|
182
|
+
pluginService: BackendPluginService;
|
|
183
|
+
language: string;
|
|
153
184
|
renderChildPartials(
|
|
154
185
|
ctx: PaHttpContext,
|
|
155
186
|
options: {
|
|
@@ -168,8 +199,20 @@ export interface BackendPluginRenderService extends BackendPluginService {
|
|
|
168
199
|
templateName: string;
|
|
169
200
|
},
|
|
170
201
|
): Promise<void>;
|
|
171
|
-
|
|
202
|
+
|
|
203
|
+
useImage: (
|
|
204
|
+
/** An image or a `mediaId` */
|
|
205
|
+
image: MSourceImage | string,
|
|
206
|
+
resizeRule: ResizeRule,
|
|
207
|
+
options?: {
|
|
208
|
+
pixelRatio?: number;
|
|
209
|
+
absoluteUrl?: boolean;
|
|
210
|
+
},
|
|
211
|
+
) => Promise<MImageVariant | undefined>;
|
|
212
|
+
|
|
172
213
|
getDocument: (documentId: string) => Promise<PublicDocument | undefined>;
|
|
214
|
+
|
|
215
|
+
close(): Promise<void>;
|
|
173
216
|
}
|
|
174
217
|
|
|
175
218
|
export interface LabeledBy {
|
|
@@ -189,13 +232,6 @@ export interface PublicDocument {
|
|
|
189
232
|
publishDate: string;
|
|
190
233
|
}
|
|
191
234
|
|
|
192
|
-
export interface UsedImage {
|
|
193
|
-
url: string;
|
|
194
|
-
width: number;
|
|
195
|
-
height: number;
|
|
196
|
-
mediaType: string;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
235
|
export interface FieldPreprocessorOptions {
|
|
200
236
|
absoluteUrls?: boolean;
|
|
201
237
|
outputType?: "plainText";
|
|
@@ -232,7 +268,6 @@ export interface AppLogger {
|
|
|
232
268
|
|
|
233
269
|
export interface PartialsParamsInput {
|
|
234
270
|
templateName: string;
|
|
235
|
-
documentId: string;
|
|
236
271
|
offset: string;
|
|
237
272
|
limit: string;
|
|
238
273
|
}
|
|
@@ -271,9 +306,11 @@ export interface SubDomainSitePackConfiguration extends SitePackConfigurationBas
|
|
|
271
306
|
parentDomain: string;
|
|
272
307
|
}
|
|
273
308
|
|
|
309
|
+
/* Running instance types */
|
|
310
|
+
|
|
274
311
|
export interface RunningInstanceConnector {
|
|
275
312
|
getSitePackConf(packName: string): SitePackConfiguration;
|
|
276
|
-
loadSiteSchemaAndIds(fqdn: string): Promise<
|
|
313
|
+
loadSiteSchemaAndIds(fqdn: string): Promise<RiSiteSchemaAndIds>;
|
|
277
314
|
createAccount(
|
|
278
315
|
fqdn: string,
|
|
279
316
|
account: RiNewAccount,
|
|
@@ -305,7 +342,7 @@ export interface RunningInstanceConnector {
|
|
|
305
342
|
removeSite: (fqdn: string) => Promise<void>;
|
|
306
343
|
}
|
|
307
344
|
|
|
308
|
-
export interface
|
|
345
|
+
export interface RiSiteSchemaAndIds {
|
|
309
346
|
siteSchema: ScSiteSchema;
|
|
310
347
|
siteIds: SiteIds;
|
|
311
348
|
}
|
package/dist/url.helpers.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { VariantName } from "@paroicms/public-anywhere-lib";
|
|
2
|
-
import type { BackendPluginService } from "../types/backend-plugin-types.d.ts";
|
|
3
|
-
export interface MakeUrlOptions {
|
|
4
|
-
protocol: "http" | "https";
|
|
5
|
-
fqdn: string;
|
|
6
|
-
port?: number;
|
|
7
|
-
path?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare function makeUrl({ path, fqdn, protocol, port }: MakeUrlOptions): string;
|
|
10
|
-
export interface UrlOfMediaFileValues {
|
|
11
|
-
mediaUid: string;
|
|
12
|
-
mediaType: string;
|
|
13
|
-
originalName: string | undefined;
|
|
14
|
-
absoluteUrl?: boolean;
|
|
15
|
-
}
|
|
16
|
-
export declare function makeUrlOfMediaFile(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfMediaFileValues): string;
|
|
17
|
-
export declare function makeUrlOfMediaFile(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfMediaFileValues, options: {
|
|
18
|
-
returnObj: true;
|
|
19
|
-
}): {
|
|
20
|
-
url: string;
|
|
21
|
-
fileName: string;
|
|
22
|
-
};
|
|
23
|
-
export interface UrlOfImageVariantValues {
|
|
24
|
-
mediaUid: string;
|
|
25
|
-
mediaType: string;
|
|
26
|
-
variantName: VariantName;
|
|
27
|
-
resourceVersion: string | undefined;
|
|
28
|
-
slug: string | undefined;
|
|
29
|
-
absoluteUrl?: boolean;
|
|
30
|
-
}
|
|
31
|
-
export declare function makeUrlOfImageVariant(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfImageVariantValues): string;
|
|
32
|
-
export declare function makeUrlOfImageVariant(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfImageVariantValues, options: {
|
|
33
|
-
returnObj: true;
|
|
34
|
-
}): {
|
|
35
|
-
url: string;
|
|
36
|
-
fileName: string;
|
|
37
|
-
};
|
|
38
|
-
export declare function fileExtensionOf(mediaType: string): string;
|
|
39
|
-
export declare function toAbsoluteUrl(service: Pick<BackendPluginService, "siteUrl">, url: string): string;
|
|
40
|
-
export declare function makeFeedUrl(service: Pick<BackendPluginService, "siteSchema" | "siteUrl">, language?: string): string;
|
package/dist/url.helpers.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export function makeUrl({ path, fqdn, protocol, port }) {
|
|
2
|
-
const portPart = port === undefined || port === 80 ? "" : `:${port}`;
|
|
3
|
-
return `${protocol}://${fqdn}${portPart}${path ?? ""}`;
|
|
4
|
-
}
|
|
5
|
-
export function makeUrlOfMediaFile(service, values, options) {
|
|
6
|
-
const { mediaUid, mediaType, originalName, absoluteUrl } = values;
|
|
7
|
-
const fileName = `${originalName ?? "unamed"}${fileExtensionOf(mediaType)}`;
|
|
8
|
-
const relUrl = `/medias/${encodeURIComponent(mediaUid)}/file/${encodeURIComponent(fileName)}`;
|
|
9
|
-
const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl;
|
|
10
|
-
return options?.returnObj ? { url, fileName } : url;
|
|
11
|
-
}
|
|
12
|
-
export function makeUrlOfImageVariant(service, values, options) {
|
|
13
|
-
const { mediaUid, mediaType, variantName, slug, resourceVersion, absoluteUrl } = values;
|
|
14
|
-
const fileName = `${slug ?? "unamed"}-${variantName}${fileExtensionOf(mediaType)}`;
|
|
15
|
-
let relUrl;
|
|
16
|
-
if (resourceVersion) {
|
|
17
|
-
relUrl = `/medias/${encodeURIComponent(mediaUid)}/image/${encodeURIComponent(resourceVersion)}/${encodeURIComponent(fileName)}`;
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
relUrl = `/medias/${encodeURIComponent(mediaUid)}/image/${encodeURIComponent(fileName)}`;
|
|
21
|
-
}
|
|
22
|
-
const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl;
|
|
23
|
-
return options?.returnObj ? { url, fileName } : url;
|
|
24
|
-
}
|
|
25
|
-
export function fileExtensionOf(mediaType) {
|
|
26
|
-
if (mediaType === "image/svg+xml")
|
|
27
|
-
return ".svg";
|
|
28
|
-
const regexMatchArray = mediaType.match(/\w+\/([-+.\w]+)/);
|
|
29
|
-
if (!regexMatchArray) {
|
|
30
|
-
throw new Error("media extension is incorrect.");
|
|
31
|
-
}
|
|
32
|
-
return `.${regexMatchArray[1]}`;
|
|
33
|
-
}
|
|
34
|
-
export function toAbsoluteUrl(service, url) {
|
|
35
|
-
return url.startsWith("/") ? `${service.siteUrl}${url}` : url;
|
|
36
|
-
}
|
|
37
|
-
export function makeFeedUrl(service, language) {
|
|
38
|
-
const isMultilingual = service.siteSchema.isMultilingual;
|
|
39
|
-
if (isMultilingual && !language) {
|
|
40
|
-
throw new Error("language is required for multilingual site");
|
|
41
|
-
}
|
|
42
|
-
return toAbsoluteUrl(service, isMultilingual ? `/${language}/feed` : "/feed");
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=url.helpers.js.map
|
package/dist/url.helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url.helpers.js","sourceRoot":"","sources":["../src/url.helpers.ts"],"names":[],"mappings":"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"}
|