bit-scope-client

0.6.3 • Public • Published

bit-scope-client

This pacakge is working with the bit project, as a client for the scopes created by bit. You can use it to fetch bit components out of remote scopes and put them in the components directory.

API

fetchComponents (componentIds: string[]): Promise<Response[]>

gets an array of component ids and returns an array of responses with component and dependencies objects as payload.

const { fetchComponents } = require('bit-scope-client');
 
const componentIds = ['bit.utils/array/flat-map', 'bit.promise/global/promisify', 'bit.utils/array/diff'];
 
fetchComponents(componentIds)
.then((componentDependenciesArr) => {
  componentDependenciesArr.forEach((response) => {
    console.log(response.payload)
    // { component: Component, dependencies: Component[] }
    console.log(response.headers)
    // { version: "0.5.0" }
  });
});

The return value is a promise with an Array of objects contains the main Component and its dependencies.

writeComponents (responses: Response[], customDir: ?string): Promise<{ component: Component, dependencies: Component[] }

Takes responses and model them on the file system in components directory, returns a components array.

The second argument is a custom directory (other then components direcotory on the current working directory)

importComponents (componentIds: string[]): Promise<{ component: Component, dependencies: Component[] }>

performs fetch and then write.

Component is an object with the following structure

{
    "component": {
        "scope": "component scope",
        "name": "component name",
        "box": "component namespace",
        "impl": {
            "file": "file contents",
            "name": "impl.js"
        },
        "specs": {
            "file": "file contents",
            "name": "spec.js"
        },
        "dist": {
            "file": "file contents",
            "name": "dist.js"
        },
        "compiler": "component-id/none",
        "tester": "component-id/none",
        "log": {
            "message": "exmaple message",
            "date": "1487178184111",
            "username": "example username",
            "email": "exmaple@email.com"
        },
        "dependencies": ["an array of component ids"],
        "docs": [
            {
                "name": "function name",
                "description": "example description",
                "args": [
                    {
                        "description": "example description",
                        "type": "arg type",
                        "name": "arg name"
                    }
                ],
                "returns": {
                    "description": "example description",
                    "type": "return type"
                },
                "access": "public/private",
                "examples": [
                    {
                        "raw": "raw examples",
                        "code": "identified exampels"
                    }
                ],
                "static": true
            }
        ],
        "ci": { "ci object if the ci run": "example"},
        "specsResults": {
            "tests": [
                {
                    "title": "test description",
                    "pass": true,
                    "err": null,
                    "duration": 2
                }
            ],
            "stats": {
                "start": "2017-02-15T17:03:04.095Z",
                "end": "2017-02-15T17:03:04.104Z",
                "duration": 9
            },
            "pass": true
        },
        "flattenedDependencies": [],
        "packageDependencies": {},
        "version": "1"
    },
    "dependencies": []
}

an example Component object

{
    "component": {
        "scope": "bit.utils",
        "name": "flat-map",
        "box": "array",
        "impl": {
            "file": "/** @flow */\n\n/**\n * Builds a new collection by applying a function to all elements of \n * this array and using the elements of the resulting collections.\n * @name flatMap\n * @param {[*]} array\n * @param {Function} cb\n * @returns {[*]}\n * @example\n * ```js\n *  flatMap([[1, 2, 3], [4, 5, 6]], val => val) // => [1, 2, 3, 4, 5, 6]\n * ```\n */\nmodule.exports = function flatMap(array: any[], cb: (val: any, key: number) => any[]) {\n  return Array.prototype.concat.apply([], array.map(cb));\n};\n",
            "name": "impl.js"
        },
        "specs": {
            "file": "import { expect } from 'chai';\n\nconst flatMap = require(__impl__);\n\ndescribe('#flatMap()', () => {\n  it('should flatten the multi-dimensional array to a single-dimensional one ', () => {\n    const array = [[1, 2, 3], [4, 5, 6]];\n    expect(flatMap(array, val => val)).to.deep.equal([1, 2, 3, 4, 5, 6]);\n  });\n\n  it('should flatten to a single-dimensional array without odd numbers', () => {\n    const array = [[1, 2, 3], [4, 5, 6]];\n    expect(flatMap(array, nums => nums.filter(n => n % 2 === 0)))\n      .to.deep.equal([2, 4, 6]);\n  });\n\n  it('should throw a type error in case the first argument is not an array', () => {\n    expect(() => {\n      flatMap();\n    }).to.throw();\n  });\n\n  it('should throw a type error in case the second argument is not a function', () => {\n    expect(() => {\n      flatMap([]);\n    }).to.throw();\n  });\n});\n",
            "name": "spec.js"
        },
        "dist": {
            "file": "\"use strict\";\n\n/**\n * Builds a new collection by applying a function to all elements of \n * this array and using the elements of the resulting collections.\n * @name flatMap\n * @param {[*]} array\n * @param {Function} cb\n * @returns {[*]}\n * @example\n * ```js\n *  flatMap([[1, 2, 3], [4, 5, 6]], val => val) // => [1, 2, 3, 4, 5, 6]\n * ```\n */\nmodule.exports = function flatMap(array, cb) {\n  return Array.prototype.concat.apply([], array.map(cb));\n};",
            "name": "dist.js"
        },
        "compiler": "bit.envs/compilers/flow::latest",
        "tester": "bit.envs/testers/mocha-chai::latest",
        "log": {
            "message": "initial commit",
            "date": "1487178184111",
            "username": "USERNAME",
            "email": "USERNAME@gmail.com"
        },
        "dependencies": [],
        "docs": [
            {
                "name": "flatMap",
                "description": "Builds a new collection by applying a function to all elements of \nthis array and using the elements of the resulting collections.",
                "args": [
                    {
                        "description": null,
                        "type": "[*]",
                        "name": "array"
                    },
                    {
                        "description": null,
                        "type": "Function",
                        "name": "cb"
                    }
                ],
                "returns": {
                    "description": null,
                    "type": "[*]"
                },
                "access": "public",
                "examples": [
                    {
                        "raw": "```js\n flatMap([[1, 2, 3], [4, 5, 6]], val => val) // => [1, 2, 3, 4, 5, 6]\n```",
                        "code": "```js\nflatMap([[1, 2, 3], [4, 5, 6]], val => val) // => [1, 2, 3, 4, 5, 6]\n```"
                    }
                ],
                "static": false
            }
        ],
        "ci": {},
        "specsResults": {
            "tests": [
                {
                    "title": "#flatMap() should flatten the multi-dimensional array to a single-dimensional one ",
                    "pass": true,
                    "err": null,
                    "duration": 2
                },
                {
                    "title": "#flatMap() should flatten to a single-dimensional array without odd numbers",
                    "pass": true,
                    "err": null,
                    "duration": 0
                },
                {
                    "title": "#flatMap() should throw a type error in case the first argument is not an array",
                    "pass": true,
                    "err": null,
                    "duration": 2
                },
                {
                    "title": "#flatMap() should throw a type error in case the second argument is not a function",
                    "pass": true,
                    "err": null,
                    "duration": 0
                }
            ],
            "stats": {
                "start": "2017-02-15T17:03:04.095Z",
                "end": "2017-02-15T17:03:04.104Z",
                "duration": 9
            },
            "pass": true
        },
        "flattenedDependencies": [],
        "packageDependencies": {},
        "version": "1"
    },
    "dependencies": []
}

Versions

Current Tags

Version History

Package Sidebar

Install

npm i bit-scope-client

Weekly Downloads

0

Version

0.6.3

License

ISC

Last publish

Collaborators

  • teambit-owner
  • shohamgilad
  • davidfirst
  • lalybar
  • ranm8
  • odedre
  • guysaar
  • itaymendel
  • erezbit
  • giteden
  • joshk2
  • redigma
  • yona007
  • jonisar
  • benjgil
  • ocombe