open-index/open-npm huggingface dataset:
npm package: @guardian/thrift-serializer
Description: Serialize thrift models into bytes with optional compression
Latest version: 2.1.0

Thrift Serializer
========

 - 2.11: [![Maven Central](https://img.shields.io/maven-central/v/com.gu/thrift-serializer_2.11.svg)](https://mvnrepository.com/artifact/com.gu/thrift-serializer_2.11)
 - 2.12: [![Maven Central](https://img.shields.io/maven-central/v/com.gu/thrift-serializer_2.12.svg)](https://mvnrepository.com/artifact/com.gu/thrift-serializer_2.12)

A library for serializing a thrift model into bytes.

### How to use

* Add the library as a depency by adding

```
"com.gu" %% "thrift-serializer" % "1.1.1"
```

to your applications libraryDepencies.

* You can then use ThriftSerializer in your application:

```
import com.gu.thrift.serializer.ThriftSerializer

object myObject extends ThriftSerializer {

  def myMethod(thriftObject: MyThriftObject): Unit = {
    val bytes = serializeToBytes(thriftObject)
    //Do something with bytes
  }
}
```

* You can use the ThriftDeserializer like this:

```

MyDeserializer.deserialize(buffer).map(myEvent => {
  // process the event
}

def myMethod(thriftObject: MyThriftObject): Unit = {
  val bytes = serializeToBytes(thriftObject)
  //Do something with bytes
}
```

If there is no compression type recorded in the bytes you wish to
deserialize or if you don't want these to be included when serializing
a thrift object, you can set the last arguments of the function calls
to true. They are false by default.

```
MyDeserializer.deserialize(buffer, true).map(myEvent => {
    // process the event
}
```
```
def myMethod(thriftObject: MyThriftObject, true): Unit = {
  val bytes = serializeToBytes(thriftObject)
  //Do something with bytes
}
```

### How to publish

* The library is published to Maven Central. To publish, register
to Sonatype and get added to Guardian projects.

* Run sbt release. You will be asked about what version you want the
release to be during the release process, you do not have to update it manually.


### Node JS

* Install using npm

```
npm install --save thrift-serializer
```

in your application or lambda you can **decode** messages

```
var Message = require('your-thrift-model');
var serializer = require('thrift-serializer');

serializer.read(Message, bytes, function (err, msg) {
	console.log(msg);
});
```

or **encode** them

```
var Message = require('your-thrift-model');
var serializer = require('thrift-serializer');

var message = new Message({
	someData: ''
});

serializer.write(message, serializer.Compression.Gzip, function (err, bytes) {
	// do something with your bytes, e.g. convert the buffer into a base64 string
	console.log(bytes.toString('base64'));
});
```
npm package: @guardian/tsconfig
Description: TSConfig base for Guardian TypeScript projects
Latest version: 1.0.1

# `@guardian/tsconfig`

> A [TSConfig base](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#tsconfig-bases) for Guardian TypeScript projects.

This is a base config intended to improve code quality. It does not have any opinions about your project shape.

## Installation

```shell
yarn add -D @guardian/tsconfig
```

or

```shell
npm install --save-dev @guardian/tsconfig
```

## Usage

```jsonc
// tsconfig.json
{
	"extends": "@guardian/tsconfig/tsconfig.json",
}
```