socket-function 1.0.0 → 1.0.1
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/index.d.ts +110 -0
- package/package.json +1 -1
- package/require/RequireController.d.ts +106 -0
- package/require/RequireController.ts +1 -1
package/index.d.ts
CHANGED
|
@@ -191,6 +191,116 @@ declare module "socket-function/require/CSSShim" {
|
|
|
191
191
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
+
declare module "socket-function/require/RequireController" {
|
|
195
|
+
/// <reference path="../../typenode/index.d.ts" />
|
|
196
|
+
/// <reference types="node" />
|
|
197
|
+
declare global {
|
|
198
|
+
namespace NodeJS {
|
|
199
|
+
interface Module {
|
|
200
|
+
/** Indicates the module is allowed clientside.
|
|
201
|
+
* NOTE: Set with `module.allowclient = true`. HOWEVER, access via getIsAllowClient, which will check
|
|
202
|
+
*/
|
|
203
|
+
allowclient?: boolean;
|
|
204
|
+
/** Causes the module to not preload, requiring `await import()` for it to load correctly
|
|
205
|
+
* - Shouldn't be set recursively, otherwise nested packages will break.
|
|
206
|
+
*/
|
|
207
|
+
lazyload?: boolean;
|
|
208
|
+
/** Indicates the module is definitely not allowed clientside */
|
|
209
|
+
serveronly?: boolean;
|
|
210
|
+
/** Used internally by RequireController */
|
|
211
|
+
requireControllerSeqNum?: number;
|
|
212
|
+
evalStartTime?: number;
|
|
213
|
+
evalEndTime?: number;
|
|
214
|
+
/** (Presently only called by require.js)
|
|
215
|
+
* Called on require calls, to allow providers to create custom exports depending on the caller.
|
|
216
|
+
* - Mostly used to allow functions to know the calling module.
|
|
217
|
+
*/
|
|
218
|
+
remapExports?: (exports: {
|
|
219
|
+
[key: string]: unknown;
|
|
220
|
+
}, callerModule: NodeJS.Module) => {
|
|
221
|
+
[key: string]: unknown;
|
|
222
|
+
};
|
|
223
|
+
/** Only set if clientside (and allowed clientside) */
|
|
224
|
+
source?: string;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
interface Window {
|
|
228
|
+
clientsideBootTime: number;
|
|
229
|
+
}
|
|
230
|
+
var suppressUnexpectedModuleWarning: number | undefined;
|
|
231
|
+
}
|
|
232
|
+
/** Imports it, serverside, delayed. For dynamic imports, which we need to include once, but don't want to include
|
|
233
|
+
* immediately (due to cyclic issues), and isn't included initially.
|
|
234
|
+
*/
|
|
235
|
+
export declare function lazyImport(getModule: () => Promise<unknown>): void;
|
|
236
|
+
declare const requireSeqNumProcessId: string;
|
|
237
|
+
declare function injectHTMLBeforeStartup(text: string | (() => Promise<string>)): void;
|
|
238
|
+
declare function addStaticRoot(root: string): void;
|
|
239
|
+
type GetModulesResult = ReturnType<RequireControllerBase["getModules"]> extends Promise<infer T> ? T : never;
|
|
240
|
+
export type GetModulesArgs = Parameters<RequireControllerBase["getModules"]>;
|
|
241
|
+
declare let mapGetModules: {
|
|
242
|
+
remap(result: GetModulesResult, args: GetModulesArgs): Promise<GetModulesResult>;
|
|
243
|
+
}[];
|
|
244
|
+
declare function addMapGetModules(remap: typeof mapGetModules[number]["remap"]): void;
|
|
245
|
+
declare class RequireControllerBase {
|
|
246
|
+
rootResolvePath: string;
|
|
247
|
+
requireHTML(config?: {
|
|
248
|
+
requireCalls?: string[];
|
|
249
|
+
cacheTime?: number;
|
|
250
|
+
}): Promise<Buffer>;
|
|
251
|
+
getModules(pathRequests: string[], alreadyHave?: {
|
|
252
|
+
requireSeqNumProcessId: string;
|
|
253
|
+
seqNumRanges: {
|
|
254
|
+
s: number;
|
|
255
|
+
e?: number;
|
|
256
|
+
}[];
|
|
257
|
+
}, config?: {}): Promise<{
|
|
258
|
+
requestsResolvedPaths: string[];
|
|
259
|
+
modules: {
|
|
260
|
+
[resolvedPath: string]: SerializedModule;
|
|
261
|
+
};
|
|
262
|
+
requireSeqNumProcessId: string;
|
|
263
|
+
}>;
|
|
264
|
+
}
|
|
265
|
+
export declare function getIsAllowClient(module: NodeJS.Module): boolean | undefined;
|
|
266
|
+
type ClientRemapCallback = (args: GetModulesArgs) => Promise<GetModulesArgs>;
|
|
267
|
+
declare global {
|
|
268
|
+
/** Must be set clientside BEFORE requests are made (so you likely want to use RequireController.addMapGetModules
|
|
269
|
+
* to inject code that will use this) */
|
|
270
|
+
var remapImportRequestsClientside: undefined | ClientRemapCallback[];
|
|
271
|
+
}
|
|
272
|
+
/** @deprecated, not needed, as this defaults to ".", which is a lot easier to reason about anyways. */
|
|
273
|
+
export declare function setRequireBootRequire(dir: string): void;
|
|
274
|
+
export declare function allowAllNodeModules(): void;
|
|
275
|
+
export declare const RequireController: import("../SocketFunctionTypes").SocketRegistered<{
|
|
276
|
+
rootResolvePath: "Function has implementation but is not exposed in the SocketFunction.register call";
|
|
277
|
+
requireHTML: (config?: {
|
|
278
|
+
requireCalls?: string[];
|
|
279
|
+
cacheTime?: number;
|
|
280
|
+
}) => Promise<Buffer>;
|
|
281
|
+
getModules: (pathRequests: string[], alreadyHave?: {
|
|
282
|
+
requireSeqNumProcessId: string;
|
|
283
|
+
seqNumRanges: {
|
|
284
|
+
s: number;
|
|
285
|
+
e?: number;
|
|
286
|
+
}[];
|
|
287
|
+
}, config?: {}) => Promise<{
|
|
288
|
+
requestsResolvedPaths: string[];
|
|
289
|
+
modules: {
|
|
290
|
+
[resolvedPath: string]: SerializedModule;
|
|
291
|
+
};
|
|
292
|
+
requireSeqNumProcessId: string;
|
|
293
|
+
}>;
|
|
294
|
+
}> & {
|
|
295
|
+
injectHTMLBeforeStartup: typeof injectHTMLBeforeStartup;
|
|
296
|
+
addMapGetModules: typeof addMapGetModules;
|
|
297
|
+
addStaticRoot: typeof addStaticRoot;
|
|
298
|
+
allowAllNodeModules: typeof allowAllNodeModules;
|
|
299
|
+
};
|
|
300
|
+
export {};
|
|
301
|
+
|
|
302
|
+
}
|
|
303
|
+
|
|
194
304
|
declare module "socket-function/require/compileFlags" {
|
|
195
305
|
/// <reference path="RequireController.d.ts" />
|
|
196
306
|
/// <reference types="node" />
|
package/package.json
CHANGED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/// <reference path="../../typenode/index.d.ts" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
declare global {
|
|
4
|
+
namespace NodeJS {
|
|
5
|
+
interface Module {
|
|
6
|
+
/** Indicates the module is allowed clientside.
|
|
7
|
+
* NOTE: Set with `module.allowclient = true`. HOWEVER, access via getIsAllowClient, which will check
|
|
8
|
+
*/
|
|
9
|
+
allowclient?: boolean;
|
|
10
|
+
/** Causes the module to not preload, requiring `await import()` for it to load correctly
|
|
11
|
+
* - Shouldn't be set recursively, otherwise nested packages will break.
|
|
12
|
+
*/
|
|
13
|
+
lazyload?: boolean;
|
|
14
|
+
/** Indicates the module is definitely not allowed clientside */
|
|
15
|
+
serveronly?: boolean;
|
|
16
|
+
/** Used internally by RequireController */
|
|
17
|
+
requireControllerSeqNum?: number;
|
|
18
|
+
evalStartTime?: number;
|
|
19
|
+
evalEndTime?: number;
|
|
20
|
+
/** (Presently only called by require.js)
|
|
21
|
+
* Called on require calls, to allow providers to create custom exports depending on the caller.
|
|
22
|
+
* - Mostly used to allow functions to know the calling module.
|
|
23
|
+
*/
|
|
24
|
+
remapExports?: (exports: {
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}, callerModule: NodeJS.Module) => {
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
};
|
|
29
|
+
/** Only set if clientside (and allowed clientside) */
|
|
30
|
+
source?: string;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
interface Window {
|
|
34
|
+
clientsideBootTime: number;
|
|
35
|
+
}
|
|
36
|
+
var suppressUnexpectedModuleWarning: number | undefined;
|
|
37
|
+
}
|
|
38
|
+
/** Imports it, serverside, delayed. For dynamic imports, which we need to include once, but don't want to include
|
|
39
|
+
* immediately (due to cyclic issues), and isn't included initially.
|
|
40
|
+
*/
|
|
41
|
+
export declare function lazyImport(getModule: () => Promise<unknown>): void;
|
|
42
|
+
declare const requireSeqNumProcessId: string;
|
|
43
|
+
declare function injectHTMLBeforeStartup(text: string | (() => Promise<string>)): void;
|
|
44
|
+
declare function addStaticRoot(root: string): void;
|
|
45
|
+
type GetModulesResult = ReturnType<RequireControllerBase["getModules"]> extends Promise<infer T> ? T : never;
|
|
46
|
+
export type GetModulesArgs = Parameters<RequireControllerBase["getModules"]>;
|
|
47
|
+
declare let mapGetModules: {
|
|
48
|
+
remap(result: GetModulesResult, args: GetModulesArgs): Promise<GetModulesResult>;
|
|
49
|
+
}[];
|
|
50
|
+
declare function addMapGetModules(remap: typeof mapGetModules[number]["remap"]): void;
|
|
51
|
+
declare class RequireControllerBase {
|
|
52
|
+
rootResolvePath: string;
|
|
53
|
+
requireHTML(config?: {
|
|
54
|
+
requireCalls?: string[];
|
|
55
|
+
cacheTime?: number;
|
|
56
|
+
}): Promise<Buffer>;
|
|
57
|
+
getModules(pathRequests: string[], alreadyHave?: {
|
|
58
|
+
requireSeqNumProcessId: string;
|
|
59
|
+
seqNumRanges: {
|
|
60
|
+
s: number;
|
|
61
|
+
e?: number;
|
|
62
|
+
}[];
|
|
63
|
+
}, config?: {}): Promise<{
|
|
64
|
+
requestsResolvedPaths: string[];
|
|
65
|
+
modules: {
|
|
66
|
+
[resolvedPath: string]: SerializedModule;
|
|
67
|
+
};
|
|
68
|
+
requireSeqNumProcessId: string;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
export declare function getIsAllowClient(module: NodeJS.Module): boolean | undefined;
|
|
72
|
+
type ClientRemapCallback = (args: GetModulesArgs) => Promise<GetModulesArgs>;
|
|
73
|
+
declare global {
|
|
74
|
+
/** Must be set clientside BEFORE requests are made (so you likely want to use RequireController.addMapGetModules
|
|
75
|
+
* to inject code that will use this) */
|
|
76
|
+
var remapImportRequestsClientside: undefined | ClientRemapCallback[];
|
|
77
|
+
}
|
|
78
|
+
/** @deprecated, not needed, as this defaults to ".", which is a lot easier to reason about anyways. */
|
|
79
|
+
export declare function setRequireBootRequire(dir: string): void;
|
|
80
|
+
export declare function allowAllNodeModules(): void;
|
|
81
|
+
export declare const RequireController: import("../SocketFunctionTypes").SocketRegistered<{
|
|
82
|
+
rootResolvePath: "Function has implementation but is not exposed in the SocketFunction.register call";
|
|
83
|
+
requireHTML: (config?: {
|
|
84
|
+
requireCalls?: string[];
|
|
85
|
+
cacheTime?: number;
|
|
86
|
+
}) => Promise<Buffer>;
|
|
87
|
+
getModules: (pathRequests: string[], alreadyHave?: {
|
|
88
|
+
requireSeqNumProcessId: string;
|
|
89
|
+
seqNumRanges: {
|
|
90
|
+
s: number;
|
|
91
|
+
e?: number;
|
|
92
|
+
}[];
|
|
93
|
+
}, config?: {}) => Promise<{
|
|
94
|
+
requestsResolvedPaths: string[];
|
|
95
|
+
modules: {
|
|
96
|
+
[resolvedPath: string]: SerializedModule;
|
|
97
|
+
};
|
|
98
|
+
requireSeqNumProcessId: string;
|
|
99
|
+
}>;
|
|
100
|
+
}> & {
|
|
101
|
+
injectHTMLBeforeStartup: typeof injectHTMLBeforeStartup;
|
|
102
|
+
addMapGetModules: typeof addMapGetModules;
|
|
103
|
+
addStaticRoot: typeof addStaticRoot;
|
|
104
|
+
allowAllNodeModules: typeof allowAllNodeModules;
|
|
105
|
+
};
|
|
106
|
+
export {};
|
|
@@ -115,7 +115,7 @@ class RequireControllerBase {
|
|
|
115
115
|
public async requireHTML(config?: {
|
|
116
116
|
requireCalls?: string[];
|
|
117
117
|
cacheTime?: number;
|
|
118
|
-
}) {
|
|
118
|
+
}): Promise<Buffer> {
|
|
119
119
|
let { requireCalls, cacheTime } = config || {};
|
|
120
120
|
let httpRequest = getCurrentHTTPRequest();
|
|
121
121
|
let headers: Record<string, string> = {
|