From e665d7c49fa545135f286a8fcf88da53c021ea39 Mon Sep 17 00:00:00 2001 From: Changhui Lee Date: Fri, 27 Dec 2019 05:32:52 +0900 Subject: [PATCH] Add types for php-serialize (#40869) * Add type definitions for 'php-serialize' * Modifying tscconfig.json to the guidelines * Add missing type definitions header * Add test file into tsconfig * Fix typing and remove unused variable declaration * Fix optional function parameters * Add empty line for linter * Update types/php-serialize/index.d.ts Co-Authored-By: Dmitry Demensky <10235949+demensky@users.noreply.github.com> * Update types/php-serialize/index.d.ts Co-Authored-By: Dmitry Demensky <10235949+demensky@users.noreply.github.com> * Update types/php-serialize/index.d.ts Co-Authored-By: Dmitry Demensky <10235949+demensky@users.noreply.github.com> * Update index.d.ts * Update tsconfig.json * Revert tsconfig.json chnages * Add reference types header for node Co-authored-by: Dmitry Demensky <10235949+demensky@users.noreply.github.com> --- types/php-serialize/index.d.ts | 25 ++++++++++++++++++++++ types/php-serialize/php-serialize-tests.ts | 8 +++++++ types/php-serialize/tsconfig.json | 24 +++++++++++++++++++++ types/php-serialize/tslint.json | 3 +++ 4 files changed, 60 insertions(+) create mode 100644 types/php-serialize/index.d.ts create mode 100644 types/php-serialize/php-serialize-tests.ts create mode 100644 types/php-serialize/tsconfig.json create mode 100644 types/php-serialize/tslint.json diff --git a/types/php-serialize/index.d.ts b/types/php-serialize/index.d.ts new file mode 100644 index 0000000000..b4acbe4167 --- /dev/null +++ b/types/php-serialize/index.d.ts @@ -0,0 +1,25 @@ +// Type definitions for php-serialize 3.0 +// Project: https://github.com/steelbrain/php-serialize +// Definitions by: Changhui Lee +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 3.7 + +/// + +export interface SerializeOptions { + /** @default 'utf8' */ + readonly encoding?: 'utf8' | 'binary'; +} + +export interface UnserializeOptions { + /** @default true' */ + readonly strict?: boolean; + /** @default 'utf8' */ + readonly encoding?: 'utf8' | 'binary'; +} + +export function isSerialized(givenItem: any, strict?: boolean): boolean; + +export function serialize(item: any, scope?: any, givenOptions?: SerializeOptions): string; + +export function unserialize(item: string | Buffer, scope?: any, givenOptions?: UnserializeOptions): any; diff --git a/types/php-serialize/php-serialize-tests.ts b/types/php-serialize/php-serialize-tests.ts new file mode 100644 index 0000000000..84d81b5305 --- /dev/null +++ b/types/php-serialize/php-serialize-tests.ts @@ -0,0 +1,8 @@ +import PhpSerialize = require('php-serialize'); + +const testObject = { + user_id: 399, + parent_user_id: 399, +}; +const serialized = PhpSerialize.serialize(testObject); +PhpSerialize.unserialize(serialized); diff --git a/types/php-serialize/tsconfig.json b/types/php-serialize/tsconfig.json new file mode 100644 index 0000000000..a711f45262 --- /dev/null +++ b/types/php-serialize/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "target": "es6", + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "php-serialize-tests.ts" + ] +} diff --git a/types/php-serialize/tslint.json b/types/php-serialize/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/php-serialize/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}