Skip to content

Typescript Type Declarations that are common for Server State projects

License

Notifications You must be signed in to change notification settings

server-state/types

Repository files navigation

Server State TypeScript Definitions

npm: @server-state/types

GitHub Twitter Follow

Standard TypeScript definitions for use in Server State projects.

Installation

First, add it as a development dependency to your project:

npm install --save-dev @server-state/types

After the installation, check out the provided types:

import { Extension } from '@server-state/types';

const myExtension: Extension<MyConfig> = (config, api) => {
	//...
	return {
		name: 'MyExtension'
	};
};

You can also, optionally, add the package to your tsconfig.json's compilerOptions.typeRoots array to get access to the most common types via the global ServerStateTypes namespace:

// tsconfig.json
{
	compilerOptions: {
		typeRoots: [
			'node_modules/@server-state/types',
			'node_modules/@types'
			// [...]
		]
		// [...]
	}
	// [...]
}
// some TypeScript source file

let a: ServerStateTypes.JsonSerializable;

Namespace access is handy when you write in JavaScript and don't want to use import('@server-state/types') everywhere in your JSDoc comments:

// some JavaScript source file

/**
 * @type {ServerStateTypes.JsonSerializable}
 */
let a;

// instead of

/**
 * @type {import('@server-state/types').JsonSerializable}
 */
let b;

For all complete list of types, check out the reference: types.server-state.tech

Package structure

.
├── sample (samples for the types, useful for testing the types)
│   ├── sample.ts
│   ├── sample-js.js
│   └── tsconfig.json
├── src
│   ├── index.ts
│   └── [...]
├── types (built-in build script)
│   ├── index.d.ts
│   └── [...]
├── CHANGELOG.md (DO NOT TOUCH! auto-generated changelog for the package)
├── LICENSE
├── package.json
├── README.md (you're here :P)
└── [...] (configuration files)

Contributing

Coming soon 😉

Contributors

Thank you to all contributors of this repository:

Contributors

Made with contributors-img.

About

This repository is part of Server State, a project by fliegwerk.