@ms-cloudpack/path-utilities 2.4.2 → 2.5.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/lib/findPackageRoot.js.map +1 -1
- package/lib/globSourceFiles.d.ts +8 -0
- package/lib/globSourceFiles.d.ts.map +1 -0
- package/lib/globSourceFiles.js +19 -0
- package/lib/globSourceFiles.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/intermediateToSourcePath.js.map +1 -1
- package/lib/isFile.js.map +1 -1
- package/lib/isFileSync.js.map +1 -1
- package/lib/isFolder.js.map +1 -1
- package/lib/isFolderSync.js.map +1 -1
- package/lib/sourceToIntermediatePath.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findPackageRoot.js","sourceRoot":"","sources":["../src/findPackageRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,kBAA4B;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAG,WAAW,CAAC;IAChC,IAAI,kBAAkB,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"findPackageRoot.js","sourceRoot":"","sources":["../src/findPackageRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,kBAA4B;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAG,WAAW,CAAC;IAChC,IAAI,kBAAkB,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAChE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nconst nodeModulesRegex = /[\\\\/]node_modules($|[\\\\/])/;\n\n/**\n * Given an absolute folder path into a package, traverse up the paths\n * until the root has been found (containing the package.json file).\n * Returns undefined if no package root is found after traversing to the filesystem root.\n * @param startFolder - Absolute path to the folder to start searching from.\n * @param excludeNodeModules - If true, don't return a path that contains a `node_modules` segment.\n */\nexport function findPackageRoot(startFolder: string, excludeNodeModules?: boolean): string | undefined {\n const root = path.parse(startFolder).root;\n let currentFolder = startFolder;\n if (excludeNodeModules && nodeModulesRegex.test(startFolder)) {\n currentFolder = startFolder.split(nodeModulesRegex)[0];\n }\n\n while (!fs.existsSync(path.join(currentFolder, 'package.json'))) {\n if (currentFolder === root) {\n return undefined;\n }\n currentFolder = path.dirname(currentFolder);\n }\n\n return currentFolder;\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glob some source files with the correct extension for the runtime context (compiled or Jest).
|
|
3
|
+
* @param importMetaUrl `import.meta.url` of the calling file.
|
|
4
|
+
* @param patternNoExt Pattern to match relative to the calling file's directory, without an extension.
|
|
5
|
+
* @returns List of full paths to matching source files.
|
|
6
|
+
*/
|
|
7
|
+
export declare function globSourceFiles(importMetaUrl: string, patternNoExt: string): Promise<string[]>;
|
|
8
|
+
//# sourceMappingURL=globSourceFiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globSourceFiles.d.ts","sourceRoot":"","sources":["../src/globSourceFiles.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASpG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import glob from 'fast-glob';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
/**
|
|
5
|
+
* Glob some source files with the correct extension for the runtime context (compiled or Jest).
|
|
6
|
+
* @param importMetaUrl `import.meta.url` of the calling file.
|
|
7
|
+
* @param patternNoExt Pattern to match relative to the calling file's directory, without an extension.
|
|
8
|
+
* @returns List of full paths to matching source files.
|
|
9
|
+
*/
|
|
10
|
+
export async function globSourceFiles(importMetaUrl, patternNoExt) {
|
|
11
|
+
const filePath = fileURLToPath(importMetaUrl);
|
|
12
|
+
const dirPath = path.dirname(filePath);
|
|
13
|
+
// Correct file extension (`.js` or `.ts`) depending on the context the code is running in:
|
|
14
|
+
// compiled (`.js`) or Jest test in this package (`.ts`).
|
|
15
|
+
const dynamicImportExtension = path.extname(filePath);
|
|
16
|
+
const files = await glob(patternNoExt + dynamicImportExtension, { cwd: dirPath });
|
|
17
|
+
return files.map((file) => path.join(dirPath, file));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=globSourceFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globSourceFiles.js","sourceRoot":"","sources":["../src/globSourceFiles.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,aAAqB,EAAE,YAAoB;IAC/E,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,2FAA2F;IAC3F,yDAAyD;IACzD,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,GAAG,sBAAsB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC","sourcesContent":["import glob from 'fast-glob';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\n/**\n * Glob some source files with the correct extension for the runtime context (compiled or Jest).\n * @param importMetaUrl `import.meta.url` of the calling file.\n * @param patternNoExt Pattern to match relative to the calling file's directory, without an extension.\n * @returns List of full paths to matching source files.\n */\nexport async function globSourceFiles(importMetaUrl: string, patternNoExt: string): Promise<string[]> {\n const filePath = fileURLToPath(importMetaUrl);\n const dirPath = path.dirname(filePath);\n // Correct file extension (`.js` or `.ts`) depending on the context the code is running in:\n // compiled (`.js`) or Jest test in this package (`.ts`).\n const dynamicImportExtension = path.extname(filePath);\n\n const files = await glob(patternNoExt + dynamicImportExtension, { cwd: dirPath });\n return files.map((file) => path.join(dirPath, file));\n}\n"]}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC","sourcesContent":["export { intermediateToSourcePath } from './intermediateToSourcePath.js';\nexport { isFileSync } from './isFileSync.js';\nexport { isFile } from './isFile.js';\nexport { isFolderSync } from './isFolderSync.js';\nexport { isFolder } from './isFolder.js';\nexport { typescriptExtensions, javascriptExtensions, sourceExtensions } from './sourceExtensions.js';\nexport { sourceToIntermediatePath } from './sourceToIntermediatePath.js';\nexport { findPackageRoot } from './findPackageRoot.js';\nexport { pathSymbolReplacement } from './pathSymbolReplacement.js';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC","sourcesContent":["export { globSourceFiles } from './globSourceFiles.js';\nexport { intermediateToSourcePath } from './intermediateToSourcePath.js';\nexport { isFileSync } from './isFileSync.js';\nexport { isFile } from './isFile.js';\nexport { isFolderSync } from './isFolderSync.js';\nexport { isFolder } from './isFolder.js';\nexport { typescriptExtensions, javascriptExtensions, sourceExtensions } from './sourceExtensions.js';\nexport { sourceToIntermediatePath } from './sourceToIntermediatePath.js';\nexport { findPackageRoot } from './findPackageRoot.js';\nexport { pathSymbolReplacement } from './pathSymbolReplacement.js';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intermediateToSourcePath.js","sourceRoot":"","sources":["../src/intermediateToSourcePath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AACtF,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,wBAAgC,EAAE,QAAgB;IACzF,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,wBAAwB,EACxB,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CACjE,CAAC;IAEF,qDAAqD;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7C,gFAAgF;IAChF,0FAA0F;IAC1F,mDAAmD;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"intermediateToSourcePath.js","sourceRoot":"","sources":["../src/intermediateToSourcePath.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport { isFileSync } from './isFileSync.js';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { sourceExtensions } from './sourceExtensions.js';\n\nconst intermediateFolderNames = ['lib', 'lib-amd', 'lib-esm', 'lib-commonjs', 'dist'];\nconst sourceFolderName = 'src';\n\n/**\n * Takes a relative intermediate content path (e.g. \"lib/foo/bar.js\") and resolves it to a source content path\n * (e.g. \"/src/foo/foo.tsx\"). Note: source files must exist so that the utility can resolve the source.\n */\nexport function intermediateToSourcePath(relativeIntermediatePath: string, rootPath: string): string | undefined {\n const candidates = [];\n const originalExt = path.extname(relativeIntermediatePath);\n const originalPath = path.dirname(relativeIntermediatePath);\n const basename = path.basename(\n relativeIntermediatePath,\n sourceExtensions.includes(originalExt) ? originalExt : undefined,\n );\n\n // Find first non \".\" or \"..\" folder in relative path\n const parts = slash(originalPath).split('/');\n\n // Iterate through parts until we find the first folder name. If the folder name\n // is a known intermediate folder name, then we can replace it with the source folder name\n // and push all candidates to the candidates array.\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n\n if (part !== '.' && part !== '..') {\n if (intermediateFolderNames.includes(part)) {\n // Join the parts back together, replacing the part with the source folder name.\n const newPath = parts.map((v, j) => (j === i ? sourceFolderName : v)).join('/');\n\n // Push all possible source extensions.\n candidates.push(...sourceExtensions.map((ext) => path.join(newPath, basename + ext)));\n\n // Push the original.\n candidates.push(path.join(newPath, basename));\n }\n\n break;\n }\n }\n\n // Push the original path with all supported source extensions.\n candidates.push(...sourceExtensions.map((ext) => path.join(originalPath, basename + ext)));\n\n // And finally push the original path with the original extension in case it wasn't\n // covered.\n candidates.push(relativeIntermediatePath);\n\n // eslint-disable-next-line @ms-cloudpack/internal/no-sync-filesystem\n let match = candidates.find((candidate) => isFileSync(path.resolve(rootPath, candidate)));\n\n // Ensure correct path direction.\n if (match) {\n match = slash(match);\n }\n\n // Re-add the leading period.\n if (match && !match.startsWith('./')) {\n match = './' + match;\n }\n\n return match;\n}\n"]}
|
package/lib/isFile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isFile.js","sourceRoot":"","sources":["../src/isFile.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAgB;IAC3C,IAAI;
|
|
1
|
+
{"version":3,"file":"isFile.js","sourceRoot":"","sources":["../src/isFile.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,KAAK;IACP,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import fsPromises from 'fs/promises';\n\nexport async function isFile(filePath: string): Promise<boolean> {\n try {\n const stat = await fsPromises.stat(filePath);\n return stat.isFile();\n } catch {\n /* */\n }\n\n return false;\n}\n"]}
|
package/lib/isFileSync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isFileSync.js","sourceRoot":"","sources":["../src/isFileSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI;
|
|
1
|
+
{"version":3,"file":"isFileSync.js","sourceRoot":"","sources":["../src/isFileSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,KAAK;IACP,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { lstatSync } from 'fs';\n\nexport function isFileSync(filePath: string): boolean {\n try {\n const stat = lstatSync(filePath);\n return stat.isFile();\n } catch {\n /* */\n }\n\n return false;\n}\n"]}
|
package/lib/isFolder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isFolder.js","sourceRoot":"","sources":["../src/isFolder.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI;
|
|
1
|
+
{"version":3,"file":"isFolder.js","sourceRoot":"","sources":["../src/isFolder.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import fsPromises from 'fs/promises';\n\nexport async function isFolder(itemPath: string): Promise<boolean> {\n try {\n const stat = await fsPromises.stat(itemPath);\n return stat.isDirectory();\n } catch (e) {\n /* no-op */\n }\n\n return false;\n}\n"]}
|
package/lib/isFolderSync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isFolderSync.js","sourceRoot":"","sources":["../src/isFolderSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI;
|
|
1
|
+
{"version":3,"file":"isFolderSync.js","sourceRoot":"","sources":["../src/isFolderSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import fs from 'fs';\n\nexport function isFolderSync(itemPath: string): boolean {\n try {\n return fs.lstatSync(itemPath)?.isDirectory();\n } catch (e) {\n /* no-op */\n }\n\n return false;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceToIntermediatePath.js","sourceRoot":"","sources":["../src/sourceToIntermediatePath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7D,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"sourceToIntermediatePath.js","sourceRoot":"","sources":["../src/sourceToIntermediatePath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7D,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3B,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,mCAAmC;QACnC,GAAG,GAAG,KAAK,CAAC;IACd,CAAC;SAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;SAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QAC3B,oBAAoB;QACpB,GAAG,IAAI,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["import path from 'path';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\n\n/**\n * Takes a relative source path (e.g. \"src/foo/bar.ts\") and resolves it to an intermediate content path\n * (e.g. \"/lib/foo/bar.js\").\n */\nexport function sourceToIntermediatePath(sourcePath: string): string {\n let ext = path.extname(sourcePath);\n const basename = path.basename(sourcePath, ext);\n const pathParts = slash(path.dirname(sourcePath)).split('/');\n\n if (pathParts[0] === '.') {\n pathParts.shift();\n }\n\n if (pathParts[0] === 'src') {\n pathParts[0] = 'lib';\n }\n\n if (['.ts', '.tsx', '.jsx'].includes(ext)) {\n // Handle js replacement extensions\n ext = '.js';\n } else if (ext === '.mts') {\n ext = '.mjs';\n } else if (ext === '.scss') {\n // Handle js appends\n ext += '.js';\n }\n\n return './' + slash(path.join(...pathParts, basename + ext));\n}\n"]}
|
package/lib/tsdoc-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/path-utilities",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Utilities for resolving paths between source/intermediate/output locations in Cloudpack.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"test": "cloudpack-scripts test"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@ms-cloudpack/path-string-parsing": "^1.1.3"
|
|
27
|
+
"@ms-cloudpack/path-string-parsing": "^1.1.3",
|
|
28
|
+
"fast-glob": "^3.2.12"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
30
31
|
"@ms-cloudpack/eslint-plugin-internal": "*",
|