open-index/open-npm huggingface dataset:
npm package: @oursky/eslint-config
Description: ```sh yarn add --dev --exact eslint @oursky/eslint-config # or npm install --save --save-dev --save-exact eslint @oursky/eslint-config ```
Latest version: 1.6.0

## Installation

```sh
yarn add --dev --exact eslint @oursky/eslint-config
# or
npm install --save --save-dev --save-exact eslint @oursky/eslint-config
```

## Usage

```JSON
{
  "extends": ["@oursky"]
}
```
npm package: @oursky/react-messageformat
Description: ## Installation
Latest version: 2.0.2

# react-messageformat

## Installation

```sh
$ npm install --save @oursky/react-messageformat
$ yarn add @oursky/react-messageformat
```

## Usage

```typescript
import * as React from "react";
import * as ReactDOM from "react-dom";
import { LocaleProvider, FormattedMessage } from "@oursky/react-messageformat";

const MESSAGES = {
  "my.message": "Hello World",
};

function Page() {
  return (
    <FormattedMessage id="my.message" />
  );
}

function App() {
  return (
    <LocaleProvider locale="en" messageByID={MESSAGES}>
      <Page />
    </LocaleProvider>
  );
}

ReactDOM.render(<App />, document.getElementById("root"));
```

## Features

- Simple argument `{ARG}`
- Select `{GENDER, select, male{He} female{She} other{They}}`
- Ordinal `{ORD, selectordinal, one{#st} two{#nd} few{#rd} other{#th}}`
- Plural `{NUM, plural, one{1 apple} other{# apples}}`
- React Element `{a, react, href{http://www.example.com} children{a link}}`
- Supported values are `string`, `number` and React Element.

## What is this

This library is a replacement of [react-intl](https://github.com/yahoo/react-intl)

## Why

- We use React 16.3 Context API while react-intl uses old context API. By using the new API, we no longer suffer from [the caveat of the old API](https://reactjs.org/docs/legacy-context.html#updating-context)
- We use a more correct parser. The difference can be demonstrated by this script

```js
const React = require("react");
const ReactDOMServer = require("react-dom/server");
const ReactIntl = require("react-intl");
const ReactMessageFormat = require("@oursky/react-messageformat");

const a = ReactDOMServer.renderToString(
  React.createElement(
    ReactIntl.IntlProvider,
    { locale: "en", textComponent: props => props.children },
    React.createElement(ReactIntl.FormattedMessage, {
      id: "a",
      values: { A: "true" },
      defaultMessage: "{A, select, true{} other{}}",
    })
  )
);
console.log("react-intl", a);
// react-intl will emit a warning complaining that it cannot parse the message.
// And it will render the unparsed message as plain string.

const b = ReactDOMServer.renderToString(
  React.createElement(
    ReactMessageFormat.LocaleProvider,
    { locale: "en", messageByID: { a: "{A, select, true{} other{}}" } },
    React.createElement(ReactMessageFormat.FormattedMessage, {
      id: "a",
      values: { A: "true" },
    })
  )
);
console.log("react-messageformat", b);
// b is an empty string.
```

- We write the evaluation function ourselves. The evaluation function evaluates the AST to an array, which is a first class React element. So we support nesting any react element. react-intl uses a [hack](https://github.com/yahoo/react-intl/blob/v2.6.0/src/components/message.js#L136) to support nesting react element.
npm package: @oursky/react-native-javascript-environment-typescript
Description: **WITHOUT** using [@babel/runtime](https://babeljs.io/docs/en/babel-runtime)
Latest version: 0.1.0

# react-native-javascript-environment-typescript

**WITHOUT** using [@babel/runtime](https://babeljs.io/docs/en/babel-runtime)

**WITHOUT** using [@babel/runtime](https://babeljs.io/docs/en/babel-runtime)

**WITHOUT** using [@babel/runtime](https://babeljs.io/docs/en/babel-runtime)

The JavaScript environment running
your code is not a fully ES2015 environment but specified in [JavaScript Environment](https://facebook.github.io/react-native/docs/javascript-environment#polyfills).

Even the documentation does not tell you Map and Set are polyfilled.

The exact applied polyfill are

1. https://github.com/facebook/react-native/blob/v0.57.7/Libraries/Core/InitializeCore.js#L41
1. https://github.com/facebook/react-native/tree/v0.57.7/Libraries/polyfills

Therefore, if you configure `--lib` to include `ES2015` or even higher **AND** do not use [@babel/runtime](https://babeljs.io/docs/en/babel-runtime),
you are lying to yourself that you can use all ES2015+ runtime features.

The type definition is valid for React Native >= 0.57.

The type definition itself is copied from [TypeScript repository](https://github.com/Microsoft/TypeScript/tree/master/lib).

# Usage

1. In `tsconfig.json`, set `lib` to `["ES5", "ES2015.Promise", "ES2015.Collection", "ES2016.Array.Include"]`.
1. In `tsconfig.json`, add `"./node_modules/@oursky/react-native-javascript-environment-typescript/index.d.ts"` to "files".