data-projector.d.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import {Service} from '@e22m4u/js-service';
  2. import {ProjectDataOptions} from './project-data.js';
  3. import {ProjectionSchema} from './projection-schema.js';
  4. import {ProjectionSchemaDefinition} from './projection-schema-definition.js';
  5. /**
  6. * Data projector.
  7. */
  8. export class DataProjector extends Service {
  9. /**
  10. * Define schema.
  11. *
  12. * @param schemaDef
  13. */
  14. defineSchema(schemaDef: ProjectionSchemaDefinition): this;
  15. /**
  16. * Project.
  17. *
  18. * @param data
  19. * @param schema
  20. * @param options
  21. */
  22. project<T>(
  23. data: T,
  24. schema: ProjectionSchema,
  25. options?: ProjectDataOptions,
  26. ): T;
  27. /**
  28. * Project input.
  29. *
  30. * @param data
  31. * @param schema
  32. * @param options
  33. */
  34. projectInput<T>(
  35. data: T,
  36. schema: ProjectionSchema,
  37. options?: Omit<ProjectDataOptions, 'scope'>,
  38. ): T;
  39. /**
  40. * Project output.
  41. *
  42. * @param data
  43. * @param schema
  44. * @param options
  45. */
  46. projectOutput<T>(
  47. data: T,
  48. schema: ProjectionSchema,
  49. options?: Omit<ProjectDataOptions, 'scope'>,
  50. ): T;
  51. }