UNPKG

rigjs

Version:

A multi-repos dev tool based on yarn and git.Rigjs is intended to be the simplest way to develop,share and deliver codes between different developers or different projects.

50 lines (44 loc) 1.2 kB
import regex from '../../utils/regexHelper'; /** * contain attributes of every level in the directory schema */ class DirLevel { /** * Means that is this level's name can be set dynamically. * @type {boolean} */ dynamic: boolean; /** * The meaning of this level.Can be changed when [this.dynamic] is true. * % matches all dir name. * @type {string} */ name: string | '%'; /** * The level in the directory schema * @type {number} */ level: number; constructor(dirName: string, level: number) { this.dynamic = regex.dynamicDir.test(dirName); this.name = dirName; this.level = level; } static createSchema(treeSchema: string) { let dirStrArr = treeSchema.split('/'); dirStrArr = dirStrArr.filter(dirStr => dirStr.length > 0); return dirStrArr.map((dirStr, index) => { return new DirLevel(dirStr, index); }); } static createDirArr(dir: string, schema: DirLevel[]) { let dirStrArr = dir.split('/'); dirStrArr = dirStrArr.filter(dirStr => dirStr.length > 0); return dirStrArr.map((dirStr, index) => { const level = new DirLevel(dirStr, index); level.dynamic = schema[index].dynamic; return level; }); } } export default DirLevel;