You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			108 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | "use strict"; | ||
|  | Object.defineProperty(exports, "__esModule", { | ||
|  |     value: true | ||
|  | }); | ||
|  | Object.defineProperty(exports, "verifyPartytownSetup", { | ||
|  |     enumerable: true, | ||
|  |     get: function() { | ||
|  |         return verifyPartytownSetup; | ||
|  |     } | ||
|  | }); | ||
|  | const _fs = require("fs"); | ||
|  | const _picocolors = require("./picocolors"); | ||
|  | const _path = /*#__PURE__*/ _interop_require_default(require("path")); | ||
|  | const _hasnecessarydependencies = require("./has-necessary-dependencies"); | ||
|  | const _fileexists = require("./file-exists"); | ||
|  | const _fatalerror = require("./fatal-error"); | ||
|  | const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); | ||
|  | const _getpkgmanager = require("./helpers/get-pkg-manager"); | ||
|  | function _interop_require_default(obj) { | ||
|  |     return obj && obj.__esModule ? obj : { | ||
|  |         default: obj | ||
|  |     }; | ||
|  | } | ||
|  | function _getRequireWildcardCache(nodeInterop) { | ||
|  |     if (typeof WeakMap !== "function") return null; | ||
|  |     var cacheBabelInterop = new WeakMap(); | ||
|  |     var cacheNodeInterop = new WeakMap(); | ||
|  |     return (_getRequireWildcardCache = function(nodeInterop) { | ||
|  |         return nodeInterop ? cacheNodeInterop : cacheBabelInterop; | ||
|  |     })(nodeInterop); | ||
|  | } | ||
|  | function _interop_require_wildcard(obj, nodeInterop) { | ||
|  |     if (!nodeInterop && obj && obj.__esModule) { | ||
|  |         return obj; | ||
|  |     } | ||
|  |     if (obj === null || typeof obj !== "object" && typeof obj !== "function") { | ||
|  |         return { | ||
|  |             default: obj | ||
|  |         }; | ||
|  |     } | ||
|  |     var cache = _getRequireWildcardCache(nodeInterop); | ||
|  |     if (cache && cache.has(obj)) { | ||
|  |         return cache.get(obj); | ||
|  |     } | ||
|  |     var newObj = {}; | ||
|  |     var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; | ||
|  |     for(var key in obj){ | ||
|  |         if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { | ||
|  |             var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; | ||
|  |             if (desc && (desc.get || desc.set)) { | ||
|  |                 Object.defineProperty(newObj, key, desc); | ||
|  |             } else { | ||
|  |                 newObj[key] = obj[key]; | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  |     newObj.default = obj; | ||
|  |     if (cache) { | ||
|  |         cache.set(obj, newObj); | ||
|  |     } | ||
|  |     return newObj; | ||
|  | } | ||
|  | async function missingDependencyError(dir) { | ||
|  |     const packageManager = (0, _getpkgmanager.getPkgManager)(dir); | ||
|  |     throw new _fatalerror.FatalError((0, _picocolors.bold)((0, _picocolors.red)("It looks like you're trying to use Partytown with next/script but do not have the required package(s) installed.")) + "\n\n" + (0, _picocolors.bold)(`Please install Partytown by running:`) + "\n\n" + `\t${(0, _picocolors.bold)((0, _picocolors.cyan)((packageManager === "yarn" ? "yarn add --dev" : packageManager === "pnpm" ? "pnpm install --save-dev" : "npm install --save-dev") + " @builder.io/partytown"))}` + "\n\n" + (0, _picocolors.bold)(`If you are not trying to use Partytown, please disable the experimental ${(0, _picocolors.cyan)('"nextScriptWorkers"')} flag in next.config.js.`) + "\n"); | ||
|  | } | ||
|  | async function copyPartytownStaticFiles(deps, staticDir) { | ||
|  |     const partytownLibDir = _path.default.join(staticDir, "~partytown"); | ||
|  |     const hasPartytownLibDir = await (0, _fileexists.fileExists)(partytownLibDir, _fileexists.FileType.Directory); | ||
|  |     if (hasPartytownLibDir) { | ||
|  |         await _fs.promises.rm(partytownLibDir, { | ||
|  |             recursive: true, | ||
|  |             force: true | ||
|  |         }); | ||
|  |     } | ||
|  |     const { copyLibFiles } = await Promise.resolve(require(_path.default.join(deps.resolved.get("@builder.io/partytown"), "../utils"))); | ||
|  |     await copyLibFiles(partytownLibDir); | ||
|  | } | ||
|  | async function verifyPartytownSetup(dir, targetDir) { | ||
|  |     try { | ||
|  |         var _partytownDeps_missing; | ||
|  |         const partytownDeps = await (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, [ | ||
|  |             { | ||
|  |                 file: "@builder.io/partytown", | ||
|  |                 pkg: "@builder.io/partytown", | ||
|  |                 exportsRestrict: false | ||
|  |             } | ||
|  |         ]); | ||
|  |         if (((_partytownDeps_missing = partytownDeps.missing) == null ? void 0 : _partytownDeps_missing.length) > 0) { | ||
|  |             await missingDependencyError(dir); | ||
|  |         } else { | ||
|  |             try { | ||
|  |                 await copyPartytownStaticFiles(partytownDeps, targetDir); | ||
|  |             } catch (err) { | ||
|  |                 _log.warn(`Partytown library files could not be copied to the static directory. Please ensure that ${(0, _picocolors.bold)((0, _picocolors.cyan)("@builder.io/partytown"))} is installed as a dependency.`); | ||
|  |             } | ||
|  |         } | ||
|  |     } catch (err) { | ||
|  |         // Don't show a stack trace when there is an error due to missing dependencies
 | ||
|  |         if (err instanceof _fatalerror.FatalError) { | ||
|  |             console.error(err.message); | ||
|  |             process.exit(1); | ||
|  |         } | ||
|  |         throw err; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | //# sourceMappingURL=verify-partytown-setup.js.map
 |