1.25.3 ā€¢ Published 8 months ago

@castore/json-schema-event v1.25.3

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

JSON Schema Event

DRY Castore EventType definition using JSON Schemas and json-schema-to-ts

šŸ“„ Installation

# npm
npm install @castore/json-schema-event

# yarn
yarn add @castore/json-schema-event

This package has @castore/core and json-schema-to-ts (above v2) as peer dependencies, so you will have to install them as well:

# npm
npm install @castore/core json-schema-to-ts

# yarn
yarn add @castore/core json-schema-to-ts

šŸ‘©ā€šŸ’» Usage

import { JSONSchemaEventType } from '@castore/json-schema-event';

const pokemonAppearedPayloadSchema = {
  type: 'object',
  properties: {
    name: { type: 'string' },
    level: { type: 'integer' },
  },
  required: ['name', 'level'],
  additionalProperties: false,
} as const; // šŸ‘ˆ Don't forget the "as const" statement
// (Cf json-schema-to-ts documentation)

const pokemonAppearedMetadataSchema = {
  type: 'object',
  properties: {
    trigger: { enum: ['random', 'scripted'] },
  },
  additionalProperties: false,
} as const;

// šŸ‘‡ generics are correctly inferred
const pokemonAppearedEventType = new JSONSchemaEventType({
  type: 'POKEMON_APPEARED',
  payloadSchema: pokemonAppearedPayloadSchema,
  metadataSchema: pokemonAppearedMetadataSchema,
});

šŸ‘‡ Equivalent to:

import { EventType } from '@castore/core';

const pokemonAppearedEventType = new EventType<
  'POKEMON_APPEARED',
  { name: string; level: number },
  { trigger?: 'random' | 'scripted' }
>({ type: 'POKEMON_APPEARED' });

āš™ļø Properties & Methods

JSONSchemaEventType implements the EventType class and adds the following properties to it:

  • payloadSchema (?object): The event type payload JSON schema
const payloadSchema = pokemonAppearedEventType.payloadSchema;
// => pokemonAppearedPayloadSchema
  • metadataSchema (?object): The event type metadata JSON schema
const metadataSchema = pokemonAppearedEventType.metadataSchema;
// => pokemonAppearedMetadataSchema
1.21.0

11 months ago

1.25.0

9 months ago

1.25.1

9 months ago

1.23.0

10 months ago

1.25.2

8 months ago

1.25.3

8 months ago

1.22.0

10 months ago

1.24.1

9 months ago

1.24.2

9 months ago

1.22.1

10 months ago

1.24.0

9 months ago

1.22.2

10 months ago

1.20.1

12 months ago

1.20.2

12 months ago

1.20.0

1 year ago

1.19.0

1 year ago

1.18.1

1 year ago

1.17.2

1 year ago

1.18.0

1 year ago

1.17.1

1 year ago

1.19.1

1 year ago

1.15.0

1 year ago

1.14.0

1 year ago

1.13.0

1 year ago

1.17.0

1 year ago

1.16.1

1 year ago

1.15.2

1 year ago

1.16.0

1 year ago

1.15.1

1 year ago

1.12.0

1 year ago

1.11.0

1 year ago

1.10.0

1 year ago

1.9.0

1 year ago

1.8.0

1 year ago

1.4.4

1 year ago

1.7.0

1 year ago

1.4.3

1 year ago

1.6.0

1 year ago

1.5.1

1 year ago

1.4.2

1 year ago

1.5.0

1 year ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.1

2 years ago

1.2.0

2 years ago

1.2.1

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.7

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.7.3

2 years ago

0.7.1

2 years ago

0.7.0

2 years ago

0.6.21

2 years ago