@carimflex/reaction-api-types v1.1.2
Reaction Api Core @types
This package contains type definitions for Reaction API Core. Use for help you to make plugins and to check types of common used Reaction API params types like, Context, Collection, ReactionAPICore and others. You DON'T need to use Typescript to get these features. We will use jsdocs and VSCode for implement types in your .js code.

Installation
npm install --save -D @carimflex/reaction-api-typesHow to use (VSCode)?
- Enable type checking in VSCode:
"javascript.implicitProjectConfig.checkJs": true. - Import this package using jsdoc comment (See Examples)
- Enjoy!!!
Examples
1. In Register function
You can import ReactionApiCore from this package to check typing in API definition
/** @typedef {import("@carimflex/reaction-api-types").ReactionApiCore} ReactionApiCore */
/**
* @param {ReactionApiCore} app Reaction Api app
* @returns {Promise<void>} Returns a promise that resolves in void
*/
export default async function register(app) {}2. In Query/Mutation function
You can import Context to know all objects that have inside context to help you check and make your code.
/** @typedef @typedef {import("@carimflex/reaction-api-types").Context} Context */
/**
* Add a example
* @param {Context} context - an object containing the per-request state
* @param {Object} input - mutation input
* @returns {Promise<void>} ...
*/
export default async function addExample(context, input) {}3. Extending types and insert Schemas in Collection
3.1 Create a schema type
Create the schema. I recommend to create in simpleSchemas.js file, but you can create in any file.
/**
* @typedef Example
* @property {ObjectID} [_id] ID
* @property {String} shopId Shop Id
* @property {String} displayName display name
*/3.1 Create type.ts file
Import you schema and reaction api types. Extend Context Files and import Collection from "mongodb".
import { Context as ReactionContext } from "@carimflex/reaction-api-types";
import { Collection } from "mongodb";
import { Example } from "./simpleSchemas";
export interface Context extends ReactionContext {
collections: {
Examples: Collection<Example>;
};
}3.2 Import type.ts in other files
Since you created a schema, you can import your new Context (with the schema) and the schema itself for use in params. Example:
/** @typedef {import("../types").Context} Context */
/** @typedef {import("../simpleSchemas").Example} Example */
/**
* Add a example
* @param {Context} context - an object containing the per-request state
* @param {Example} input - mutation input
* @returns {Promise<Example>} ...
*/
export default async function addExample(context, input) {}