123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- 'use strict';
- const babylon = require('@babel/parser');
- const defaultOptions = {
- sourceType: 'module',
- allowImportExportEverywhere: true,
- allowReturnOutsideFunction: true,
- startLine: 1,
- tokens: true,
- plugins: [
- ['flow', {all: true}],
- 'flowComments',
- 'jsx',
- 'asyncGenerators',
- 'bigInt',
- 'classProperties',
- 'classPrivateProperties',
- 'classPrivateMethods',
- ['decorators', {decoratorsBeforeExport: false}],
- 'doExpressions',
- 'dynamicImport',
- 'exportDefaultFrom',
- 'exportNamespaceFrom',
- 'functionBind',
- 'functionSent',
- 'importMeta',
- 'logicalAssignment',
- 'nullishCoalescingOperator',
- 'numericSeparator',
- 'objectRestSpread',
- 'optionalCatchBinding',
- 'optionalChaining',
- ['pipelineOperator', {proposal: 'minimal'}],
- 'throwExpressions',
- ],
- };
- /**
- * Wrapper to set default options
- */
- module.exports = function(options=defaultOptions) {
- return {
- parse(code) {
- return babylon.parse(code, options);
- },
- };
- };
|