1 |
- {"version":3,"names":["path","require","ACTIONS","exports","GET_VERSION","GET_TYPES_INFO","GET_VISITOR_KEYS","GET_TOKEN_LABELS","MAYBE_PARSE","MAYBE_PARSE_SYNC","_send","WeakMap","_vCache","_tiCache","_vkCache","_tlCache","Client","constructor","send","_classPrivateFieldInitSpec","writable","value","_classPrivateFieldSet","getVersion","_classPrivateFieldGet2","_classPrivateFieldGet","call","undefined","getTypesInfo","_classPrivateFieldGet3","getVisitorKeys","_classPrivateFieldGet4","getTokLabels","_classPrivateFieldGet5","maybeParse","code","options","_worker","WorkerClient","action","payload","signal","Int32Array","SharedArrayBuffer","subChannel","_classStaticPrivateFieldSpecGet","_worker_threads","MessageChannel","postMessage","port","port1","Atomics","wait","message","receiveMessageOnPort","port2","error","Object","assign","errorData","result","Worker","resolve","__dirname","env","SHARE_ENV","unref","_class2","_get_worker_threads","_classStaticPrivateFi2","_worker_threads_cache","_classStaticPrivateFieldSpecSet","get","set","_class3","_handleMessage","LocalClient","_classStaticPrivateFi"],"sources":["../src/client.cts"],"sourcesContent":["import type { Options } from \"./types.cts\";\n\nimport path = require(\"path\");\n\nexport const enum ACTIONS {\n GET_VERSION = \"GET_VERSION\",\n GET_TYPES_INFO = \"GET_TYPES_INFO\",\n GET_VISITOR_KEYS = \"GET_VISITOR_KEYS\",\n GET_TOKEN_LABELS = \"GET_TOKEN_LABELS\",\n MAYBE_PARSE = \"MAYBE_PARSE\",\n MAYBE_PARSE_SYNC = \"MAYBE_PARSE_SYNC\",\n}\n\nexport class Client {\n #send;\n\n constructor(send: Function) {\n this.#send = send;\n }\n\n #vCache: string;\n getVersion() {\n return (this.#vCache ??= this.#send(ACTIONS.GET_VERSION, undefined));\n }\n\n #tiCache: any;\n getTypesInfo() {\n return (this.#tiCache ??= this.#send(ACTIONS.GET_TYPES_INFO, undefined));\n }\n\n #vkCache: any;\n getVisitorKeys() {\n return (this.#vkCache ??= this.#send(ACTIONS.GET_VISITOR_KEYS, undefined));\n }\n\n #tlCache: any;\n getTokLabels() {\n return (this.#tlCache ??= this.#send(ACTIONS.GET_TOKEN_LABELS, undefined));\n }\n\n maybeParse(code: string, options: Options) {\n return this.#send(ACTIONS.MAYBE_PARSE, { code, options });\n }\n}\n\n// We need to run Babel in a worker for two reasons:\n// 1. ESLint workers must be CJS files, and this is a problem\n// since Babel 8+ uses native ESM\n// 2. ESLint parsers must run synchronously, but many steps\n// of Babel's config loading (which is done for each file)\n// can be asynchronous\n// If ESLint starts supporting async parsers, we can move\n// everything back to the main thread.\nexport class WorkerClient extends Client {\n static #worker_threads_cache: typeof import(\"worker_threads\");\n static get #worker_threads() {\n return (WorkerClient.#worker_threads_cache ??= require(\"worker_threads\"));\n }\n\n #worker = new WorkerClient.#worker_threads.Worker(\n path.resolve(__dirname, \"../lib/worker/index.cjs\"),\n { env: WorkerClient.#worker_threads.SHARE_ENV },\n );\n\n constructor() {\n super((action: ACTIONS, payload: any) => {\n // We create a new SharedArrayBuffer every time rather than reusing\n // the same one, otherwise sometimes its contents get corrupted and\n // Atomics.wait wakes up too early.\n // https://github.com/babel/babel/pull/14541\n const signal = new Int32Array(new SharedArrayBuffer(8));\n\n const subChannel = new WorkerClient.#worker_threads.MessageChannel();\n\n this.#worker.postMessage(\n { signal, port: subChannel.port1, action, payload },\n [subChannel.port1],\n );\n\n Atomics.wait(signal, 0, 0);\n const { message } = WorkerClient.#worker_threads.receiveMessageOnPort(\n subChannel.port2,\n );\n\n if (message.error) throw Object.assign(message.error, message.errorData);\n else return message.result;\n });\n\n // The worker will never exit by itself. Prevent it from keeping\n // the main process alive.\n this.#worker.unref();\n }\n}\n\nif (!USE_ESM) {\n exports.LocalClient = class LocalClient extends Client {\n static #handleMessage: Function;\n\n constructor() {\n LocalClient.#handleMessage ??= require(\"./worker/handle-message.cjs\");\n\n super((action: ACTIONS, payload: any) => {\n return LocalClient.#handleMessage(\n action === ACTIONS.MAYBE_PARSE ? ACTIONS.MAYBE_PARSE_SYNC : action,\n payload,\n );\n });\n }\n };\n}\n"],"mappings":"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"}
|