From 72371cb6376a50e5516aa80714dbecb4eee058a9 Mon Sep 17 00:00:00 2001 From: Bogdan Savluk Date: Thu, 13 May 2021 05:18:20 +0200 Subject: [PATCH] convert @babel/helper-create-regexp-features-plugin to typescript (#13215) --- .../src/{features.js => features.ts} | 3 +-- .../src/{index.js => index.ts} | 8 +++++++- .../src/{util.js => util.ts} | 11 ++++++++++- tsconfig.json | 4 ++++ 4 files changed, 22 insertions(+), 4 deletions(-) rename packages/babel-helper-create-regexp-features-plugin/src/{features.js => features.ts} (93%) rename packages/babel-helper-create-regexp-features-plugin/src/{index.js => index.ts} (95%) rename packages/babel-helper-create-regexp-features-plugin/src/{util.js => util.ts} (83%) diff --git a/packages/babel-helper-create-regexp-features-plugin/src/features.js b/packages/babel-helper-create-regexp-features-plugin/src/features.ts similarity index 93% rename from packages/babel-helper-create-regexp-features-plugin/src/features.js rename to packages/babel-helper-create-regexp-features-plugin/src/features.ts index 8e82b1342e..51a0c21b4d 100644 --- a/packages/babel-helper-create-regexp-features-plugin/src/features.js +++ b/packages/babel-helper-create-regexp-features-plugin/src/features.ts @@ -1,4 +1,3 @@ -// @flow export const FEATURES = Object.freeze({ unicodeFlag: 1 << 0, dotAllFlag: 1 << 1, @@ -16,7 +15,7 @@ export const FEATURES = Object.freeze({ export const featuresKey = "@babel/plugin-regexp-features/featuresKey"; export const runtimeKey = "@babel/plugin-regexp-features/runtimeKey"; -type FeatureType = $Values; +type FeatureType = typeof FEATURES[keyof typeof FEATURES]; export function enableFeature(features: number, feature: FeatureType): number { return features | feature; diff --git a/packages/babel-helper-create-regexp-features-plugin/src/index.js b/packages/babel-helper-create-regexp-features-plugin/src/index.ts similarity index 95% rename from packages/babel-helper-create-regexp-features-plugin/src/index.js rename to packages/babel-helper-create-regexp-features-plugin/src/index.ts index c48f200988..3051af32ff 100644 --- a/packages/babel-helper-create-regexp-features-plugin/src/index.js +++ b/packages/babel-helper-create-regexp-features-plugin/src/index.ts @@ -24,6 +24,8 @@ function pullFlag(node, flag: RegExpFlags): void { node.flags = node.flags.replace(flag, ""); } +declare const PACKAGE_JSON: { name: string; version: string }; + // Note: Versions are represented as an integer. e.g. 7.1.5 is represented // as 70000100005. This method is easier than using a semver-parsing // package, but it breaks if we release x.y.z where x, y or z are @@ -33,7 +35,11 @@ const version = PACKAGE_JSON.version .reduce((v, x) => v * 1e5 + +x, 0); const versionKey = "@babel/plugin-regexp-features/version"; -export function createRegExpFeaturePlugin({ name, feature, options = {} }) { +export function createRegExpFeaturePlugin({ + name, + feature, + options = {} as any, +}) { return { name, pre() { diff --git a/packages/babel-helper-create-regexp-features-plugin/src/util.js b/packages/babel-helper-create-regexp-features-plugin/src/util.ts similarity index 83% rename from packages/babel-helper-create-regexp-features-plugin/src/util.js rename to packages/babel-helper-create-regexp-features-plugin/src/util.ts index bc6f89dceb..50b679b0ef 100644 --- a/packages/babel-helper-create-regexp-features-plugin/src/util.js +++ b/packages/babel-helper-create-regexp-features-plugin/src/util.ts @@ -1,6 +1,15 @@ import { FEATURES, hasFeature } from "./features"; -export function generateRegexpuOptions(node, features) { +type RegexpuOptions = { + useUnicodeFlag: boolean; + onNamedGroup: (name: string, index: number) => void; + namedGroup: boolean; + unicodePropertyEscape: boolean; + dotAllFlag: boolean; + lookbehind: boolean; +}; + +export function generateRegexpuOptions(node, features): RegexpuOptions | null { let useUnicodeFlag = false, dotAllFlag = false, unicodePropertyEscape = false, diff --git a/tsconfig.json b/tsconfig.json index 88a1fbf2cd..98d6c1a107 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "./packages/babel-core/src/**/*.ts", "./packages/babel-generator/src/**/*.ts", "./packages/babel-helper-annotate-as-pure/src/**/*.ts", + "./packages/babel-helper-create-regexp-features-plugin/src/**/*.ts", "./packages/babel-helper-explode-assignable-expression/src/**/*.ts", "./packages/babel-helper-fixtures/src/**/*.ts", "./packages/babel-helper-function-name/src/**/*.ts", @@ -44,6 +45,9 @@ "@babel/helper-annotate-as-pure": [ "./packages/babel-helper-annotate-as-pure/src" ], + "@babel/helper-create-regexp-features-plugin": [ + "./packages/babel-helper-create-regexp-features-plugin/src" + ], "@babel/helper-explode-assignable-expression": [ "./packages/babel-helper-explode-assignable-expression/src" ],