@boost/test-utils
Advanced tools
| export { copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile } from './fixtures.mjs'; | ||
| import './types.mjs'; | ||
| /** | ||
| * @copyright 2020, Miles Johnson | ||
| * @license https://opensource.org/licenses/MIT | ||
| */ | ||
| //# sourceMappingURL=index.mjs.map |
| import type { DirectoryStructure } from './types'; | ||
| export declare function normalizePath(...parts: string[]): string; | ||
| export declare function getFixturePath(fixture: string, file?: string): string; | ||
| export declare function getFixtureNodeModulePath(fixture: string, moduleName: string, file?: string): string; | ||
| export declare function getNodeModulePath(moduleName: string, file?: string): string; | ||
| export declare function removeTempFile(filePath: string): void; | ||
| export declare function copyFixtureToNodeModule(fixture: string, moduleName: string, customModulePath?: boolean): () => void; | ||
| export declare function copyFixtureToTempFolder(fixture: string): string; | ||
| export declare function createTempFileInFixture(fixture: string, file: string, data: any): () => void; | ||
| export declare function createTempFixtureFolder(): string; | ||
| export declare function createTempFolderStructureFromJSON(structure: DirectoryStructure): string; | ||
| //# sourceMappingURL=fixtures.d.ts.map |
| {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAclD,wBAAgB,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,CAEzE;AAED,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAW,GACf,MAAM,CAER;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,CAE/E;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,QAc9C;AAED,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,gBAAgB,GAAE,OAAe,GAC/B,MAAM,IAAI,CAiBZ;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/D;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,IAAI,CAS5F;AAID,wBAAgB,uBAAuB,IAAI,MAAM,CAWhD;AAED,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAgBvF"} |
+105
| import os from 'node:os'; | ||
| import path from 'node:path'; | ||
| import fs from 'fs-extra'; | ||
| import { afterAll } from 'vitest'; | ||
| /* eslint-disable @typescript-eslint/no-use-before-define */ | ||
| const FIXTURES_DIR = path.join(process.cwd(), '../../tests/__fixtures__'); | ||
| const TEMPORARY_FILES = new Set(); | ||
| function normalizeSeparators(part) { | ||
| if (process.platform === 'win32') { | ||
| return part.replace(/\//g, '\\'); | ||
| } | ||
| return part.replace(/\\/g, '/'); | ||
| } | ||
| function normalizePath(...parts) { | ||
| return path.normalize(path.join(...parts.map(normalizeSeparators))); | ||
| } | ||
| function getFixturePath(fixture, file = '') { | ||
| return normalizePath(FIXTURES_DIR, fixture, file); | ||
| } | ||
| function getFixtureNodeModulePath(fixture, moduleName, file = '') { | ||
| return normalizePath(FIXTURES_DIR, fixture, 'node_modules', moduleName, file); | ||
| } | ||
| function getNodeModulePath(moduleName, file = '') { | ||
| return normalizePath(process.cwd(), 'node_modules', moduleName, file); | ||
| } | ||
| function removeTempFile(filePath) { | ||
| if (fs.existsSync(filePath)) { | ||
| try { | ||
| if (fs.statSync(filePath).isDirectory()) { | ||
| fs.emptyDirSync(filePath); | ||
| } | ||
| fs.removeSync(filePath); | ||
| } catch { | ||
| // Ignore? | ||
| } | ||
| } | ||
| TEMPORARY_FILES.delete(filePath); | ||
| } | ||
| function copyFixtureToNodeModule(fixture, moduleName, customModulePath = false) { | ||
| const modulePath = customModulePath ? normalizePath(moduleName) : getNodeModulePath(moduleName); | ||
| const pkgPath = normalizePath(path.join(modulePath, 'package.json')); | ||
| fs.copySync(getFixturePath(fixture), modulePath, { | ||
| overwrite: true | ||
| }); | ||
| if (!fs.existsSync(pkgPath)) { | ||
| fs.writeJsonSync(pkgPath, { | ||
| main: './index.js', | ||
| name: moduleName, | ||
| version: '0.0.0' | ||
| }); | ||
| } | ||
| return () => { | ||
| removeTempFile(modulePath); | ||
| }; | ||
| } | ||
| function copyFixtureToTempFolder(fixture) { | ||
| const tempRoot = createTempFixtureFolder(); | ||
| fs.copySync(getFixturePath(fixture), tempRoot, { | ||
| overwrite: true | ||
| }); | ||
| return tempRoot; | ||
| } | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| function createTempFileInFixture(fixture, file, data) { | ||
| const filePath = getFixturePath(fixture, file); | ||
| // eslint-disable-next-line @typescript-eslint/no-unsafe-argument | ||
| fs.writeFileSync(filePath, data); | ||
| return () => { | ||
| removeTempFile(filePath); | ||
| }; | ||
| } | ||
| let folderCount = 0; | ||
| function createTempFixtureFolder() { | ||
| const tmp = os.tmpdir(); | ||
| // eslint-disable-next-line no-magic-numbers | ||
| const dir = normalizePath(tmp, `boost-${Date.now().toString(16)}${folderCount}`); | ||
| fs.ensureDirSync(dir); | ||
| folderCount += 1; | ||
| TEMPORARY_FILES.add(dir); | ||
| return dir; | ||
| } | ||
| function createTempFolderStructureFromJSON(structure) { | ||
| const root = createTempFixtureFolder(); | ||
| const files = typeof structure === 'function' ? structure(root) : structure; | ||
| Object.entries(files).forEach(([file, contents]) => { | ||
| if (contents === null) { | ||
| return; | ||
| } | ||
| const absFile = path.join(root, file); | ||
| fs.ensureDirSync(path.dirname(absFile)); | ||
| fs.writeFileSync(absFile, contents, 'utf8'); | ||
| }); | ||
| return root; | ||
| } | ||
| afterAll(() => { | ||
| [...TEMPORARY_FILES].forEach(tempFile => { | ||
| removeTempFile(tempFile); | ||
| }); | ||
| }); | ||
| export { copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile }; | ||
| //# sourceMappingURL=fixtures.mjs.map |
| {"version":3,"file":"fixtures.mjs","sources":["../src/fixtures.ts"],"sourcesContent":null,"names":[],"mappings":"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"} |
| /** | ||
| * @copyright 2020, Miles Johnson | ||
| * @license https://opensource.org/licenses/MIT | ||
| */ | ||
| export * from './fixtures'; | ||
| export * from './types'; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"} |
| export { copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile } from './fixtures.mjs'; | ||
| import './types.mjs'; | ||
| /** | ||
| * @copyright 2020, Miles Johnson | ||
| * @license https://opensource.org/licenses/MIT | ||
| */ | ||
| //# sourceMappingURL=index.mjs.map |
| {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":null,"names":[],"mappings":";;;AAAA;AACA;AACA;AACA"} |
| export type DirectoryContent = string | null; | ||
| export type DirectoryJSON = Record<string, DirectoryContent>; | ||
| export type DirectoryStructure = DirectoryJSON | ((root: string) => DirectoryJSON); | ||
| //# sourceMappingURL=types.d.ts.map |
| {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC"} |
| //# sourceMappingURL=types.mjs.map |
| {"version":3,"file":"types.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":""} |
+14
-16
| { | ||
| "name": "@boost/test-utils", | ||
| "version": "4.0.1", | ||
| "type": "commonjs", | ||
| "version": "5.0.0-alpha.1", | ||
| "type": "module", | ||
| "release": "1651512178249", | ||
| "description": "Utility classes and functions for testing Boost applications in Jest.", | ||
| "description": "Utility classes and functions for testing Boost applications in Vitest.", | ||
| "keywords": [ | ||
@@ -12,12 +12,10 @@ "boost", | ||
| ], | ||
| "main": "./cjs/index.cjs", | ||
| "types": "./dts/index.d.ts", | ||
| "main": "./mjs/index.mjs", | ||
| "types": "./mjs/index.d.ts", | ||
| "files": [ | ||
| "cjs/**/*.{cjs,mjs,map}", | ||
| "dts/**/*.d.ts", | ||
| "src/**/*.{ts,tsx,json}" | ||
| "mjs/**/*", | ||
| "src/**/*" | ||
| ], | ||
| "engines": { | ||
| "node": ">=14.15.0", | ||
| "npm": ">=6.14.0" | ||
| "node": ">=16.12.0" | ||
| }, | ||
@@ -35,3 +33,4 @@ "repository": { | ||
| "dependencies": { | ||
| "fs-extra": "^11.1.1" | ||
| "fs-extra": "^11.2.0", | ||
| "vitest": "^1.2.2" | ||
| }, | ||
@@ -44,3 +43,3 @@ "funding": { | ||
| "api": "private", | ||
| "format": "cjs", | ||
| "format": "mjs", | ||
| "platform": "node" | ||
@@ -51,10 +50,9 @@ }, | ||
| ".": { | ||
| "types": "./dts/index.d.ts", | ||
| "node": { | ||
| "import": "./cjs/index-wrapper.mjs", | ||
| "require": "./cjs/index.cjs" | ||
| "types": "./mjs/index.d.ts", | ||
| "import": "./mjs/index.mjs" | ||
| } | ||
| } | ||
| }, | ||
| "gitHead": "fd64842195c9e1c72e726800f004bdc80fa682f8" | ||
| "gitHead": "8fd0f41cca47f7b6ce605eaca5cb2b4932fc89a5" | ||
| } |
+3
-3
| # Testing utilities - Boost | ||
|  | ||
|  | ||
|  | ||
| Jest testing utilities for [Boost](https://github.com/milesj/boost/) powered applications. | ||
| Vite testing utilities for [Boost](https://github.com/milesj/boost/) powered applications. | ||
@@ -11,3 +11,3 @@ ## Requirements | ||
| - Boost | ||
| - Jest | ||
| - Vite | ||
@@ -14,0 +14,0 @@ ## Installation |
+9
-18
| /* eslint-disable @typescript-eslint/no-use-before-define */ | ||
| import os from 'os'; | ||
| import path from 'path'; | ||
| import os from 'node:os'; | ||
| import path from 'node:path'; | ||
| import fs from 'fs-extra'; | ||
| import { DirectoryStructure } from './types'; | ||
| import { afterAll } from 'vitest'; | ||
| import type { DirectoryStructure } from './types'; | ||
| const FIXTURES_DIR = path.join(process.cwd(), 'tests', '__fixtures__'); | ||
| const FIXTURES_DIR = path.join(process.cwd(), '../../tests/__fixtures__'); | ||
@@ -79,10 +80,2 @@ const TEMPORARY_FILES = new Set<string>(); | ||
| export function copyFixtureToMock(fixture: string, mockName: string): () => void { | ||
| const module = jest.requireActual(getFixturePath(fixture)) as unknown as object; | ||
| jest.doMock(mockName, () => module, { virtual: true }); | ||
| return () => jest.dontMock(mockName); | ||
| } | ||
| export function copyFixtureToTempFolder(fixture: string): string { | ||
@@ -141,8 +134,6 @@ const tempRoot = createTempFixtureFolder(); | ||
| if (typeof afterAll === 'function') { | ||
| afterAll(() => { | ||
| [...TEMPORARY_FILES].forEach((tempFile) => { | ||
| removeTempFile(tempFile); | ||
| }); | ||
| afterAll(() => { | ||
| [...TEMPORARY_FILES].forEach((tempFile) => { | ||
| removeTempFile(tempFile); | ||
| }); | ||
| } | ||
| }); |
| 'use strict'; | ||
| Object.defineProperty(exports, '__esModule', { | ||
| value: true | ||
| }); | ||
| const fixtures = require('./fixtures.cjs'); | ||
| require('./types.cjs'); | ||
| /** | ||
| * @copyright 2020, Miles Johnson | ||
| * @license https://opensource.org/licenses/MIT | ||
| */ | ||
| exports.copyFixtureToMock = fixtures.copyFixtureToMock; | ||
| exports.copyFixtureToNodeModule = fixtures.copyFixtureToNodeModule; | ||
| exports.copyFixtureToTempFolder = fixtures.copyFixtureToTempFolder; | ||
| exports.createTempFileInFixture = fixtures.createTempFileInFixture; | ||
| exports.createTempFixtureFolder = fixtures.createTempFixtureFolder; | ||
| exports.createTempFolderStructureFromJSON = fixtures.createTempFolderStructureFromJSON; | ||
| exports.getFixtureNodeModulePath = fixtures.getFixtureNodeModulePath; | ||
| exports.getFixturePath = fixtures.getFixturePath; | ||
| exports.getNodeModulePath = fixtures.getNodeModulePath; | ||
| exports.normalizePath = fixtures.normalizePath; | ||
| exports.removeTempFile = fixtures.removeTempFile; | ||
| //# sourceMappingURL=index.cjs.map |
-133
| 'use strict'; | ||
| Object.defineProperty(exports, '__esModule', { | ||
| value: true | ||
| }); | ||
| const os = require('os'); | ||
| const path = require('path'); | ||
| const fs = require('fs-extra'); | ||
| const _interopDefault = e => e && e.__esModule ? e : { | ||
| default: e | ||
| }; | ||
| const os__default = /*#__PURE__*/_interopDefault(os); | ||
| const path__default = /*#__PURE__*/_interopDefault(path); | ||
| const fs__default = /*#__PURE__*/_interopDefault(fs); | ||
| /* eslint-disable @typescript-eslint/no-use-before-define */ | ||
| const FIXTURES_DIR = path__default.default.join(process.cwd(), 'tests', '__fixtures__'); | ||
| const TEMPORARY_FILES = new Set(); | ||
| function normalizeSeparators(part) { | ||
| if (process.platform === 'win32') { | ||
| return part.replace(/\//g, '\\'); | ||
| } | ||
| return part.replace(/\\/g, '/'); | ||
| } | ||
| function normalizePath(...parts) { | ||
| return path__default.default.normalize(path__default.default.join(...parts.map(normalizeSeparators))); | ||
| } | ||
| function getFixturePath(fixture, file = '') { | ||
| return normalizePath(FIXTURES_DIR, fixture, file); | ||
| } | ||
| function getFixtureNodeModulePath(fixture, moduleName, file = '') { | ||
| return normalizePath(FIXTURES_DIR, fixture, 'node_modules', moduleName, file); | ||
| } | ||
| function getNodeModulePath(moduleName, file = '') { | ||
| return normalizePath(process.cwd(), 'node_modules', moduleName, file); | ||
| } | ||
| function removeTempFile(filePath) { | ||
| if (fs__default.default.existsSync(filePath)) { | ||
| try { | ||
| if (fs__default.default.statSync(filePath).isDirectory()) { | ||
| fs__default.default.emptyDirSync(filePath); | ||
| } | ||
| fs__default.default.removeSync(filePath); | ||
| } catch { | ||
| // Ignore? | ||
| } | ||
| } | ||
| TEMPORARY_FILES.delete(filePath); | ||
| } | ||
| function copyFixtureToNodeModule(fixture, moduleName, customModulePath = false) { | ||
| const modulePath = customModulePath ? normalizePath(moduleName) : getNodeModulePath(moduleName); | ||
| const pkgPath = normalizePath(path__default.default.join(modulePath, 'package.json')); | ||
| fs__default.default.copySync(getFixturePath(fixture), modulePath, { | ||
| overwrite: true | ||
| }); | ||
| if (!fs__default.default.existsSync(pkgPath)) { | ||
| fs__default.default.writeJsonSync(pkgPath, { | ||
| main: './index.js', | ||
| name: moduleName, | ||
| version: '0.0.0' | ||
| }); | ||
| } | ||
| return () => { | ||
| removeTempFile(modulePath); | ||
| }; | ||
| } | ||
| function copyFixtureToMock(fixture, mockName) { | ||
| const module = jest.requireActual(getFixturePath(fixture)); | ||
| jest.doMock(mockName, () => module, { | ||
| virtual: true | ||
| }); | ||
| return () => jest.dontMock(mockName); | ||
| } | ||
| function copyFixtureToTempFolder(fixture) { | ||
| const tempRoot = createTempFixtureFolder(); | ||
| fs__default.default.copySync(getFixturePath(fixture), tempRoot, { | ||
| overwrite: true | ||
| }); | ||
| return tempRoot; | ||
| } | ||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
| function createTempFileInFixture(fixture, file, data) { | ||
| const filePath = getFixturePath(fixture, file); | ||
| // eslint-disable-next-line @typescript-eslint/no-unsafe-argument | ||
| fs__default.default.writeFileSync(filePath, data); | ||
| return () => { | ||
| removeTempFile(filePath); | ||
| }; | ||
| } | ||
| let folderCount = 0; | ||
| function createTempFixtureFolder() { | ||
| const tmp = os__default.default.tmpdir(); | ||
| // eslint-disable-next-line no-magic-numbers | ||
| const dir = normalizePath(tmp, `boost-${Date.now().toString(16)}${folderCount}`); | ||
| fs__default.default.ensureDirSync(dir); | ||
| folderCount += 1; | ||
| TEMPORARY_FILES.add(dir); | ||
| return dir; | ||
| } | ||
| function createTempFolderStructureFromJSON(structure) { | ||
| const root = createTempFixtureFolder(); | ||
| const files = typeof structure === 'function' ? structure(root) : structure; | ||
| Object.entries(files).forEach(([file, contents]) => { | ||
| if (contents === null) { | ||
| return; | ||
| } | ||
| const absFile = path__default.default.join(root, file); | ||
| fs__default.default.ensureDirSync(path__default.default.dirname(absFile)); | ||
| fs__default.default.writeFileSync(absFile, contents, 'utf8'); | ||
| }); | ||
| return root; | ||
| } | ||
| if (typeof afterAll === 'function') { | ||
| afterAll(() => { | ||
| [...TEMPORARY_FILES].forEach(tempFile => { | ||
| removeTempFile(tempFile); | ||
| }); | ||
| }); | ||
| } | ||
| exports.copyFixtureToMock = copyFixtureToMock; | ||
| exports.copyFixtureToNodeModule = copyFixtureToNodeModule; | ||
| exports.copyFixtureToTempFolder = copyFixtureToTempFolder; | ||
| exports.createTempFileInFixture = createTempFileInFixture; | ||
| exports.createTempFixtureFolder = createTempFixtureFolder; | ||
| exports.createTempFolderStructureFromJSON = createTempFolderStructureFromJSON; | ||
| exports.getFixtureNodeModulePath = getFixtureNodeModulePath; | ||
| exports.getFixturePath = getFixturePath; | ||
| exports.getNodeModulePath = getNodeModulePath; | ||
| exports.normalizePath = normalizePath; | ||
| exports.removeTempFile = removeTempFile; | ||
| //# sourceMappingURL=fixtures.cjs.map |
| {"version":3,"file":"fixtures.cjs","sources":["../src/fixtures.ts"],"sourcesContent":null,"names":["FIXTURES_DIR","path","join","process","cwd","TEMPORARY_FILES","Set","normalizeSeparators","part","platform","replace","normalizePath","parts","normalize","map","getFixturePath","fixture","file","getFixtureNodeModulePath","moduleName","getNodeModulePath","removeTempFile","filePath","fs","existsSync","statSync","isDirectory","emptyDirSync","removeSync","delete","copyFixtureToNodeModule","customModulePath","modulePath","pkgPath","copySync","overwrite","writeJsonSync","main","name","version","copyFixtureToMock","mockName","module","jest","requireActual","doMock","virtual","dontMock","copyFixtureToTempFolder","tempRoot","createTempFixtureFolder","createTempFileInFixture","data","writeFileSync","folderCount","tmp","os","tmpdir","dir","Date","now","toString","ensureDirSync","add","createTempFolderStructureFromJSON","structure","root","files","Object","entries","forEach","contents","absFile","dirname","afterAll","tempFile"],"mappings":"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"} |
| // Bundled with Packemon: https://packemon.dev | ||
| // This is an MJS wrapper for a sibling CJS file | ||
| import data from './index.cjs'; | ||
| export const { copyFixtureToMock, copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile } = data; |
| 'use strict'; | ||
| Object.defineProperty(exports, '__esModule', { | ||
| value: true | ||
| }); | ||
| const fixtures = require('./fixtures.cjs'); | ||
| require('./types.cjs'); | ||
| /** | ||
| * @copyright 2020, Miles Johnson | ||
| * @license https://opensource.org/licenses/MIT | ||
| */ | ||
| exports.copyFixtureToMock = fixtures.copyFixtureToMock; | ||
| exports.copyFixtureToNodeModule = fixtures.copyFixtureToNodeModule; | ||
| exports.copyFixtureToTempFolder = fixtures.copyFixtureToTempFolder; | ||
| exports.createTempFileInFixture = fixtures.createTempFileInFixture; | ||
| exports.createTempFixtureFolder = fixtures.createTempFixtureFolder; | ||
| exports.createTempFolderStructureFromJSON = fixtures.createTempFolderStructureFromJSON; | ||
| exports.getFixtureNodeModulePath = fixtures.getFixtureNodeModulePath; | ||
| exports.getFixturePath = fixtures.getFixturePath; | ||
| exports.getNodeModulePath = fixtures.getNodeModulePath; | ||
| exports.normalizePath = fixtures.normalizePath; | ||
| exports.removeTempFile = fixtures.removeTempFile; | ||
| //# sourceMappingURL=index.cjs.map |
| {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":null,"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;"} |
| 'use strict'; | ||
| //# sourceMappingURL=types.cjs.map |
| {"version":3,"file":"types.cjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;"} |
| import { DirectoryStructure } from './types'; | ||
| export declare function normalizePath(...parts: string[]): string; | ||
| export declare function getFixturePath(fixture: string, file?: string): string; | ||
| export declare function getFixtureNodeModulePath(fixture: string, moduleName: string, file?: string): string; | ||
| export declare function getNodeModulePath(moduleName: string, file?: string): string; | ||
| export declare function removeTempFile(filePath: string): void; | ||
| export declare function copyFixtureToNodeModule(fixture: string, moduleName: string, customModulePath?: boolean): () => void; | ||
| export declare function copyFixtureToMock(fixture: string, mockName: string): () => void; | ||
| export declare function copyFixtureToTempFolder(fixture: string): string; | ||
| export declare function createTempFileInFixture(fixture: string, file: string, data: any): () => void; | ||
| export declare function createTempFixtureFolder(): string; | ||
| export declare function createTempFolderStructureFromJSON(structure: DirectoryStructure): string; | ||
| //# sourceMappingURL=fixtures.d.ts.map |
| /** | ||
| * @copyright 2020, Miles Johnson | ||
| * @license https://opensource.org/licenses/MIT | ||
| */ | ||
| export * from './fixtures'; | ||
| export * from './types'; | ||
| //# sourceMappingURL=index.d.ts.map |
| export type DirectoryContent = string | null; | ||
| export type DirectoryJSON = Record<string, DirectoryContent>; | ||
| export type DirectoryStructure = DirectoryJSON | ((root: string) => DirectoryJSON); | ||
| //# sourceMappingURL=types.d.ts.map |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
19
11.76%Yes
NaN17165
-16.43%2
100%249
-21.7%2
100%1
Infinity%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
Updated