Spaces:
Running
Running
ling-open-studio / node_modules /next /dist /server /route-matcher-providers /dev /dev-pages-api-route-matcher-provider.js
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| Object.defineProperty(exports, "DevPagesAPIRouteMatcherProvider", { | |
| enumerable: true, | |
| get: function() { | |
| return DevPagesAPIRouteMatcherProvider; | |
| } | |
| }); | |
| const _pagesapiroutematcher = require("../../route-matchers/pages-api-route-matcher"); | |
| const _routekind = require("../../route-kind"); | |
| const _path = /*#__PURE__*/ _interop_require_default(require("path")); | |
| const _filecacheroutematcherprovider = require("./file-cache-route-matcher-provider"); | |
| const _pages = require("../../normalizers/built/pages"); | |
| function _interop_require_default(obj) { | |
| return obj && obj.__esModule ? obj : { | |
| default: obj | |
| }; | |
| } | |
| class DevPagesAPIRouteMatcherProvider extends _filecacheroutematcherprovider.FileCacheRouteMatcherProvider { | |
| constructor(pagesDir, extensions, reader, localeNormalizer){ | |
| super(pagesDir, reader), this.pagesDir = pagesDir, this.extensions = extensions, this.localeNormalizer = localeNormalizer; | |
| // Match any route file that ends with `/${filename}.${extension}` under the | |
| // pages directory. | |
| this.expression = new RegExp(`\\.(?:${extensions.join('|')})$`); | |
| this.normalizers = new _pages.DevPagesNormalizers(pagesDir, extensions); | |
| } | |
| test(filename) { | |
| // If the file does not end in the correct extension it's not a match. | |
| if (!this.expression.test(filename)) return false; | |
| // Pages API routes must exist in the pages directory with the `/api/` | |
| // prefix. The pathnames being tested here though are the full filenames, | |
| // so we need to include the pages directory. | |
| // TODO: could path separator normalization be needed here? | |
| if (filename.startsWith(_path.default.join(this.pagesDir, '/api/'))) return true; | |
| for (const extension of this.extensions){ | |
| // We can also match if we have `pages/api.${extension}`, so check to | |
| // see if it's a match. | |
| if (filename === _path.default.join(this.pagesDir, `api.${extension}`)) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| } | |
| async transform(files) { | |
| const matchers = []; | |
| for (const filename of files){ | |
| // If the file isn't a match for this matcher, then skip it. | |
| if (!this.test(filename)) continue; | |
| const pathname = this.normalizers.pathname.normalize(filename); | |
| const page = this.normalizers.page.normalize(filename); | |
| const bundlePath = this.normalizers.bundlePath.normalize(filename); | |
| if (this.localeNormalizer) { | |
| matchers.push(new _pagesapiroutematcher.PagesAPILocaleRouteMatcher({ | |
| kind: _routekind.RouteKind.PAGES_API, | |
| pathname, | |
| page, | |
| bundlePath, | |
| filename, | |
| i18n: {} | |
| })); | |
| } else { | |
| matchers.push(new _pagesapiroutematcher.PagesAPIRouteMatcher({ | |
| kind: _routekind.RouteKind.PAGES_API, | |
| pathname, | |
| page, | |
| bundlePath, | |
| filename | |
| })); | |
| } | |
| } | |
| return matchers; | |
| } | |
| } | |
| //# sourceMappingURL=dev-pages-api-route-matcher-provider.js.map |