@sdk-it/core 0.31.2 → 0.33.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/lib/file-system.ts"],"names":[],"mappings":"AAUA,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,0BAK7C;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1D;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,UAAQ,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,MAAM,EACN,IAAI,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,CAC9D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CACpD;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,EAAE,CACJ,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,iBAqBnE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,YAAY,EACxB,gBAAgB,UAAO,EACvB,UAAU,WAAS,EACnB,MAAM,GAAE,CAAC,MAAM,EAAE;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,KAAK,OAAqB,mBA2B5B;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,YAAY,EACxB,OAAO,GAAE;IACP,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CAMtB,mBAkCF;AAED,eAAO,MAAM,MAAM,GAAI,WAAW,MAAM,WAkBvC,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,UAE3C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,UAAQ,UAKtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,GAAG,IAAI,CAEvE;AACD,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,GACP,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAEvC;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAaxC"}
|
|
1
|
+
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/lib/file-system.ts"],"names":[],"mappings":"AAUA,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,0BAK7C;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1D;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,UAAQ,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,MAAM,EACN,IAAI,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,CAC9D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CACpD;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,EAAE,CACJ,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,iBAqBnE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,YAAY,EACxB,gBAAgB,UAAO,EACvB,UAAU,WAAS,EACnB,MAAM,GAAE,CAAC,MAAM,EAAE;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,KAAK,OAAqB,mBA2B5B;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,YAAY,EACxB,OAAO,GAAE;IACP,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CAMtB,mBAkCF;AAED,eAAO,MAAM,MAAM,GAAI,WAAW,MAAM,WAkBvC,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,UAE3C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,UAAQ,UAKtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,GAAG,IAAI,CAEvE;AACD,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,GACP,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAEvC;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAaxC;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,cAG7C"}
|
package/dist/lib/file-system.js
CHANGED
|
@@ -103,9 +103,7 @@ async function getFolderExportsV2(folder, readFolder2, options = {
|
|
|
103
103
|
}
|
|
104
104
|
} else if (file.fileName !== `index.${options.extensions}` && options.extensions.includes(getExt(file.fileName))) {
|
|
105
105
|
let name = options.includeExtension ? file.fileName : file.fileName.replace(extname(file.fileName), "");
|
|
106
|
-
|
|
107
|
-
name = `\\${name}`;
|
|
108
|
-
}
|
|
106
|
+
name = name.replace(/\$/g, "\\$");
|
|
109
107
|
exports.push(`${options.exportSyntax} './${name}';`);
|
|
110
108
|
}
|
|
111
109
|
}
|
|
@@ -154,6 +152,10 @@ function createWriterProxy(writer, output) {
|
|
|
154
152
|
}
|
|
155
153
|
};
|
|
156
154
|
}
|
|
155
|
+
async function readJson(path) {
|
|
156
|
+
const data = await readFile(path, "utf-8");
|
|
157
|
+
return JSON.parse(data);
|
|
158
|
+
}
|
|
157
159
|
export {
|
|
158
160
|
addLeadingSlash,
|
|
159
161
|
createWriterProxy,
|
|
@@ -165,6 +167,7 @@ export {
|
|
|
165
167
|
isNullOrUndefined,
|
|
166
168
|
notNullOrUndefined,
|
|
167
169
|
readFolder,
|
|
170
|
+
readJson,
|
|
168
171
|
removeTrialingSlashes,
|
|
169
172
|
writeFiles
|
|
170
173
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/file-system.ts"],
|
|
4
|
-
"sourcesContent": ["import { mkdir, readFile, readdir, stat, writeFile } from 'node:fs/promises';\nimport {\n dirname,\n extname,\n isAbsolute,\n join,\n normalize,\n relative,\n} from 'node:path';\n\nexport async function getFile(filePath: string) {\n if (await exist(filePath)) {\n return readFile(filePath, 'utf-8');\n }\n return null;\n}\n\nexport async function exist(file: string): Promise<boolean> {\n return stat(file)\n .then(() => true)\n .catch(() => false);\n}\n\nexport async function readFolder(\n path: string,\n recursive = false,\n): Promise<string[]> {\n if (!(await exist(path))) {\n return [];\n }\n const entries = await readdir(path, { withFileTypes: true });\n const results: string[] = [];\n for (const entry of entries) {\n if (entry.isDirectory()) {\n if (recursive) {\n const subFiles = await readFolder(join(path, entry.name), true);\n for (const sub of subFiles) {\n results.push(`${entry.name}/${sub}`);\n }\n }\n } else {\n results.push(entry.name);\n }\n }\n return results;\n}\n\nexport type WriteContent = Record<\n string,\n null | string | { content: string; ignoreIfExists?: boolean }\n>;\n\nexport type ReadFolderFn = (folder: string) => Promise<\n {\n filePath: string;\n fileName: string;\n isFolder: boolean;\n content?: string;\n }[]\n>;\nexport type Writer = (dir: string, contents: WriteContent) => Promise<void>;\n\nexport async function writeFiles(dir: string, contents: WriteContent) {\n await Promise.all(\n Object.entries(contents).map(async ([file, content]) => {\n if (content === null) {\n return;\n }\n const filePath = isAbsolute(file) ? file : join(dir, file);\n await mkdir(dirname(filePath), { recursive: true });\n if (typeof content === 'string') {\n await writeFile(filePath, content, 'utf-8');\n } else {\n if (content.ignoreIfExists) {\n if (!(await exist(filePath))) {\n await writeFile(filePath, content.content, 'utf-8');\n }\n } else {\n await writeFile(filePath, content.content, 'utf-8');\n }\n }\n }),\n );\n}\n\n/**\n * @deprecated use getFolderExportsV2 instead\n */\nexport async function getFolderExports(\n folder: string,\n readFolder: ReadFolderFn,\n includeExtension = true,\n extensions = ['ts'],\n ignore: (config: {\n filePath: string;\n fileName: string;\n isFolder: boolean;\n }) => boolean = () => false,\n) {\n const files = await readFolder(folder);\n const exports: string[] = [];\n for (const file of files) {\n if (ignore(file)) {\n continue;\n }\n if (file.isFolder) {\n if (\n (await exist(`${file.filePath}/index.ts`)) &&\n (await readFile(`${file.filePath}/index.ts`, 'utf-8')) !== ''\n ) {\n exports.push(\n `export * from './${file.fileName}/index${includeExtension ? '.ts' : ''}';`,\n );\n }\n } else if (\n file.fileName !== 'index.ts' &&\n extensions.includes(getExt(file.fileName))\n ) {\n exports.push(\n `export * from './${includeExtension ? file.fileName : file.fileName.replace(extname(file.fileName), '')}';`,\n );\n }\n }\n return exports.join('\\n');\n}\n\nexport async function getFolderExportsV2(\n folder: string,\n readFolder: ReadFolderFn,\n options: {\n includeExtension?: boolean;\n extensions: string;\n ignore?: (fileInfo: {\n filePath: string;\n fileName: string;\n isFolder: boolean;\n }) => boolean;\n exportSyntax: string;\n } = {\n extensions: 'ts',\n ignore: () => false,\n includeExtension: true,\n exportSyntax: 'export * from ',\n },\n) {\n options.includeExtension ??= true;\n if (!(await exist(folder))) {\n return '';\n }\n const files = await readFolder(folder);\n const exports: string[] = [];\n for (const file of files) {\n if (options.ignore?.(file)) {\n continue;\n }\n if (file.isFolder) {\n if (await exist(`${file.filePath}/index.${options.extensions}`)) {\n exports.push(\n `${options.exportSyntax} './${file.fileName}/index${\n options.includeExtension ? `.${options.extensions}` : ''\n }';`,\n );\n }\n } else if (\n file.fileName !== `index.${options.extensions}` &&\n options.extensions.includes(getExt(file.fileName))\n ) {\n let name = options.includeExtension\n ? file.fileName\n : file.fileName.replace(extname(file.fileName), '');\n
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { mkdir, readFile, readdir, stat, writeFile } from 'node:fs/promises';\nimport {\n dirname,\n extname,\n isAbsolute,\n join,\n normalize,\n relative,\n} from 'node:path';\n\nexport async function getFile(filePath: string) {\n if (await exist(filePath)) {\n return readFile(filePath, 'utf-8');\n }\n return null;\n}\n\nexport async function exist(file: string): Promise<boolean> {\n return stat(file)\n .then(() => true)\n .catch(() => false);\n}\n\nexport async function readFolder(\n path: string,\n recursive = false,\n): Promise<string[]> {\n if (!(await exist(path))) {\n return [];\n }\n const entries = await readdir(path, { withFileTypes: true });\n const results: string[] = [];\n for (const entry of entries) {\n if (entry.isDirectory()) {\n if (recursive) {\n const subFiles = await readFolder(join(path, entry.name), true);\n for (const sub of subFiles) {\n results.push(`${entry.name}/${sub}`);\n }\n }\n } else {\n results.push(entry.name);\n }\n }\n return results;\n}\n\nexport type WriteContent = Record<\n string,\n null | string | { content: string; ignoreIfExists?: boolean }\n>;\n\nexport type ReadFolderFn = (folder: string) => Promise<\n {\n filePath: string;\n fileName: string;\n isFolder: boolean;\n content?: string;\n }[]\n>;\nexport type Writer = (dir: string, contents: WriteContent) => Promise<void>;\n\nexport async function writeFiles(dir: string, contents: WriteContent) {\n await Promise.all(\n Object.entries(contents).map(async ([file, content]) => {\n if (content === null) {\n return;\n }\n const filePath = isAbsolute(file) ? file : join(dir, file);\n await mkdir(dirname(filePath), { recursive: true });\n if (typeof content === 'string') {\n await writeFile(filePath, content, 'utf-8');\n } else {\n if (content.ignoreIfExists) {\n if (!(await exist(filePath))) {\n await writeFile(filePath, content.content, 'utf-8');\n }\n } else {\n await writeFile(filePath, content.content, 'utf-8');\n }\n }\n }),\n );\n}\n\n/**\n * @deprecated use getFolderExportsV2 instead\n */\nexport async function getFolderExports(\n folder: string,\n readFolder: ReadFolderFn,\n includeExtension = true,\n extensions = ['ts'],\n ignore: (config: {\n filePath: string;\n fileName: string;\n isFolder: boolean;\n }) => boolean = () => false,\n) {\n const files = await readFolder(folder);\n const exports: string[] = [];\n for (const file of files) {\n if (ignore(file)) {\n continue;\n }\n if (file.isFolder) {\n if (\n (await exist(`${file.filePath}/index.ts`)) &&\n (await readFile(`${file.filePath}/index.ts`, 'utf-8')) !== ''\n ) {\n exports.push(\n `export * from './${file.fileName}/index${includeExtension ? '.ts' : ''}';`,\n );\n }\n } else if (\n file.fileName !== 'index.ts' &&\n extensions.includes(getExt(file.fileName))\n ) {\n exports.push(\n `export * from './${includeExtension ? file.fileName : file.fileName.replace(extname(file.fileName), '')}';`,\n );\n }\n }\n return exports.join('\\n');\n}\n\nexport async function getFolderExportsV2(\n folder: string,\n readFolder: ReadFolderFn,\n options: {\n includeExtension?: boolean;\n extensions: string;\n ignore?: (fileInfo: {\n filePath: string;\n fileName: string;\n isFolder: boolean;\n }) => boolean;\n exportSyntax: string;\n } = {\n extensions: 'ts',\n ignore: () => false,\n includeExtension: true,\n exportSyntax: 'export * from ',\n },\n) {\n options.includeExtension ??= true;\n if (!(await exist(folder))) {\n return '';\n }\n const files = await readFolder(folder);\n const exports: string[] = [];\n for (const file of files) {\n if (options.ignore?.(file)) {\n continue;\n }\n if (file.isFolder) {\n if (await exist(`${file.filePath}/index.${options.extensions}`)) {\n exports.push(\n `${options.exportSyntax} './${file.fileName}/index${\n options.includeExtension ? `.${options.extensions}` : ''\n }';`,\n );\n }\n } else if (\n file.fileName !== `index.${options.extensions}` &&\n options.extensions.includes(getExt(file.fileName))\n ) {\n let name = options.includeExtension\n ? file.fileName\n : file.fileName.replace(extname(file.fileName), '');\n\n // replace $ with \\ to avoid issues with import/export syntax\n name = name.replace(/\\$/g, '\\\\$');\n exports.push(`${options.exportSyntax} './${name}';`);\n }\n }\n return exports.join('\\n');\n}\n\nexport const getExt = (fileName?: string) => {\n if (!fileName) {\n return ''; // shouldn't happen as there will always be a file name\n }\n const lastDot = fileName.lastIndexOf('.');\n if (lastDot === -1) {\n return '';\n }\n const ext = fileName\n .slice(lastDot + 1)\n .split('/')\n .filter(Boolean)\n .join('');\n if (ext === fileName) {\n // files that have no extension\n return '';\n }\n return ext || 'txt';\n};\n\nexport function addLeadingSlash(path: string) {\n return normalize(join('/', path));\n}\n\nexport function removeTrialingSlashes(path: string, keepLastOne = false) {\n while (path.endsWith('/')) {\n path = path.slice(0, -1);\n }\n return path + (keepLastOne ? '/' : '');\n}\n\nexport function isNullOrUndefined(value: any): value is undefined | null {\n return value === undefined || value === null;\n}\nexport function notNullOrUndefined<T>(\n value: T,\n): value is Exclude<T, null | undefined> {\n return !isNullOrUndefined(value);\n}\n\nexport function createWriterProxy(\n writer: Writer,\n output: string,\n): { writer: Writer; files: Set<string> } {\n const writtenFiles = new Set<string>();\n return {\n files: writtenFiles,\n writer: async (dir: string, contents: WriteContent) => {\n await writer(dir, contents);\n for (const file of Object.keys(contents)) {\n if (contents[file] !== null) {\n writtenFiles.add(addLeadingSlash(`${relative(output, dir)}/${file}`));\n }\n }\n },\n };\n}\n\nexport async function readJson<T>(path: string) {\n const data = await readFile(path, 'utf-8');\n return JSON.parse(data) as T;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["readFolder"]
|
|
7
7
|
}
|