@common-stack/rollup-vite-utils 7.1.1-alpha.3 → 7.1.1-alpha.32
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/lib/preStartup/configLoader/configLoader.cjs +135 -2
- package/lib/preStartup/configLoader/configLoader.cjs.map +1 -1
- package/lib/preStartup/configLoader/configLoader.js +135 -2
- package/lib/preStartup/configLoader/configLoader.js.map +1 -1
- package/lib/preStartup/configLoader/index.cjs +1 -1
- package/lib/preStartup/configLoader/index.cjs.map +1 -1
- package/lib/preStartup/configLoader/index.js +1 -1
- package/lib/preStartup/configLoader/index.js.map +1 -1
- package/lib/rollup/rollupPluginGenerateJson.cjs +27 -0
- package/lib/rollup/rollupPluginGenerateJson.cjs.map +1 -1
- package/lib/rollup/rollupPluginGenerateJson.d.ts +10 -0
- package/lib/rollup/rollupPluginGenerateJson.js +27 -0
- package/lib/rollup/rollupPluginGenerateJson.js.map +1 -1
- package/lib/tools/codegen/performCopyOperations.cjs +65 -17
- package/lib/tools/codegen/performCopyOperations.cjs.map +1 -1
- package/lib/tools/codegen/performCopyOperations.js +65 -17
- package/lib/tools/codegen/performCopyOperations.js.map +1 -1
- package/lib/tools/codegen/readModules.cjs +40 -2
- package/lib/tools/codegen/readModules.cjs.map +1 -1
- package/lib/tools/codegen/readModules.js +40 -2
- package/lib/tools/codegen/readModules.js.map +1 -1
- package/lib/tools/codegen/setupCommonPackage.cjs +14 -5
- package/lib/tools/codegen/setupCommonPackage.cjs.map +1 -1
- package/lib/tools/codegen/setupCommonPackage.d.ts +1 -1
- package/lib/tools/codegen/setupCommonPackage.js +14 -5
- package/lib/tools/codegen/setupCommonPackage.js.map +1 -1
- package/lib/tools/codegen/templates/common/src/apollo-context.ts.template +1 -16
- package/lib/tools/codegen/templates/common/src/client-context.ts.template +19 -0
- package/lib/tools/codegen/templates/common/src/core/disposable.ts.template +93 -0
- package/lib/tools/codegen/templates/common/src/core/event.test.ts +16 -0
- package/lib/tools/codegen/templates/common/src/core/event.ts.template +326 -0
- package/lib/tools/codegen/templates/common/src/core/index.ts.template +3 -0
- package/lib/tools/codegen/templates/common/src/core/types.ts.template +1 -0
- package/lib/tools/codegen/templates/common/src/index.server.ts.template +2 -1
- package/lib/tools/codegen/templates/common/src/index.ts.template +1 -0
- package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs +11 -3
- package/lib/vite-wrappers/generators/clientLoaderGenerator.cjs.map +1 -1
- package/lib/vite-wrappers/generators/clientLoaderGenerator.js +11 -3
- package/lib/vite-wrappers/generators/clientLoaderGenerator.js.map +1 -1
- package/lib/vite-wrappers/generators/utils/resourceParams.cjs +24 -5
- package/lib/vite-wrappers/generators/utils/resourceParams.cjs.map +1 -1
- package/lib/vite-wrappers/generators/utils/resourceParams.d.ts +10 -4
- package/lib/vite-wrappers/generators/utils/resourceParams.js +24 -5
- package/lib/vite-wrappers/generators/utils/resourceParams.js.map +1 -1
- package/lib/vite-wrappers/json-wrappers.cjs +28 -0
- package/lib/vite-wrappers/json-wrappers.cjs.map +1 -1
- package/lib/vite-wrappers/json-wrappers.js +28 -0
- package/lib/vite-wrappers/json-wrappers.js.map +1 -1
- package/lib/vite-wrappers/wrapperComponent.cjs +1 -1
- package/lib/vite-wrappers/wrapperComponent.cjs.map +1 -1
- package/lib/vite-wrappers/wrapperComponent.js +1 -1
- package/lib/vite-wrappers/wrapperComponent.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
import { Event, Emitter } from './event';
|
|
3
|
+
|
|
4
|
+
export interface Disposable {
|
|
5
|
+
/**
|
|
6
|
+
* Dispose this object.
|
|
7
|
+
*/
|
|
8
|
+
dispose(): void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export namespace Disposable {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
export function is(arg: any): arg is Disposable {
|
|
14
|
+
return !!arg && typeof arg === 'object' && 'dispose' in arg && typeof arg['dispose'] === 'function';
|
|
15
|
+
}
|
|
16
|
+
export function create(func: () => void): Disposable {
|
|
17
|
+
return {
|
|
18
|
+
dispose: func
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export const NULL = create(() => { });
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export class DisposableCollection implements Disposable {
|
|
25
|
+
|
|
26
|
+
protected readonly disposables: Disposable[] = [];
|
|
27
|
+
protected readonly onDisposeEmitter = new Emitter<void>();
|
|
28
|
+
|
|
29
|
+
constructor(...toDispose: Disposable[]) {
|
|
30
|
+
toDispose.forEach(d => this.push(d));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* This event is fired only once
|
|
35
|
+
* on first dispose of not empty collection.
|
|
36
|
+
*/
|
|
37
|
+
get onDispose(): Event<void> {
|
|
38
|
+
return this.onDisposeEmitter.event;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
protected checkDisposed(): void {
|
|
42
|
+
if (this.disposed && !this.disposingElements) {
|
|
43
|
+
this.onDisposeEmitter.fire(undefined);
|
|
44
|
+
this.onDisposeEmitter.dispose();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get disposed(): boolean {
|
|
49
|
+
return this.disposables.length === 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private disposingElements = false;
|
|
53
|
+
dispose(): void {
|
|
54
|
+
if (this.disposed || this.disposingElements) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.disposingElements = true;
|
|
58
|
+
while (!this.disposed) {
|
|
59
|
+
try {
|
|
60
|
+
this.disposables.pop()!.dispose();
|
|
61
|
+
} catch (e) {
|
|
62
|
+
console.error(e);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
this.disposingElements = false;
|
|
66
|
+
this.checkDisposed();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
push(disposable: Disposable): Disposable {
|
|
70
|
+
const disposables = this.disposables;
|
|
71
|
+
disposables.push(disposable);
|
|
72
|
+
const originalDispose = disposable.dispose.bind(disposable);
|
|
73
|
+
const toRemove = Disposable.create(() => {
|
|
74
|
+
const index = disposables.indexOf(disposable);
|
|
75
|
+
if (index !== -1) {
|
|
76
|
+
disposables.splice(index, 1);
|
|
77
|
+
}
|
|
78
|
+
this.checkDisposed();
|
|
79
|
+
});
|
|
80
|
+
disposable.dispose = () => {
|
|
81
|
+
toRemove.dispose();
|
|
82
|
+
originalDispose();
|
|
83
|
+
};
|
|
84
|
+
return toRemove;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
pushAll(disposables: Disposable[]): Disposable[] {
|
|
88
|
+
return disposables.map(disposable =>
|
|
89
|
+
this.push(disposable)
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// import { expect } from 'vitest';
|
|
2
|
+
// import { Emitter } from './event';
|
|
3
|
+
|
|
4
|
+
// describe('Event Objects', () => {
|
|
5
|
+
|
|
6
|
+
// it('Emitter firing should be synchronous', () => {
|
|
7
|
+
// const emitter = new Emitter<undefined>();
|
|
8
|
+
// let counter = 0;
|
|
9
|
+
|
|
10
|
+
// emitter.event(() => counter++);
|
|
11
|
+
// expect(counter).eq(0);
|
|
12
|
+
// emitter.fire(undefined);
|
|
13
|
+
// expect(counter).eq(1);
|
|
14
|
+
// });
|
|
15
|
+
|
|
16
|
+
// });
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
|
|
3
|
+
import { Disposable } from './disposable';
|
|
4
|
+
import { MaybePromise } from './types';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents a typed event.
|
|
8
|
+
*/
|
|
9
|
+
export interface Event<T> {
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param listener The listener function will be call when the event happens.
|
|
14
|
+
* @param thisArgs The 'this' which will be used when calling the event listener.
|
|
15
|
+
* @param disposables An array to which a {{IDisposable}} will be added.
|
|
16
|
+
* @return a disposable to remove the listener again.
|
|
17
|
+
*/
|
|
18
|
+
(listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]): Disposable;
|
|
19
|
+
/**
|
|
20
|
+
* An emitter will print a warning if more listeners are added for this event.
|
|
21
|
+
* The event.maxListeners allows the limit to be modified for this specific event.
|
|
22
|
+
* The value can be set to 0 to indicate an unlimited number of listener.
|
|
23
|
+
*/
|
|
24
|
+
maxListeners: number
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export namespace Event {
|
|
28
|
+
const _disposable = { dispose(): void { } };
|
|
29
|
+
export const None: Event<any> = Object.assign(function (): { dispose(): void } { return _disposable; }, {
|
|
30
|
+
get maxListeners(): number { return 0; },
|
|
31
|
+
set maxListeners(maxListeners: number) { }
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Given an event and a `map` function, returns another event which maps each element
|
|
36
|
+
* through the mapping function.
|
|
37
|
+
*/
|
|
38
|
+
export function map<I, O>(event: Event<I>, mapFunc: (i: I) => O): Event<O> {
|
|
39
|
+
return Object.assign((listener: (e: O) => any, thisArgs?: any, disposables?: Disposable[]) => event(i => listener.call(thisArgs, mapFunc(i)), undefined, disposables), {
|
|
40
|
+
maxListeners: 0,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
type Callback = (...args: any[]) => any;
|
|
46
|
+
class CallbackList implements Iterable<Callback> {
|
|
47
|
+
|
|
48
|
+
private _callbacks: Function[] | undefined;
|
|
49
|
+
private _contexts: any[] | undefined;
|
|
50
|
+
|
|
51
|
+
get length(): number {
|
|
52
|
+
return this._callbacks && this._callbacks.length || 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public add(callback: Function, context: any = undefined, bucket?: Disposable[]): void {
|
|
56
|
+
if (!this._callbacks) {
|
|
57
|
+
this._callbacks = [];
|
|
58
|
+
this._contexts = [];
|
|
59
|
+
}
|
|
60
|
+
this._callbacks.push(callback);
|
|
61
|
+
this._contexts!.push(context);
|
|
62
|
+
|
|
63
|
+
if (Array.isArray(bucket)) {
|
|
64
|
+
bucket.push({ dispose: () => this.remove(callback, context) });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public remove(callback: Function, context: any = undefined): void {
|
|
69
|
+
if (!this._callbacks) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
let foundCallbackWithDifferentContext = false;
|
|
74
|
+
for (let i = 0; i < this._callbacks.length; i++) {
|
|
75
|
+
if (this._callbacks[i] === callback) {
|
|
76
|
+
if (this._contexts![i] === context) {
|
|
77
|
+
// callback & context match => remove it
|
|
78
|
+
this._callbacks.splice(i, 1);
|
|
79
|
+
this._contexts!.splice(i, 1);
|
|
80
|
+
return;
|
|
81
|
+
} else {
|
|
82
|
+
foundCallbackWithDifferentContext = true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (foundCallbackWithDifferentContext) {
|
|
88
|
+
throw new Error('When adding a listener with a context, you should remove it with the same context');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// tslint:disable-next-line:typedef
|
|
93
|
+
public [Symbol.iterator]() {
|
|
94
|
+
if (!this._callbacks) {
|
|
95
|
+
return [][Symbol.iterator]();
|
|
96
|
+
}
|
|
97
|
+
const callbacks = this._callbacks.slice(0);
|
|
98
|
+
const contexts = this._contexts!.slice(0);
|
|
99
|
+
|
|
100
|
+
return callbacks.map((callback, i) =>
|
|
101
|
+
(...args: any[]) => callback.apply(contexts[i], args)
|
|
102
|
+
)[Symbol.iterator]();
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
public invoke(...args: any[]): any[] {
|
|
106
|
+
const ret: any[] = [];
|
|
107
|
+
for (const callback of this) {
|
|
108
|
+
try {
|
|
109
|
+
ret.push(callback(...args));
|
|
110
|
+
} catch (e) {
|
|
111
|
+
console.error(e);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return ret;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public isEmpty(): boolean {
|
|
118
|
+
return !this._callbacks || this._callbacks.length === 0;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
public dispose(): void {
|
|
122
|
+
this._callbacks = undefined;
|
|
123
|
+
this._contexts = undefined;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface EmitterOptions {
|
|
128
|
+
onFirstListenerAdd?: Function;
|
|
129
|
+
onLastListenerRemove?: Function;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export class Emitter<T = any> {
|
|
133
|
+
|
|
134
|
+
private static LEAK_WARNING_THRESHHOLD = 175;
|
|
135
|
+
|
|
136
|
+
private static _noop = function (): void { };
|
|
137
|
+
|
|
138
|
+
private _event: Event<T>;
|
|
139
|
+
private _callbacks: CallbackList | undefined;
|
|
140
|
+
private _disposed = false;
|
|
141
|
+
|
|
142
|
+
private _leakingStacks: Map<string, number> | undefined;
|
|
143
|
+
private _leakWarnCountdown = 0;
|
|
144
|
+
|
|
145
|
+
constructor(
|
|
146
|
+
private _options?: EmitterOptions
|
|
147
|
+
) { }
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* For the public to allow to subscribe
|
|
151
|
+
* to events from this Emitter
|
|
152
|
+
*/
|
|
153
|
+
get event(): Event<T> {
|
|
154
|
+
if (!this._event) {
|
|
155
|
+
this._event = Object.assign((listener: (e: T) => any, thisArgs?: any, disposables?: Disposable[]) => {
|
|
156
|
+
if (!this._callbacks) {
|
|
157
|
+
this._callbacks = new CallbackList();
|
|
158
|
+
}
|
|
159
|
+
if (this._options && this._options.onFirstListenerAdd && this._callbacks.isEmpty()) {
|
|
160
|
+
this._options.onFirstListenerAdd(this);
|
|
161
|
+
}
|
|
162
|
+
this._callbacks.add(listener, thisArgs);
|
|
163
|
+
const removeMaxListenersCheck = this.checkMaxListeners(this._event.maxListeners);
|
|
164
|
+
|
|
165
|
+
const result: Disposable = {
|
|
166
|
+
dispose: () => {
|
|
167
|
+
if (removeMaxListenersCheck) {
|
|
168
|
+
removeMaxListenersCheck();
|
|
169
|
+
}
|
|
170
|
+
result.dispose = Emitter._noop;
|
|
171
|
+
if (!this._disposed) {
|
|
172
|
+
this._callbacks!.remove(listener, thisArgs);
|
|
173
|
+
result.dispose = Emitter._noop;
|
|
174
|
+
if (this._options && this._options.onLastListenerRemove && this._callbacks!.isEmpty()) {
|
|
175
|
+
this._options.onLastListenerRemove(this);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
if (Array.isArray(disposables)) {
|
|
181
|
+
disposables.push(result);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return result;
|
|
185
|
+
}, {
|
|
186
|
+
maxListeners: Emitter.LEAK_WARNING_THRESHHOLD
|
|
187
|
+
}
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
return this._event;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
protected checkMaxListeners(maxListeners: number): (() => void) | undefined {
|
|
194
|
+
if (maxListeners === 0 || !this._callbacks) {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
const listenerCount = this._callbacks.length;
|
|
198
|
+
if (listenerCount <= maxListeners) {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const popStack = this.pushLeakingStack();
|
|
203
|
+
|
|
204
|
+
this._leakWarnCountdown -= 1;
|
|
205
|
+
if (this._leakWarnCountdown <= 0) {
|
|
206
|
+
// only warn on first exceed and then every time the limit
|
|
207
|
+
// is exceeded by 50% again
|
|
208
|
+
this._leakWarnCountdown = maxListeners * 0.5;
|
|
209
|
+
|
|
210
|
+
let topStack: string;
|
|
211
|
+
let topCount = 0;
|
|
212
|
+
this._leakingStacks!.forEach((stackCount, stack) => {
|
|
213
|
+
if (!topStack || topCount < stackCount) {
|
|
214
|
+
topStack = stack;
|
|
215
|
+
topCount = stackCount;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
// eslint-disable-next-line max-len
|
|
220
|
+
console.warn(`Possible Emitter memory leak detected. ${listenerCount} listeners added. Use event.maxListeners to increase the limit (${maxListeners}). MOST frequent listener (${topCount}):`);
|
|
221
|
+
console.warn(topStack!);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return popStack;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
protected pushLeakingStack(): () => void {
|
|
228
|
+
if (!this._leakingStacks) {
|
|
229
|
+
this._leakingStacks = new Map();
|
|
230
|
+
}
|
|
231
|
+
const stack = new Error().stack!.split('\n').slice(3).join('\n');
|
|
232
|
+
const count = (this._leakingStacks.get(stack) || 0);
|
|
233
|
+
this._leakingStacks.set(stack, count + 1);
|
|
234
|
+
return () => this.popLeakingStack(stack);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
protected popLeakingStack(stack: string): void {
|
|
238
|
+
if (!this._leakingStacks) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const count = (this._leakingStacks.get(stack) || 0);
|
|
242
|
+
this._leakingStacks.set(stack, count - 1);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* To be kept private to fire an event to
|
|
247
|
+
* subscribers
|
|
248
|
+
*/
|
|
249
|
+
fire(event: T): any {
|
|
250
|
+
if (this._callbacks) {
|
|
251
|
+
this._callbacks.invoke(event);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Process each listener one by one.
|
|
257
|
+
* Return `false` to stop iterating over the listeners, `true` to continue.
|
|
258
|
+
*/
|
|
259
|
+
async sequence(processor: (listener: (e: T) => any) => MaybePromise<boolean>): Promise<void> {
|
|
260
|
+
if (this._callbacks) {
|
|
261
|
+
for (const listener of this._callbacks) {
|
|
262
|
+
if (!await processor(listener)) {
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
dispose(): void {
|
|
270
|
+
if (this._leakingStacks) {
|
|
271
|
+
this._leakingStacks.clear();
|
|
272
|
+
this._leakingStacks = undefined;
|
|
273
|
+
}
|
|
274
|
+
if (this._callbacks) {
|
|
275
|
+
this._callbacks.dispose();
|
|
276
|
+
this._callbacks = undefined;
|
|
277
|
+
}
|
|
278
|
+
this._disposed = true;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
export interface WaitUntilEvent {
|
|
283
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
284
|
+
/**
|
|
285
|
+
* Allows to pause the event loop until the provided thenable resolved.
|
|
286
|
+
*
|
|
287
|
+
* *Note:* It can only be called during event dispatch and not in an asynchronous manner
|
|
288
|
+
*
|
|
289
|
+
* @param thenable A thenable that delays execution.
|
|
290
|
+
*/
|
|
291
|
+
waitUntil(thenable: Promise<any>): void;
|
|
292
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
293
|
+
}
|
|
294
|
+
export namespace WaitUntilEvent {
|
|
295
|
+
export async function fire<T extends WaitUntilEvent>(
|
|
296
|
+
emitter: Emitter<T>,
|
|
297
|
+
event: Pick<T, Exclude<keyof T, 'waitUntil'>>,
|
|
298
|
+
timeout: number | undefined = undefined
|
|
299
|
+
): Promise<void> {
|
|
300
|
+
const waitables: Promise<void>[] = [];
|
|
301
|
+
const asyncEvent = Object.assign(event, {
|
|
302
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
303
|
+
waitUntil: (thenable: Promise<any>) => {
|
|
304
|
+
if (Object.isFrozen(waitables)) {
|
|
305
|
+
throw new Error('waitUntil cannot be called asynchronously.');
|
|
306
|
+
}
|
|
307
|
+
waitables.push(thenable);
|
|
308
|
+
}
|
|
309
|
+
}) as T;
|
|
310
|
+
try {
|
|
311
|
+
emitter.fire(asyncEvent);
|
|
312
|
+
// Asynchronous calls to `waitUntil` should fail.
|
|
313
|
+
Object.freeze(waitables);
|
|
314
|
+
} finally {
|
|
315
|
+
delete asyncEvent['waitUntil'];
|
|
316
|
+
}
|
|
317
|
+
if (!waitables.length) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
if (timeout !== undefined) {
|
|
321
|
+
await Promise.race([Promise.all(waitables), new Promise(resolve => setTimeout(resolve, timeout))]);
|
|
322
|
+
} else {
|
|
323
|
+
await Promise.all(waitables);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type MaybePromise<T> = T | PromiseLike<T>;
|
|
@@ -107,17 +107,25 @@ function generateClientLoaderExports(options, hasMiddleware, hasQueries) {
|
|
|
107
107
|
clientLoaderExport += `
|
|
108
108
|
export async function clientLoader(params) {
|
|
109
109
|
${hasMiddleware ? 'const middlewareStack = [];' : ''}
|
|
110
|
-
${options.configurations?.length > 0 ||
|
|
110
|
+
${options.configurations?.length > 0 ||
|
|
111
|
+
options.authority?.length > 0 ||
|
|
112
|
+
options.extraPermissions?.length > 0 ||
|
|
113
|
+
options.extraParams?.resourceParams
|
|
111
114
|
? 'middlewareStack.push({ name: "lifecycleStatus", func: lifecycleStatusMiddleware });\n'
|
|
112
115
|
: ''}
|
|
113
116
|
${options.authority?.length > 0 || options.extraPermissions?.length > 0 ? 'middlewareStack.push({ name: "permissions", func: permissionMiddleware });\n' : ''}
|
|
114
|
-
${(options.configurations ?? []).length > 0
|
|
117
|
+
${(options.configurations ?? []).length > 0 || options.extraParams?.resourceParams
|
|
118
|
+
? 'middlewareStack.push({ name: "configurations", func: configurationMiddleware });\n'
|
|
119
|
+
: ''}
|
|
115
120
|
${(options.clientMiddlewares ?? [])
|
|
116
121
|
?.map((_, index) => `middlewareStack.push({ name: "middleware${index + 1}" , func: clientMiddleware${index + 1} });\n`)
|
|
117
122
|
.join('')}
|
|
118
123
|
|
|
119
124
|
// Create resourceParams from extraParams if available, with dynamic resolution of path parameters.
|
|
120
|
-
const resourceParams = ${options.configurations?.length > 0 ||
|
|
125
|
+
const resourceParams = ${options.configurations?.length > 0 ||
|
|
126
|
+
options.authority?.length > 0 ||
|
|
127
|
+
options.extraPermissions?.length > 0 ||
|
|
128
|
+
options.extraParams?.resourceParams
|
|
121
129
|
? `
|
|
122
130
|
resolveResourceParamsPlaceholders(
|
|
123
131
|
${JSON.stringify(options.extraParams?.resourceParams ?? {})},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientLoaderGenerator.cjs","sources":["../../../src/vite-wrappers/generators/clientLoaderGenerator.ts"],"sourcesContent":[null],"names":["camelCase","generateHasPermission"],"mappings":"4GAIA;;;;;AAKG;MACU,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAAoC,KAAI;AAClF,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,QAAA,OAAO,EAAE,CAAC;KACb;IAED,OAAO,CAAA;;;;;;;AAOe,wBAAA,EAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAI;AAC1E,QAAA,MAAM,cAAc,GAChB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC;cAC9D,CAAiD,8CAAA,EAAA,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;cAC1F,KAAK,CAAC;AAChB,QAAA,OAAO,CAAG,EAAA,GAAG,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,cAAc,CAAG,EAAA,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA,CAAE,CAAC;KACnG,EAAE,GAAG,CAAC,CAAA;;;;AAIwB,qCAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9C,GAAG,CAAC,CAAC,GAAG,KAAKA,kBAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAG,CAAC,CAAA;;;;;;AAM3B,QAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjB,SAAA,GAAG,CACA,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAA;;;yBAGZ,QAAQ,CAAA;sCACK,QAAQ,CAAA;;;;;;;;;;oCAUV,KAAK,CAAA;;UAE/B,CACG;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;AAoBX,QAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjB,SAAA,GAAG,CACA,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAA;mCACF,KAAK,CAAA;;;;;6BAKX,QAAQ,CAAA;0CACK,QAAQ,CAAA;;;;SAIzC,CACI;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;;;;;;;;CAQpB,CAAC;AACF,EAAE;AAEF;;;;;;;AAOG;SACa,2BAA2B,CACvC,OAAwB,EACxB,aAAsB,EACtB,UAAmB,EAAA;IAEnB,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAA,kBAAkB,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAEpD,IAAA,kBAAkB,IAAI,CAAA;;AAEtB,EAAA,EAAA,aAAa,GAAG,6BAA6B,GAAG,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"clientLoaderGenerator.cjs","sources":["../../../src/vite-wrappers/generators/clientLoaderGenerator.ts"],"sourcesContent":[null],"names":["camelCase","generateHasPermission"],"mappings":"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"}
|
|
@@ -107,17 +107,25 @@ function generateClientLoaderExports(options, hasMiddleware, hasQueries) {
|
|
|
107
107
|
clientLoaderExport += `
|
|
108
108
|
export async function clientLoader(params) {
|
|
109
109
|
${hasMiddleware ? 'const middlewareStack = [];' : ''}
|
|
110
|
-
${options.configurations?.length > 0 ||
|
|
110
|
+
${options.configurations?.length > 0 ||
|
|
111
|
+
options.authority?.length > 0 ||
|
|
112
|
+
options.extraPermissions?.length > 0 ||
|
|
113
|
+
options.extraParams?.resourceParams
|
|
111
114
|
? 'middlewareStack.push({ name: "lifecycleStatus", func: lifecycleStatusMiddleware });\n'
|
|
112
115
|
: ''}
|
|
113
116
|
${options.authority?.length > 0 || options.extraPermissions?.length > 0 ? 'middlewareStack.push({ name: "permissions", func: permissionMiddleware });\n' : ''}
|
|
114
|
-
${(options.configurations ?? []).length > 0
|
|
117
|
+
${(options.configurations ?? []).length > 0 || options.extraParams?.resourceParams
|
|
118
|
+
? 'middlewareStack.push({ name: "configurations", func: configurationMiddleware });\n'
|
|
119
|
+
: ''}
|
|
115
120
|
${(options.clientMiddlewares ?? [])
|
|
116
121
|
?.map((_, index) => `middlewareStack.push({ name: "middleware${index + 1}" , func: clientMiddleware${index + 1} });\n`)
|
|
117
122
|
.join('')}
|
|
118
123
|
|
|
119
124
|
// Create resourceParams from extraParams if available, with dynamic resolution of path parameters.
|
|
120
|
-
const resourceParams = ${options.configurations?.length > 0 ||
|
|
125
|
+
const resourceParams = ${options.configurations?.length > 0 ||
|
|
126
|
+
options.authority?.length > 0 ||
|
|
127
|
+
options.extraPermissions?.length > 0 ||
|
|
128
|
+
options.extraParams?.resourceParams
|
|
121
129
|
? `
|
|
122
130
|
resolveResourceParamsPlaceholders(
|
|
123
131
|
${JSON.stringify(options.extraParams?.resourceParams ?? {})},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientLoaderGenerator.js","sources":["../../../src/vite-wrappers/generators/clientLoaderGenerator.ts"],"sourcesContent":[null],"names":[],"mappings":"iGAIA;;;;;AAKG;MACU,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAAoC,KAAI;AAClF,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,QAAA,OAAO,EAAE,CAAC;KACb;IAED,OAAO,CAAA;;;;;;;AAOe,wBAAA,EAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAI;AAC1E,QAAA,MAAM,cAAc,GAChB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC;cAC9D,CAAiD,8CAAA,EAAA,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;cAC1F,KAAK,CAAC;AAChB,QAAA,OAAO,CAAG,EAAA,GAAG,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,cAAc,CAAG,EAAA,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA,CAAE,CAAC;KACnG,EAAE,GAAG,CAAC,CAAA;;;;AAIwB,qCAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9C,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAG,CAAC,CAAA;;;;;;AAM3B,QAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjB,SAAA,GAAG,CACA,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAA;;;yBAGZ,QAAQ,CAAA;sCACK,QAAQ,CAAA;;;;;;;;;;oCAUV,KAAK,CAAA;;UAE/B,CACG;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;AAoBX,QAAA,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjB,SAAA,GAAG,CACA,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAA;mCACF,KAAK,CAAA;;;;;6BAKX,QAAQ,CAAA;0CACK,QAAQ,CAAA;;;;SAIzC,CACI;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;;;;;;;;CAQpB,CAAC;AACF,EAAE;AAEF;;;;;;;AAOG;SACa,2BAA2B,CACvC,OAAwB,EACxB,aAAsB,EACtB,UAAmB,EAAA;IAEnB,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAA,kBAAkB,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAEpD,IAAA,kBAAkB,IAAI,CAAA;;AAEtB,EAAA,EAAA,aAAa,GAAG,6BAA6B,GAAG,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"clientLoaderGenerator.js","sources":["../../../src/vite-wrappers/generators/clientLoaderGenerator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,41 @@
|
|
|
1
1
|
'use strict';/* eslint-disable default-param-last */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
3
|
/**
|
|
4
|
-
* Recursively process the resourceParams object and replace any placeholder values starting with `$params.`.
|
|
4
|
+
* Recursively process the resourceParams object(s) and replace any placeholder values starting with `$params.`.
|
|
5
5
|
* If the `path` is empty or matches `IConfigCollectionName.Organization`, ensure it provides a default query
|
|
6
6
|
* with `{ name: $params.orgName }`, but only if `query` is not already defined.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* This function now supports both single resourceParams objects and arrays of resourceParams objects.
|
|
9
|
+
* It also supports extensionName and schemaId for dataLoader configuration and permissions.
|
|
10
|
+
* A default schemaId will always be added if none is provided (defaults to 'configuration').
|
|
11
|
+
*
|
|
12
|
+
* @param resourceParams - The resourceParams object or array containing placeholders.
|
|
9
13
|
* @param params - The params object from which values are extracted.
|
|
10
14
|
* @param defaultPath - Optional default path to be assigned when `path` is empty or a specific condition is met.
|
|
11
15
|
* @param defaultFragment - Optional default fragment to be assigned when `fragment` is missing.
|
|
12
|
-
* @
|
|
16
|
+
* @param defaultExtensionName - Optional default extension name for dataLoader context.
|
|
17
|
+
* @param defaultSchemaId - Optional default schema ID for configuration and preferences. Defaults to 'configuration' if not provided.
|
|
18
|
+
* @returns The processed resourceParams object(s) with replaced values.
|
|
13
19
|
*/
|
|
14
|
-
function resolveResourceParamsPlaceholders(resourceParams = {}, params, defaultPath = 'organizations', defaultFragment = 'settings') {
|
|
20
|
+
function resolveResourceParamsPlaceholders(resourceParams = {}, params, defaultPath = 'organizations', defaultFragment = 'settings', defaultSchemaId = 'configuration', defaultExtensionName) {
|
|
21
|
+
// Handle array of resourceParams
|
|
22
|
+
if (Array.isArray(resourceParams)) {
|
|
23
|
+
return resourceParams.map((param) => resolveResourceParamsPlaceholders(param, params, defaultPath, defaultFragment, defaultSchemaId, defaultExtensionName));
|
|
24
|
+
}
|
|
15
25
|
const resolvedParams = {};
|
|
16
26
|
if (!resourceParams || typeof resourceParams !== 'object') {
|
|
17
27
|
return resolvedParams;
|
|
18
28
|
}
|
|
19
29
|
// Recursively resolve the object and handle placeholders
|
|
20
30
|
Object.entries(resourceParams).forEach(([key, value]) => {
|
|
31
|
+
// Handle extensionName and schemaId with placeholder resolution
|
|
21
32
|
if (typeof value === 'string' && value.startsWith('$params.')) {
|
|
22
33
|
const paramKey = value.split('$params.')[1];
|
|
23
34
|
resolvedParams[key] = params[paramKey];
|
|
24
35
|
}
|
|
25
36
|
else if (typeof value === 'object' && value !== null && key !== 'query') {
|
|
26
37
|
// Only recurse if we're not inside a 'query' to avoid nesting issues
|
|
27
|
-
resolvedParams[key] = resolveResourceParamsPlaceholders(value, params, defaultPath, defaultFragment);
|
|
38
|
+
resolvedParams[key] = resolveResourceParamsPlaceholders(value, params, defaultPath, defaultFragment, defaultSchemaId, defaultExtensionName);
|
|
28
39
|
}
|
|
29
40
|
else {
|
|
30
41
|
resolvedParams[key] = value;
|
|
@@ -54,5 +65,13 @@ function resolveResourceParamsPlaceholders(resourceParams = {}, params, defaultP
|
|
|
54
65
|
if (!resourceParams.fragment && !resolvedParams.fragment) {
|
|
55
66
|
resolvedParams.fragment = defaultFragment;
|
|
56
67
|
}
|
|
68
|
+
// Add extensionName only if it doesn't exist at the root level and a default is provided
|
|
69
|
+
if (!resourceParams.extensionName && !resolvedParams.extensionName && defaultExtensionName) {
|
|
70
|
+
resolvedParams.extensionName = defaultExtensionName;
|
|
71
|
+
}
|
|
72
|
+
// Add schemaId - use provided default or fallback to 'configuration' as default
|
|
73
|
+
if (!resourceParams.schemaId && !resolvedParams.schemaId) {
|
|
74
|
+
resolvedParams.schemaId = defaultSchemaId;
|
|
75
|
+
}
|
|
57
76
|
return resolvedParams;
|
|
58
77
|
}exports.resolveResourceParamsPlaceholders=resolveResourceParamsPlaceholders;//# sourceMappingURL=resourceParams.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceParams.cjs","sources":["../../../../src/vite-wrappers/generators/utils/resourceParams.ts"],"sourcesContent":[null],"names":[],"mappings":"aAAA;AACA;
|
|
1
|
+
{"version":3,"file":"resourceParams.cjs","sources":["../../../../src/vite-wrappers/generators/utils/resourceParams.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Recursively process the resourceParams object and replace any placeholder values starting with `$params.`.
|
|
2
|
+
* Recursively process the resourceParams object(s) and replace any placeholder values starting with `$params.`.
|
|
3
3
|
* If the `path` is empty or matches `IConfigCollectionName.Organization`, ensure it provides a default query
|
|
4
4
|
* with `{ name: $params.orgName }`, but only if `query` is not already defined.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* This function now supports both single resourceParams objects and arrays of resourceParams objects.
|
|
7
|
+
* It also supports extensionName and schemaId for dataLoader configuration and permissions.
|
|
8
|
+
* A default schemaId will always be added if none is provided (defaults to 'configuration').
|
|
9
|
+
*
|
|
10
|
+
* @param resourceParams - The resourceParams object or array containing placeholders.
|
|
7
11
|
* @param params - The params object from which values are extracted.
|
|
8
12
|
* @param defaultPath - Optional default path to be assigned when `path` is empty or a specific condition is met.
|
|
9
13
|
* @param defaultFragment - Optional default fragment to be assigned when `fragment` is missing.
|
|
10
|
-
* @
|
|
14
|
+
* @param defaultExtensionName - Optional default extension name for dataLoader context.
|
|
15
|
+
* @param defaultSchemaId - Optional default schema ID for configuration and preferences. Defaults to 'configuration' if not provided.
|
|
16
|
+
* @returns The processed resourceParams object(s) with replaced values.
|
|
11
17
|
*/
|
|
12
|
-
export declare function resolveResourceParamsPlaceholders(resourceParams: Record<string, any
|
|
18
|
+
export declare function resolveResourceParamsPlaceholders(resourceParams: Record<string, any> | Record<string, any>[], params: Record<string, any>, defaultPath?: string, defaultFragment?: string, defaultSchemaId?: string, defaultExtensionName?: string): Record<string, any> | Record<string, any>[];
|