@axi-engine/utils 0.2.3 → 0.2.4

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/dist/index.d.mts CHANGED
@@ -210,14 +210,54 @@ declare class ConstructorRegistry<T> {
210
210
  */
211
211
  interface DataSource {
212
212
  get(path: PathType): unknown;
213
+ /**
214
+ * Checks if a path valid.
215
+ * @param {PathType} path The path to the node.
216
+ * @returns {boolean} `true` if the node exists, otherwise `false`.
217
+ */
213
218
  has(path: PathType): boolean;
214
219
  }
215
220
  /**
216
- * A write-only contract for any system that can accept data by path.
221
+ * A write-only contract for any system that can accept or mutate data by path.
222
+ *
223
+ * This interface is the counterpart to `DataSource` and represents the "write" side
224
+ * of a complete data storage system. It provides a standard set of methods for
225
+ * creating, updating, and deleting data, abstracting away the underlying
226
+ * implementation details.
227
+ *
228
+ * @interface
217
229
  */
218
230
  interface DataSink {
231
+ /**
232
+ * Strictly updates the value at an *existing* path.
233
+ * This operation should typically fail or throw an error if no value exists at the path.
234
+ *
235
+ * @param path The path to the value to be updated.
236
+ * @param value The new value to set.
237
+ */
219
238
  set(path: PathType, value: unknown): void;
239
+ /**
240
+ * Strictly creates a new value at the specified path.
241
+ * This operation should typically fail or throw an error if a value already exists
242
+ * at the path.
243
+ *
244
+ * @param path The full path where the new value will be created.
245
+ * @param value The initial value to create.
246
+ */
220
247
  create(path: PathType, value: unknown): void;
248
+ /**
249
+ * Updates a value at a specified path if it exists, or creates it if it does not.
250
+ * This is a convenient and non-strict combination of the `set` and `create` operations.
251
+ *
252
+ * @param path The path to the value to be created or updated.
253
+ * @param value The value to set.
254
+ */
255
+ upset(path: PathType, value: unknown): void;
256
+ /**
257
+ * Deletes the value at the specified path.
258
+ *
259
+ * @param path The path to the value to be deleted.
260
+ */
221
261
  delete(path: PathType): void;
222
262
  }
223
263
  /**
package/dist/index.d.ts CHANGED
@@ -210,14 +210,54 @@ declare class ConstructorRegistry<T> {
210
210
  */
211
211
  interface DataSource {
212
212
  get(path: PathType): unknown;
213
+ /**
214
+ * Checks if a path valid.
215
+ * @param {PathType} path The path to the node.
216
+ * @returns {boolean} `true` if the node exists, otherwise `false`.
217
+ */
213
218
  has(path: PathType): boolean;
214
219
  }
215
220
  /**
216
- * A write-only contract for any system that can accept data by path.
221
+ * A write-only contract for any system that can accept or mutate data by path.
222
+ *
223
+ * This interface is the counterpart to `DataSource` and represents the "write" side
224
+ * of a complete data storage system. It provides a standard set of methods for
225
+ * creating, updating, and deleting data, abstracting away the underlying
226
+ * implementation details.
227
+ *
228
+ * @interface
217
229
  */
218
230
  interface DataSink {
231
+ /**
232
+ * Strictly updates the value at an *existing* path.
233
+ * This operation should typically fail or throw an error if no value exists at the path.
234
+ *
235
+ * @param path The path to the value to be updated.
236
+ * @param value The new value to set.
237
+ */
219
238
  set(path: PathType, value: unknown): void;
239
+ /**
240
+ * Strictly creates a new value at the specified path.
241
+ * This operation should typically fail or throw an error if a value already exists
242
+ * at the path.
243
+ *
244
+ * @param path The full path where the new value will be created.
245
+ * @param value The initial value to create.
246
+ */
220
247
  create(path: PathType, value: unknown): void;
248
+ /**
249
+ * Updates a value at a specified path if it exists, or creates it if it does not.
250
+ * This is a convenient and non-strict combination of the `set` and `create` operations.
251
+ *
252
+ * @param path The path to the value to be created or updated.
253
+ * @param value The value to set.
254
+ */
255
+ upset(path: PathType, value: unknown): void;
256
+ /**
257
+ * Deletes the value at the specified path.
258
+ *
259
+ * @param path The path to the value to be deleted.
260
+ */
221
261
  delete(path: PathType): void;
222
262
  }
223
263
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axi-engine/utils",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Core utility library for Axi Engine, providing common functions for arrays, math, type guards, and more.",
5
5
  "license": "MIT",
6
6
  "repository": {