@prezly/theme-kit-core 7.0.0 → 8.0.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/build/boilerplate.cjs +17 -0
- package/build/boilerplate.d.ts +8 -0
- package/build/boilerplate.mjs +9 -0
- package/build/constants.cjs +11 -0
- package/build/{utils/constants.d.ts → constants.d.ts} +2 -1
- package/build/constants.mjs +5 -0
- package/build/content-delivery/ContentDelivery.cjs +348 -0
- package/build/content-delivery/ContentDelivery.d.ts +8 -4
- package/build/content-delivery/ContentDelivery.mjs +342 -0
- package/build/content-delivery/cache/index.cjs +35 -0
- package/build/content-delivery/cache/index.d.ts +3 -0
- package/build/content-delivery/cache/index.mjs +3 -0
- package/build/content-delivery/cache/memory.cjs +64 -0
- package/build/content-delivery/cache/memory.d.ts +2 -0
- package/build/content-delivery/cache/memory.mjs +58 -0
- package/build/content-delivery/cache/stacked.cjs +32 -0
- package/build/content-delivery/cache/stacked.d.ts +2 -0
- package/build/content-delivery/cache/stacked.mjs +26 -0
- package/build/content-delivery/cache/type.cjs +1 -0
- package/build/content-delivery/cache/type.d.ts +8 -0
- package/build/content-delivery/cache/type.mjs +1 -0
- package/build/content-delivery/index.cjs +27 -0
- package/build/content-delivery/index.d.ts +2 -1
- package/build/content-delivery/index.mjs +2 -0
- package/build/environment.cjs +42 -0
- package/build/environment.d.ts +2 -0
- package/build/environment.mjs +36 -0
- package/build/galleries.cjs +38 -0
- package/build/galleries.d.ts +11 -0
- package/build/galleries.mjs +30 -0
- package/build/http/HttpClient.cjs +66 -0
- package/build/http/HttpClient.d.ts +20 -0
- package/build/http/HttpClient.mjs +59 -0
- package/build/http/index.cjs +10 -0
- package/build/http/index.d.ts +1 -0
- package/build/http/index.mjs +2 -0
- package/build/index.cjs +88 -0
- package/build/index.d.ts +15 -4
- package/build/index.mjs +26 -0
- package/build/intl/getLanguageDisplayName.cjs +37 -0
- package/build/intl/getLanguageDisplayName.d.ts +20 -0
- package/build/intl/getLanguageDisplayName.mjs +32 -0
- package/build/intl/getLanguageDisplayName.test.cjs +46 -0
- package/build/intl/getLanguageDisplayName.test.mjs +44 -0
- package/build/intl/index.cjs +12 -0
- package/build/intl/index.d.ts +1 -5
- package/build/intl/index.mjs +1 -0
- package/build/metadata/getAlternateLanguageLinks.cjs +76 -0
- package/build/{seo → metadata}/getAlternateLanguageLinks.d.ts +2 -2
- package/build/metadata/getAlternateLanguageLinks.mjs +72 -0
- package/build/metadata/getAlternateLanguageLinks.test.cjs +198 -0
- package/build/metadata/getAlternateLanguageLinks.test.mjs +196 -0
- package/build/metadata/index.cjs +12 -0
- package/build/metadata/index.d.ts +2 -0
- package/build/metadata/index.mjs +1 -0
- package/build/metadata/types.cjs +1 -0
- package/build/metadata/types.d.ts +6 -0
- package/build/metadata/types.mjs +1 -0
- package/build/newsrooms.cjs +36 -0
- package/build/newsrooms.d.ts +5 -0
- package/build/newsrooms.mjs +28 -0
- package/build/privacy-portal.cjs +28 -0
- package/build/privacy-portal.d.ts +9 -0
- package/build/privacy-portal.mjs +21 -0
- package/build/resolvable.cjs +38 -0
- package/build/resolvable.d.ts +71 -0
- package/build/resolvable.mjs +32 -0
- package/build/routing/Route.cjs +46 -0
- package/build/routing/Route.d.ts +37 -0
- package/build/routing/Route.mjs +40 -0
- package/build/routing/Router.cjs +51 -0
- package/build/routing/Router.d.ts +23 -0
- package/build/routing/Router.mjs +45 -0
- package/build/routing/Routing.cjs +24 -0
- package/build/routing/Routing.d.ts +1 -0
- package/build/routing/Routing.mjs +2 -0
- package/build/routing/UrlGenerator.cjs +13 -0
- package/build/routing/UrlGenerator.d.ts +39 -0
- package/build/routing/UrlGenerator.mjs +7 -0
- package/build/routing/index.cjs +24 -0
- package/build/routing/index.d.ts +4 -0
- package/build/routing/index.mjs +4 -0
- package/build/routing/types.cjs +1 -0
- package/build/routing/types.d.ts +14 -0
- package/build/routing/types.mjs +1 -0
- package/build/routing/utils/generateUrlFromPattern.cjs +52 -0
- package/build/routing/utils/generateUrlFromPattern.d.ts +12 -0
- package/build/routing/utils/generateUrlFromPattern.mjs +47 -0
- package/build/routing/utils/generateUrlFromPattern.test.cjs +44 -0
- package/build/routing/utils/generateUrlFromPattern.test.mjs +42 -0
- package/build/routing/utils/getShortestLocaleSlug.cjs +60 -0
- package/build/routing/utils/getShortestLocaleSlug.d.ts +11 -0
- package/build/routing/utils/getShortestLocaleSlug.mjs +53 -0
- package/build/routing/utils/getShortestLocaleSlug.test.cjs +37 -0
- package/build/routing/utils/getShortestLocaleSlug.test.mjs +35 -0
- package/build/routing/utils/index.cjs +40 -0
- package/build/routing/utils/index.d.ts +5 -0
- package/build/routing/utils/index.mjs +5 -0
- package/build/routing/utils/isNumberCode.cjs +12 -0
- package/build/routing/utils/isNumberCode.d.ts +4 -0
- package/build/routing/utils/isNumberCode.mjs +6 -0
- package/build/routing/utils/matchLocaleSlug.cjs +41 -0
- package/build/routing/utils/matchLocaleSlug.d.ts +15 -0
- package/build/routing/utils/matchLocaleSlug.mjs +34 -0
- package/build/routing/utils/matchLocaleSlug.test.cjs +43 -0
- package/build/routing/utils/matchLocaleSlug.test.mjs +40 -0
- package/build/routing/utils/normalizeUrl.cjs +9 -0
- package/build/routing/utils/normalizeUrl.d.ts +1 -0
- package/build/routing/utils/normalizeUrl.mjs +3 -0
- package/build/search.cjs +1 -0
- package/build/{types.d.ts → search.d.ts} +3 -3
- package/build/search.mjs +1 -0
- package/build/sitemap/build.cjs +33 -0
- package/build/sitemap/build.d.ts +6 -0
- package/build/sitemap/build.mjs +27 -0
- package/build/sitemap/generate.cjs +192 -0
- package/build/sitemap/generate.d.ts +37 -0
- package/build/sitemap/generate.mjs +183 -0
- package/build/sitemap/index.cjs +38 -0
- package/build/sitemap/index.d.ts +4 -0
- package/build/sitemap/index.mjs +3 -0
- package/build/sitemap/stringify.cjs +24 -0
- package/build/sitemap/stringify.d.ts +2 -0
- package/build/sitemap/stringify.mjs +18 -0
- package/build/sitemap/types.cjs +1 -0
- package/build/sitemap/types.d.ts +67 -0
- package/build/sitemap/types.mjs +1 -0
- package/build/uploads.cjs +14 -0
- package/build/{utils/getAssetsUrl.d.ts → uploads.d.ts} +1 -1
- package/build/uploads.mjs +8 -0
- package/build/uploads.test.cjs +10 -0
- package/build/uploads.test.mjs +8 -0
- package/package.json +23 -26
- package/build/content-delivery/ContentDelivery.js +0 -238
- package/build/content-delivery/ContentDelivery.js.map +0 -1
- package/build/content-delivery/index.js +0 -28
- package/build/content-delivery/index.js.map +0 -1
- package/build/data-fetching/api/index.d.ts +0 -1
- package/build/data-fetching/api/index.js +0 -6
- package/build/data-fetching/api/index.js.map +0 -1
- package/build/data-fetching/api/initContentDeliveryClient.d.ts +0 -4
- package/build/data-fetching/api/initContentDeliveryClient.js +0 -25
- package/build/data-fetching/api/initContentDeliveryClient.js.map +0 -1
- package/build/data-fetching/index.d.ts +0 -3
- package/build/data-fetching/index.js +0 -20
- package/build/data-fetching/index.js.map +0 -1
- package/build/data-fetching/lib/getAlgoliaSettings.d.ts +0 -4
- package/build/data-fetching/lib/getAlgoliaSettings.js +0 -21
- package/build/data-fetching/lib/getAlgoliaSettings.js.map +0 -1
- package/build/data-fetching/lib/getEnvVariables.d.ts +0 -4
- package/build/data-fetching/lib/getEnvVariables.js +0 -43
- package/build/data-fetching/lib/getEnvVariables.js.map +0 -1
- package/build/data-fetching/lib/index.d.ts +0 -3
- package/build/data-fetching/lib/index.js +0 -10
- package/build/data-fetching/lib/index.js.map +0 -1
- package/build/data-fetching/lib/isUuid.d.ts +0 -1
- package/build/data-fetching/lib/isUuid.js +0 -9
- package/build/data-fetching/lib/isUuid.js.map +0 -1
- package/build/data-fetching/types.d.ts +0 -13
- package/build/data-fetching/types.js +0 -3
- package/build/data-fetching/types.js.map +0 -1
- package/build/index.js +0 -21
- package/build/index.js.map +0 -1
- package/build/intl/getFallbackLocale.d.ts +0 -10
- package/build/intl/getFallbackLocale.js +0 -24
- package/build/intl/getFallbackLocale.js.map +0 -1
- package/build/intl/index.js +0 -27
- package/build/intl/index.js.map +0 -1
- package/build/intl/languages.d.ts +0 -57
- package/build/intl/languages.js +0 -191
- package/build/intl/languages.js.map +0 -1
- package/build/intl/locale.d.ts +0 -11
- package/build/intl/locale.js +0 -41
- package/build/intl/locale.js.map +0 -1
- package/build/intl/localeConfig.d.ts +0 -2
- package/build/intl/localeConfig.js +0 -22
- package/build/intl/localeConfig.js.map +0 -1
- package/build/intl/localeList.d.ts +0 -2
- package/build/intl/localeList.js +0 -114
- package/build/intl/localeList.js.map +0 -1
- package/build/intl/localeObject.d.ts +0 -51
- package/build/intl/localeObject.js +0 -98
- package/build/intl/localeObject.js.map +0 -1
- package/build/seo/getAlternateLanguageLinks.js +0 -85
- package/build/seo/getAlternateLanguageLinks.js.map +0 -1
- package/build/seo/index.d.ts +0 -2
- package/build/seo/index.js +0 -19
- package/build/seo/index.js.map +0 -1
- package/build/seo/types.d.ts +0 -4
- package/build/seo/types.js +0 -3
- package/build/seo/types.js.map +0 -1
- package/build/seo/utils/bindLanguagesWithLocales.d.ts +0 -11
- package/build/seo/utils/bindLanguagesWithLocales.js +0 -23
- package/build/seo/utils/bindLanguagesWithLocales.js.map +0 -1
- package/build/seo/utils/createAlternateLanguageLink.d.ts +0 -5
- package/build/seo/utils/createAlternateLanguageLink.js +0 -15
- package/build/seo/utils/createAlternateLanguageLink.js.map +0 -1
- package/build/seo/utils/index.d.ts +0 -2
- package/build/seo/utils/index.js +0 -8
- package/build/seo/utils/index.js.map +0 -1
- package/build/server.d.ts +0 -2
- package/build/server.js +0 -21
- package/build/server.js.map +0 -1
- package/build/types.js +0 -3
- package/build/types.js.map +0 -1
- package/build/utils/assertServerEnv.d.ts +0 -1
- package/build/utils/assertServerEnv.js +0 -10
- package/build/utils/assertServerEnv.js.map +0 -1
- package/build/utils/boilerplate.d.ts +0 -8
- package/build/utils/boilerplate.js +0 -27
- package/build/utils/boilerplate.js.map +0 -1
- package/build/utils/constants.js +0 -8
- package/build/utils/constants.js.map +0 -1
- package/build/utils/getAssetsUrl.js +0 -13
- package/build/utils/getAssetsUrl.js.map +0 -1
- package/build/utils/getDataRequestLink.d.ts +0 -3
- package/build/utils/getDataRequestLink.js +0 -12
- package/build/utils/getDataRequestLink.js.map +0 -1
- package/build/utils/getGalleryThumbnail.d.ts +0 -2
- package/build/utils/getGalleryThumbnail.js +0 -15
- package/build/utils/getGalleryThumbnail.js.map +0 -1
- package/build/utils/getLocalizedCategoryData.d.ts +0 -12
- package/build/utils/getLocalizedCategoryData.js +0 -34
- package/build/utils/getLocalizedCategoryData.js.map +0 -1
- package/build/utils/getNewsroomLogoUrl.d.ts +0 -5
- package/build/utils/getNewsroomLogoUrl.js +0 -30
- package/build/utils/getNewsroomLogoUrl.js.map +0 -1
- package/build/utils/getPrivacyPortalUrl.d.ts +0 -8
- package/build/utils/getPrivacyPortalUrl.js +0 -13
- package/build/utils/getPrivacyPortalUrl.js.map +0 -1
- package/build/utils/getStoryPublicationDate.d.ts +0 -3
- package/build/utils/getStoryPublicationDate.js +0 -14
- package/build/utils/getStoryPublicationDate.js.map +0 -1
- package/build/utils/getUploadcareGroupUrl.d.ts +0 -8
- package/build/utils/getUploadcareGroupUrl.js +0 -17
- package/build/utils/getUploadcareGroupUrl.js.map +0 -1
- package/build/utils/index.d.ts +0 -14
- package/build/utils/index.js +0 -31
- package/build/utils/index.js.map +0 -1
- package/build/utils/isEmbargoStory.d.ts +0 -6
- package/build/utils/isEmbargoStory.js +0 -9
- package/build/utils/isEmbargoStory.js.map +0 -1
- package/build/utils/isGalleryEmpty.d.ts +0 -2
- package/build/utils/isGalleryEmpty.js +0 -8
- package/build/utils/isGalleryEmpty.js.map +0 -1
- package/build/utils/sdkHelpers.d.ts +0 -32
- package/build/utils/sdkHelpers.js +0 -42
- package/build/utils/sdkHelpers.js.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateUrl = generateUrl;
|
|
7
|
+
exports.getDataRequestUrl = getDataRequestUrl;
|
|
8
|
+
var _themeKitIntl = require("@prezly/theme-kit-intl");
|
|
9
|
+
var _constants = require("./constants.cjs");
|
|
10
|
+
function generateUrl(newsroom, locale, options) {
|
|
11
|
+
var {
|
|
12
|
+
email,
|
|
13
|
+
action = 'subscribe'
|
|
14
|
+
} = options || {};
|
|
15
|
+
var {
|
|
16
|
+
slug
|
|
17
|
+
} = _themeKitIntl.Locale.from(locale);
|
|
18
|
+
var url = new URL("/".concat(slug, "/newsroom/").concat(newsroom.uuid, "/").concat(action), _constants.PRIVACY_PORTAL_URL);
|
|
19
|
+
if (email) {
|
|
20
|
+
url.searchParams.append('email', email);
|
|
21
|
+
}
|
|
22
|
+
return url.toString();
|
|
23
|
+
}
|
|
24
|
+
function getDataRequestUrl(newsroom, locale) {
|
|
25
|
+
return newsroom.custom_data_request_link || generateUrl(newsroom, locale, {
|
|
26
|
+
action: 'data-request'
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Newsroom } from '@prezly/sdk';
|
|
2
|
+
import { Locale } from '@prezly/theme-kit-intl';
|
|
3
|
+
type PrivacyPortalUrlOptions = {
|
|
4
|
+
email?: string;
|
|
5
|
+
action?: 'data-request' | 'subscribe' | 'unsubscribe';
|
|
6
|
+
};
|
|
7
|
+
export declare function generateUrl(newsroom: Pick<Newsroom, 'uuid'>, locale: Locale | Locale.AnyCode, options?: PrivacyPortalUrlOptions): string;
|
|
8
|
+
export declare function getDataRequestUrl(newsroom: Pick<Newsroom, 'custom_data_request_link' | 'uuid'>, locale: Locale.Code): string;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Locale } from '@prezly/theme-kit-intl';
|
|
2
|
+
import { PRIVACY_PORTAL_URL } from "./constants.mjs";
|
|
3
|
+
export function generateUrl(newsroom, locale, options) {
|
|
4
|
+
var {
|
|
5
|
+
email,
|
|
6
|
+
action = 'subscribe'
|
|
7
|
+
} = options || {};
|
|
8
|
+
var {
|
|
9
|
+
slug
|
|
10
|
+
} = Locale.from(locale);
|
|
11
|
+
var url = new URL("/".concat(slug, "/newsroom/").concat(newsroom.uuid, "/").concat(action), PRIVACY_PORTAL_URL);
|
|
12
|
+
if (email) {
|
|
13
|
+
url.searchParams.append('email', email);
|
|
14
|
+
}
|
|
15
|
+
return url.toString();
|
|
16
|
+
}
|
|
17
|
+
export function getDataRequestUrl(newsroom, locale) {
|
|
18
|
+
return newsroom.custom_data_request_link || generateUrl(newsroom, locale, {
|
|
19
|
+
action: 'data-request'
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Resolvable = exports.AsyncResolvable = void 0;
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-use-before-define,@typescript-eslint/no-redeclare */
|
|
8
|
+
var Resolvable;
|
|
9
|
+
(function (_Resolvable) {
|
|
10
|
+
function resolve(value) {
|
|
11
|
+
if (typeof value === 'function') {
|
|
12
|
+
return value();
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
_Resolvable.resolve = resolve;
|
|
17
|
+
})(Resolvable || (exports.Resolvable = Resolvable = {}));
|
|
18
|
+
var AsyncResolvable;
|
|
19
|
+
(function (_AsyncResolvable) {
|
|
20
|
+
function resolve() {
|
|
21
|
+
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
22
|
+
values[_key] = arguments[_key];
|
|
23
|
+
}
|
|
24
|
+
if (values.length === 1) {
|
|
25
|
+
var [_value] = values;
|
|
26
|
+
return resolveAsyncOne(_value);
|
|
27
|
+
}
|
|
28
|
+
var resolutions = values.map(value => resolveAsyncOne(value));
|
|
29
|
+
return Promise.all(resolutions);
|
|
30
|
+
}
|
|
31
|
+
_AsyncResolvable.resolve = resolve;
|
|
32
|
+
})(AsyncResolvable || (exports.AsyncResolvable = AsyncResolvable = {}));
|
|
33
|
+
function resolveAsyncOne(value) {
|
|
34
|
+
if (typeof value === 'function') {
|
|
35
|
+
return Promise.resolve(value());
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export type Resolvable<T> = T | DynamicallyResolvable<T>;
|
|
2
|
+
export type AsyncResolvable<T> = T | DynamicallyResolvable<T> | AsyncDynamicallyResolvable<T>;
|
|
3
|
+
type Awaitable<T> = T | Promise<T>;
|
|
4
|
+
type DynamicallyResolvable<T> = () => T;
|
|
5
|
+
type AsyncDynamicallyResolvable<T> = () => Promise<T>;
|
|
6
|
+
export declare namespace Resolvable {
|
|
7
|
+
type Properties<T> = {
|
|
8
|
+
[key in keyof T]: Resolvable<T[key]>;
|
|
9
|
+
};
|
|
10
|
+
function resolve<T>(value: T | DynamicallyResolvable<T>): T;
|
|
11
|
+
}
|
|
12
|
+
export declare namespace AsyncResolvable {
|
|
13
|
+
type Properties<T> = {
|
|
14
|
+
[key in keyof T]: AsyncResolvable<T[key]>;
|
|
15
|
+
};
|
|
16
|
+
function resolve<T>(value: T | DynamicallyResolvable<T> | AsyncDynamicallyResolvable<T>): Awaitable<T>;
|
|
17
|
+
function resolve<T1, T2>(...values: [AsyncResolvable<T1>, AsyncResolvable<T2>]): Promise<[T1, T2]>;
|
|
18
|
+
function resolve<T1, T2, T3>(...values: [AsyncResolvable<T1>, AsyncResolvable<T2>, AsyncResolvable<T3>]): Promise<[T1, T2, T3]>;
|
|
19
|
+
function resolve<T1, T2, T3, T4>(...values: [
|
|
20
|
+
AsyncResolvable<T1>,
|
|
21
|
+
AsyncResolvable<T2>,
|
|
22
|
+
AsyncResolvable<T3>,
|
|
23
|
+
AsyncResolvable<T4>
|
|
24
|
+
]): Promise<[T1, T2, T3, T4]>;
|
|
25
|
+
function resolve<T1, T2, T3, T4, T5>(...values: [
|
|
26
|
+
AsyncResolvable<T1>,
|
|
27
|
+
AsyncResolvable<T2>,
|
|
28
|
+
AsyncResolvable<T3>,
|
|
29
|
+
AsyncResolvable<T4>,
|
|
30
|
+
AsyncResolvable<T5>
|
|
31
|
+
]): Promise<[T1, T2, T3, T4, T5]>;
|
|
32
|
+
function resolve<T1, T2, T3, T4, T5, T6>(...values: [
|
|
33
|
+
AsyncResolvable<T1>,
|
|
34
|
+
AsyncResolvable<T2>,
|
|
35
|
+
AsyncResolvable<T3>,
|
|
36
|
+
AsyncResolvable<T4>,
|
|
37
|
+
AsyncResolvable<T5>,
|
|
38
|
+
AsyncResolvable<T6>
|
|
39
|
+
]): Promise<[T1, T2, T3, T4, T5, T6]>;
|
|
40
|
+
function resolve<T1, T2, T3, T4, T5, T6, T7>(...values: [
|
|
41
|
+
AsyncResolvable<T1>,
|
|
42
|
+
AsyncResolvable<T2>,
|
|
43
|
+
AsyncResolvable<T3>,
|
|
44
|
+
AsyncResolvable<T4>,
|
|
45
|
+
AsyncResolvable<T5>,
|
|
46
|
+
AsyncResolvable<T6>,
|
|
47
|
+
AsyncResolvable<T7>
|
|
48
|
+
]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
|
|
49
|
+
function resolve<T1, T2, T3, T4, T5, T6, T7, T8>(...values: [
|
|
50
|
+
AsyncResolvable<T1>,
|
|
51
|
+
AsyncResolvable<T2>,
|
|
52
|
+
AsyncResolvable<T3>,
|
|
53
|
+
AsyncResolvable<T4>,
|
|
54
|
+
AsyncResolvable<T5>,
|
|
55
|
+
AsyncResolvable<T6>,
|
|
56
|
+
AsyncResolvable<T7>,
|
|
57
|
+
AsyncResolvable<T8>
|
|
58
|
+
]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
|
|
59
|
+
function resolve<T1, T2, T3, T4, T5, T6, T7, T8, T9>(...values: [
|
|
60
|
+
AsyncResolvable<T1>,
|
|
61
|
+
AsyncResolvable<T2>,
|
|
62
|
+
AsyncResolvable<T3>,
|
|
63
|
+
AsyncResolvable<T4>,
|
|
64
|
+
AsyncResolvable<T5>,
|
|
65
|
+
AsyncResolvable<T6>,
|
|
66
|
+
AsyncResolvable<T7>,
|
|
67
|
+
AsyncResolvable<T8>,
|
|
68
|
+
AsyncResolvable<T9>
|
|
69
|
+
]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
|
|
70
|
+
}
|
|
71
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-use-before-define,@typescript-eslint/no-redeclare */
|
|
2
|
+
export var Resolvable;
|
|
3
|
+
(function (_Resolvable) {
|
|
4
|
+
function resolve(value) {
|
|
5
|
+
if (typeof value === 'function') {
|
|
6
|
+
return value();
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
_Resolvable.resolve = resolve;
|
|
11
|
+
})(Resolvable || (Resolvable = {}));
|
|
12
|
+
export var AsyncResolvable;
|
|
13
|
+
(function (_AsyncResolvable) {
|
|
14
|
+
function resolve() {
|
|
15
|
+
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
16
|
+
values[_key] = arguments[_key];
|
|
17
|
+
}
|
|
18
|
+
if (values.length === 1) {
|
|
19
|
+
var [_value] = values;
|
|
20
|
+
return resolveAsyncOne(_value);
|
|
21
|
+
}
|
|
22
|
+
var resolutions = values.map(value => resolveAsyncOne(value));
|
|
23
|
+
return Promise.all(resolutions);
|
|
24
|
+
}
|
|
25
|
+
_AsyncResolvable.resolve = resolve;
|
|
26
|
+
})(AsyncResolvable || (AsyncResolvable = {}));
|
|
27
|
+
function resolveAsyncOne(value) {
|
|
28
|
+
if (typeof value === 'function') {
|
|
29
|
+
return Promise.resolve(value());
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Route = void 0;
|
|
7
|
+
var _urlPattern = _interopRequireDefault(require("url-pattern"));
|
|
8
|
+
var _index = require("./utils/index.cjs");
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
/* eslint-disable @typescript-eslint/no-redeclare */
|
|
11
|
+
var Route;
|
|
12
|
+
(function (_Route) {
|
|
13
|
+
function create(pattern, rewrite) {
|
|
14
|
+
var {
|
|
15
|
+
check,
|
|
16
|
+
generate,
|
|
17
|
+
resolveLocale
|
|
18
|
+
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
19
|
+
var urlPattern = new _urlPattern.default(pattern);
|
|
20
|
+
var rewritePattern = new _urlPattern.default(rewrite);
|
|
21
|
+
return {
|
|
22
|
+
pattern,
|
|
23
|
+
match(path, searchParams) {
|
|
24
|
+
var matched = urlPattern.match(path);
|
|
25
|
+
if (!matched) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
if ((check === null || check === void 0 ? void 0 : check(matched, searchParams)) === false) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return matched;
|
|
32
|
+
},
|
|
33
|
+
generate(params) {
|
|
34
|
+
if (generate) {
|
|
35
|
+
return (0, _index.normalizeUrl)(generate(urlPattern, params));
|
|
36
|
+
}
|
|
37
|
+
return (0, _index.normalizeUrl)(urlPattern.stringify(params));
|
|
38
|
+
},
|
|
39
|
+
rewrite(params) {
|
|
40
|
+
return rewritePattern.stringify(params);
|
|
41
|
+
},
|
|
42
|
+
resolveLocale
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
_Route.create = create;
|
|
46
|
+
})(Route || (exports.Route = Route = {}));
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Locale } from '@prezly/theme-kit-intl';
|
|
2
|
+
import UrlPattern from 'url-pattern';
|
|
3
|
+
import type { ExtractPathParams } from './types';
|
|
4
|
+
type Awaitable<T> = T | Promise<T>;
|
|
5
|
+
export type Route<Pattern = string, Match = unknown> = {
|
|
6
|
+
/**
|
|
7
|
+
* Route match pattern.
|
|
8
|
+
*/
|
|
9
|
+
pattern: Pattern;
|
|
10
|
+
/**
|
|
11
|
+
* Match incoming request path and search params against the route definition.
|
|
12
|
+
*/
|
|
13
|
+
match(path: string, searchParams: URLSearchParams): Match | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Low-level route URL generator.
|
|
16
|
+
* Unaware of newsroom locales and how to shorten locale slugs.
|
|
17
|
+
*/
|
|
18
|
+
generate(params: Match): `/${string}`;
|
|
19
|
+
/**
|
|
20
|
+
* Rewrite external route URL to the internal unambiguous pages layout URL.
|
|
21
|
+
*/
|
|
22
|
+
rewrite(params: Match): string;
|
|
23
|
+
/**
|
|
24
|
+
* Manually resolve locale code from the request parameters,
|
|
25
|
+
* if the stock logic is not suitable for the current route.
|
|
26
|
+
*/
|
|
27
|
+
resolveLocale?(params: Match): Awaitable<Locale.Code | undefined>;
|
|
28
|
+
};
|
|
29
|
+
export declare namespace Route {
|
|
30
|
+
interface Options<Pattern extends string, Match> {
|
|
31
|
+
check?(match: Match, searchParams: URLSearchParams): boolean;
|
|
32
|
+
generate?(pattern: UrlPattern, params: ExtractPathParams<Pattern>): `/${string}`;
|
|
33
|
+
resolveLocale?: Route<Pattern, Match>['resolveLocale'];
|
|
34
|
+
}
|
|
35
|
+
function create<Pattern extends `/${string}` | `(/:${string})/${string}`, Match extends ExtractPathParams<Pattern>>(pattern: Pattern, rewrite: string, { check, generate, resolveLocale }?: Options<Pattern, Match>): Route<Pattern, Match>;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-redeclare */
|
|
2
|
+
|
|
3
|
+
import UrlPattern from 'url-pattern';
|
|
4
|
+
import { normalizeUrl } from "./utils/index.mjs";
|
|
5
|
+
export var Route;
|
|
6
|
+
(function (_Route) {
|
|
7
|
+
function create(pattern, rewrite) {
|
|
8
|
+
var {
|
|
9
|
+
check,
|
|
10
|
+
generate,
|
|
11
|
+
resolveLocale
|
|
12
|
+
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
13
|
+
var urlPattern = new UrlPattern(pattern);
|
|
14
|
+
var rewritePattern = new UrlPattern(rewrite);
|
|
15
|
+
return {
|
|
16
|
+
pattern,
|
|
17
|
+
match(path, searchParams) {
|
|
18
|
+
var matched = urlPattern.match(path);
|
|
19
|
+
if (!matched) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if ((check === null || check === void 0 ? void 0 : check(matched, searchParams)) === false) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return matched;
|
|
26
|
+
},
|
|
27
|
+
generate(params) {
|
|
28
|
+
if (generate) {
|
|
29
|
+
return normalizeUrl(generate(urlPattern, params));
|
|
30
|
+
}
|
|
31
|
+
return normalizeUrl(urlPattern.stringify(params));
|
|
32
|
+
},
|
|
33
|
+
rewrite(params) {
|
|
34
|
+
return rewritePattern.stringify(params);
|
|
35
|
+
},
|
|
36
|
+
resolveLocale
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
_Route.create = create;
|
|
40
|
+
})(Route || (Route = {}));
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Router = void 0;
|
|
7
|
+
var _isNotUndefined = require("@technically/is-not-undefined");
|
|
8
|
+
var Router;
|
|
9
|
+
(function (_Router) {
|
|
10
|
+
function create(routes) {
|
|
11
|
+
return {
|
|
12
|
+
routes,
|
|
13
|
+
match(path, searchParams, _ref) {
|
|
14
|
+
var {
|
|
15
|
+
isSupportedLocale
|
|
16
|
+
} = _ref;
|
|
17
|
+
var matches = Object.values(routes).map(route => {
|
|
18
|
+
var params = route.match(path, searchParams);
|
|
19
|
+
if (params) {
|
|
20
|
+
return {
|
|
21
|
+
params: params,
|
|
22
|
+
route
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
});
|
|
27
|
+
var [first] = matches.filter(_isNotUndefined.isNotUndefined).filter(_ref2 => {
|
|
28
|
+
var {
|
|
29
|
+
params
|
|
30
|
+
} = _ref2;
|
|
31
|
+
if ('localeSlug' in params && typeof params.localeSlug === 'string') {
|
|
32
|
+
return isSupportedLocale(params.localeSlug);
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
});
|
|
36
|
+
return first;
|
|
37
|
+
},
|
|
38
|
+
generate(routeName) {
|
|
39
|
+
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
40
|
+
return routes[routeName].generate(params);
|
|
41
|
+
},
|
|
42
|
+
dump() {
|
|
43
|
+
return Object.fromEntries(Object.entries(routes).map(_ref3 => {
|
|
44
|
+
var [routeName, route] = _ref3;
|
|
45
|
+
return [routeName, route.pattern];
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
_Router.create = create;
|
|
51
|
+
})(Router || (exports.Router = Router = {}));
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Route } from './Route';
|
|
2
|
+
export type RoutesMap<T extends Route = Route> = Record<string, T>;
|
|
3
|
+
type Maybe<T> = T | undefined;
|
|
4
|
+
export interface Router<Routes extends RoutesMap = RoutesMap> {
|
|
5
|
+
routes: Routes;
|
|
6
|
+
match(path: string, searchParams: URLSearchParams, context: Router.MatchContext): {
|
|
7
|
+
[RouteName in keyof Routes]: Routes[RouteName] extends Route<infer Pattern, infer Match> ? Maybe<{
|
|
8
|
+
params: Match;
|
|
9
|
+
route: Route<Pattern, Match>;
|
|
10
|
+
}> : undefined;
|
|
11
|
+
}[keyof Routes];
|
|
12
|
+
generate<RouteName extends keyof Routes>(routeName: RouteName, ...params: Routes[RouteName] extends Route<string, infer Match> ? {} extends Match ? [Match] | [] : [Match] : never): `/${string}`;
|
|
13
|
+
dump(): {
|
|
14
|
+
[RouteName in keyof Routes]: Routes[RouteName]['pattern'];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare namespace Router {
|
|
18
|
+
interface MatchContext {
|
|
19
|
+
isSupportedLocale(code: string): boolean;
|
|
20
|
+
}
|
|
21
|
+
function create<Routes extends RoutesMap>(routes: Routes): Router<Routes>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { isNotUndefined } from '@technically/is-not-undefined';
|
|
2
|
+
export var Router;
|
|
3
|
+
(function (_Router) {
|
|
4
|
+
function create(routes) {
|
|
5
|
+
return {
|
|
6
|
+
routes,
|
|
7
|
+
match(path, searchParams, _ref) {
|
|
8
|
+
var {
|
|
9
|
+
isSupportedLocale
|
|
10
|
+
} = _ref;
|
|
11
|
+
var matches = Object.values(routes).map(route => {
|
|
12
|
+
var params = route.match(path, searchParams);
|
|
13
|
+
if (params) {
|
|
14
|
+
return {
|
|
15
|
+
params: params,
|
|
16
|
+
route
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
});
|
|
21
|
+
var [first] = matches.filter(isNotUndefined).filter(_ref2 => {
|
|
22
|
+
var {
|
|
23
|
+
params
|
|
24
|
+
} = _ref2;
|
|
25
|
+
if ('localeSlug' in params && typeof params.localeSlug === 'string') {
|
|
26
|
+
return isSupportedLocale(params.localeSlug);
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
});
|
|
30
|
+
return first;
|
|
31
|
+
},
|
|
32
|
+
generate(routeName) {
|
|
33
|
+
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
34
|
+
return routes[routeName].generate(params);
|
|
35
|
+
},
|
|
36
|
+
dump() {
|
|
37
|
+
return Object.fromEntries(Object.entries(routes).map(_ref3 => {
|
|
38
|
+
var [routeName, route] = _ref3;
|
|
39
|
+
return [routeName, route.pattern];
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
_Router.create = create;
|
|
45
|
+
})(Router || (Router = {}));
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "generateUrlFromPattern", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _index.generateUrlFromPattern;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "getShortestLocaleSlug", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _index.getShortestLocaleSlug;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "matchLocaleSlug", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _index.matchLocaleSlug;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var _index = require("./utils/index.cjs");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { generateUrlFromPattern, getShortestLocaleSlug, matchLocaleSlug } from './utils';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UrlGenerator = void 0;
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-redeclare */
|
|
8
|
+
/**
|
|
9
|
+
* Construct a type based on `Router.generate()`, but:
|
|
10
|
+
* - required `localeSlug` can be replaced with required `localeCode`
|
|
11
|
+
* - optional `localeSlug` can be replaced with optional `localeCode`
|
|
12
|
+
*/
|
|
13
|
+
var UrlGenerator;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Route } from './Route';
|
|
2
|
+
import type { Router } from './Router';
|
|
3
|
+
type WithLocaleCode<T> = T extends {
|
|
4
|
+
localeSlug: string;
|
|
5
|
+
} ? Omit<T, 'localeSlug'> & {
|
|
6
|
+
localeCode: string;
|
|
7
|
+
} : T extends {
|
|
8
|
+
localeSlug?: string;
|
|
9
|
+
} ? Omit<T, 'localeSlug'> & {
|
|
10
|
+
localeCode?: string;
|
|
11
|
+
} : T;
|
|
12
|
+
/**
|
|
13
|
+
* Construct a type based on `Router.generate()`, but:
|
|
14
|
+
* - required `localeSlug` can be replaced with required `localeCode`
|
|
15
|
+
* - optional `localeSlug` can be replaced with optional `localeCode`
|
|
16
|
+
*/
|
|
17
|
+
export type UrlGenerator<T> = T extends Router<infer Routes> ? <RouteName extends keyof Routes>(routeName: RouteName, ...params: Routes[RouteName] extends Route<string, infer Match> ? {} extends Match ? [WithLocaleCode<Match>] | [Match] | [] : [WithLocaleCode<Match>] | [Match] : never) => `/${string}` : never;
|
|
18
|
+
export declare namespace UrlGenerator {
|
|
19
|
+
/**
|
|
20
|
+
* Construct a type based on `Router.generate()`, but:
|
|
21
|
+
* - expected to generate absolute URLs instead of relative ones
|
|
22
|
+
* - required `localeSlug` can be replaced with required `localeCode`
|
|
23
|
+
* - optional `localeSlug` can be replaced with optional `localeCode`
|
|
24
|
+
*
|
|
25
|
+
* This is the same as UrlGenerator<T>, but for absolute URLs.
|
|
26
|
+
* @see UrlGenerator.
|
|
27
|
+
*/
|
|
28
|
+
type Absolute<T> = T extends Router<infer Routes> ? <RouteName extends keyof Routes>(routeName: RouteName, ...params: Routes[RouteName] extends Route<string, infer Match> ? {} extends Match ? [WithLocaleCode<Match>] | [Match] | [] : [WithLocaleCode<Match>] | [Match] : never) => `http://${string}` | `https://${string}` : never;
|
|
29
|
+
type Params<T> = T extends Router<infer Routes> ? {
|
|
30
|
+
[RouteName in keyof Routes]: Routes[RouteName] extends Route<string, infer Match> ? {} extends Match ? {
|
|
31
|
+
routeName: RouteName;
|
|
32
|
+
params?: WithLocaleCode<Match> | Match;
|
|
33
|
+
} : {
|
|
34
|
+
routeName: RouteName;
|
|
35
|
+
params: WithLocaleCode<Match> | Match;
|
|
36
|
+
} : never;
|
|
37
|
+
}[keyof Routes] : never;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-redeclare */
|
|
2
|
+
/**
|
|
3
|
+
* Construct a type based on `Router.generate()`, but:
|
|
4
|
+
* - required `localeSlug` can be replaced with required `localeCode`
|
|
5
|
+
* - optional `localeSlug` can be replaced with optional `localeCode`
|
|
6
|
+
*/
|
|
7
|
+
export var UrlGenerator;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Route", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _Route.Route;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Router", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _Router.Router;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
exports.Routing = void 0;
|
|
19
|
+
var _Route = require("./Route.cjs");
|
|
20
|
+
var _Router = require("./Router.cjs");
|
|
21
|
+
var _Routing = _interopRequireWildcard(require("./Routing.cjs"));
|
|
22
|
+
exports.Routing = _Routing;
|
|
23
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
24
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type Awaitable<T> = T | Promise<T> | PromiseLike<T>;
|
|
2
|
+
export type ExtractPathParams<T extends string> = T extends `${infer _Start}(/:${infer Param})/${infer Rest}` ? {
|
|
3
|
+
[k in Param]?: string;
|
|
4
|
+
} & ExtractPathParams<Rest> : T extends `${infer _Start}(:${infer Param})/${infer Rest}` ? {
|
|
5
|
+
[k in Param]?: string;
|
|
6
|
+
} & ExtractPathParams<Rest> : T extends `${infer _Start}:${infer Param}/${infer Rest}` ? {
|
|
7
|
+
[k in Param]: string;
|
|
8
|
+
} & ExtractPathParams<Rest> : T extends `${infer _Start}(/:${infer Param})` ? {
|
|
9
|
+
[k in Param]?: string;
|
|
10
|
+
} : T extends `${infer _Start}(:${infer Param})` ? {
|
|
11
|
+
[k in Param]?: string;
|
|
12
|
+
} : T extends `${infer _Start}:${infer Param}` ? {
|
|
13
|
+
[k in Param]: string;
|
|
14
|
+
} : {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateUrlFromPattern = generateUrlFromPattern;
|
|
7
|
+
var _omitUndefined = require("@technically/omit-undefined");
|
|
8
|
+
var _urlPattern = _interopRequireDefault(require("url-pattern"));
|
|
9
|
+
var _getShortestLocaleSlug = require("./getShortestLocaleSlug.cjs");
|
|
10
|
+
var _normalizeUrl = require("./normalizeUrl.cjs");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
16
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint-disable @typescript-eslint/no-use-before-define */
|
|
17
|
+
var CACHE = new Map();
|
|
18
|
+
function toUrlPattern(pattern) {
|
|
19
|
+
var cached = CACHE.get(pattern);
|
|
20
|
+
if (cached) return cached;
|
|
21
|
+
var urlPattern = new _urlPattern.default(pattern);
|
|
22
|
+
CACHE.set(pattern, urlPattern);
|
|
23
|
+
return urlPattern;
|
|
24
|
+
}
|
|
25
|
+
function generateUrlFromPattern(pattern) {
|
|
26
|
+
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
27
|
+
var context = arguments.length > 2 ? arguments[2] : undefined;
|
|
28
|
+
var urlPattern = toUrlPattern(pattern);
|
|
29
|
+
if (context) {
|
|
30
|
+
var {
|
|
31
|
+
localeCode
|
|
32
|
+
} = params;
|
|
33
|
+
var localeSlug = getLocaleSlug(params, context);
|
|
34
|
+
return (0, _normalizeUrl.normalizeUrl)(urlPattern.stringify((0, _omitUndefined.omitUndefined)(_objectSpread(_objectSpread({}, params), {}, {
|
|
35
|
+
localeCode,
|
|
36
|
+
localeSlug
|
|
37
|
+
}))));
|
|
38
|
+
}
|
|
39
|
+
return (0, _normalizeUrl.normalizeUrl)(urlPattern.stringify((0, _omitUndefined.omitUndefined)(params)));
|
|
40
|
+
}
|
|
41
|
+
function getLocaleSlug(params, context) {
|
|
42
|
+
if (params.localeSlug) {
|
|
43
|
+
return params.localeSlug;
|
|
44
|
+
}
|
|
45
|
+
if (params.localeCode) {
|
|
46
|
+
var {
|
|
47
|
+
toLocaleSlug = _getShortestLocaleSlug.getShortestLocaleSlug
|
|
48
|
+
} = context;
|
|
49
|
+
return toLocaleSlug(params.localeCode, context) || '';
|
|
50
|
+
}
|
|
51
|
+
return '';
|
|
52
|
+
}
|