内容简介:Utility functions deal with files in your project. Make production easierIf not passed path or ext (more likely you don't need to), then all functions can automatically read the current project directory whether it is
get-info
Utility functions deal with files in your project. Make production easier
get-info
Contains a bunch od functions read packages in root project,
validate each package, return the path, JSON, and extension(js|ts) used for each
one. As it is essentially created to deal with monorepos, it works as well for a
single package project.
npm install get-info
API
If not passed path or ext (more likely you don't need to), then all functions
can automatically read the current project directory whether it is packages/**/src
or ./src
getPackagesInfo
/**
* Gets package full info by passed name of packages.
*
* @param {Object} input
* @param {Array} input.path Array contains paths to each package
* @param {Array} input.ext Array contains extension associated to each package
* @param {string} [input.buildName="dist"]
* @returns {Object[]} results
* @returns {Array} results[].ext
* @returns {Array} results[].json
* @returns {Array} results[].path
*/
const { json, ext } = getPackagesInfo({ buildName, path, ext })(
...packagesName
);
Example(1)
import { getPackagesInfo } from "get-info";
const { ext, json, path } = getPackagesInfo()("myFav/project another/project");
expect(json).to.be.an("Array");
expect(json.length).to.be.equal(2);
expect(json[0].name).to.be.equal("@myFav/project");
expect(json[1].name).to.be.equal("@another/project");
getJsonByPath
/**
* Gets package json by path. Reads each passed directory. Then, returns
* objects extracted form these json files including source and distention path.
*
* Note: this function validate accessability and throw error if there's
* something wrong in src/index.ext
*
* @param {Array} path Array contains paths to each package
* @param {Array} ext Array contains extension associated to each package
*
* @returns {Object[]} pkgInfo is an object of arrays
* @returns {string} pkgInfo[].sourcePath
* @returns {string} pkgInfo[].distPath
* @returns {string} pkgInfo[].name
* @returns {Object} pkgInfo[].peerDependencies
* @returns {Object} pkgInfo[].dependencies
* @returns {...*} other
*/
const { json, ext } = getJsonByPath({ path, ext });
Example(2)
import { getJsonByPath } from "get-info";
const { json, ext } = getJsonByPath();
expect(json).to.be.an("Array");
expect(json.length).to.be.equal(1);
expect(json[0].name).to.be.equal("get-info");
getPackagesPath
/**
* Gets packages path for a given project source root. It filters each path
* returns only packages contain valid src/index and have package.json
*
* @param {string} dir packages main directory [path="./packages/*"]
* @returns {Object[]} results
* @returns {Array} results[].path valid path directory
* @returns {Array} results[].ext extension for each path (js|ts)
*/
const { path, ext } = getPackagesPath({ dir });
Example(3)
import { getPackagesPath } from "get-info";
const { path, ext } = getPackagesPath();
const expectedPaths = [
"./packages/myProj1",
"./packages/myProj2",
"./packages/myProj3"
];
const expectedExtensions = ["js", "ts", "ts"];
expect(path).to.deep.equal(expectedPaths);
expect(ext).to.deep.equal(expectedExtensions);
Utils
Utility functions used in this project are also exported for further use.
utils.getFileExtension
import { utils } from "get-info";
/**
* Loop inside a given directory looking for index. When find it, gets its
* extension.
*
* @param {string} dir - given directory
* @returns {string} extension.
*/
const { getFileExtension } = utils;
const extension = getFileExtension(dir);
utils.validateAccessability
import { utils } from "get-info";
/**
* Validates access readability `package.json` & `src` for given path.
*
* @param {string} dir
* @param {string} [srcName="src"]
* @returns {string} extension
*/
const { validateAccessability } = utils;
const extension = validateAccessability(dir, srcName);
utils.filterPathAccessability
import { utils } from "get-info";
/**
* Filters array of path by validate each path. Make sure it has `package.json`
* and `src`.
*
* @param {Array} [pkgPath=[]]
* @returns {Object} results[]
* @returns {Array} results[].path filtered valid paths
* @returns {Array} results[].ext extension for each path (js|ts)
*/
const { filterPathAccessability } = utils;
const { path, ext } = filterPathAccessability(pkgPath);
Related projects
-
packageSorter - Sorting packages for monorepos production.
-
builderz - Building your project with zero config.
Tests
npm test
License
This project is licensed under the GPL-3.0 License
以上所述就是小编给大家介绍的《Utility functions for projects production》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据化运营速成手册
胡晨川 / 电子工业出版社 / 2017-4 / 55
《数据化运营速成手册》用于提升互联网公司员工的数据应用能力,即数据化运营能力。首先,从最常用的数据图表切入,帮助执行层正确地绘图,管理层正确地看图;接着,梳理运营中最基本的数据应用知识,涉及数据获取、数据清洗、数据认知、分析框架、指标体系、运营实验等内容。然后,介绍作者认为必要的统计学知识,包括假设检验、方差分析、回归分析和时间序列分解,并引入了管理科学中的规划求解方法。最后,介绍了数据分析工具的......一起来看看 《数据化运营速成手册》 这本书的介绍吧!