@carimflex/reaction-api-types
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

Reaction Api Core @types

npm (scoped) Build Status semantic-release GitHub

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.

Example 1 Example 2


Installation

npm install --save -D @carimflex/reaction-api-types

How to use (VSCode)?

  1. Enable type checking in VSCode: "javascript.implicitProjectConfig.checkJs": true.
  2. Import this package using jsdoc comment (See Examples)
  3. 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) {}

Package Sidebar

Install

npm i @carimflex/reaction-api-types

Weekly Downloads

5

Version

1.1.2

License

Apache-2.0

Unpacked Size

18.8 kB

Total Files

7

Last publish

Collaborators

  • jonycelio