@servicetitan/folder-lint 30.3.1 → 31.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/failures.js CHANGED
@@ -1,14 +1,50 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allowedExtensionsFailure = exports.fileNamingConventionFailure = exports.allowedFilesFailure = exports.folderNamingConventionFailure = exports.allowedFolderNameFailure = void 0;
4
- exports.printFailure = printFailure;
5
- exports.printFolderNameFailure = printFolderNameFailure;
6
- exports.printFolderNamingConventionFailure = printFolderNamingConventionFailure;
7
- exports.printAllowedFilesFailure = printAllowedFilesFailure;
8
- exports.printFileNamingConventionFailure = printFileNamingConventionFailure;
9
- exports.printAllowedExtensionsFailure = printAllowedExtensionsFailure;
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get allowedExtensionsFailure () {
13
+ return allowedExtensionsFailure;
14
+ },
15
+ get allowedFilesFailure () {
16
+ return allowedFilesFailure;
17
+ },
18
+ get allowedFolderNameFailure () {
19
+ return allowedFolderNameFailure;
20
+ },
21
+ get fileNamingConventionFailure () {
22
+ return fileNamingConventionFailure;
23
+ },
24
+ get folderNamingConventionFailure () {
25
+ return folderNamingConventionFailure;
26
+ },
27
+ get printAllowedExtensionsFailure () {
28
+ return printAllowedExtensionsFailure;
29
+ },
30
+ get printAllowedFilesFailure () {
31
+ return printAllowedFilesFailure;
32
+ },
33
+ get printFailure () {
34
+ return printFailure;
35
+ },
36
+ get printFileNamingConventionFailure () {
37
+ return printFileNamingConventionFailure;
38
+ },
39
+ get printFolderNameFailure () {
40
+ return printFolderNameFailure;
41
+ },
42
+ get printFolderNamingConventionFailure () {
43
+ return printFolderNamingConventionFailure;
44
+ }
45
+ });
10
46
  function printFailure(f) {
11
- switch (f.type) {
47
+ switch(f.type){
12
48
  case 'allowedFolderNameFailure':
13
49
  return printFolderNameFailure(f);
14
50
  case 'folderNamingConventionFailure':
@@ -21,34 +57,32 @@ function printFailure(f) {
21
57
  return printAllowedExtensionsFailure(f);
22
58
  }
23
59
  }
24
- exports.allowedFolderNameFailure = failure('allowedFolderNameFailure');
60
+ const allowedFolderNameFailure = failure('allowedFolderNameFailure');
25
61
  function printFolderNameFailure(f) {
26
- return (`'${f.folderName}' is not allowed in '${f.parentName}'` +
27
- ` (allowed: ${JSON.stringify(f.allowedNames)})`);
62
+ return `'${f.folderName}' is not allowed in '${f.parentName}'` + ` (allowed: ${JSON.stringify(f.allowedNames)})`;
28
63
  }
29
- exports.folderNamingConventionFailure = failure('folderNamingConventionFailure');
64
+ const folderNamingConventionFailure = failure('folderNamingConventionFailure');
30
65
  function printFolderNamingConventionFailure(f) {
31
66
  return `folder '${f.folderName}' mismatches 'namingConvention' for '${f.parentName}' (${f.namingConvention})`;
32
67
  }
33
- exports.allowedFilesFailure = failure('allowedFilesFailure');
68
+ const allowedFilesFailure = failure('allowedFilesFailure');
34
69
  function printAllowedFilesFailure(f) {
35
- return (`'${f.fileName}' mismatches 'allowedFiles' for '${f.folderName}'` +
36
- ` (allowed: ${JSON.stringify(f.allowedFiles)})`);
70
+ return `'${f.fileName}' mismatches 'allowedFiles' for '${f.folderName}'` + ` (allowed: ${JSON.stringify(f.allowedFiles)})`;
37
71
  }
38
- exports.fileNamingConventionFailure = failure('fileNamingConventionFailure');
72
+ const fileNamingConventionFailure = failure('fileNamingConventionFailure');
39
73
  function printFileNamingConventionFailure(f) {
40
74
  return `'${f.fileName}' mismatches 'namingConvention' for '${f.folderName}' (${f.namingConvention})`;
41
75
  }
42
- exports.allowedExtensionsFailure = failure('allowedExtensionsFailure');
76
+ const allowedExtensionsFailure = failure('allowedExtensionsFailure');
43
77
  function printAllowedExtensionsFailure(f) {
44
- return (`'${f.fileName}' mismatches 'allowedExtensions' for '${f.folderName}'` +
45
- ` (allowed: ${JSON.stringify(f.allowedExtensions)})`);
78
+ return `'${f.fileName}' mismatches 'allowedExtensions' for '${f.folderName}'` + ` (allowed: ${JSON.stringify(f.allowedExtensions)})`;
46
79
  }
47
80
  // ------------------------------------
48
81
  function failure(type) {
49
- return (params) => ({
50
- ...params,
51
- type,
52
- });
82
+ return (params)=>({
83
+ ...params,
84
+ type
85
+ });
53
86
  }
87
+
54
88
  //# sourceMappingURL=failures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"failures.js","sourceRoot":"","sources":["../src/failures.ts"],"names":[],"mappings":";;;AAOA,oCAaC;AAeD,wDAKC;AAeD,gFAEC;AAaD,4DAKC;AAeD,4EAEC;AAeD,sEAKC;AAzGD,SAAgB,YAAY,CAAC,CAAU;IACnC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,0BAA0B;YAC3B,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,+BAA+B;YAChC,OAAO,kCAAkC,CAAC,CAAC,CAAC,CAAC;QACjD,KAAK,qBAAqB;YACtB,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,6BAA6B;YAC9B,OAAO,gCAAgC,CAAC,CAAC,CAAC,CAAC;QAC/C,KAAK,0BAA0B;YAC3B,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;AACL,CAAC;AAWY,QAAA,wBAAwB,GAAG,OAAO,CAC3C,0BAA0B,CAC7B,CAAC;AAEF,SAAgB,sBAAsB,CAAC,CAA2B;IAC9D,OAAO,CACH,IAAI,CAAC,CAAC,UAAU,wBAAwB,CAAC,CAAC,UAAU,GAAG;QACvD,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAClD,CAAC;AACN,CAAC;AAWY,QAAA,6BAA6B,GAAG,OAAO,CAChD,+BAA+B,CAClC,CAAC;AAEF,SAAgB,kCAAkC,CAAC,CAAgC;IAC/E,OAAO,WAAW,CAAC,CAAC,UAAU,wCAAwC,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,gBAAgB,GAAG,CAAC;AAClH,CAAC;AAWY,QAAA,mBAAmB,GAAG,OAAO,CAAsB,qBAAqB,CAAC,CAAC;AAEvF,SAAgB,wBAAwB,CAAC,CAAsB;IAC3D,OAAO,CACH,IAAI,CAAC,CAAC,QAAQ,oCAAoC,CAAC,CAAC,UAAU,GAAG;QACjE,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAClD,CAAC;AACN,CAAC;AAWY,QAAA,2BAA2B,GAAG,OAAO,CAC9C,6BAA6B,CAChC,CAAC;AAEF,SAAgB,gCAAgC,CAAC,CAA8B;IAC3E,OAAO,IAAI,CAAC,CAAC,QAAQ,wCAAwC,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,gBAAgB,GAAG,CAAC;AACzG,CAAC;AAWY,QAAA,wBAAwB,GAAG,OAAO,CAC3C,0BAA0B,CAC7B,CAAC;AAEF,SAAgB,6BAA6B,CAAC,CAA2B;IACrE,OAAO,CACH,IAAI,CAAC,CAAC,QAAQ,yCAAyC,CAAC,CAAC,UAAU,GAAG;QACtE,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CACvD,CAAC;AACN,CAAC;AAED,uCAAuC;AAEvC,SAAS,OAAO,CAAgD,IAAO;IACnE,OAAO,CAAC,MAAuB,EAAK,EAAE,CAAC,CAAC;QACpC,GAAI,MAAc;QAClB,IAAI;KACP,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"sources":["../src/failures.ts"],"sourcesContent":["export type Failure =\n | AllowedFolderNameFailure\n | FolderNamingConventionFailure\n | AllowedFilesFailure\n | FileNamingConventionFailure\n | AllowedExtensionsFailure;\n\nexport function printFailure(f: Failure): string {\n switch (f.type) {\n case 'allowedFolderNameFailure':\n return printFolderNameFailure(f);\n case 'folderNamingConventionFailure':\n return printFolderNamingConventionFailure(f);\n case 'allowedFilesFailure':\n return printAllowedFilesFailure(f);\n case 'fileNamingConventionFailure':\n return printFileNamingConventionFailure(f);\n case 'allowedExtensionsFailure':\n return printAllowedExtensionsFailure(f);\n }\n}\n\n// ------------------------------------\n\nexport interface AllowedFolderNameFailure {\n type: 'allowedFolderNameFailure';\n folderName: string;\n parentName: string;\n allowedNames: string[];\n}\n\nexport const allowedFolderNameFailure = failure<AllowedFolderNameFailure>(\n 'allowedFolderNameFailure'\n);\n\nexport function printFolderNameFailure(f: AllowedFolderNameFailure): string {\n return (\n `'${f.folderName}' is not allowed in '${f.parentName}'` +\n ` (allowed: ${JSON.stringify(f.allowedNames)})`\n );\n}\n\n// ------------------------------------\n\nexport interface FolderNamingConventionFailure {\n type: 'folderNamingConventionFailure';\n folderName: string;\n parentName: string;\n namingConvention: string;\n}\n\nexport const folderNamingConventionFailure = failure<FolderNamingConventionFailure>(\n 'folderNamingConventionFailure'\n);\n\nexport function printFolderNamingConventionFailure(f: FolderNamingConventionFailure): string {\n return `folder '${f.folderName}' mismatches 'namingConvention' for '${f.parentName}' (${f.namingConvention})`;\n}\n\n// ------------------------------------\n\nexport interface AllowedFilesFailure {\n type: 'allowedFilesFailure';\n fileName: string;\n folderName: string;\n allowedFiles: string[];\n}\n\nexport const allowedFilesFailure = failure<AllowedFilesFailure>('allowedFilesFailure');\n\nexport function printAllowedFilesFailure(f: AllowedFilesFailure): string {\n return (\n `'${f.fileName}' mismatches 'allowedFiles' for '${f.folderName}'` +\n ` (allowed: ${JSON.stringify(f.allowedFiles)})`\n );\n}\n\n// ------------------------------------\n\nexport interface FileNamingConventionFailure {\n type: 'fileNamingConventionFailure';\n fileName: string;\n folderName: string;\n namingConvention: string;\n}\n\nexport const fileNamingConventionFailure = failure<FileNamingConventionFailure>(\n 'fileNamingConventionFailure'\n);\n\nexport function printFileNamingConventionFailure(f: FileNamingConventionFailure): string {\n return `'${f.fileName}' mismatches 'namingConvention' for '${f.folderName}' (${f.namingConvention})`;\n}\n\n// ------------------------------------\n\nexport interface AllowedExtensionsFailure {\n type: 'allowedExtensionsFailure';\n fileName: string;\n folderName: string;\n allowedExtensions: string[];\n}\n\nexport const allowedExtensionsFailure = failure<AllowedExtensionsFailure>(\n 'allowedExtensionsFailure'\n);\n\nexport function printAllowedExtensionsFailure(f: AllowedExtensionsFailure): string {\n return (\n `'${f.fileName}' mismatches 'allowedExtensions' for '${f.folderName}'` +\n ` (allowed: ${JSON.stringify(f.allowedExtensions)})`\n );\n}\n\n// ------------------------------------\n\nfunction failure<F extends { type: T }, T extends string = any>(type: T) {\n return (params: Omit<F, 'type'>): F => ({\n ...(params as any),\n type,\n });\n}\n"],"names":["allowedExtensionsFailure","allowedFilesFailure","allowedFolderNameFailure","fileNamingConventionFailure","folderNamingConventionFailure","printAllowedExtensionsFailure","printAllowedFilesFailure","printFailure","printFileNamingConventionFailure","printFolderNameFailure","printFolderNamingConventionFailure","f","type","failure","folderName","parentName","JSON","stringify","allowedNames","namingConvention","fileName","allowedFiles","allowedExtensions","params"],"mappings":";;;;;;;;;;;QAuGaA;eAAAA;;QAnCAC;eAAAA;;QArCAC;eAAAA;;QAuDAC;eAAAA;;QAnCAC;eAAAA;;QAwDGC;eAAAA;;QArCAC;eAAAA;;QA/DAC;eAAAA;;QAmFAC;eAAAA;;QAvDAC;eAAAA;;QAoBAC;eAAAA;;;AAhDT,SAASH,aAAaI,CAAU;IACnC,OAAQA,EAAEC,IAAI;QACV,KAAK;YACD,OAAOH,uBAAuBE;QAClC,KAAK;YACD,OAAOD,mCAAmCC;QAC9C,KAAK;YACD,OAAOL,yBAAyBK;QACpC,KAAK;YACD,OAAOH,iCAAiCG;QAC5C,KAAK;YACD,OAAON,8BAA8BM;IAC7C;AACJ;AAWO,MAAMT,2BAA2BW,QACpC;AAGG,SAASJ,uBAAuBE,CAA2B;IAC9D,OACI,CAAC,CAAC,EAAEA,EAAEG,UAAU,CAAC,qBAAqB,EAAEH,EAAEI,UAAU,CAAC,CAAC,CAAC,GACvD,CAAC,WAAW,EAAEC,KAAKC,SAAS,CAACN,EAAEO,YAAY,EAAE,CAAC,CAAC;AAEvD;AAWO,MAAMd,gCAAgCS,QACzC;AAGG,SAASH,mCAAmCC,CAAgC;IAC/E,OAAO,CAAC,QAAQ,EAAEA,EAAEG,UAAU,CAAC,qCAAqC,EAAEH,EAAEI,UAAU,CAAC,GAAG,EAAEJ,EAAEQ,gBAAgB,CAAC,CAAC,CAAC;AACjH;AAWO,MAAMlB,sBAAsBY,QAA6B;AAEzD,SAASP,yBAAyBK,CAAsB;IAC3D,OACI,CAAC,CAAC,EAAEA,EAAES,QAAQ,CAAC,iCAAiC,EAAET,EAAEG,UAAU,CAAC,CAAC,CAAC,GACjE,CAAC,WAAW,EAAEE,KAAKC,SAAS,CAACN,EAAEU,YAAY,EAAE,CAAC,CAAC;AAEvD;AAWO,MAAMlB,8BAA8BU,QACvC;AAGG,SAASL,iCAAiCG,CAA8B;IAC3E,OAAO,CAAC,CAAC,EAAEA,EAAES,QAAQ,CAAC,qCAAqC,EAAET,EAAEG,UAAU,CAAC,GAAG,EAAEH,EAAEQ,gBAAgB,CAAC,CAAC,CAAC;AACxG;AAWO,MAAMnB,2BAA2Ba,QACpC;AAGG,SAASR,8BAA8BM,CAA2B;IACrE,OACI,CAAC,CAAC,EAAEA,EAAES,QAAQ,CAAC,sCAAsC,EAAET,EAAEG,UAAU,CAAC,CAAC,CAAC,GACtE,CAAC,WAAW,EAAEE,KAAKC,SAAS,CAACN,EAAEW,iBAAiB,EAAE,CAAC,CAAC;AAE5D;AAEA,uCAAuC;AAEvC,SAAST,QAAuDD,IAAO;IACnE,OAAO,CAACW,SAAgC,CAAA;YACpC,GAAIA,MAAM;YACVX;QACJ,CAAA;AACJ"}
package/dist/file.js CHANGED
@@ -1,7 +1,21 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFileBasename = getFileBasename;
4
- exports.getFileExtension = getFileExtension;
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get getFileBasename () {
13
+ return getFileBasename;
14
+ },
15
+ get getFileExtension () {
16
+ return getFileExtension;
17
+ }
18
+ });
5
19
  function getFileBasename(fileName) {
6
20
  const firstPointIndex = fileName.indexOf('.');
7
21
  return firstPointIndex < 0 ? fileName : fileName.substring(0, firstPointIndex);
@@ -10,4 +24,5 @@ function getFileExtension(fileName) {
10
24
  const firstPointIndex = fileName.indexOf('.');
11
25
  return firstPointIndex < 0 ? '' : fileName.substring(firstPointIndex);
12
26
  }
27
+
13
28
  //# sourceMappingURL=file.js.map
package/dist/file.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;AAAA,0CAGC;AAED,4CAGC;AARD,SAAgB,eAAe,CAAC,QAAgB;IAC5C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AACnF,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"sources":["../src/file.ts"],"sourcesContent":["export function getFileBasename(fileName: string): string {\n const firstPointIndex = fileName.indexOf('.');\n return firstPointIndex < 0 ? fileName : fileName.substring(0, firstPointIndex);\n}\n\nexport function getFileExtension(fileName: string): string {\n const firstPointIndex = fileName.indexOf('.');\n return firstPointIndex < 0 ? '' : fileName.substring(firstPointIndex);\n}\n"],"names":["getFileBasename","getFileExtension","fileName","firstPointIndex","indexOf","substring"],"mappings":";;;;;;;;;;;QAAgBA;eAAAA;;QAKAC;eAAAA;;;AALT,SAASD,gBAAgBE,QAAgB;IAC5C,MAAMC,kBAAkBD,SAASE,OAAO,CAAC;IACzC,OAAOD,kBAAkB,IAAID,WAAWA,SAASG,SAAS,CAAC,GAAGF;AAClE;AAEO,SAASF,iBAAiBC,QAAgB;IAC7C,MAAMC,kBAAkBD,SAASE,OAAO,CAAC;IACzC,OAAOD,kBAAkB,IAAI,KAAKD,SAASG,SAAS,CAACF;AACzD"}
@@ -1,101 +1,143 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.checkPath = checkPath;
7
- exports.canonicalizeConfig = canonicalizeConfig;
8
- exports.memoizeConfig = memoizeConfig;
9
- exports.canonicalizeAllowedFiles = canonicalizeAllowedFiles;
10
- exports.alwaysArray = alwaysArray;
11
- exports.inheritNamingConvention = inheritNamingConvention;
12
- exports.inheritAllowedExtensions = inheritAllowedExtensions;
13
- exports.splitFilename = splitFilename;
14
- exports.isAllowedFolderName = isAllowedFolderName;
15
- exports.checkFolder = checkFolder;
16
- exports.checkFolderNamingConvention = checkFolderNamingConvention;
17
- exports.checkFileName = checkFileName;
18
- exports.checkFileNamingConvention = checkFileNamingConvention;
19
- exports.checkFileExt = checkFileExt;
20
- exports.compareByMagicInName = compareByMagicInName;
21
- const glob_1 = require("glob");
22
- const minimatch_1 = __importDefault(require("minimatch"));
23
- const failures_1 = require("./failures");
24
- const file_1 = require("./file");
25
- const lazy_1 = require("./lazy");
26
- const namingConvention_1 = require("./namingConvention");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get alwaysArray () {
13
+ return alwaysArray;
14
+ },
15
+ get canonicalizeAllowedFiles () {
16
+ return canonicalizeAllowedFiles;
17
+ },
18
+ get canonicalizeConfig () {
19
+ return canonicalizeConfig;
20
+ },
21
+ get checkFileExt () {
22
+ return checkFileExt;
23
+ },
24
+ get checkFileName () {
25
+ return checkFileName;
26
+ },
27
+ get checkFileNamingConvention () {
28
+ return checkFileNamingConvention;
29
+ },
30
+ get checkFolder () {
31
+ return checkFolder;
32
+ },
33
+ get checkFolderNamingConvention () {
34
+ return checkFolderNamingConvention;
35
+ },
36
+ get checkPath () {
37
+ return checkPath;
38
+ },
39
+ get compareByMagicInName () {
40
+ return compareByMagicInName;
41
+ },
42
+ get inheritAllowedExtensions () {
43
+ return inheritAllowedExtensions;
44
+ },
45
+ get inheritNamingConvention () {
46
+ return inheritNamingConvention;
47
+ },
48
+ get isAllowedFolderName () {
49
+ return isAllowedFolderName;
50
+ },
51
+ get memoizeConfig () {
52
+ return memoizeConfig;
53
+ },
54
+ get splitFilename () {
55
+ return splitFilename;
56
+ }
57
+ });
58
+ const _glob = require("glob");
59
+ const _minimatch = /*#__PURE__*/ _interop_require_default(require("minimatch"));
60
+ const _failures = require("./failures");
61
+ const _file = require("./file");
62
+ const _lazy = require("./lazy");
63
+ const _namingConvention = require("./namingConvention");
64
+ function _interop_require_default(obj) {
65
+ return obj && obj.__esModule ? obj : {
66
+ default: obj
67
+ };
68
+ }
27
69
  function checkPath(rawCfg) {
28
- const cfg = canonicalizeConfig((0, lazy_1.alwaysLazy)(rawCfg));
70
+ const cfg = canonicalizeConfig((0, _lazy.alwaysLazy)(rawCfg));
29
71
  const memoCfg = memoizeConfig(cfg)();
30
- return (filename) => {
72
+ return (filename)=>{
31
73
  const pathParts = splitFilename(filename);
32
74
  return checkFolder(memoCfg, pathParts, '<root>');
33
75
  };
34
76
  }
35
77
  function canonicalizeConfig(lazyFolder) {
36
- return () => {
78
+ return ()=>{
37
79
  const folder = lazyFolder();
38
80
  const allowedExtensions = alwaysArray(folder.allowedExtensions);
39
- const children = alwaysArray(folder.children)
40
- .map(lazy_1.alwaysLazy)
41
- .map(lazyChild => () => inheritNamingConvention(folder.namingConvention, lazyChild()))
42
- .map(lazyChild => () => inheritAllowedExtensions(allowedExtensions, lazyChild()))
43
- .map(canonicalizeConfig);
81
+ const children = alwaysArray(folder.children).map(_lazy.alwaysLazy).map((lazyChild)=>()=>inheritNamingConvention(folder.namingConvention, lazyChild())).map((lazyChild)=>()=>inheritAllowedExtensions(allowedExtensions, lazyChild())).map(canonicalizeConfig);
44
82
  return {
45
83
  ...folder,
46
84
  allowedExtensions,
47
85
  children,
48
86
  ignore: !!folder.ignore,
49
- allowedFiles: canonicalizeAllowedFiles(folder.allowedFiles),
87
+ allowedFiles: canonicalizeAllowedFiles(folder.allowedFiles)
50
88
  };
51
89
  };
52
90
  }
53
91
  function memoizeConfig(lazyFolder) {
54
- return (0, lazy_1.memoizeConst)(() => {
92
+ return (0, _lazy.memoizeConst)(()=>{
55
93
  const folder = lazyFolder();
56
94
  const children = folder.children.map(memoizeConfig);
57
95
  return {
58
96
  ...folder,
59
- children,
97
+ children
60
98
  };
61
99
  });
62
100
  }
63
- function canonicalizeAllowedFiles(files = ['*']) {
101
+ function canonicalizeAllowedFiles(files = [
102
+ '*'
103
+ ]) {
64
104
  return alwaysArray(files);
65
105
  }
66
106
  function alwaysArray(es = []) {
67
- return Array.isArray(es) ? es : [es];
107
+ return Array.isArray(es) ? es : [
108
+ es
109
+ ];
68
110
  }
69
111
  function inheritNamingConvention(parentNamingConvention, child) {
70
- var _a;
112
+ var _child_namingConvention;
71
113
  return {
72
114
  ...child,
73
- namingConvention: (_a = child.namingConvention) !== null && _a !== void 0 ? _a : parentNamingConvention,
115
+ namingConvention: (_child_namingConvention = child.namingConvention) !== null && _child_namingConvention !== void 0 ? _child_namingConvention : parentNamingConvention
74
116
  };
75
117
  }
76
118
  function inheritAllowedExtensions(parentAllowedExtensions, child) {
77
119
  const overrideExtensions = child.overrideExtensions !== false && child.allowedExtensions !== undefined;
78
120
  const childAllowedExtensions = alwaysArray(child.allowedExtensions);
79
- const allowedExtensions = overrideExtensions
80
- ? childAllowedExtensions
81
- : [...parentAllowedExtensions, ...childAllowedExtensions];
121
+ const allowedExtensions = overrideExtensions ? childAllowedExtensions : [
122
+ ...parentAllowedExtensions,
123
+ ...childAllowedExtensions
124
+ ];
82
125
  return {
83
126
  ...child,
84
- allowedExtensions,
127
+ allowedExtensions
85
128
  };
86
129
  }
87
130
  function splitFilename(filename) {
88
- const path = filename
89
- .replace(/\\/g, '/')
90
- .split('/')
91
- .filter(s => s.length > 0);
131
+ const path = filename.replace(/\\/g, '/').split('/').filter((s)=>s.length > 0);
92
132
  if (path.length < 1) {
93
- return [''];
133
+ return [
134
+ ''
135
+ ];
94
136
  }
95
137
  return path;
96
138
  }
97
139
  function isAllowedFolderName(pattern, folderName) {
98
- return (0, minimatch_1.default)(folderName, pattern);
140
+ return (0, _minimatch.default)(folderName, pattern);
99
141
  }
100
142
  function checkFolder(cfg, subPath, folderName) {
101
143
  if (cfg.ignore) {
@@ -107,56 +149,81 @@ function checkFolder(cfg, subPath, folderName) {
107
149
  return [
108
150
  ...checkFileNamingConvention(cfg.namingConvention, fileName, folderName),
109
151
  ...checkFileName(cfg.allowedFiles, fileName, folderName),
110
- ...checkFileExt(cfg.allowedExtensions, fileName, folderName),
152
+ ...checkFileExt(cfg.allowedExtensions, fileName, folderName)
111
153
  ];
112
154
  }
113
155
  const [childFolderName, ...restPath] = subPath;
114
- const children = cfg.children
115
- .map(c => c()) // load children
116
- .sort(compareByMagicInName);
117
- const allowedChild = children.find(childCfg => isAllowedFolderName(childCfg.name, childFolderName));
156
+ const children = cfg.children.map((c)=>c()) // load children
157
+ .sort(compareByMagicInName);
158
+ const allowedChild = children.find((childCfg)=>isAllowedFolderName(childCfg.name, childFolderName));
118
159
  if (!allowedChild) {
119
160
  return [
120
- (0, failures_1.allowedFolderNameFailure)({
161
+ (0, _failures.allowedFolderNameFailure)({
121
162
  folderName: childFolderName,
122
163
  parentName: folderName,
123
- allowedNames: children.map(c => c.name),
124
- }),
164
+ allowedNames: children.map((c)=>c.name)
165
+ })
125
166
  ];
126
167
  }
127
168
  return [
128
169
  ...checkFolderNamingConvention(cfg.namingConvention, childFolderName, folderName),
129
- ...checkFolder(allowedChild, restPath, childFolderName),
170
+ ...checkFolder(allowedChild, restPath, childFolderName)
130
171
  ];
131
172
  }
132
173
  function checkFolderNamingConvention(namingConvention, folderName, parentName) {
133
- if (!namingConvention_1.NamingConvention.check(namingConvention, folderName)) {
134
- return [(0, failures_1.folderNamingConventionFailure)({ folderName, parentName, namingConvention })];
174
+ if (!_namingConvention.NamingConvention.check(namingConvention, folderName)) {
175
+ return [
176
+ (0, _failures.folderNamingConventionFailure)({
177
+ folderName,
178
+ parentName,
179
+ namingConvention
180
+ })
181
+ ];
135
182
  }
136
183
  return [];
137
184
  }
138
185
  function checkFileName(allowedFiles, fileName, folderName) {
139
- const isMatch = allowedFiles.some(af => (0, minimatch_1.default)(fileName, af));
186
+ const isMatch = allowedFiles.some((af)=>(0, _minimatch.default)(fileName, af));
140
187
  if (!isMatch) {
141
- return [(0, failures_1.allowedFilesFailure)({ fileName, folderName, allowedFiles })];
188
+ return [
189
+ (0, _failures.allowedFilesFailure)({
190
+ fileName,
191
+ folderName,
192
+ allowedFiles
193
+ })
194
+ ];
142
195
  }
143
196
  return [];
144
197
  }
145
198
  function checkFileNamingConvention(namingConvention, fileName, folderName) {
146
- if (!namingConvention_1.NamingConvention.check(namingConvention, (0, file_1.getFileBasename)(fileName))) {
147
- return [(0, failures_1.fileNamingConventionFailure)({ fileName, folderName, namingConvention })];
199
+ if (!_namingConvention.NamingConvention.check(namingConvention, (0, _file.getFileBasename)(fileName))) {
200
+ return [
201
+ (0, _failures.fileNamingConventionFailure)({
202
+ fileName,
203
+ folderName,
204
+ namingConvention
205
+ })
206
+ ];
148
207
  }
149
208
  return [];
150
209
  }
151
210
  function checkFileExt(allowedExtensions, fileName, folderName) {
152
- const fileExt = (0, file_1.getFileExtension)(fileName);
153
- const isMatch = allowedExtensions.some(ae => (0, minimatch_1.default)(fileExt, ae));
211
+ const fileExt = (0, _file.getFileExtension)(fileName);
212
+ const isMatch = allowedExtensions.some((ae)=>(0, _minimatch.default)(fileExt, ae));
154
213
  if (!isMatch) {
155
- return [(0, failures_1.allowedExtensionsFailure)({ fileName, folderName, allowedExtensions })];
214
+ return [
215
+ (0, _failures.allowedExtensionsFailure)({
216
+ fileName,
217
+ folderName,
218
+ allowedExtensions
219
+ })
220
+ ];
156
221
  }
157
222
  return [];
158
223
  }
159
224
  function compareByMagicInName(a, b) {
160
- return +glob_1.glob.hasMagic(a.name) - +glob_1.glob.hasMagic(b.name);
225
+ return +_glob.glob.hasMagic(a.name) - +_glob.glob.hasMagic(b.name);
161
226
  }
227
+ // = T & { [P in K]-?: T[P]; };
228
+
162
229
  //# sourceMappingURL=folderSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"folderSchema.js","sourceRoot":"","sources":["../src/folderSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/folderSchema.ts"],"sourcesContent":["import { glob } from 'glob';\nimport minimatch from 'minimatch';\n\nimport {\n allowedFolderNameFailure,\n allowedExtensionsFailure,\n allowedFilesFailure,\n folderNamingConventionFailure,\n Failure,\n fileNamingConventionFailure,\n} from './failures';\nimport { getFileBasename, getFileExtension } from './file';\nimport { alwaysLazy, MaybeLazy, memoizeConst } from './lazy';\nimport { NamingConvention } from './namingConvention';\n\n/**\n * `Folder` represents tree-like folder schema\n */\nexport interface Folder {\n /**\n * folder name, it is ignored for the root Folder\n * supports Glob\n * https://github.com/isaacs/node-glob#glob-primer\n */\n name: string;\n\n /**\n * defaults to undefined\n * has to be set at least on the root Folder\n */\n namingConvention?: NamingConvention;\n\n /**\n * defaults to []\n */\n children?: MaybeLazy<Folder> | MaybeLazy<Folder>[];\n\n /**\n * defaults to ['*']\n * used to check full file name with extension\n * no path before filename is captured\n * supports Glob\n * https://github.com/isaacs/node-glob#glob-primer\n */\n allowedFiles?: string | string[];\n\n /**\n * defaults to value in previous node or empty array if no previous value\n * used to check only the part that starts after first dot\n * supports Glob\n * https://github.com/isaacs/node-glob#glob-primer\n */\n allowedExtensions?: string | string[];\n\n /**\n * defaults to true, but takes effect only if allowedExtensions is not undefined\n * if false parent extensions are getting concatenated with current ones\n */\n overrideExtensions?: boolean;\n\n /**\n * defaults to false\n * if true then all content will be considered valid.\n */\n ignore?: boolean;\n}\n\nexport interface ParentFolder extends Folder {\n namingConvention: NamingConvention;\n}\n\nexport type RootFolder = MaybeLazy<ParentFolder>;\n\nexport function checkPath(rawCfg: RootFolder) {\n const cfg = canonicalizeConfig(alwaysLazy(rawCfg));\n const memoCfg = memoizeConfig(cfg)();\n\n return (filename: string): Failure[] => {\n const pathParts = splitFilename(filename);\n return checkFolder(memoCfg, pathParts, '<root>');\n };\n}\n\nexport function canonicalizeConfig(lazyFolder: () => ParentFolder): LazyCanonicalFolder {\n return (): CanonicalFolder => {\n const folder = lazyFolder();\n\n const allowedExtensions = alwaysArray(folder.allowedExtensions);\n\n const children = alwaysArray(folder.children)\n .map(alwaysLazy)\n .map(lazyChild => () => inheritNamingConvention(folder.namingConvention, lazyChild()))\n .map(lazyChild => () => inheritAllowedExtensions(allowedExtensions, lazyChild()))\n .map(canonicalizeConfig);\n\n return {\n ...folder,\n\n allowedExtensions,\n children,\n\n ignore: !!folder.ignore,\n allowedFiles: canonicalizeAllowedFiles(folder.allowedFiles),\n };\n };\n}\n\nexport function memoizeConfig(lazyFolder: LazyCanonicalFolder): LazyCanonicalFolder {\n return memoizeConst(() => {\n const folder = lazyFolder();\n const children = folder.children.map(memoizeConfig);\n\n return {\n ...folder,\n children,\n };\n });\n}\n\nexport function canonicalizeAllowedFiles(files: string | string[] = ['*']): string[] {\n return alwaysArray(files);\n}\n\nexport function alwaysArray<T>(es: T | T[] = []): T[] {\n return Array.isArray(es) ? es : [es];\n}\n\nexport interface CanonicalFolder extends ParentFolder {\n children: LazyCanonicalFolder[];\n allowedFiles: string[];\n allowedExtensions: string[];\n ignore: boolean;\n}\n\nexport type LazyCanonicalFolder = () => CanonicalFolder;\n\nexport function inheritNamingConvention<T extends Folder>(\n parentNamingConvention: NamingConvention,\n child: T\n): RequiredProp<T, 'namingConvention'> {\n return {\n ...(child as any),\n namingConvention: child.namingConvention ?? parentNamingConvention,\n };\n}\n\nexport function inheritAllowedExtensions<T extends Folder>(\n parentAllowedExtensions: string[],\n child: T\n): RequiredProp<T, 'allowedExtensions'> {\n const overrideExtensions =\n child.overrideExtensions !== false && child.allowedExtensions !== undefined;\n\n const childAllowedExtensions = alwaysArray(child.allowedExtensions);\n\n const allowedExtensions = overrideExtensions\n ? childAllowedExtensions\n : [...parentAllowedExtensions, ...childAllowedExtensions];\n\n return {\n ...(child as any),\n allowedExtensions,\n };\n}\n\nexport function splitFilename(filename: string): string[] {\n const path = filename\n .replace(/\\\\/g, '/')\n .split('/')\n .filter(s => s.length > 0);\n\n if (path.length < 1) {\n return [''];\n }\n\n return path;\n}\n\nexport function isAllowedFolderName(pattern: string, folderName: string): boolean {\n return minimatch(folderName, pattern);\n}\n\nexport function checkFolder(\n cfg: CanonicalFolder,\n subPath: string[],\n folderName: string\n): Failure[] {\n if (cfg.ignore) {\n return [];\n }\n\n const isLastFolderInPath = subPath.length === 1;\n\n if (isLastFolderInPath) {\n const [fileName] = subPath;\n return [\n ...checkFileNamingConvention(cfg.namingConvention, fileName, folderName),\n ...checkFileName(cfg.allowedFiles, fileName, folderName),\n ...checkFileExt(cfg.allowedExtensions, fileName, folderName),\n ];\n }\n\n const [childFolderName, ...restPath] = subPath;\n\n const children = cfg.children\n .map(c => c()) // load children\n .sort(compareByMagicInName);\n\n const allowedChild = children.find(childCfg =>\n isAllowedFolderName(childCfg.name, childFolderName)\n );\n\n if (!allowedChild) {\n return [\n allowedFolderNameFailure({\n folderName: childFolderName,\n parentName: folderName,\n allowedNames: children.map(c => c.name),\n }),\n ];\n }\n\n return [\n ...checkFolderNamingConvention(cfg.namingConvention, childFolderName, folderName),\n ...checkFolder(allowedChild, restPath, childFolderName),\n ];\n}\n\nexport function checkFolderNamingConvention(\n namingConvention: NamingConvention,\n folderName: string,\n parentName: string\n): Failure[] {\n if (!NamingConvention.check(namingConvention, folderName)) {\n return [folderNamingConventionFailure({ folderName, parentName, namingConvention })];\n }\n\n return [];\n}\n\nexport function checkFileName(\n allowedFiles: string[],\n fileName: string,\n folderName: string\n): Failure[] {\n const isMatch = allowedFiles.some(af => minimatch(fileName, af));\n\n if (!isMatch) {\n return [allowedFilesFailure({ fileName, folderName, allowedFiles })];\n }\n\n return [];\n}\n\nexport function checkFileNamingConvention(\n namingConvention: NamingConvention,\n fileName: string,\n folderName: string\n): Failure[] {\n if (!NamingConvention.check(namingConvention, getFileBasename(fileName))) {\n return [fileNamingConventionFailure({ fileName, folderName, namingConvention })];\n }\n\n return [];\n}\n\nexport function checkFileExt(\n allowedExtensions: string[],\n fileName: string,\n folderName: string\n): Failure[] {\n const fileExt = getFileExtension(fileName);\n const isMatch = allowedExtensions.some(ae => minimatch(fileExt, ae));\n\n if (!isMatch) {\n return [allowedExtensionsFailure({ fileName, folderName, allowedExtensions })];\n }\n\n return [];\n}\n\nexport function compareByMagicInName<T extends { name: string }>(a: T, b: T) {\n return +glob.hasMagic(a.name) - +glob.hasMagic(b.name);\n}\n\n/**\n * Make K properties in T required\n */\ntype RequiredProp<T, K extends keyof T> = T & Required<Pick<T, K>>; // = T & { [P in K]-?: T[P]; };\n"],"names":["alwaysArray","canonicalizeAllowedFiles","canonicalizeConfig","checkFileExt","checkFileName","checkFileNamingConvention","checkFolder","checkFolderNamingConvention","checkPath","compareByMagicInName","inheritAllowedExtensions","inheritNamingConvention","isAllowedFolderName","memoizeConfig","splitFilename","rawCfg","cfg","alwaysLazy","memoCfg","filename","pathParts","lazyFolder","folder","allowedExtensions","children","map","lazyChild","namingConvention","ignore","allowedFiles","memoizeConst","files","es","Array","isArray","parentNamingConvention","child","parentAllowedExtensions","overrideExtensions","undefined","childAllowedExtensions","path","replace","split","filter","s","length","pattern","folderName","minimatch","subPath","isLastFolderInPath","fileName","childFolderName","restPath","c","sort","allowedChild","find","childCfg","name","allowedFolderNameFailure","parentName","allowedNames","NamingConvention","check","folderNamingConventionFailure","isMatch","some","af","allowedFilesFailure","getFileBasename","fileNamingConventionFailure","fileExt","getFileExtension","ae","allowedExtensionsFailure","a","b","glob","hasMagic"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- export { checkPath, Folder, RootFolder } from './folderSchema';
1
+ export type { Folder, RootFolder } from './folderSchema';
2
+ export { checkPath } from './folderSchema';
2
3
  export { NamingConvention } from './namingConvention';
3
- export { Failure, printFailure } from './failures';
4
+ export type { Failure } from './failures';
5
+ export { printFailure } from './failures';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,10 +1,26 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.printFailure = exports.NamingConvention = exports.checkPath = void 0;
4
- var folderSchema_1 = require("./folderSchema");
5
- Object.defineProperty(exports, "checkPath", { enumerable: true, get: function () { return folderSchema_1.checkPath; } });
6
- var namingConvention_1 = require("./namingConvention");
7
- Object.defineProperty(exports, "NamingConvention", { enumerable: true, get: function () { return namingConvention_1.NamingConvention; } });
8
- var failures_1 = require("./failures");
9
- Object.defineProperty(exports, "printFailure", { enumerable: true, get: function () { return failures_1.printFailure; } });
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get NamingConvention () {
13
+ return _namingConvention.NamingConvention;
14
+ },
15
+ get checkPath () {
16
+ return _folderSchema.checkPath;
17
+ },
18
+ get printFailure () {
19
+ return _failures.printFailure;
20
+ }
21
+ });
22
+ const _folderSchema = require("./folderSchema");
23
+ const _namingConvention = require("./namingConvention");
24
+ const _failures = require("./failures");
25
+
10
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA+D;AAAtD,yGAAA,SAAS,OAAA;AAElB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAEzB,uCAAmD;AAAjC,wGAAA,YAAY,OAAA"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export type { Folder, RootFolder } from './folderSchema';\nexport { checkPath } from './folderSchema';\n\nexport { NamingConvention } from './namingConvention';\n\nexport type { Failure } from './failures';\nexport { printFailure } from './failures';\n"],"names":["NamingConvention","checkPath","printFailure"],"mappings":";;;;;;;;;;;QAGSA;eAAAA,kCAAgB;;QAFhBC;eAAAA,uBAAS;;QAKTC;eAAAA,sBAAY;;;8BALK;kCAEO;0BAGJ"}
package/dist/lazy.js CHANGED
@@ -1,18 +1,34 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLazy = isLazy;
4
- exports.alwaysLazy = alwaysLazy;
5
- exports.memoizeConst = memoizeConst;
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get alwaysLazy () {
13
+ return alwaysLazy;
14
+ },
15
+ get isLazy () {
16
+ return isLazy;
17
+ },
18
+ get memoizeConst () {
19
+ return memoizeConst;
20
+ }
21
+ });
6
22
  function isLazy(v) {
7
23
  return typeof v === 'function';
8
24
  }
9
25
  function alwaysLazy(v) {
10
- return isLazy(v) ? v : () => v;
26
+ return isLazy(v) ? v : ()=>v;
11
27
  }
12
28
  function memoizeConst(lazy) {
13
29
  let result;
14
30
  let evaluated = false;
15
- return () => {
31
+ return ()=>{
16
32
  if (!evaluated) {
17
33
  result = lazy();
18
34
  evaluated = true;
@@ -20,4 +36,5 @@ function memoizeConst(lazy) {
20
36
  return result;
21
37
  };
22
38
  }
39
+
23
40
  //# sourceMappingURL=lazy.js.map
package/dist/lazy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":";;AAIA,wBAEC;AAED,gCAEC;AAED,oCAYC;AApBD,SAAgB,MAAM,CAAI,CAAe;IACrC,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,SAAgB,UAAU,CAAI,CAAe;IACzC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,YAAY,CAAI,IAAa;IACzC,IAAI,MAAS,CAAC;IACd,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,OAAO,GAAG,EAAE;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,GAAG,IAAI,EAAE,CAAC;YAChB,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"sources":["../src/lazy.ts"],"sourcesContent":["export type MaybeLazy<T> = (() => NonFunction<T>) | NonFunction<T>;\n\nexport type NonFunction<T> = T extends Function ? never : T;\n\nexport function isLazy<T>(v: MaybeLazy<T>): v is () => NonFunction<T> {\n return typeof v === 'function';\n}\n\nexport function alwaysLazy<T>(v: MaybeLazy<T>): () => T {\n return isLazy(v) ? v : () => v;\n}\n\nexport function memoizeConst<T>(lazy: () => T): () => T {\n let result: T;\n let evaluated = false;\n\n return () => {\n if (!evaluated) {\n result = lazy();\n evaluated = true;\n }\n\n return result;\n };\n}\n"],"names":["alwaysLazy","isLazy","memoizeConst","v","lazy","result","evaluated"],"mappings":";;;;;;;;;;;QAQgBA;eAAAA;;QAJAC;eAAAA;;QAQAC;eAAAA;;;AART,SAASD,OAAUE,CAAe;IACrC,OAAO,OAAOA,MAAM;AACxB;AAEO,SAASH,WAAcG,CAAe;IACzC,OAAOF,OAAOE,KAAKA,IAAI,IAAMA;AACjC;AAEO,SAASD,aAAgBE,IAAa;IACzC,IAAIC;IACJ,IAAIC,YAAY;IAEhB,OAAO;QACH,IAAI,CAACA,WAAW;YACZD,SAASD;YACTE,YAAY;QAChB;QAEA,OAAOD;IACX;AACJ"}
@@ -1,24 +1,31 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NamingConvention = void 0;
4
- var NamingConvention;
5
- (function (NamingConvention) {
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "NamingConvention", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return NamingConvention;
9
+ }
10
+ });
11
+ var NamingConvention = /*#__PURE__*/ function(NamingConvention) {
6
12
  NamingConvention["DashDelimitedLowercase"] = "dash-delimited-lowercase";
7
13
  NamingConvention["CamelCase"] = "camelCase";
8
- })(NamingConvention || (exports.NamingConvention = NamingConvention = {}));
9
- // eslint-disable-next-line @typescript-eslint/no-namespace
10
- (function (NamingConvention) {
14
+ return NamingConvention;
15
+ }({});
16
+ (function(NamingConvention) {
11
17
  function check(conv, name) {
12
18
  if (name === '') {
13
19
  return true;
14
20
  }
15
- switch (conv) {
16
- case NamingConvention.DashDelimitedLowercase:
21
+ switch(conv){
22
+ case "dash-delimited-lowercase":
17
23
  return /^[a-z0-9_]+(-[a-z0-9_]+)*$/.test(name);
18
- case NamingConvention.CamelCase:
24
+ case "camelCase":
19
25
  return /^[a-z_][a-zA-Z0-9_]*$/.test(name);
20
26
  }
21
27
  }
22
28
  NamingConvention.check = check;
23
- })(NamingConvention || (exports.NamingConvention = NamingConvention = {}));
29
+ })(NamingConvention || (NamingConvention = {}));
30
+
24
31
  //# sourceMappingURL=namingConvention.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namingConvention.js","sourceRoot":"","sources":["../src/namingConvention.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,uEAAmD,CAAA;IACnD,2CAAuB,CAAA;AAC3B,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED,2DAA2D;AAC3D,WAAiB,gBAAgB;IAC7B,SAAgB,KAAK,CAAC,IAAsB,EAAE,IAAY;QACtD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,gBAAgB,CAAC,sBAAsB;gBACxC,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,gBAAgB,CAAC,SAAS;gBAC3B,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAVe,sBAAK,QAUpB,CAAA;AACL,CAAC,EAZgB,gBAAgB,gCAAhB,gBAAgB,QAYhC"}
1
+ {"version":3,"sources":["../src/namingConvention.ts"],"sourcesContent":["export enum NamingConvention {\n DashDelimitedLowercase = 'dash-delimited-lowercase',\n CamelCase = 'camelCase',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace NamingConvention {\n export function check(conv: NamingConvention, name: string): boolean {\n if (name === '') {\n return true;\n }\n switch (conv) {\n case NamingConvention.DashDelimitedLowercase:\n return /^[a-z0-9_]+(-[a-z0-9_]+)*$/.test(name);\n case NamingConvention.CamelCase:\n return /^[a-z_][a-zA-Z0-9_]*$/.test(name);\n }\n }\n}\n"],"names":["NamingConvention","check","conv","name","test"],"mappings":";;;;+BAAYA;;;eAAAA;;;AAAL,IAAA,AAAKA,0CAAAA;;;WAAAA;;UAMKA;IACN,SAASC,MAAMC,IAAsB,EAAEC,IAAY;QACtD,IAAIA,SAAS,IAAI;YACb,OAAO;QACX;QACA,OAAQD;YACJ;gBACI,OAAO,6BAA6BE,IAAI,CAACD;YAC7C;gBACI,OAAO,wBAAwBC,IAAI,CAACD;QAC5C;IACJ;qBAVgBF,QAAAA;AAWpB,GAZiBD,qBAAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/folder-lint",
3
- "version": "30.3.1",
3
+ "version": "31.0.0",
4
4
  "description": "",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/folder-schema",
6
6
  "repository": {
@@ -15,7 +15,7 @@
15
15
  "src"
16
16
  ],
17
17
  "dependencies": {
18
- "glob": "~11.0.2",
18
+ "glob": "~11.0.3",
19
19
  "minimatch": "~3.0.5"
20
20
  },
21
21
  "devDependencies": {
@@ -28,5 +28,5 @@
28
28
  "cli": {
29
29
  "webpack": false
30
30
  },
31
- "gitHead": "4d7f01d86d64fc00160d63a2e2a3448f28aa7a2d"
31
+ "gitHead": "c52e188a1217df74052774a2eea6a5126089e3d5"
32
32
  }
package/src/index.ts CHANGED
@@ -1,5 +1,7 @@
1
- export { checkPath, Folder, RootFolder } from './folderSchema';
1
+ export type { Folder, RootFolder } from './folderSchema';
2
+ export { checkPath } from './folderSchema';
2
3
 
3
4
  export { NamingConvention } from './namingConvention';
4
5
 
5
- export { Failure, printFailure } from './failures';
6
+ export type { Failure } from './failures';
7
+ export { printFailure } from './failures';