# @gaspard-bruno/ecommerce-core

> E-commerce core

Latest version **1.0.0-build1** (published 2017-10-25) · UNLICENSED license · 0 weekly downloads

## Install

```sh
npm install @gaspard-bruno/ecommerce-core
pnpm add @gaspard-bruno/ecommerce-core
yarn add @gaspard-bruno/ecommerce-core
bun add @gaspard-bruno/ecommerce-core
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0-build1 |
| Published | 2017-10-25 |
| First published | 2017-10-25 |
| Weekly downloads | 0 |
| License | UNLICENSED |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Diego Lavalle |
| Maintainers | coderdiego |

## Links

- npm: https://www.npmjs.com/package/@gaspard-bruno/ecommerce-core
- Repository: https://github.com/gaspard-bruno/etudes-ecommerce-core
- Homepage: https://github.com/gaspard-bruno/etudes-ecommerce-core#readme
- Issues: https://github.com/gaspard-bruno/etudes-ecommerce-core/issues
- npm.io page: https://npm.io/package/@gaspard-bruno/ecommerce-core

## Dependencies (7)

- [ws](https://npm.io/package/ws.md) *
- [redux](https://npm.io/package/redux.md) *
- [moment](https://npm.io/package/moment.md) *
- [reselect](https://npm.io/package/reselect.md) *
- [actioncable](https://npm.io/package/actioncable.md) *
- [redux-thunk](https://npm.io/package/redux-thunk.md) *
- [whatwg-fetch](https://npm.io/package/whatwg-fetch.md) *

## Recent versions

- 1.0.0-build1 (latest) — 2017-10-25

## README

# E-commerce core

Core component library for e-commerce apps.

Includes support for:

 - Chat

## Integrate into your project

Because the core library lives in a private repository we need to generate an OAuth token within GitHub.

Save the token into your `~/.netrc` file, like this:

    echo "machine github.com login <YOUR-TOKEN>" >> ~/.netrc

Add a dependency in your `package.json`:

    "dependencies": {
        "ecommerce-core": "git+https://github.com/Gaspard-Bruno/etudes-ecommerce-core.git#v0.1.0",
        ...

The library will be installed the next time you `npm install`.

### Alternatives to .netrc


#### Use a preinstall script

If you cannot or would prefere not to modify your user's `.netrc` settings, you could store the token in an environment variable like this:

    export npm_config_ghtoken=YOUR_TOKEN

And have NPM do the checkout in a pre-install script.

    "scripts": {
        "preinstall": "rm -rf ../core.git && git clone https://${npm_config_ghtoken}:x-oauth-basic@github.com/Gaspard-Bruno/etudes-ecommerce-core.git ../core.git && cd ../core.git && git checkout v0.1.0"
        ...

One caveat is that the script runs before installing any package, not just core.

#### Use SSH deploy key

Generate and install the deploy key and access the git repo via SSH protocol

## Specification

Formal specification in the form of Jasmine test cases can be found in the `spec` folder.

## Frameworks

 - Redux

## Libraries

 - Fetch
 - Redux-Thunk
 - Reselect

## Components

 - Reducers
 - Action creators
 - Memoized selectors
 - API Client
 - Service adapters for REST, WebSocket

## Develop the library

Use npm scripts to build the library:

    npm run build

To watch for changes, run the linter, transpile and run the unit tests you can run:

    npm start

### Develop side by side with your client project

Use `npm link` to have a working development copy of the library within your project:

    npm uninstall ecommerce-core
    cd ../core
    npm link
    cd ../app
    npm link ecommerce-core

To revert:

    npm unlink ecommerce-core
    cd ../core
    npm unlink
    npm install ecommerce-core

## Docker

You can use docker to test and develop this library

### Build image for the first time

docker build -t ecommerce-core .

### Create a container for the first time

docker run --name ecommerce-core -v $PWD:/usr/src/app -v /usr/src/app/node_modules ecommerce-core

### Create a container for the first time

```
docker run --name ecommerce-core -v $PWD:/usr/src/app -v /usr/src/app/node_modules ecommerce-core run watch
```

```
docker run --rm -v $PWD:/usr/src/app -v /usr/src/app/node_modules ecommerce-core run clean
```

---
_Source: https://npm.io/package/@gaspard-bruno/ecommerce-core · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
