open-index/open-npm huggingface dataset:
npm package: @noname-land/eslint-config
Description: ESLint config for our projects, based on Standard
Latest version: 1.0.0

# @noname-land/eslint-config

[![npm](https://img.shields.io/npm/v/@noname-land/eslint-config.svg)](https://www.npmjs.com/package/@noname-land/eslint-config)

## Installation

```sh
npx install-peerdeps --dev @noname-land/eslint-config
```

## Usage

By CLI:

```sh
eslint --cache -c node_modules/@noname-land/eslint-config/.eslintrc.js .
```

By config file (`.eslintrc.js`):

```js
module.exports = {
  extends: '@noname-land',
};
```
npm package: @noname-land/get
Description: Returns value from object by key-chain, or default value, or undefined
Latest version: 1.0.0

# @noname-land/get

[![npm](https://img.shields.io/npm/v/@noname-land/get.svg)](https://www.npmjs.com/package/@noname-land/get)

Returns the value in a nested object, by string-sequence of keys.
Returns `undefined` if the key is not present, or the default value 
if supplied.

## Installation

```sh
npm i --save @noname-land/get
```

## Usage

```js
import get from '@noname-land/get';

const obj = {
  a: 1,
  b: 2,
  c: {
    d: 1,
    e: 2,
    f: {
      g: 1,
      h: 2,
      i: 3,
    },
  },
};

console.log(get(obj, 'c.f.i')); // 3
console.log(get(obj, 'c.f.i.j')); // undefined
console.log(get(obj, 'c.f.i.j', 1)); // 1
```
npm package: @noname-land/is-email
Description: [![npm](https://img.shields.io/npm/v/@noname-land/is-email.svg)](https://www.npmjs.com/package/@noname-land/is-email)
Latest version: 1.0.0

# @noname-land/is-email

[![npm](https://img.shields.io/npm/v/@noname-land/is-email.svg)](https://www.npmjs.com/package/@noname-land/is-email)

## Installation

```sh
npm i --save @noname-land/is-email
```

## Usage

```js
const isEmail = require('@noname-land/is-email');

console.log(isEmail('mail@example.com')); // true
console.log(isEmail('mailexamplecom')); // false
console.log(isEmail(0)); // false
console.log(isEmail({}})); // false
```
npm package: @noname-land/local-storage
Description: Safe wrapper around LS
Latest version: 2.0.0

# @noname-land/local-storage

[![npm](https://img.shields.io/npm/v/@noname-land/local-storage.svg)](https://www.npmjs.com/package/@noname-land/local-storage)

Fallback for Local Storage which makes it possible to read/write to a plain 
object instead of localStorage when it's not available (e.g. in Safari Private 
Browsing Mode).

## Installation

```sh
npm i --save @noname-land/local-storage
```

## Usage

```js
import LS from '@noname-land/local-storage';

const key = LS.getItem('key'); // do everything you wanna do with Local Storage
```

## Browsers Support

It uses [`Object.keys`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) 
and [`Object.defineProperty`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty), 
so works only in IE9+.
npm package: @noname-land/omit
Description: Returns passed object without passed keys
Latest version: 1.0.0

# @noname-land/omit

[![npm](https://img.shields.io/npm/v/@noname-land/omit.svg)](https://www.npmjs.com/package/@noname-land/omit)

## Installation

```sh
npm i --save @noname-land/omit
```

## Usage

```js
import omit from '@noname-land/omit';

console.log(omit({ a: 1, b: 2, c: 3 }, 'a', 'b')); // { c: 3 }
```
npm package: @noname-land/parse-diff
Description: Simple unified diff parser for Node.js
Latest version: 1.0.0

# @noname-land/parse-diff

[![npm](https://img.shields.io/npm/v/@noname-land/parse-diff.svg)](https://www.npmjs.com/package/@noname-land/parse-diff)

Simple unified diff parser for Node.js.

## Installation

```sh
npm i --save @noname-land/parse-diff
```

## Usage

```js
const parse = require('@noname-land/parse-diff');
const diff = `\
diff --git a/test b/test
deleted file mode 100644
index db81be4..0000000
--- b/test
+++ /dev/null
@@ -1,2 +0,0 @@
-line1
-line2\
`;
const files = parse(diff);
console.log(files.length); // number of changed files

files.forEach(file => {
  // number of chunks
  console.log(file.chunks.length); 
  
  // chunk added/deleted/unchanged lines
  console.log(file.chunks[0].lines.length) 
  
  // number of deletions in the diff
  console.log(file.deletions); 
  
  // number of additions in the diff
  console.log(file.additions); 
});
```

## Note

This package is a fork of 
[parse-diff](https://github.com/sergeyt/parse-diff) by @sergeyt. 
It has been rewritten with ES6 and refactored to be more clear 
and readable. 

The original package was published under [MIT](https://github.com/sergeyt/parse-diff/blob/master/LICENSE).
npm package: @noname-land/scss-functions
Description: Small collection of custom SCSS functions
Latest version: 1.0.0

# @noname-land/scss-functions

[![npm](https://img.shields.io/npm/v/@noname-land/scss-functions.svg)](https://www.npmjs.com/package/@noname-land/scss-functions)

## Installation

```sh
npm i --save @noname-land/scss-functions
```

## Usage

Pass package's export into 
[`functions`](https://github.com/sass/node-sass#functions--v300---experimental)
option of Sass.
npm package: @noname-land/scss-loader
Description: Webpack SCSS loader for BEM environment
Latest version: 1.0.2

# @noname-land/scss-loader

[![npm](https://img.shields.io/npm/v/@noname-land/scss-loader.svg)](https://www.npmjs.com/package/@noname-land/scss-loader)

It uses [sass-loader](https://github.com/webpack-contrib/sass-loader) 
inside, and two “preloaders” for it.

The first preloader adds `$b` variable with a current BEM block name 
as a value.
It tries to find it using recursive file system tree search from current
file to `/`.

The second preloader adds `@imports` of all paths listed in 
`pathsToImports` option.

Everything else is just a regular sass-loader. 

**Works with SCSS only.**

## Installation

```sh
npm i --save @noname-land/scss-loader
```

## Usage

```js
// webpack.config.js
module.exports = {
  // ...
  module: {
    rules: [
      // ...
      {
        test: /\.scss$/,
        use: [
          // ...
          {
            loader: '@noname-land/scss-loader',
            options: {
              implementation: require('sass'),
              
              sassOptions: {
                fiber: require('fibers'),
                sourceMap: true,
                includePaths: ['absolute/path/to/files'],
              },
              // ↑ optional things here; 
              // just to clarify that you can pass them through 
              // this loader to sass-loader
              
              pathsToImport: [
                'path/to/some/scss/file'
              ],
              // ↑ option for second “preloader” 
            },
          },
          // ...
        ],
      },
      // ...
    ],
  },
  // ...
};
```

## Example

Let's say you have a file tree kind of this:

```text

common
└── variables.scss
components
└── block
    └── __elem
        └── block__elem.scss
```

`block__elem.scss`:

```scss
#{$b}__elem {
  color: $mainColor;
}
```

`variables.scss`:

```scss
$mainColor: red;
```

And you also have the loader configured in this way:

```js
// ...
{
  loader: '@noname-land/scss-loader',
  options: {
    // ...
    pathsToImport: [
      'path/to/common/variables.scss'
    ],
  },
},
// ...
```

On build stage your `block__elem.scss` will be changed step-by-step:

1. `$b` will be prepended:

    ```scss
    $b: 'block';   
 
    #{$b}__elem {
      color: $mainColor;
    }
    ``` 
    
2. Then `@import` to `variables.scss` will be prepended:

    ```scss
    @import 'path/to/common/variables.scss';   
 
    $b: 'block';   
 
    #{$b}__elem {
      color: $mainColor;
    }
    ``` 
    
3. Finally, sass-loader will compile your file using Sass renderer, and 
   you will get this:

    ```css
    .block__elem {
      color: red;
    }
    ```
npm package: @noname-land/sleep
Description: Promise-based sleep
Latest version: 1.0.0

# @noname-land/sleep

[![npm](https://img.shields.io/npm/v/@noname-land/sleep.svg)](https://www.npmjs.com/package/@noname-land/sleep)

## Installation

```sh
npm i --save @noname-land/sleep
```

## Usage

```js
const sleep = require('@noname-land/sleep');

(async () => {
  console.log(1); // 1
  await sleep(60 * 1000); // wait for a minute
  console.log(2); // 2
})();
```
npm package: @noname-land/stylelint-config
Description: Stylelint configuration for our projects
Latest version: 1.0.1

# @noname-land/stylelint-config

[![npm](https://img.shields.io/npm/v/@noname-land/stylelint-config.svg)](https://www.npmjs.com/package/@noname-land/stylelint-config)

## Installation

```sh
npx install-peerdeps --dev @noname-land/stylelint-config
```

## Usage

By CLI:

```sh
stylelint "src/**/*.scss" --syntax scss --cache --config node_modules/@noname-land/stylelint-config/.stylelintrc
```

By config file (`.stylelintrc`):

```json
{
  "extends": "@noname-land/stylelint-config"
}
```
npm package: @noname-land/svg-sprite-data
Description: Create SVG sprite data only
Latest version: 0.1.1

# @noname-land/svg-sprite-data

**Note: The project is a fork of the same called package 
[svg-sprite-data](https://github.com/shakyShane/svg-sprite-data)! 
It was created because the original one was abandoned for a long time,
but there's a possibility that the author of that project has already
returned and continued to support it. So go and check the status of 
that project first.** 

An attempt to make the [svg-sprite](https://github.com/jkphl/svg-sprite) 
lib work on strings only which will allow everyone to create their own 
awesome libs on top of it.

The idea is to remove ALL file-system access and leave all that to the 
authors who create tools on top of this. So, this module only has a 
couple of methods, only accepts strings & only returns data - it never 
touches anything on the file-system.

## Usage

```js
const SpriteData = require('svg-sprite-data');
const fs  = require('fs');

const config = {
  common: 'icon',
  dims: true,
  layout: 'diagonal',
  render: {
    css: true
  }
};

// Create instance
const spriter = new SpriteData(config);

// Read a file however you like
const path = './test/fixtures/fb.svg';
const svg  = fs.readFileSync(path, 'utf-8');

// Add the files CONTENTS only.
spriter.add(path, svg).compile(function (err, svg) {
  // Do crazy-ass shit with templates etc
  console.log(svg);
});
```