mirror of
https://github.com/denoland/deno.git
synced 2024-10-29 08:58:01 -04:00
b40086fd7d
This commit changes "include_js_files!" macro from "deno_core" in a way that "dir" option doesn't cause specifiers to be rewritten to include it. Example: ``` include_js_files! { dir "js", "hello.js", } ``` The above definition required embedders to use: `import ... from "internal:<ext_name>/js/hello.js"`. But with this change, the "js" directory in which the files are stored is an implementation detail, which for embedders results in: `import ... from "internal:<ext_name>/hello.js"`. The directory the files are stored in, is an implementation detail and in some cases might result in a significant size difference for the snapshot. As an example, in "deno_node" extension, we store the source code in "polyfills" directory; which resulted in each specifier to look like "internal:deno_node/polyfills/<module_name>", but with this change it's "internal:deno_node/<module_name>". Given that "deno_node" has over 100 files, many of them having several import specifiers to the same extension, this change removes 10 characters from each import specifier.
69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
|
|
|
import { notImplemented } from "internal:deno_node/_utils.ts";
|
|
|
|
/** A Worker object contains all public information and method about a worker.
|
|
* In the primary it can be obtained using cluster.workers. In a worker it can
|
|
* be obtained using cluster.worker.
|
|
*/
|
|
export class Worker {
|
|
constructor() {
|
|
notImplemented("cluster.Worker.prototype.constructor");
|
|
}
|
|
}
|
|
/** Calls .disconnect() on each worker in cluster.workers. */
|
|
export function disconnected() {
|
|
notImplemented("cluster.disconnected");
|
|
}
|
|
/** Spawn a new worker process. */
|
|
export function fork() {
|
|
notImplemented("cluster.fork");
|
|
}
|
|
/** True if the process is a primary. This is determined by
|
|
* the process.env.NODE_UNIQUE_ID. If process.env.NODE_UNIQUE_ID is undefined,
|
|
* then isPrimary is true. */
|
|
export const isPrimary = undefined;
|
|
/** True if the process is not a primary (it is the negation of
|
|
* cluster.isPrimary). */
|
|
export const isWorker = undefined;
|
|
/** Deprecated alias for cluster.isPrimary. details. */
|
|
export const isMaster = isPrimary;
|
|
/** The scheduling policy, either cluster.SCHED_RR for round-robin or
|
|
* cluster.SCHED_NONE to leave it to the operating system. This is a global
|
|
* setting and effectively frozen once either the first worker is spawned, or
|
|
* .setupPrimary() is called, whichever comes first. */
|
|
export const schedulingPolicy = undefined;
|
|
/** The settings object */
|
|
export const settings = undefined;
|
|
/** Deprecated alias for .setupPrimary(). */
|
|
export function setupMaster() {
|
|
notImplemented("cluster.setupMaster");
|
|
}
|
|
/** setupPrimary is used to change the default 'fork' behavior. Once called,
|
|
* the settings will be present in cluster.settings. */
|
|
export function setupPrimary() {
|
|
notImplemented("cluster.setupPrimary");
|
|
}
|
|
/** A reference to the current worker object. Not available in the primary
|
|
* process. */
|
|
export const worker = undefined;
|
|
/** A hash that stores the active worker objects, keyed by id field. Makes it
|
|
* easy to loop through all the workers. It is only available in the primary
|
|
* process. */
|
|
export const workers = undefined;
|
|
|
|
export default {
|
|
Worker,
|
|
disconnected,
|
|
fork,
|
|
isPrimary,
|
|
isWorker,
|
|
isMaster,
|
|
schedulingPolicy,
|
|
settings,
|
|
setupMaster,
|
|
setupPrimary,
|
|
worker,
|
|
workers,
|
|
};
|