@expofp/loader 1.0.79 → 1.0.91
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/bundle/ImportHttpRuntime.node-B85BNHJG.js +92 -0
- package/dist/bundle/ImportHttpRuntime.node-B85BNHJG.js.map +1 -0
- package/dist/bundle/bundle.js +238 -683
- package/dist/bundle/bundle.js.map +1 -1
- package/dist/esm/ImportHttpRuntime.node.d.ts +28 -0
- package/dist/esm/ImportHttpRuntime.node.js +139 -0
- package/dist/esm/_OLD_resolveRuntimeUrl.d.ts +1 -0
- package/dist/esm/_OLD_resolveRuntimeUrl.js +10 -0
- package/dist/esm/importHttpRuntime.d.ts +1 -0
- package/dist/esm/importHttpRuntime.js +12 -0
- package/dist/esm/index.d.ts +10 -7
- package/dist/esm/index.js +40 -19
- package/dist/esm/resolve.d.ts +10 -44
- package/dist/esm/resolve.js +91 -295
- package/dist/esm/types.d.ts +11 -26
- package/package.json +3 -1
- package/dist/bundle/cssTextAssetResolver.offlineFunc-CWvHnYni.js +0 -19
- package/dist/bundle/cssTextAssetResolver.offlineFunc-CWvHnYni.js.map +0 -1
- package/dist/bundle/downloadOfflineZip-CNz_lUGZ.js +0 -2344
- package/dist/bundle/downloadOfflineZip-CNz_lUGZ.js.map +0 -1
- package/dist/bundle/legacyDataUrlBaseResolver.offlineFunc-DPaSp_zV.js +0 -87
- package/dist/bundle/legacyDataUrlBaseResolver.offlineFunc-DPaSp_zV.js.map +0 -1
- package/dist/bundle/makeOffline-Dj-0o5_7.js +0 -76
- package/dist/bundle/makeOffline-Dj-0o5_7.js.map +0 -1
- package/dist/bundle/makeOfflineBundle-D8tePWGI.js +0 -70
- package/dist/bundle/makeOfflineBundle-D8tePWGI.js.map +0 -1
- package/dist/bundle/saveOfflineZip.browser-BTQeRUY_.js +0 -7
- package/dist/bundle/saveOfflineZip.browser-BTQeRUY_.js.map +0 -1
- package/dist/bundle/tools-D0u8lBvQ.js +0 -102
- package/dist/bundle/tools-D0u8lBvQ.js.map +0 -1
- package/dist/esm/_OLD_fetchWithRetry.d.ts +0 -1
- package/dist/esm/_OLD_fetchWithRetry.js +0 -101
- package/dist/esm/importJson.d.ts +0 -2
- package/dist/esm/importJson.js +0 -59
- package/dist/esm/loadScript.d.ts +0 -16
- package/dist/esm/loadScript.js +0 -166
- package/dist/esm/logger.d.ts +0 -1
- package/dist/esm/logger.js +0 -5
- package/dist/esm/mutateManifest.d.ts +0 -2
- package/dist/esm/mutateManifest.js +0 -10
- package/dist/esm/offline/downloadOfflineZip.d.ts +0 -4
- package/dist/esm/offline/downloadOfflineZip.js +0 -15
- package/dist/esm/offline/generateZip.d.ts +0 -4
- package/dist/esm/offline/generateZip.js +0 -41
- package/dist/esm/offline/hashString.d.ts +0 -1
- package/dist/esm/offline/hashString.js +0 -16
- package/dist/esm/offline/index.d.ts +0 -14
- package/dist/esm/offline/index.js +0 -41
- package/dist/esm/offline/makeOffline.d.ts +0 -2
- package/dist/esm/offline/makeOffline.js +0 -144
- package/dist/esm/offline/makeOfflineBundle.d.ts +0 -4
- package/dist/esm/offline/makeOfflineBundle.js +0 -92
- package/dist/esm/offline/saveOfflineZip.browser.d.ts +0 -1
- package/dist/esm/offline/saveOfflineZip.browser.js +0 -3
- package/dist/esm/offline/saveOfflineZip.d.ts +0 -1
- package/dist/esm/offline/saveOfflineZip.js +0 -16
- package/dist/esm/offline/slugify.d.ts +0 -1
- package/dist/esm/offline/slugify.js +0 -61
- package/dist/esm/offline/tools.d.ts +0 -3
- package/dist/esm/offline/tools.js +0 -85
- package/dist/esm/resolvers/_OLD_expoResolver.d.ts +0 -1
- package/dist/esm/resolvers/_OLD_expoResolver.js +0 -49
- package/dist/esm/resolvers/assetResolver.d.ts +0 -6
- package/dist/esm/resolvers/assetResolver.js +0 -26
- package/dist/esm/resolvers/bundleAssetsResolver.d.ts +0 -2
- package/dist/esm/resolvers/bundleAssetsResolver.js +0 -20
- package/dist/esm/resolvers/cssTextAssetResolver.d.ts +0 -8
- package/dist/esm/resolvers/cssTextAssetResolver.js +0 -15
- package/dist/esm/resolvers/cssTextAssetResolver.offlineFunc.d.ts +0 -2
- package/dist/esm/resolvers/cssTextAssetResolver.offlineFunc.js +0 -22
- package/dist/esm/resolvers/expoRuntimeBranchResolver.d.ts +0 -2
- package/dist/esm/resolvers/expoRuntimeBranchResolver.js +0 -20
- package/dist/esm/resolvers/expoRuntimeGetBranchResolver.d.ts +0 -2
- package/dist/esm/resolvers/expoRuntimeGetBranchResolver.js +0 -14
- package/dist/esm/resolvers/expoRuntimeResolver.d.ts +0 -2
- package/dist/esm/resolvers/expoRuntimeResolver.js +0 -39
- package/dist/esm/resolvers/httpResolver.d.ts +0 -5
- package/dist/esm/resolvers/httpResolver.js +0 -14
- package/dist/esm/resolvers/index.d.ts +0 -2
- package/dist/esm/resolvers/index.js +0 -22
- package/dist/esm/resolvers/legacyAssetUrlsResolver.d.ts +0 -9
- package/dist/esm/resolvers/legacyAssetUrlsResolver.js +0 -116
- package/dist/esm/resolvers/legacyDataResolver.d.ts +0 -8
- package/dist/esm/resolvers/legacyDataResolver.js +0 -20
- package/dist/esm/resolvers/legacyDataUrlBaseResolver.d.ts +0 -8
- package/dist/esm/resolvers/legacyDataUrlBaseResolver.js +0 -15
- package/dist/esm/resolvers/legacyDataUrlBaseResolver.offlineFunc.d.ts +0 -2
- package/dist/esm/resolvers/legacyDataUrlBaseResolver.offlineFunc.js +0 -129
- package/dist/esm/returnCachedRef.d.ts +0 -1
- package/dist/esm/returnCachedRef.js +0 -12
- package/dist/esm/shared.d.ts +0 -8
- package/dist/esm/shared.js +0 -273
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { loadScript } from '../loadScript';
|
|
2
|
-
import { makeTargetPathFromUrl, relativeUrlToFilePath } from '../offline/tools';
|
|
3
|
-
import { parseRefValue } from '../resolve';
|
|
4
|
-
import { log, SCHEMA } from './legacyDataUrlBaseResolver';
|
|
5
|
-
export const offlineFunc = async function* (ref, context) {
|
|
6
|
-
log('legacyDataResolver offlineFunc:', ref);
|
|
7
|
-
const signal = context.signal;
|
|
8
|
-
const dataUrlBase = parseRefValue(ref);
|
|
9
|
-
const versionUrl = `${dataUrlBase}version.js`;
|
|
10
|
-
try {
|
|
11
|
-
await loadScript(versionUrl, signal);
|
|
12
|
-
}
|
|
13
|
-
catch {
|
|
14
|
-
console.warn(`Could not load version.js at ${versionUrl}, proceeding without it`);
|
|
15
|
-
}
|
|
16
|
-
const version = globalThis.__fpDataVersion || (+new Date()).toString();
|
|
17
|
-
const localDataUrlBase = makeTargetPathFromUrl(dataUrlBase) + version + '/';
|
|
18
|
-
const dataUrl = `${dataUrlBase}data.js?v=${version}`;
|
|
19
|
-
// data.js
|
|
20
|
-
await loadScript(dataUrl, signal);
|
|
21
|
-
const __data = getAndDeleteGlobal('__data');
|
|
22
|
-
yield* localizeDataJson(__data, dataUrlBase, localDataUrlBase);
|
|
23
|
-
const text = `var __data = ${JSON.stringify(__data, null, 2)};`;
|
|
24
|
-
yield { text, targetFilePath: `${localDataUrlBase}data.js` };
|
|
25
|
-
// wf.data.js
|
|
26
|
-
const wfDataUrl = `${dataUrlBase}wf.data.js?v=${version}`;
|
|
27
|
-
yield { url: wfDataUrl, targetFilePath: `${localDataUrlBase}wf.data.js` };
|
|
28
|
-
// fp.svg.js
|
|
29
|
-
const fpSvgUrl = `${dataUrlBase}fp.svg.js?v=${version}`;
|
|
30
|
-
yield { url: fpSvgUrl, targetFilePath: `${localDataUrlBase}fp.svg.js` };
|
|
31
|
-
// load fp.svg.js to get __fpLayers
|
|
32
|
-
await loadScript(fpSvgUrl, signal);
|
|
33
|
-
const __fpLayers = getAndDeleteGlobal('__fpLayers') || [];
|
|
34
|
-
const fpLayerFiles = __fpLayers.map((x) => `fp.svg.${x.name}.js`);
|
|
35
|
-
for (const layerFile of fpLayerFiles) {
|
|
36
|
-
// fp.svg.{layer}.js
|
|
37
|
-
const layerUrl = `${dataUrlBase}${layerFile}?v=${version}`;
|
|
38
|
-
yield { url: layerUrl, targetFilePath: `${localDataUrlBase}${layerFile}` };
|
|
39
|
-
}
|
|
40
|
-
return `${SCHEMA}:${localDataUrlBase}`;
|
|
41
|
-
};
|
|
42
|
-
function* localizeDataJson(data, dataUrlBase, localDataUrlBase) {
|
|
43
|
-
if (data.logo) {
|
|
44
|
-
const r = z(data.logo);
|
|
45
|
-
yield r.file;
|
|
46
|
-
data.logo = r.localUrl;
|
|
47
|
-
}
|
|
48
|
-
for (const exhibitor of data.exhibitors || []) {
|
|
49
|
-
if (exhibitor.logo) {
|
|
50
|
-
const r = z(exhibitor.logo);
|
|
51
|
-
yield r.file;
|
|
52
|
-
const variants = ['__small', '__tiny'];
|
|
53
|
-
for (const variant of variants) {
|
|
54
|
-
const url = addSuffix(r.file.url, variant);
|
|
55
|
-
const targetFilePath = addSuffix(r.file.targetFilePath, variant);
|
|
56
|
-
yield { url, targetFilePath };
|
|
57
|
-
}
|
|
58
|
-
exhibitor.logo = r.localUrl;
|
|
59
|
-
}
|
|
60
|
-
if (exhibitor.leadingImageUrl) {
|
|
61
|
-
const r = z(exhibitor.leadingImageUrl);
|
|
62
|
-
yield r.file;
|
|
63
|
-
exhibitor.leadingImageUrl = r.localUrl;
|
|
64
|
-
}
|
|
65
|
-
const gallery = exhibitor.gallery || [];
|
|
66
|
-
for (let i = 0; i < gallery.length; i++) {
|
|
67
|
-
const url = gallery[i];
|
|
68
|
-
const r = z(url);
|
|
69
|
-
yield r.file;
|
|
70
|
-
gallery[i] = r.localUrl;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
for (const event of data.events || []) {
|
|
74
|
-
if (event.logoFile) {
|
|
75
|
-
const r = z(event.logoFile);
|
|
76
|
-
yield r.file;
|
|
77
|
-
event.logoFile = r.localUrl;
|
|
78
|
-
}
|
|
79
|
-
for (const speaker of event.speakers || []) {
|
|
80
|
-
if (speaker.photoFile) {
|
|
81
|
-
const r = z(speaker.photoFile);
|
|
82
|
-
yield r.file;
|
|
83
|
-
speaker.photoFile = r.localUrl;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
function z(relativeUrl) {
|
|
88
|
-
const url = dataUrlBase + relativeUrl;
|
|
89
|
-
const localUrl = relativeUrlToFilePath(relativeUrl);
|
|
90
|
-
const targetFilePath = localDataUrlBase + localUrl;
|
|
91
|
-
return {
|
|
92
|
-
file: { url, targetFilePath },
|
|
93
|
-
localUrl,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
function getAndDeleteGlobal(globalVar) {
|
|
98
|
-
const value = globalThis[globalVar];
|
|
99
|
-
delete globalThis[globalVar];
|
|
100
|
-
return value;
|
|
101
|
-
}
|
|
102
|
-
// abs and relative paths
|
|
103
|
-
function addSuffix(absoluteOrRelativeUrl, suffix) {
|
|
104
|
-
let urlObj;
|
|
105
|
-
let absolute;
|
|
106
|
-
try {
|
|
107
|
-
urlObj = new URL(absoluteOrRelativeUrl);
|
|
108
|
-
absolute = true;
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
urlObj = new URL(absoluteOrRelativeUrl, 'http://example.com');
|
|
112
|
-
absolute = false;
|
|
113
|
-
}
|
|
114
|
-
const pathname = urlObj.pathname;
|
|
115
|
-
const dotIndex = pathname.lastIndexOf('.');
|
|
116
|
-
if (dotIndex === -1) {
|
|
117
|
-
return absoluteOrRelativeUrl; // no extension found
|
|
118
|
-
}
|
|
119
|
-
const name = pathname.substring(0, dotIndex);
|
|
120
|
-
const extension = pathname.substring(dotIndex);
|
|
121
|
-
urlObj.pathname = name + suffix + extension;
|
|
122
|
-
if (absolute) {
|
|
123
|
-
// return full absolute URL
|
|
124
|
-
return urlObj.toString();
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
return urlObj.pathname.slice(1) + urlObj.search;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function returnCachedRef(ref: string, refCache: Map<string, Promise<any>>, factory: () => Promise<any>): Promise<any>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { deepFreeze } from './shared';
|
|
2
|
-
export async function returnCachedRef(ref, refCache, factory) {
|
|
3
|
-
if (refCache.has(ref)) {
|
|
4
|
-
return refCache.get(ref);
|
|
5
|
-
}
|
|
6
|
-
const promise = factory().then((data) => {
|
|
7
|
-
deepFreeze(data);
|
|
8
|
-
return data;
|
|
9
|
-
});
|
|
10
|
-
refCache.set(ref, promise);
|
|
11
|
-
return promise;
|
|
12
|
-
}
|
package/dist/esm/shared.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function createFunction(name: string): (manifest: unknown, ...args: IArguments[]) => Promise<any>;
|
|
2
|
-
export declare function deepFreeze(obj: any): any;
|
|
3
|
-
export declare function deepClone<T>(obj: T): T;
|
|
4
|
-
export declare function shallowClone<T>(obj: T): T;
|
|
5
|
-
export declare function preloadJson(url: string): void;
|
|
6
|
-
export declare function preconnectUrl(url: string): void;
|
|
7
|
-
export declare function createMergedObjectWithOverridenNonRefProps(target: any, source: any): any;
|
|
8
|
-
export declare function replaceObjectFields(target: any, source: any): void;
|
package/dist/esm/shared.js
DELETED
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
import { resolve } from './resolve';
|
|
2
|
-
// export const NOT_APPLICABLE = Symbol('not-applicable');
|
|
3
|
-
// export const STOP_RESOLVING = Symbol('STOP_RESOLVING');
|
|
4
|
-
export function createFunction(name) {
|
|
5
|
-
return async (manifest, ...args) => {
|
|
6
|
-
try {
|
|
7
|
-
const runtimeEntryPoint = await resolve(manifest, '/runtime/entry');
|
|
8
|
-
const moduleExports = await import(/* @vite-ignore */ runtimeEntryPoint);
|
|
9
|
-
const functionToCall = moduleExports[name];
|
|
10
|
-
return functionToCall(manifest, ...args);
|
|
11
|
-
}
|
|
12
|
-
catch (error) {
|
|
13
|
-
console.error('efp-loader', `Error when trying to import and call "${name}":`, error);
|
|
14
|
-
throw error;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export function deepFreeze(obj) {
|
|
19
|
-
if (obj === null || typeof obj !== 'object')
|
|
20
|
-
return obj;
|
|
21
|
-
Object.freeze(obj);
|
|
22
|
-
for (const key of Object.keys(obj)) {
|
|
23
|
-
const val = obj[key];
|
|
24
|
-
if (typeof val === 'object' && val !== null && !Object.isFrozen(val)) {
|
|
25
|
-
deepFreeze(val);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return obj;
|
|
29
|
-
}
|
|
30
|
-
export function deepClone(obj) {
|
|
31
|
-
if ('structuredClone' in globalThis) {
|
|
32
|
-
return globalThis.structuredClone(obj);
|
|
33
|
-
}
|
|
34
|
-
return JSON.parse(JSON.stringify(obj));
|
|
35
|
-
}
|
|
36
|
-
export function shallowClone(obj) {
|
|
37
|
-
if (obj === null || typeof obj !== 'object')
|
|
38
|
-
return obj;
|
|
39
|
-
if (Array.isArray(obj)) {
|
|
40
|
-
return obj.slice();
|
|
41
|
-
}
|
|
42
|
-
return { ...obj };
|
|
43
|
-
}
|
|
44
|
-
export function preloadJson(url) {
|
|
45
|
-
if (typeof document === 'undefined')
|
|
46
|
-
return; // SSR / Node
|
|
47
|
-
const link = document.createElement('link');
|
|
48
|
-
link.rel = 'preload';
|
|
49
|
-
link.as = 'fetch';
|
|
50
|
-
link.href = url;
|
|
51
|
-
link.crossOrigin = 'anonymous';
|
|
52
|
-
document.head.appendChild(link);
|
|
53
|
-
}
|
|
54
|
-
export function preconnectUrl(url) {
|
|
55
|
-
if (typeof document === 'undefined')
|
|
56
|
-
return; // SSR / Node
|
|
57
|
-
const link = document.createElement('link');
|
|
58
|
-
link.rel = 'preconnect';
|
|
59
|
-
link.href = url;
|
|
60
|
-
link.crossOrigin = 'anonymous';
|
|
61
|
-
document.head.appendChild(link);
|
|
62
|
-
}
|
|
63
|
-
// export function hashString(str: string): string {
|
|
64
|
-
// let hash = 0;
|
|
65
|
-
// for (let i = 0; i < str.length; i++) {
|
|
66
|
-
// const chr = str.charCodeAt(i);
|
|
67
|
-
// hash = (hash << 5) - hash + chr;
|
|
68
|
-
// hash |= 0; // force 32-bit int
|
|
69
|
-
// }
|
|
70
|
-
// // >>> 0 makes it unsigned (no '-' in front)
|
|
71
|
-
// return (hash >>> 0).toString(16); // hex, [0-9a-f]
|
|
72
|
-
// }
|
|
73
|
-
// Deterministic ID
|
|
74
|
-
// export async function hashString(str: string): Promise<string> {
|
|
75
|
-
// const encoder = new TextEncoder();
|
|
76
|
-
// const data = encoder.encode(str);
|
|
77
|
-
// const digest = await crypto.subtle.digest('SHA-1', data);
|
|
78
|
-
// return bufferToHex(digest);
|
|
79
|
-
// }
|
|
80
|
-
// murmur32
|
|
81
|
-
// export function hashString(str: string): string {
|
|
82
|
-
// let h = 0x811c9dc5;
|
|
83
|
-
// for (let i = 0; i < str.length; i++) {
|
|
84
|
-
// h ^= str.charCodeAt(i);
|
|
85
|
-
// h = Math.imul(h, 0x01000193);
|
|
86
|
-
// }
|
|
87
|
-
// return (h >>> 0).toString(16).padStart(24, '0');
|
|
88
|
-
// }
|
|
89
|
-
// function bufferToHex(buffer: ArrayBuffer): string {
|
|
90
|
-
// const bytes = new Uint8Array(buffer);
|
|
91
|
-
// let hex = '';
|
|
92
|
-
// for (let i = 0; i < bytes.length; i++) {
|
|
93
|
-
// const byteHex = bytes[i].toString(16).padStart(2, '0');
|
|
94
|
-
// hex += byteHex;
|
|
95
|
-
// }
|
|
96
|
-
// return hex;
|
|
97
|
-
// }
|
|
98
|
-
// export function mergeNonRefFields(target: any, source: any) {
|
|
99
|
-
// if (target === source) throw new Error('Cannot merge object with itself');
|
|
100
|
-
// // if source is primitive, throw
|
|
101
|
-
// if (source === null || typeof source !== 'object')
|
|
102
|
-
// throw new Error('Cannot merge non-object source');
|
|
103
|
-
// if (Array.isArray(source)) {
|
|
104
|
-
// throw new Error('mergeNonRefFields does not support merging arrays');
|
|
105
|
-
// }
|
|
106
|
-
// const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
|
|
107
|
-
// if (nonRefKeys.length === 0) return;
|
|
108
|
-
// // throw if any is array
|
|
109
|
-
// if (Array.isArray(target)) {
|
|
110
|
-
// throw new Error('mergeNonRefFields does not support merging into arrays');
|
|
111
|
-
// }
|
|
112
|
-
// for (const key of nonRefKeys) {
|
|
113
|
-
// // if target is primitive, throw
|
|
114
|
-
// if (target === null || typeof target !== 'object')
|
|
115
|
-
// throw new Error('Cannot merge into non-object target');
|
|
116
|
-
// target[key] = source[key];
|
|
117
|
-
// }
|
|
118
|
-
// }
|
|
119
|
-
// export function mergeNonExitingFields(target: any, source: any) {
|
|
120
|
-
// if (target === source) throw new Error('Cannot merge object with itself');
|
|
121
|
-
// // if source is primitive, throw
|
|
122
|
-
// if (source === null || typeof source !== 'object')
|
|
123
|
-
// throw new Error('Cannot merge non-object source');
|
|
124
|
-
// if (Array.isArray(source)) {
|
|
125
|
-
// throw new Error('mergeNonExitingFields does not support merging arrays');
|
|
126
|
-
// }
|
|
127
|
-
// const keys = Object.keys(source);
|
|
128
|
-
// if (keys.length === 0) return;
|
|
129
|
-
// // throw if any is array
|
|
130
|
-
// if (Array.isArray(target)) {
|
|
131
|
-
// throw new Error('mergeNonExitingFields does not support merging into arrays');
|
|
132
|
-
// }
|
|
133
|
-
// for (const key of Object.keys(source)) {
|
|
134
|
-
// // if target is primitive, throw
|
|
135
|
-
// if (target === null || typeof target !== 'object')
|
|
136
|
-
// throw new Error('Cannot merge into non-object target');
|
|
137
|
-
// if (!(key in target)) {
|
|
138
|
-
// target[key] = source[key];
|
|
139
|
-
// }
|
|
140
|
-
// }
|
|
141
|
-
// }
|
|
142
|
-
// export function replaceObjectFields(target: any, source: any) {
|
|
143
|
-
// if (target === source) {
|
|
144
|
-
// throw new Error('Cannot replace object with itself');
|
|
145
|
-
// }
|
|
146
|
-
// // if source is primitive, throw
|
|
147
|
-
// if (source === null || typeof source !== 'object') {
|
|
148
|
-
// throw new Error('Cannot replace with non-object source');
|
|
149
|
-
// }
|
|
150
|
-
// // throw if any is array
|
|
151
|
-
// if (Array.isArray(target) || Array.isArray(source)) {
|
|
152
|
-
// throw new Error('replaceObjectFields does not support arrays');
|
|
153
|
-
// }
|
|
154
|
-
// // delete keys in target that are not in source
|
|
155
|
-
// for (const key of Object.keys(target)) {
|
|
156
|
-
// if (!(key in source)) {
|
|
157
|
-
// delete target[key];
|
|
158
|
-
// }
|
|
159
|
-
// }
|
|
160
|
-
// // copy keys from source to target
|
|
161
|
-
// for (const key of Object.keys(source)) {
|
|
162
|
-
// target[key] = source[key];
|
|
163
|
-
// }
|
|
164
|
-
// }
|
|
165
|
-
// export function isObject(v: any): boolean {
|
|
166
|
-
// return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
167
|
-
// }
|
|
168
|
-
// export function mergeOriginalFieldsIntoResolvedObject(target: any, source: any) {
|
|
169
|
-
// if (target === source) throw new Error('Cannot merge object with itself');
|
|
170
|
-
// // if source is primitive, throw
|
|
171
|
-
// if (source === null || typeof source !== 'object')
|
|
172
|
-
// throw new Error('Cannot merge non-object source');
|
|
173
|
-
// if (Array.isArray(source)) {
|
|
174
|
-
// throw new Error('Cannot merge arrays');
|
|
175
|
-
// }
|
|
176
|
-
// const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
|
|
177
|
-
// if (nonRefKeys.length === 0) return;
|
|
178
|
-
// // throw if any is array
|
|
179
|
-
// if (Array.isArray(target)) {
|
|
180
|
-
// throw new Error('Cannot merge into arrays');
|
|
181
|
-
// }
|
|
182
|
-
// for (const key of nonRefKeys) {
|
|
183
|
-
// // if target is primitive, throw
|
|
184
|
-
// if (target === null || typeof target !== 'object')
|
|
185
|
-
// throw new Error('Cannot merge into non-object target');
|
|
186
|
-
// target[key] = source[key];
|
|
187
|
-
// }
|
|
188
|
-
// }
|
|
189
|
-
// export function createMergedObject(target: any, source: any) {
|
|
190
|
-
// if (target === source) return; //throw new Error('Cannot merge object with itself');
|
|
191
|
-
// // if source is primitive, throw
|
|
192
|
-
// if (source === null || typeof source !== 'object')
|
|
193
|
-
// throw new Error('Cannot merge non-object source');
|
|
194
|
-
// if (Array.isArray(source)) {
|
|
195
|
-
// throw new Error('Cannot merge arrays');
|
|
196
|
-
// }
|
|
197
|
-
// const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
|
|
198
|
-
// if (nonRefKeys.length === 0) return target;
|
|
199
|
-
// // throw if any is array
|
|
200
|
-
// if (Array.isArray(target)) {
|
|
201
|
-
// throw new Error('Cannot merge into arrays');
|
|
202
|
-
// }
|
|
203
|
-
// if (target === null || typeof target !== 'object') {
|
|
204
|
-
// throw new Error('Cannot merge into non-object target');
|
|
205
|
-
// }
|
|
206
|
-
// const result = { ...target };
|
|
207
|
-
// for (const key of nonRefKeys) {
|
|
208
|
-
// result[key] = source[key];
|
|
209
|
-
// }
|
|
210
|
-
// deepFreeze(result);
|
|
211
|
-
// return result;
|
|
212
|
-
// }
|
|
213
|
-
export function createMergedObjectWithOverridenNonRefProps(target, source) {
|
|
214
|
-
if (target === source)
|
|
215
|
-
return; //throw new Error('Cannot merge object with itself');
|
|
216
|
-
// if source is primitive, throw
|
|
217
|
-
if (source === null || typeof source !== 'object')
|
|
218
|
-
throw new Error('Cannot merge non-object source');
|
|
219
|
-
if (Array.isArray(source)) {
|
|
220
|
-
throw new Error('Cannot merge arrays');
|
|
221
|
-
}
|
|
222
|
-
const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
|
|
223
|
-
if (nonRefKeys.length === 0)
|
|
224
|
-
return shallowClone(target);
|
|
225
|
-
// throw if any is array
|
|
226
|
-
if (Array.isArray(target)) {
|
|
227
|
-
throw new Error('Cannot merge into arrays');
|
|
228
|
-
}
|
|
229
|
-
if (target === null || typeof target !== 'object') {
|
|
230
|
-
throw new Error('Cannot merge into non-object target');
|
|
231
|
-
}
|
|
232
|
-
const result = { ...target }; //deepClone({ ...target });
|
|
233
|
-
for (const key of nonRefKeys) {
|
|
234
|
-
result[key] = source[key];
|
|
235
|
-
}
|
|
236
|
-
// deepFreeze(result);
|
|
237
|
-
return result;
|
|
238
|
-
}
|
|
239
|
-
export function replaceObjectFields(target, source) {
|
|
240
|
-
if (target === source) {
|
|
241
|
-
return;
|
|
242
|
-
// throw new Error('Cannot replace object with itself');
|
|
243
|
-
}
|
|
244
|
-
// if source is primitive, throw
|
|
245
|
-
if (source === null || typeof source !== 'object') {
|
|
246
|
-
throw new Error('Cannot replace with non-object source');
|
|
247
|
-
}
|
|
248
|
-
// if target is primitive, throw
|
|
249
|
-
if (target === null || typeof target !== 'object') {
|
|
250
|
-
throw new Error('Cannot replace non-object target');
|
|
251
|
-
}
|
|
252
|
-
if (Array.isArray(target)) {
|
|
253
|
-
if (!Array.isArray(source)) {
|
|
254
|
-
throw new Error('replaceObjectFields does not support mixing arrays and objects');
|
|
255
|
-
}
|
|
256
|
-
// both are arrays - replace contents
|
|
257
|
-
target.length = 0;
|
|
258
|
-
for (const item of source) {
|
|
259
|
-
target.push(item);
|
|
260
|
-
}
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
// delete keys in target that are not in source
|
|
264
|
-
for (const key of Object.keys(target)) {
|
|
265
|
-
if (!(key in source)) {
|
|
266
|
-
delete target[key];
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
// copy keys from source to target
|
|
270
|
-
for (const key of Object.keys(source)) {
|
|
271
|
-
target[key] = source[key];
|
|
272
|
-
}
|
|
273
|
-
}
|