UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

81 lines (79 loc) • 2.62 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var closure_exports = {}; __export(closure_exports, { FORBIDDEN_EXPO_PATTERN_SOURCES: () => FORBIDDEN_EXPO_PATTERN_SOURCES, auditUnpackedManifest: () => auditUnpackedManifest, createResolutionRecorder: () => createResolutionRecorder, findForbiddenDependencies: () => findForbiddenDependencies, isForbiddenExpoSpecifier: () => isForbiddenExpoSpecifier }); module.exports = __toCommonJS(closure_exports); var FORBIDDEN_EXPO_PATTERN_SOURCES = [ "^expo$", "^expo-.*", "^@expo/.*", "^expo-modules-core$", "^@expo/config-plugins$", "^babel-preset-expo$" ]; var FORBIDDEN_EXPO_PATTERNS = FORBIDDEN_EXPO_PATTERN_SOURCES.map(function(source) { return new RegExp(source); }); function isForbiddenExpoSpecifier(specifier) { var bare = specifier.split("?")[0].split("#")[0]; var name = bare.startsWith("@") ? bare.split("/").slice(0, 2).join("/") : bare.split("/")[0]; return FORBIDDEN_EXPO_PATTERNS.some(function(pattern) { return pattern.test(name); }); } function findForbiddenDependencies(resolved) { var names = Array.isArray(resolved) ? resolved : Object.keys(resolved); return [...new Set(names.filter(isForbiddenExpoSpecifier))].sort(); } function auditUnpackedManifest(manifest) { return findForbiddenDependencies({ ...manifest.dependencies, ...manifest.devDependencies, ...manifest.peerDependencies }); } function createResolutionRecorder() { var events = []; return { record(specifier, importer) { if (isForbiddenExpoSpecifier(specifier)) { throw new Error(`[one] forbidden expo specifier resolves: "${specifier}"`); } if (specifier.includes("/expo/") || specifier.includes("expo-modules-core")) { throw new Error(`[one] forbidden expo source path resolves: "${specifier}"`); } events.push({ specifier, importer }); }, events() { return [...events]; } }; }