@backstage/backend-dev-utils 0.1.1 → 0.1.2-next.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @backstage/backend-dev-utils
2
2
 
3
+ ## 0.1.2-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - afa48341fb: Fix an issue where early IPC responses would be lost.
8
+
3
9
  ## 0.1.1
4
10
 
5
11
  ### Patch Changes
package/dist/index.cjs.js CHANGED
@@ -31,7 +31,8 @@ var __privateWrapper = (obj, member, setter, getter) => ({
31
31
  var _messageId, _sendMessage;
32
32
  const requestType = "@backstage/cli/channel/request";
33
33
  const responseType = "@backstage/cli/channel/response";
34
- const _BackstageIpcClient = class {
34
+ const IPC_TIMEOUT_MS = 5e3;
35
+ const _BackstageIpcClient = class _BackstageIpcClient {
35
36
  constructor(sendMessage) {
36
37
  __privateAdd$1(this, _messageId, 0);
37
38
  __privateAdd$1(this, _sendMessage, void 0);
@@ -57,44 +58,44 @@ const _BackstageIpcClient = class {
57
58
  method,
58
59
  body
59
60
  };
61
+ let timeout = void 0;
62
+ const messageHandler = (response) => {
63
+ if ((response == null ? void 0 : response.type) !== responseType) {
64
+ return;
65
+ }
66
+ if (response.id !== id) {
67
+ return;
68
+ }
69
+ clearTimeout(timeout);
70
+ timeout = void 0;
71
+ process.removeListener("message", messageHandler);
72
+ if ("error" in response) {
73
+ const error = new Error(response.error.message);
74
+ if (response.error.name) {
75
+ error.name = response.error.name;
76
+ }
77
+ reject(error);
78
+ } else {
79
+ resolve(response.body);
80
+ }
81
+ };
82
+ timeout = setTimeout(() => {
83
+ reject(new Error(`IPC request '${method}' with ID ${id} timed out`));
84
+ process.removeListener("message", messageHandler);
85
+ }, IPC_TIMEOUT_MS);
86
+ timeout.unref();
87
+ process.addListener("message", messageHandler);
60
88
  __privateGet$1(this, _sendMessage).call(this, request, (e) => {
61
89
  if (e) {
62
90
  reject(e);
63
- return;
64
91
  }
65
- let timeout = void 0;
66
- const messageHandler = (response) => {
67
- if ((response == null ? void 0 : response.type) !== responseType) {
68
- return;
69
- }
70
- if (response.id !== id) {
71
- return;
72
- }
73
- if ("error" in response) {
74
- const error = new Error(response.error.message);
75
- if (response.error.name) {
76
- error.name = response.error.name;
77
- }
78
- reject(error);
79
- } else {
80
- resolve(response.body);
81
- }
82
- clearTimeout(timeout);
83
- process.removeListener("message", messageHandler);
84
- };
85
- timeout = setTimeout(() => {
86
- reject(new Error(`IPC request '${method}' with ID ${id} timed out`));
87
- process.removeListener("message", messageHandler);
88
- }, 5e3);
89
- timeout.unref();
90
- process.addListener("message", messageHandler);
91
92
  });
92
93
  });
93
94
  }
94
95
  };
95
- let BackstageIpcClient = _BackstageIpcClient;
96
96
  _messageId = new WeakMap();
97
97
  _sendMessage = new WeakMap();
98
+ let BackstageIpcClient = _BackstageIpcClient;
98
99
  const ipcClient = BackstageIpcClient.create();
99
100
 
100
101
  var __accessCheck = (obj, member, msg) => {
@@ -116,7 +117,7 @@ var __privateSet = (obj, member, value, setter) => {
116
117
  return value;
117
118
  };
118
119
  var _instance, _client;
119
- const _DevDataStore = class {
120
+ const _DevDataStore = class _DevDataStore {
120
121
  constructor(client) {
121
122
  __privateAdd(this, _client, void 0);
122
123
  __privateSet(this, _client, client);
@@ -167,10 +168,10 @@ const _DevDataStore = class {
167
168
  return result;
168
169
  }
169
170
  };
170
- let DevDataStore = _DevDataStore;
171
171
  _instance = new WeakMap();
172
172
  _client = new WeakMap();
173
- __privateAdd(DevDataStore, _instance, void 0);
173
+ __privateAdd(_DevDataStore, _instance, void 0);
174
+ let DevDataStore = _DevDataStore;
174
175
 
175
176
  exports.DevDataStore = DevDataStore;
176
177
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/ipcClient.ts","../src/DevDataStore.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype SendMessage = Exclude<typeof process.send, undefined>;\n\ninterface Request {\n id: number;\n method: string;\n body: unknown;\n type: string;\n}\n\ntype Response =\n | {\n type: string;\n id: number;\n body: unknown;\n }\n | {\n type: string;\n id: number;\n error: Error;\n };\n\nconst requestType = '@backstage/cli/channel/request';\nconst responseType = '@backstage/cli/channel/response';\n\n/**\n * The client side of an IPC communication channel.\n *\n * @internal\n */\nexport class BackstageIpcClient {\n #messageId = 0;\n #sendMessage: SendMessage;\n\n /**\n * Creates a new client if we're in a child process with IPC and BACKSTAGE_CLI_CHANNEL is set.\n */\n static create(): BackstageIpcClient | undefined {\n const sendMessage = process.send?.bind(process);\n return sendMessage && process.env.BACKSTAGE_CLI_CHANNEL\n ? new BackstageIpcClient(sendMessage)\n : undefined;\n }\n\n constructor(sendMessage: SendMessage) {\n this.#sendMessage = sendMessage;\n }\n\n /**\n * Send a request to the parent process and wait for a response.\n */\n async request<TRequestBody, TResponseBody>(\n method: string,\n body: TRequestBody,\n ): Promise<TResponseBody> {\n return new Promise((resolve, reject) => {\n const id = this.#messageId++;\n\n const request: Request = {\n type: requestType,\n id,\n method,\n body,\n };\n\n this.#sendMessage(request, (e: Error) => {\n if (e) {\n reject(e);\n return;\n }\n\n let timeout: NodeJS.Timeout | undefined = undefined;\n\n const messageHandler = (response: Response) => {\n if (response?.type !== responseType) {\n return;\n }\n if (response.id !== id) {\n return;\n }\n\n if ('error' in response) {\n const error = new Error(response.error.message);\n if (response.error.name) {\n error.name = response.error.name;\n }\n reject(error);\n } else {\n resolve(response.body as TResponseBody);\n }\n\n clearTimeout(timeout);\n process.removeListener('message', messageHandler);\n };\n\n timeout = setTimeout(() => {\n reject(new Error(`IPC request '${method}' with ID ${id} timed out`));\n process.removeListener('message', messageHandler);\n }, 5000);\n timeout.unref();\n\n process.addListener('message', messageHandler as () => void);\n });\n });\n }\n}\n\nexport const ipcClient = BackstageIpcClient.create();\n","/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BackstageIpcClient, ipcClient } from './ipcClient';\n\ninterface SaveRequest {\n key: string;\n data: unknown;\n}\n\ninterface SaveResponse {\n saved: boolean;\n}\n\ninterface LoadRequest {\n key: string;\n}\n\ninterface LoadResponse {\n loaded: boolean;\n data: unknown;\n}\n\n/**\n * A data store that can be used to store temporary data during development.\n *\n * @public\n */\nexport class DevDataStore {\n static #instance?: DevDataStore;\n\n /**\n * Tries to acquire a DevDataStore instance. This will only succeed when the backend\n * process is being run through the `@backstage/cli` in development mode.\n *\n * @returns A DevDataStore instance, or undefined if not available.\n */\n static get(): DevDataStore | undefined {\n if (ipcClient) {\n if (!this.#instance) {\n this.#instance = new DevDataStore(ipcClient);\n }\n return this.#instance;\n }\n return undefined;\n }\n\n /** @internal */\n static forTest(client: Pick<BackstageIpcClient, 'request'>): DevDataStore {\n return new DevDataStore(client as BackstageIpcClient);\n }\n\n #client: BackstageIpcClient;\n\n private constructor(client: BackstageIpcClient) {\n this.#client = client;\n }\n\n /**\n * Save data to the data store.\n *\n * @param key - The key used to identify the data.\n * @param data - The data to save. The data will be serialized using advanced IPC serialization.\n * @returns A promise that resolves to a result object that indicates whether the data was saved.\n */\n async save<T>(key: string, data: T): Promise<{ saved: boolean }> {\n return this.#client.request<SaveRequest, SaveResponse>(\n 'DevDataStore.save',\n { key, data },\n );\n }\n\n /**\n * Loads data from the data store.\n *\n * @param key - The key used to identify the data.\n * @returns A promise that resolves to a result object that indicates whether the data was loaded, as well as the data.\n */\n async load<T>(key: string): Promise<{ loaded: boolean; data: T }> {\n const result = await this.#client.request<LoadRequest, LoadResponse>(\n 'DevDataStore.load',\n { key },\n );\n return result as { loaded: boolean; data: T };\n }\n}\n"],"names":["__privateAdd","__privateSet","__privateGet"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/ipcClient.ts","../src/DevDataStore.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype SendMessage = Exclude<typeof process.send, undefined>;\n\ninterface Request {\n id: number;\n method: string;\n body: unknown;\n type: string;\n}\n\ntype Response =\n | {\n type: string;\n id: number;\n body: unknown;\n }\n | {\n type: string;\n id: number;\n error: Error;\n };\n\nconst requestType = '@backstage/cli/channel/request';\nconst responseType = '@backstage/cli/channel/response';\n\nconst IPC_TIMEOUT_MS = 5000;\n\n/**\n * The client side of an IPC communication channel.\n *\n * @internal\n */\nexport class BackstageIpcClient {\n #messageId = 0;\n #sendMessage: SendMessage;\n\n /**\n * Creates a new client if we're in a child process with IPC and BACKSTAGE_CLI_CHANNEL is set.\n */\n static create(): BackstageIpcClient | undefined {\n const sendMessage = process.send?.bind(process);\n return sendMessage && process.env.BACKSTAGE_CLI_CHANNEL\n ? new BackstageIpcClient(sendMessage)\n : undefined;\n }\n\n constructor(sendMessage: SendMessage) {\n this.#sendMessage = sendMessage;\n }\n\n /**\n * Send a request to the parent process and wait for a response.\n */\n async request<TRequestBody, TResponseBody>(\n method: string,\n body: TRequestBody,\n ): Promise<TResponseBody> {\n return new Promise((resolve, reject) => {\n const id = this.#messageId++;\n\n const request: Request = {\n type: requestType,\n id,\n method,\n body,\n };\n\n let timeout: NodeJS.Timeout | undefined = undefined;\n\n const messageHandler = (response: Response) => {\n if (response?.type !== responseType) {\n return;\n }\n if (response.id !== id) {\n return;\n }\n\n clearTimeout(timeout);\n timeout = undefined;\n process.removeListener('message', messageHandler);\n\n if ('error' in response) {\n const error = new Error(response.error.message);\n if (response.error.name) {\n error.name = response.error.name;\n }\n reject(error);\n } else {\n resolve(response.body as TResponseBody);\n }\n };\n\n timeout = setTimeout(() => {\n reject(new Error(`IPC request '${method}' with ID ${id} timed out`));\n process.removeListener('message', messageHandler);\n }, IPC_TIMEOUT_MS);\n timeout.unref();\n\n process.addListener('message', messageHandler as () => void);\n\n this.#sendMessage(request, (e: Error) => {\n if (e) {\n reject(e);\n }\n });\n });\n }\n}\n\nexport const ipcClient = BackstageIpcClient.create();\n","/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BackstageIpcClient, ipcClient } from './ipcClient';\n\ninterface SaveRequest {\n key: string;\n data: unknown;\n}\n\ninterface SaveResponse {\n saved: boolean;\n}\n\ninterface LoadRequest {\n key: string;\n}\n\ninterface LoadResponse {\n loaded: boolean;\n data: unknown;\n}\n\n/**\n * A data store that can be used to store temporary data during development.\n *\n * @public\n */\nexport class DevDataStore {\n static #instance?: DevDataStore;\n\n /**\n * Tries to acquire a DevDataStore instance. This will only succeed when the backend\n * process is being run through the `@backstage/cli` in development mode.\n *\n * @returns A DevDataStore instance, or undefined if not available.\n */\n static get(): DevDataStore | undefined {\n if (ipcClient) {\n if (!this.#instance) {\n this.#instance = new DevDataStore(ipcClient);\n }\n return this.#instance;\n }\n return undefined;\n }\n\n /** @internal */\n static forTest(client: Pick<BackstageIpcClient, 'request'>): DevDataStore {\n return new DevDataStore(client as BackstageIpcClient);\n }\n\n #client: BackstageIpcClient;\n\n private constructor(client: BackstageIpcClient) {\n this.#client = client;\n }\n\n /**\n * Save data to the data store.\n *\n * @param key - The key used to identify the data.\n * @param data - The data to save. The data will be serialized using advanced IPC serialization.\n * @returns A promise that resolves to a result object that indicates whether the data was saved.\n */\n async save<T>(key: string, data: T): Promise<{ saved: boolean }> {\n return this.#client.request<SaveRequest, SaveResponse>(\n 'DevDataStore.save',\n { key, data },\n );\n }\n\n /**\n * Loads data from the data store.\n *\n * @param key - The key used to identify the data.\n * @returns A promise that resolves to a result object that indicates whether the data was loaded, as well as the data.\n */\n async load<T>(key: string): Promise<{ loaded: boolean; data: T }> {\n const result = await this.#client.request<LoadRequest, LoadResponse>(\n 'DevDataStore.load',\n { key },\n );\n return result as { loaded: boolean; data: T };\n }\n}\n"],"names":["__privateAdd","__privateSet","__privateGet"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/backend-dev-utils",
3
- "version": "0.1.1",
3
+ "version": "0.1.2-next.0",
4
4
  "main": "dist/index.cjs.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "Apache-2.0",
@@ -28,7 +28,7 @@
28
28
  "postpack": "backstage-cli package postpack"
29
29
  },
30
30
  "devDependencies": {
31
- "@backstage/cli": "^0.22.4"
31
+ "@backstage/cli": "^0.23.0-next.1"
32
32
  },
33
33
  "files": [
34
34
  "dist"