@sitecore-feaas/clientside 0.1.30 → 0.1.31

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-feaas/clientside",
3
- "version": "0.1.30",
3
+ "version": "0.1.31",
4
4
  "scripts": {
5
5
  "start": "webpack serve --open",
6
6
  "build": "rm -rf dist;npm run types; npm run build:esbuild; npm run build:sourcemaps",
package/src/cdn.ts CHANGED
@@ -38,7 +38,7 @@ export interface FEAASCDNStylesheetParams {
38
38
  export type FEAASCDNStylesheetSource = {
39
39
  src: string
40
40
  }
41
- export type FEAASCDNStylesheetProps = FEAASCDNStylesheetParams | FEAASCDNStylesheetSource
41
+ export type FEAASCDNStylesheetProps = FEAASCDNStylesheetParams | FEAASCDNStylesheetSource | string
42
42
 
43
43
  export function parseComponentSource(source: string): FEAASCDNComponentParams {
44
44
  const match = source.match(/^(?:(.*?)\/components)?\/?([^\/]+)\/([^\/]+)(?:\/([^\/]+)(?:\/([^\/]+?)(?:\.html?)?)?)?$/)
@@ -87,6 +87,9 @@ export function getComponentURL(props: FEAASCDNComponentProps) {
87
87
  }
88
88
 
89
89
  export function getStylesheetURL(props: FEAASCDNStylesheetProps) {
90
+ if (typeof props == 'string') {
91
+ props = { src: props }
92
+ }
90
93
  if ('src' in props) {
91
94
  props = {
92
95
  ...parseComponentSource(props.src)
@@ -164,7 +167,7 @@ export async function fetchComponent(props: FEAASCDNComponentProps | string) {
164
167
 
165
168
  export type ValidatableStylesheetCallback = (css: string, phase: ValidatableRequestPhase) => void
166
169
  export async function fetchAndRevalidateStylesheet(
167
- props: FEAASCDNStylesheetProps | string,
170
+ props: FEAASCDNStylesheetProps,
168
171
  callback: ValidatableStylesheetCallback
169
172
  ) {
170
173
  if (typeof props == 'string') props = { src: props }
@@ -1,27 +1,28 @@
1
1
  import {
2
- FEAASCDNStylesheetParams,
2
+ FEAASCDNStylesheetProps,
3
3
  fetchAndRevalidateStylesheet,
4
4
  getStylesheetURL,
5
5
  ValidatableStylesheetCallback
6
6
  } from '../cdn.js'
7
- export function renderStylesheet(props: FEAASCDNStylesheetParams, style?: HTMLStyleElement) {
7
+
8
+ export function renderStylesheet(props: FEAASCDNStylesheetProps, style?: HTMLStyleElement) {
8
9
  renderStylesheetPromise(props, (style ||= document.createElement('style')))
9
10
  return style
10
11
  }
11
12
 
12
- export function renderStylesheetPromise(props: FEAASCDNStylesheetParams, stylesheet?: HTMLStyleElement) {
13
+ export function renderStylesheetPromise(props: FEAASCDNStylesheetProps, stylesheet?: HTMLStyleElement) {
13
14
  stylesheet ||= document.createElement('style')
14
15
  return fetchAndRevalidateStylesheet(props, (cssText, phase) => {
15
16
  stylesheet.textContent = cssText
16
17
  }).then(() => stylesheet)
17
18
  }
18
19
 
19
- export function loadStylesheet(props: FEAASCDNStylesheetParams, callback?: ValidatableStylesheetCallback) {
20
+ export function loadStylesheet(props: FEAASCDNStylesheetProps, callback?: ValidatableStylesheetCallback) {
20
21
  var foundStylesheet = findStylesheet(props) as HTMLStyleElement
21
22
  if (!foundStylesheet) {
22
23
  var createdStylesheet = createStylesheet(props)
23
24
  }
24
- return fetchAndRevalidateStylesheet({ ...props }, (cssText, phase) => {
25
+ return fetchAndRevalidateStylesheet(props, (cssText, phase) => {
25
26
  if (createdStylesheet) {
26
27
  createdStylesheet.textContent = cssText
27
28
  }
@@ -29,17 +30,17 @@ export function loadStylesheet(props: FEAASCDNStylesheetParams, callback?: Valid
29
30
  }).then(() => foundStylesheet || createdStylesheet)
30
31
  }
31
32
 
32
- export function loadStylesheetAllowStale(props: FEAASCDNStylesheetParams) {
33
+ export function loadStylesheetAllowStale(props: FEAASCDNStylesheetProps) {
33
34
  return new Promise((resolve, reject) => {
34
35
  loadStylesheet(props, resolve).catch(reject)
35
36
  })
36
37
  }
37
38
 
38
- export function findStylesheet(props: FEAASCDNStylesheetParams) {
39
+ export function findStylesheet(props: FEAASCDNStylesheetProps) {
39
40
  return document.head.querySelector(`style[data-href="${getStylesheetURL(props)}"]`)
40
41
  }
41
42
 
42
- export function createStylesheet(props: FEAASCDNStylesheetParams) {
43
+ export function createStylesheet(props: FEAASCDNStylesheetProps) {
43
44
  const url = getStylesheetURL(props)
44
45
  const stylesheet = document.createElement('style')
45
46
  stylesheet.setAttribute('data-href', url)
@@ -176,5 +176,6 @@ describe('Stylesheet', () => {
176
176
  revision: 'published'
177
177
  }).then((r) => r.textContent)
178
178
  ).resolves.toEqual('TODAY {}')
179
+ await expect(loadStylesheet(`http://CDN/L/published.css`).then((r) => r.textContent)).resolves.toEqual('TODAY {}')
179
180
  })
180
181
  })
package/types/cdn.d.ts CHANGED
@@ -26,7 +26,7 @@ export interface FEAASCDNStylesheetParams {
26
26
  export type FEAASCDNStylesheetSource = {
27
27
  src: string;
28
28
  };
29
- export type FEAASCDNStylesheetProps = FEAASCDNStylesheetParams | FEAASCDNStylesheetSource;
29
+ export type FEAASCDNStylesheetProps = FEAASCDNStylesheetParams | FEAASCDNStylesheetSource | string;
30
30
  export declare function parseComponentSource(source: string): FEAASCDNComponentParams;
31
31
  export declare function getComponentSource(props: FEAASCDNComponentParams): string;
32
32
  export declare function getStylesheetSource(props: FEAASCDNStylesheetParams): string;
@@ -53,5 +53,5 @@ export declare function fetchComponent(props: FEAASCDNComponentProps | string):
53
53
  instance?: string;
54
54
  }>;
55
55
  export type ValidatableStylesheetCallback = (css: string, phase: ValidatableRequestPhase) => void;
56
- export declare function fetchAndRevalidateStylesheet(props: FEAASCDNStylesheetProps | string, callback: ValidatableStylesheetCallback): Promise<Response>;
56
+ export declare function fetchAndRevalidateStylesheet(props: FEAASCDNStylesheetProps, callback: ValidatableStylesheetCallback): Promise<Response>;
57
57
  //# sourceMappingURL=cdn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,eAAe,wDAAwD,CAAA;AACpF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,qCAAqC,GAAG;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,GACtF,qCAAqC,CAAA;AAEvC,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IAErD,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG,wBAAwB,CAAA;AAEzF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAM5E;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,UAahE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,UAIlE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,CAM9E;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,UAS5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,UAS9D;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACjC,cAAc,UAAQ,0HA8CvB;AAED,mCAAmC;AACnC,wBAAsB,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;;;;;;;;IAvIzE,oCAAoC;;;;;;;;GAkJrC;AAED,MAAM,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAA;AACjG,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,uBAAuB,GAAG,MAAM,EACvC,QAAQ,EAAE,6BAA6B,qBAoBxC"}
1
+ {"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,eAAe,wDAAwD,CAAA;AACpF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,qCAAqC,GAAG;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,GACtF,qCAAqC,CAAA;AAEvC,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IAErD,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,MAAM,CAAA;AAElG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAM5E;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,UAahE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,UAIlE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,CAM9E;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,UAS5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,UAY9D;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACjC,cAAc,UAAQ,0HA8CvB;AAED,mCAAmC;AACnC,wBAAsB,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;;;;;;;;IA1IzE,oCAAoC;;;;;;;;GAqJrC;AAED,MAAM,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAA;AACjG,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,6BAA6B,qBAoBxC"}
@@ -1,8 +1,8 @@
1
- import { FEAASCDNStylesheetParams, ValidatableStylesheetCallback } from '../cdn.js';
2
- export declare function renderStylesheet(props: FEAASCDNStylesheetParams, style?: HTMLStyleElement): HTMLStyleElement;
3
- export declare function renderStylesheetPromise(props: FEAASCDNStylesheetParams, stylesheet?: HTMLStyleElement): Promise<HTMLStyleElement>;
4
- export declare function loadStylesheet(props: FEAASCDNStylesheetParams, callback?: ValidatableStylesheetCallback): Promise<HTMLStyleElement>;
5
- export declare function loadStylesheetAllowStale(props: FEAASCDNStylesheetParams): Promise<unknown>;
6
- export declare function findStylesheet(props: FEAASCDNStylesheetParams): Element;
7
- export declare function createStylesheet(props: FEAASCDNStylesheetParams): HTMLStyleElement;
1
+ import { FEAASCDNStylesheetProps, ValidatableStylesheetCallback } from '../cdn.js';
2
+ export declare function renderStylesheet(props: FEAASCDNStylesheetProps, style?: HTMLStyleElement): HTMLStyleElement;
3
+ export declare function renderStylesheetPromise(props: FEAASCDNStylesheetProps, stylesheet?: HTMLStyleElement): Promise<HTMLStyleElement>;
4
+ export declare function loadStylesheet(props: FEAASCDNStylesheetProps, callback?: ValidatableStylesheetCallback): Promise<HTMLStyleElement>;
5
+ export declare function loadStylesheetAllowStale(props: FEAASCDNStylesheetProps): Promise<unknown>;
6
+ export declare function findStylesheet(props: FEAASCDNStylesheetProps): Element;
7
+ export declare function createStylesheet(props: FEAASCDNStylesheetProps): HTMLStyleElement;
8
8
  //# sourceMappingURL=stylesheet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stylesheet.d.ts","sourceRoot":"","sources":["../../src/dom/stylesheet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGxB,6BAA6B,EAC9B,MAAM,WAAW,CAAA;AAClB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,CAAC,EAAE,gBAAgB,oBAGzF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,wBAAwB,EAAE,UAAU,CAAC,EAAE,gBAAgB,6BAKrG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,6BAA6B,6BAWvG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,oBAIvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,wBAAwB,WAE7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,oBAM/D"}
1
+ {"version":3,"file":"stylesheet.d.ts","sourceRoot":"","sources":["../../src/dom/stylesheet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAGvB,6BAA6B,EAC9B,MAAM,WAAW,CAAA;AAElB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,gBAAgB,oBAGxF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,EAAE,UAAU,CAAC,EAAE,gBAAgB,6BAKpG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,CAAC,EAAE,6BAA6B,6BAWtG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,oBAItE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,uBAAuB,WAE5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,oBAM9D"}