diff --git a/packages/framework-base/package.json b/packages/framework-base/package.json index 0238c4934a6..63210a5c19c 100644 --- a/packages/framework-base/package.json +++ b/packages/framework-base/package.json @@ -10,27 +10,27 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework-base" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" }, "./jsx-runtime": { "types": "./lib/jsx-runtime.d.ts", "import": "./lib/jsx-runtime.js", - "require": "./lib-commonjs/jsx-runtime.js", + "require": "./lib/jsx-runtime.js", "default": "./src/jsx-runtime.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework-base/src/component-patterns/directComponent.ts b/packages/framework-base/src/component-patterns/directComponent.ts index 4c085fc73db..32dfcc5e3fb 100644 --- a/packages/framework-base/src/component-patterns/directComponent.ts +++ b/packages/framework-base/src/component-patterns/directComponent.ts @@ -1,4 +1,4 @@ -import type { FunctionComponent } from './render.types'; +import type { FunctionComponent } from './render.types.ts'; /** * @param component functional component, usually a closure, to make into a direct component diff --git a/packages/framework-base/src/component-patterns/phasedComponent.ts b/packages/framework-base/src/component-patterns/phasedComponent.ts index 6e4052a3181..6193707cd27 100644 --- a/packages/framework-base/src/component-patterns/phasedComponent.ts +++ b/packages/framework-base/src/component-patterns/phasedComponent.ts @@ -1,7 +1,7 @@ import React from 'react'; -import type { ComposableFunction, PhasedComponent, PhasedRender, FunctionComponent } from './render.types'; -import { renderForJsxRuntime } from './render'; -import type { LegacyDirectComponent } from './render.types'; +import type { ComposableFunction, PhasedComponent, PhasedRender, FunctionComponent } from './render.types.ts'; +import { renderForJsxRuntime } from './render.ts'; +import type { LegacyDirectComponent } from './render.types.ts'; /** * Extract the phased render function from a component, if it has one. diff --git a/packages/framework-base/src/component-patterns/render.ts b/packages/framework-base/src/component-patterns/render.ts index 0e1542169c5..22358450714 100644 --- a/packages/framework-base/src/component-patterns/render.ts +++ b/packages/framework-base/src/component-patterns/render.ts @@ -1,6 +1,6 @@ import React from 'react'; import * as ReactJSX from 'react/jsx-runtime'; -import type { RenderType, RenderResult, DirectComponent, LegacyDirectComponent } from './render.types'; +import type { RenderType, RenderResult, DirectComponent, LegacyDirectComponent } from './render.types.ts'; export type CustomRender = () => RenderResult; diff --git a/packages/framework-base/src/component-patterns/render.types.ts b/packages/framework-base/src/component-patterns/render.types.ts index cfbd3941879..df68822103d 100644 --- a/packages/framework-base/src/component-patterns/render.types.ts +++ b/packages/framework-base/src/component-patterns/render.types.ts @@ -1,6 +1,6 @@ import type React from 'react'; //import type ReactJSX from 'react/jsx-runtime'; -import type { FurnJSX } from '../jsx-namespace'; +import type { FurnJSX } from '../jsx-namespace.ts'; /** * Base types for rendering components in a react application, extracted from react types diff --git a/packages/framework-base/src/component-patterns/stagedComponent.ts b/packages/framework-base/src/component-patterns/stagedComponent.ts index 35a03214da7..7761546c958 100644 --- a/packages/framework-base/src/component-patterns/stagedComponent.ts +++ b/packages/framework-base/src/component-patterns/stagedComponent.ts @@ -1,6 +1,6 @@ import * as React from 'react'; -import type { StagedRender, ComposableFunction } from './render.types'; +import type { StagedRender, ComposableFunction } from './render.types.ts'; function asArray(val: T | T[]): T[] { return Array.isArray(val) ? val : [val]; diff --git a/packages/framework-base/src/component-patterns/withSlots.tsx b/packages/framework-base/src/component-patterns/withSlots.tsx index a9b1c137ec5..2f053a6a2d2 100644 --- a/packages/framework-base/src/component-patterns/withSlots.tsx +++ b/packages/framework-base/src/component-patterns/withSlots.tsx @@ -1,5 +1,5 @@ import type React from 'react'; -import { renderForClassicRuntime } from './render'; +import { renderForClassicRuntime } from './render.ts'; /** * This function is required for any module that uses slots. diff --git a/packages/framework-base/src/immutable-merge/Merge.test.ts b/packages/framework-base/src/immutable-merge/Merge.test.ts index 62252a972f3..4985beecbc9 100644 --- a/packages/framework-base/src/immutable-merge/Merge.test.ts +++ b/packages/framework-base/src/immutable-merge/Merge.test.ts @@ -1,5 +1,5 @@ -import type { MergeOptions } from './Merge'; -import { immutableMerge, immutableMergeCore, processImmutable } from './Merge'; +import type { MergeOptions } from './Merge.ts'; +import { immutableMerge, immutableMergeCore, processImmutable } from './Merge.ts'; interface IFakeStyle { s1?: string; diff --git a/packages/framework-base/src/index.ts b/packages/framework-base/src/index.ts index a577b3d8299..58f5af762e7 100644 --- a/packages/framework-base/src/index.ts +++ b/packages/framework-base/src/index.ts @@ -1,5 +1,5 @@ // immutable-merge exports -export { immutableMerge, immutableMergeCore, processImmutable, filterToObjects } from './immutable-merge/Merge'; +export { immutableMerge, immutableMergeCore, processImmutable, filterToObjects } from './immutable-merge/Merge.ts'; export type { BuiltinRecursionHandlers, CustomRecursionHandler, @@ -7,23 +7,23 @@ export type { ObjectBase, RecursionHandler, RecursionOption, -} from './immutable-merge/Merge'; +} from './immutable-merge/Merge.ts'; // memo-cache exports -export type { GetMemoValue, GetTypedMemoValue } from './memo-cache/getMemoCache'; -export { getMemoCache, getTypedMemoCache } from './memo-cache/getMemoCache'; -export { memoize } from './memo-cache/memoize'; +export type { GetMemoValue, GetTypedMemoValue } from './memo-cache/getMemoCache.ts'; +export { getMemoCache, getTypedMemoCache } from './memo-cache/getMemoCache.ts'; +export { memoize } from './memo-cache/memoize.ts'; // merge-props exports -export type { StyleProp } from './merge-props/mergeStyles.types'; -export { mergeStyles } from './merge-props/mergeStyles'; -export { mergeProps } from './merge-props/mergeProps'; +export type { StyleProp } from './merge-props/mergeStyles.types.ts'; +export { mergeStyles } from './merge-props/mergeStyles.ts'; +export { mergeProps } from './merge-props/mergeProps.ts'; // component pattern exports - extracting from elements -export { extractChildren, extractProps, extractStyle } from './component-patterns/extract'; +export { extractChildren, extractProps, extractStyle } from './component-patterns/extract.ts'; // component pattern exports - rendering utilities -export { renderForJsxRuntime, renderSlot, asDirectComponent } from './component-patterns/render'; +export { renderForJsxRuntime, renderSlot, asDirectComponent } from './component-patterns/render.ts'; // component pattern exports - core types export type { @@ -41,20 +41,20 @@ export type { FinalRender, SlotFn, NativeReactType, -} from './component-patterns/render.types'; +} from './component-patterns/render.types.ts'; // component pattern exports - component builders -export { directComponent } from './component-patterns/directComponent'; -export { getPhasedRender, phasedComponent } from './component-patterns/phasedComponent'; -export { stagedComponent } from './component-patterns/stagedComponent'; +export { directComponent } from './component-patterns/directComponent.ts'; +export { getPhasedRender, phasedComponent } from './component-patterns/phasedComponent.ts'; +export { stagedComponent } from './component-patterns/stagedComponent.ts'; // component pattern exports - legacy JSX handlers -export { withSlots } from './component-patterns/withSlots'; +export { withSlots } from './component-patterns/withSlots.tsx'; // jsx runtime exports -export { jsx, jsxs } from './jsx-runtime'; -export type { FurnJSX } from './jsx-namespace'; +export { jsx, jsxs } from './jsx-runtime.ts'; +export type { FurnJSX } from './jsx-namespace.ts'; // general utilities -export { filterProps } from './utilities/filterProps'; -export type { PropsFilter } from './utilities/filterProps'; +export { filterProps } from './utilities/filterProps.ts'; +export type { PropsFilter } from './utilities/filterProps.ts'; diff --git a/packages/framework-base/src/jsx-runtime.ts b/packages/framework-base/src/jsx-runtime.ts index edb638f5d14..956e2ab8589 100644 --- a/packages/framework-base/src/jsx-runtime.ts +++ b/packages/framework-base/src/jsx-runtime.ts @@ -1,7 +1,7 @@ import type React from 'react'; import * as ReactJSX from 'react/jsx-runtime'; -import { renderForJsxRuntime } from './component-patterns/render'; -export type { FurnJSX as JSX } from './jsx-namespace'; +import { renderForJsxRuntime } from './component-patterns/render.ts'; +export type { FurnJSX as JSX } from './jsx-namespace.ts'; export const jsx: typeof ReactJSX.jsx = (type, props, key?: React.Key) => { return renderForJsxRuntime(type, props, key, ReactJSX.jsx); diff --git a/packages/framework-base/src/memo-cache/getCacheEntry.test.ts b/packages/framework-base/src/memo-cache/getCacheEntry.test.ts index 5d619eb5dc1..eaf12873a47 100644 --- a/packages/framework-base/src/memo-cache/getCacheEntry.test.ts +++ b/packages/framework-base/src/memo-cache/getCacheEntry.test.ts @@ -1,5 +1,5 @@ -import type { CacheEntry } from './getCacheEntry'; -import { getCacheEntry } from './getCacheEntry'; +import type { CacheEntry } from './getCacheEntry.ts'; +import { getCacheEntry } from './getCacheEntry.ts'; interface TestObj { id: number; diff --git a/packages/framework-base/src/memo-cache/getMemoCache.test.ts b/packages/framework-base/src/memo-cache/getMemoCache.test.ts index b896cce902b..a43b1ab8bc8 100644 --- a/packages/framework-base/src/memo-cache/getMemoCache.test.ts +++ b/packages/framework-base/src/memo-cache/getMemoCache.test.ts @@ -1,4 +1,4 @@ -import { getMemoCache, getTypedMemoCache } from './getMemoCache'; +import { getMemoCache, getTypedMemoCache } from './getMemoCache.ts'; interface TestObj { id: number; diff --git a/packages/framework-base/src/memo-cache/getMemoCache.ts b/packages/framework-base/src/memo-cache/getMemoCache.ts index b8fd9131463..ae656cc8dde 100644 --- a/packages/framework-base/src/memo-cache/getMemoCache.ts +++ b/packages/framework-base/src/memo-cache/getMemoCache.ts @@ -1,5 +1,5 @@ -import type { CacheEntry } from './getCacheEntry'; -import { getCacheEntry } from './getCacheEntry'; +import type { CacheEntry } from './getCacheEntry.ts'; +import { getCacheEntry } from './getCacheEntry.ts'; export type ValueFactory = () => T; diff --git a/packages/framework-base/src/memo-cache/memoize.test.ts b/packages/framework-base/src/memo-cache/memoize.test.ts index 923df5c2057..aa0d595a823 100644 --- a/packages/framework-base/src/memo-cache/memoize.test.ts +++ b/packages/framework-base/src/memo-cache/memoize.test.ts @@ -1,4 +1,4 @@ -import { memoize } from './memoize'; +import { memoize } from './memoize.ts'; let _globalCalls = 0; diff --git a/packages/framework-base/src/memo-cache/memoize.ts b/packages/framework-base/src/memo-cache/memoize.ts index 3d312a85c3a..75e082ca28a 100644 --- a/packages/framework-base/src/memo-cache/memoize.ts +++ b/packages/framework-base/src/memo-cache/memoize.ts @@ -1,4 +1,4 @@ -import { getMemoCache } from './getMemoCache'; +import { getMemoCache } from './getMemoCache.ts'; /** * This wraps a function to memoize the results using the standard javascript memoization pattern diff --git a/packages/framework-base/src/merge-props/index.ts b/packages/framework-base/src/merge-props/index.ts index 352d8c4eddf..e8a4571f2a9 100644 --- a/packages/framework-base/src/merge-props/index.ts +++ b/packages/framework-base/src/merge-props/index.ts @@ -1,3 +1,3 @@ -export type { StyleProp } from './mergeStyles.types'; -export { mergeStyles } from './mergeStyles'; -export { mergeProps } from './mergeProps'; +export type { StyleProp } from './mergeStyles.types.ts'; +export { mergeStyles } from './mergeStyles.ts'; +export { mergeProps } from './mergeProps.ts'; diff --git a/packages/framework-base/src/merge-props/mergeProps.ts b/packages/framework-base/src/merge-props/mergeProps.ts index f9e009843ea..2332b5037d4 100644 --- a/packages/framework-base/src/merge-props/mergeProps.ts +++ b/packages/framework-base/src/merge-props/mergeProps.ts @@ -1,7 +1,7 @@ -import type { MergeOptions } from '../immutable-merge/Merge'; -import { immutableMergeCore, filterToObjects } from '../immutable-merge/Merge'; +import type { MergeOptions } from '../immutable-merge/Merge.ts'; +import { immutableMergeCore, filterToObjects } from '../immutable-merge/Merge.ts'; -import { mergeStyles } from './mergeStyles'; +import { mergeStyles } from './mergeStyles.ts'; /** * Props will not deeply merge with the exception of a style property. Also className needs to be handled specially. diff --git a/packages/framework-base/src/merge-props/mergeStyles.test.ts b/packages/framework-base/src/merge-props/mergeStyles.test.ts index 7be505ed326..3642e18910e 100644 --- a/packages/framework-base/src/merge-props/mergeStyles.test.ts +++ b/packages/framework-base/src/merge-props/mergeStyles.test.ts @@ -1,5 +1,5 @@ -import { flattenStyle, mergeAndFlattenStyles, mergeStyles } from './mergeStyles'; -import type { StyleProp } from './mergeStyles.types'; +import { flattenStyle, mergeAndFlattenStyles, mergeStyles } from './mergeStyles.ts'; +import type { StyleProp } from './mergeStyles.types.ts'; type OpaqueColorValue = symbol & { __TYPE__: 'Color' }; type ColorValue = string | OpaqueColorValue; diff --git a/packages/framework-base/src/merge-props/mergeStyles.ts b/packages/framework-base/src/merge-props/mergeStyles.ts index 03e05b87ebc..75f1bc2d5d7 100644 --- a/packages/framework-base/src/merge-props/mergeStyles.ts +++ b/packages/framework-base/src/merge-props/mergeStyles.ts @@ -1,7 +1,7 @@ -import { immutableMerge } from '../immutable-merge/Merge'; -import { getMemoCache } from '../memo-cache/getMemoCache'; +import { immutableMerge } from '../immutable-merge/Merge.ts'; +import { getMemoCache } from '../memo-cache/getMemoCache.ts'; -import type { StyleProp } from './mergeStyles.types'; +import type { StyleProp } from './mergeStyles.types.ts'; /** * Take a react-native style, which may be a recursive array, and return as a flattened diff --git a/packages/framework-base/src/utilities/filterProps.ts b/packages/framework-base/src/utilities/filterProps.ts index b3ee7bbe935..c1c86435ab5 100644 --- a/packages/framework-base/src/utilities/filterProps.ts +++ b/packages/framework-base/src/utilities/filterProps.ts @@ -1,4 +1,4 @@ -import { mergeProps } from '../merge-props/mergeProps'; +import { mergeProps } from '../merge-props/mergeProps.ts'; export type PropsFilter = (propName: string) => boolean; diff --git a/packages/framework/composition/package.json b/packages/framework/composition/package.json index 1b29956bc61..3a3765ccb50 100644 --- a/packages/framework/composition/package.json +++ b/packages/framework/composition/package.json @@ -10,21 +10,21 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework/composition" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/composition/src/composeFactory.test.tsx b/packages/framework/composition/src/composeFactory.test.tsx index 65b0aac5cee..83b9d36da4f 100644 --- a/packages/framework/composition/src/composeFactory.test.tsx +++ b/packages/framework/composition/src/composeFactory.test.tsx @@ -6,8 +6,8 @@ import { View, Text } from 'react-native'; import type { ThemeHelper } from '@fluentui-react-native/use-styling'; import * as renderer from 'react-test-renderer'; -import type { UseStyledSlots } from './composeFactory'; -import { composeFactory } from './composeFactory'; +import type { UseStyledSlots } from './composeFactory.ts'; +import { composeFactory } from './composeFactory.ts'; type Theme = { values: { diff --git a/packages/framework/composition/src/index.ts b/packages/framework/composition/src/index.ts index a118b3d1da6..bd4d5898ffb 100644 --- a/packages/framework/composition/src/index.ts +++ b/packages/framework/composition/src/index.ts @@ -1,2 +1,2 @@ -export { composeFactory } from './composeFactory'; -export type { ComposeFactoryComponent, ComposeFactoryOptions, UseStyledSlots } from './composeFactory'; +export { composeFactory } from './composeFactory.ts'; +export type { ComposeFactoryComponent, ComposeFactoryOptions, UseStyledSlots } from './composeFactory.ts'; diff --git a/packages/framework/framework/package.json b/packages/framework/framework/package.json index 30ca2406267..682e8d35fa4 100644 --- a/packages/framework/framework/package.json +++ b/packages/framework/framework/package.json @@ -9,21 +9,21 @@ "url": "https://github.com/microsoft/fluentui-react-native.git", "directory": "packages/framework/framework" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/framework/src/compose.ts b/packages/framework/framework/src/compose.ts index 5285edac215..0dfd92dd19f 100644 --- a/packages/framework/framework/src/compose.ts +++ b/packages/framework/framework/src/compose.ts @@ -3,7 +3,7 @@ import { composeFactory } from '@fluentui-react-native/composition'; import type { Theme } from '@fluentui-react-native/theme-types'; import type { ObjectBase } from '@fluentui-react-native/framework-base'; -import { themeHelper } from './themeHelper'; +import { themeHelper } from './themeHelper.ts'; /** * This is an object used purely for configuring the typings on composable. It is not necessary to define diff --git a/packages/framework/framework/src/compressible.test.tsx b/packages/framework/framework/src/compressible.test.tsx index 011ecaef44e..86bdd7dc536 100644 --- a/packages/framework/framework/src/compressible.test.tsx +++ b/packages/framework/framework/src/compressible.test.tsx @@ -10,9 +10,9 @@ import { useSlot } from '@fluentui-react-native/use-slot'; import { applyTokenLayers } from '@fluentui-react-native/use-tokens'; import * as renderer from 'react-test-renderer'; -import { compressible } from './compressible'; -import { buildUseTokens } from './useTokens'; -import type { UseTokens } from './useTokens'; +import { compressible } from './compressible.ts'; +import { buildUseTokens } from './useTokens.ts'; +import type { UseTokens } from './useTokens.ts'; type Variant = 'normal' | 'header' | 'caption'; interface VariantTextTokens { diff --git a/packages/framework/framework/src/compressible.ts b/packages/framework/framework/src/compressible.ts index d9eda84fcf8..48c40b22ed3 100644 --- a/packages/framework/framework/src/compressible.ts +++ b/packages/framework/framework/src/compressible.ts @@ -3,8 +3,8 @@ import type { StagedRender } from '@fluentui-react-native/framework-base'; import { stagedComponent } from '@fluentui-react-native/framework-base'; import type { CustomizableComponent } from '@fluentui-react-native/use-tokens'; -import type { TokenSettings } from './useStyling'; -import type { UseTokens } from './useTokens'; +import type { TokenSettings } from './useStyling.ts'; +import type { UseTokens } from './useTokens.ts'; /** * Utility function which can create function components that can be tree compressed (using the stagedRender pattern), diff --git a/packages/framework/framework/src/index.ts b/packages/framework/framework/src/index.ts index c6f1ef880b4..bb05e8af65a 100644 --- a/packages/framework/framework/src/index.ts +++ b/packages/framework/framework/src/index.ts @@ -81,7 +81,7 @@ export type { Variants, } from '@fluentui-react-native/theme-types'; -export { compose } from './compose'; +export { compose } from './compose.ts'; export type { ComposableComponent, ComposeOptions, @@ -91,11 +91,11 @@ export type { ExtractStatics, ExtractTokens, UseSlots, -} from './compose'; -export { compressible } from './compressible'; -export { useFluentTheme } from './useFluentTheme'; -export type { HasLayer, TokensThatAreAlsoProps, UseStyling } from './useStyling'; -export { buildProps, buildUseStyling } from './useStyling'; -export type { BuildProps, TokenSettings, TokensFromTheme, UseStylingOptions } from './useStyling'; -export { applyPropsToTokens, applyTokenLayers, buildUseTokens, customizable, patchTokens } from './useTokens'; -export type { UseTokens, CustomizableComponent } from './useTokens'; +} from './compose.ts'; +export { compressible } from './compressible.ts'; +export { useFluentTheme } from './useFluentTheme.ts'; +export type { HasLayer, TokensThatAreAlsoProps, UseStyling } from './useStyling.ts'; +export { buildProps, buildUseStyling } from './useStyling.ts'; +export type { BuildProps, TokenSettings, TokensFromTheme, UseStylingOptions } from './useStyling.ts'; +export { applyPropsToTokens, applyTokenLayers, buildUseTokens, customizable, patchTokens } from './useTokens.ts'; +export type { UseTokens, CustomizableComponent } from './useTokens.ts'; diff --git a/packages/framework/framework/src/themeHelper.ts b/packages/framework/framework/src/themeHelper.ts index ffe58a4b884..77d545b4f87 100644 --- a/packages/framework/framework/src/themeHelper.ts +++ b/packages/framework/framework/src/themeHelper.ts @@ -1,7 +1,7 @@ import type { Theme } from '@fluentui-react-native/theme-types'; import type { ThemeHelper } from '@fluentui-react-native/use-styling'; -import { useFluentTheme } from './useFluentTheme'; +import { useFluentTheme } from './useFluentTheme.ts'; export const themeHelper: ThemeHelper = { useTheme: () => useFluentTheme(), diff --git a/packages/framework/framework/src/useStyling.ts b/packages/framework/framework/src/useStyling.ts index f8fb0c97b2f..e5a7ea62416 100644 --- a/packages/framework/framework/src/useStyling.ts +++ b/packages/framework/framework/src/useStyling.ts @@ -13,7 +13,7 @@ import type { } from '@fluentui-react-native/use-styling'; import { buildUseStyling as buildUseStylingBase, buildProps as buildPropsBase } from '@fluentui-react-native/use-styling'; -import { themeHelper } from './themeHelper'; +import { themeHelper } from './themeHelper.ts'; export type BuildProps = BuildPropsBase; diff --git a/packages/framework/framework/src/useTokens.ts b/packages/framework/framework/src/useTokens.ts index 14b0d0ca073..79f848e2d47 100644 --- a/packages/framework/framework/src/useTokens.ts +++ b/packages/framework/framework/src/useTokens.ts @@ -2,8 +2,8 @@ import type { Theme } from '@fluentui-react-native/theme-types'; import type { UseTokens as UseTokensCore } from '@fluentui-react-native/use-tokens'; import { buildUseTokens as buildUseTokensCore } from '@fluentui-react-native/use-tokens'; -import { themeHelper } from './themeHelper'; -import type { TokenSettings } from './useStyling'; +import { themeHelper } from './themeHelper.ts'; +import type { TokenSettings } from './useStyling.ts'; export { applyTokenLayers, applyPropsToTokens, customizable, patchTokens } from '@fluentui-react-native/use-tokens'; diff --git a/packages/framework/theme/package.json b/packages/framework/theme/package.json index fa5636d1993..2f4ac5d593b 100644 --- a/packages/framework/theme/package.json +++ b/packages/framework/theme/package.json @@ -10,21 +10,21 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework/theme" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/theme/src/ThemeProvider.tsx b/packages/framework/theme/src/ThemeProvider.tsx index 6a951c49974..d3cc54b419b 100644 --- a/packages/framework/theme/src/ThemeProvider.tsx +++ b/packages/framework/theme/src/ThemeProvider.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { ThemeContext } from '@fluentui-react-native/theme-types'; -import type { ThemeReference } from './themeReference'; +import type { ThemeReference } from './themeReference.ts'; export interface ThemeProviderProps extends React.PropsWithChildren> { /** diff --git a/packages/framework/theme/src/index.ts b/packages/framework/theme/src/index.ts index 02173d06b60..eb089aa60fc 100644 --- a/packages/framework/theme/src/index.ts +++ b/packages/framework/theme/src/index.ts @@ -1,4 +1,4 @@ -export { ThemeProvider } from './ThemeProvider'; -export type { ThemeProviderProps } from './ThemeProvider'; -export { ThemeReference } from './themeReference'; -export type { OnThemeChange, ThemeRecipe, ThemeTransform } from './themeReference'; +export { ThemeProvider } from './ThemeProvider.tsx'; +export type { ThemeProviderProps } from './ThemeProvider.tsx'; +export { ThemeReference } from './themeReference.ts'; +export type { OnThemeChange, ThemeRecipe, ThemeTransform } from './themeReference.ts'; diff --git a/packages/framework/theme/src/themeReference.test.ts b/packages/framework/theme/src/themeReference.test.ts index 15f5f481e69..786b51010db 100644 --- a/packages/framework/theme/src/themeReference.test.ts +++ b/packages/framework/theme/src/themeReference.test.ts @@ -1,7 +1,7 @@ import { mockTheme } from '@fluentui-react-native/test-tools'; import type { Theme, Spacing, PartialTheme } from '@fluentui-react-native/theme-types'; -import { ThemeReference } from './themeReference'; +import { ThemeReference } from './themeReference.ts'; const themeBase = mockTheme; diff --git a/packages/framework/theme/src/themeReference.ts b/packages/framework/theme/src/themeReference.ts index d9d74abe196..cff6bce600c 100644 --- a/packages/framework/theme/src/themeReference.ts +++ b/packages/framework/theme/src/themeReference.ts @@ -1,6 +1,6 @@ import type { Theme, PartialTheme } from '@fluentui-react-native/theme-types'; -import { mergeTheme } from './mergeTheme'; +import { mergeTheme } from './mergeTheme.ts'; /** * Argument type for listening for theme changes diff --git a/packages/framework/themed-stylesheet/package.json b/packages/framework/themed-stylesheet/package.json index f32eaff1ca3..5095a613543 100644 --- a/packages/framework/themed-stylesheet/package.json +++ b/packages/framework/themed-stylesheet/package.json @@ -10,21 +10,21 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework/themed-stylesheet" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/themed-stylesheet/src/index.ts b/packages/framework/themed-stylesheet/src/index.ts index d2c85bd61a5..034d65bc319 100644 --- a/packages/framework/themed-stylesheet/src/index.ts +++ b/packages/framework/themed-stylesheet/src/index.ts @@ -1,2 +1,2 @@ -export { themedStyleSheet } from './themedStyleSheet'; -export type { NamedStyles } from './themedStyleSheet'; +export { themedStyleSheet } from './themedStyleSheet.ts'; +export type { NamedStyles } from './themedStyleSheet.ts'; diff --git a/packages/framework/themed-stylesheet/src/themedStyleSheet.test.ts b/packages/framework/themed-stylesheet/src/themedStyleSheet.test.ts index e0b8027dd7c..841afa5b17f 100644 --- a/packages/framework/themed-stylesheet/src/themedStyleSheet.test.ts +++ b/packages/framework/themed-stylesheet/src/themedStyleSheet.test.ts @@ -1,4 +1,4 @@ -import { themedStyleSheet } from './themedStyleSheet'; +import { themedStyleSheet } from './themedStyleSheet.ts'; interface IFakeTheme { color1?: string; diff --git a/packages/framework/use-slot/package.json b/packages/framework/use-slot/package.json index 93e006c222a..04237c03250 100644 --- a/packages/framework/use-slot/package.json +++ b/packages/framework/use-slot/package.json @@ -10,21 +10,21 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework/use-slot" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/use-slot/src/index.ts b/packages/framework/use-slot/src/index.ts index 366f91eebc6..d32ca386540 100644 --- a/packages/framework/use-slot/src/index.ts +++ b/packages/framework/use-slot/src/index.ts @@ -1,5 +1,5 @@ -export { useSlot } from './useSlot'; -export type { ComponentType } from './useSlot'; +export { useSlot } from './useSlot.ts'; +export type { ComponentType } from './useSlot.ts'; // re-export functions and types from framework-base that used to be here to not break existing imports export { renderSlot, stagedComponent, withSlots } from '@fluentui-react-native/framework-base'; diff --git a/packages/framework/use-slot/src/useSlot.test.tsx b/packages/framework/use-slot/src/useSlot.test.tsx index c37f28a5813..7a6a839260b 100644 --- a/packages/framework/use-slot/src/useSlot.test.tsx +++ b/packages/framework/use-slot/src/useSlot.test.tsx @@ -8,7 +8,7 @@ import * as renderer from 'react-test-renderer'; import { act } from 'react'; import { phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; -import { useSlot } from './useSlot'; +import { useSlot } from './useSlot.ts'; type PluggableTextProps = TextProps & { inner?: FunctionComponent }; diff --git a/packages/framework/use-slots/package.json b/packages/framework/use-slots/package.json index cfb21f95a9b..44f14830647 100644 --- a/packages/framework/use-slots/package.json +++ b/packages/framework/use-slots/package.json @@ -10,21 +10,21 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework/use-slots" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/use-slots/src/buildUseSlots.test.tsx b/packages/framework/use-slots/src/buildUseSlots.test.tsx index ddd866b58fe..e76f0c78d26 100644 --- a/packages/framework/use-slots/src/buildUseSlots.test.tsx +++ b/packages/framework/use-slots/src/buildUseSlots.test.tsx @@ -6,7 +6,7 @@ import { View, Text } from 'react-native'; import { stagedComponent } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; -import { buildUseSlots } from './buildUseSlots'; +import { buildUseSlots } from './buildUseSlots.ts'; type SlotProps1 = { outer: ViewProps; diff --git a/packages/framework/use-slots/src/index.ts b/packages/framework/use-slots/src/index.ts index d4631f26a25..801bb75b002 100644 --- a/packages/framework/use-slots/src/index.ts +++ b/packages/framework/use-slots/src/index.ts @@ -1,2 +1,2 @@ -export { buildUseSlots } from './buildUseSlots'; -export type { GetSlotProps, Slots, UseSlotOptions, UseSlotsBase } from './buildUseSlots'; +export { buildUseSlots } from './buildUseSlots.ts'; +export type { GetSlotProps, Slots, UseSlotOptions, UseSlotsBase } from './buildUseSlots.ts'; diff --git a/packages/framework/use-slots/src/useSlots.samples.test.tsx b/packages/framework/use-slots/src/useSlots.samples.test.tsx index 506791f6074..7716e5f963c 100644 --- a/packages/framework/use-slots/src/useSlots.samples.test.tsx +++ b/packages/framework/use-slots/src/useSlots.samples.test.tsx @@ -6,7 +6,7 @@ import * as renderer from 'react-test-renderer'; import { View, Text } from 'react-native'; import type { ViewProps, TextProps, ViewStyle, TextStyle } from 'react-native'; -import { buildUseSlots } from './buildUseSlots'; +import { buildUseSlots } from './buildUseSlots.ts'; /** * This file contains samples and description to help explain what the useSlots hook does and why it is useful diff --git a/packages/framework/use-styling/package.json b/packages/framework/use-styling/package.json index 3d36e25adf1..8310453cd86 100644 --- a/packages/framework/use-styling/package.json +++ b/packages/framework/use-styling/package.json @@ -10,21 +10,21 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework/use-styling" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/use-styling/src/buildProps.test.ts b/packages/framework/use-styling/src/buildProps.test.ts index 30d65395696..4fe34336a5a 100644 --- a/packages/framework/use-styling/src/buildProps.test.ts +++ b/packages/framework/use-styling/src/buildProps.test.ts @@ -1,6 +1,6 @@ import { getMemoCache } from '@fluentui-react-native/framework-base'; -import { buildProps } from './buildProps'; +import { buildProps } from './buildProps.ts'; type ITheme = { foo?: string; bar?: string }; type ITokens = { a?: string; b?: string; c?: string; d?: string }; diff --git a/packages/framework/use-styling/src/buildUseStyling.test.ts b/packages/framework/use-styling/src/buildUseStyling.test.ts index bf5552196a2..46e6f002f43 100644 --- a/packages/framework/use-styling/src/buildUseStyling.test.ts +++ b/packages/framework/use-styling/src/buildUseStyling.test.ts @@ -1,8 +1,8 @@ import { getMemoCache } from '@fluentui-react-native/framework-base'; -import { buildProps } from './buildProps'; -import type { ThemeHelper, UseStylingOptions } from './buildUseStyling'; -import { buildUseStyling } from './buildUseStyling'; +import { buildProps } from './buildProps.ts'; +import type { ThemeHelper, UseStylingOptions } from './buildUseStyling.ts'; +import { buildUseStyling } from './buildUseStyling.ts'; let lastInstance = 0; diff --git a/packages/framework/use-styling/src/buildUseStyling.ts b/packages/framework/use-styling/src/buildUseStyling.ts index d10dab20c5f..941b5485b1c 100644 --- a/packages/framework/use-styling/src/buildUseStyling.ts +++ b/packages/framework/use-styling/src/buildUseStyling.ts @@ -2,8 +2,8 @@ import type { GetTypedMemoValue } from '@fluentui-react-native/framework-base'; import type { HasLayer, TokenSettings } from '@fluentui-react-native/use-tokens'; import { applyPropsToTokens, applyTokenLayers, buildUseTokens } from '@fluentui-react-native/use-tokens'; -import type { TokensThatAreAlsoProps, BuildSlotProps } from './buildProps'; -import { refinePropsFunctions } from './buildProps'; +import type { TokensThatAreAlsoProps, BuildSlotProps } from './buildProps.ts'; +import { refinePropsFunctions } from './buildProps.ts'; /** * Options used to build up a useStyling hook diff --git a/packages/framework/use-styling/src/index.ts b/packages/framework/use-styling/src/index.ts index c71670f70ef..d63463a4fa5 100644 --- a/packages/framework/use-styling/src/index.ts +++ b/packages/framework/use-styling/src/index.ts @@ -1,6 +1,6 @@ -export { buildUseStyling } from './buildUseStyling'; -export type { ThemeHelper, UseStyling, UseStylingOptions } from './buildUseStyling'; -export { buildProps, refinePropsFunctions } from './buildProps'; -export type { BuildPropsBase, BuildSlotProps, RefinableBuildPropsBase, RefineFunctionBase, TokensThatAreAlsoProps } from './buildProps'; +export { buildUseStyling } from './buildUseStyling.ts'; +export type { ThemeHelper, UseStyling, UseStylingOptions } from './buildUseStyling.ts'; +export { buildProps, refinePropsFunctions } from './buildProps.ts'; +export type { BuildPropsBase, BuildSlotProps, RefinableBuildPropsBase, RefineFunctionBase, TokensThatAreAlsoProps } from './buildProps.ts'; export type { HasLayer, TokenSettings, TokensFromTheme } from '@fluentui-react-native/use-tokens'; export { applyTokenLayers } from '@fluentui-react-native/use-tokens'; diff --git a/packages/framework/use-styling/src/useStyling.samples.test.tsx b/packages/framework/use-styling/src/useStyling.samples.test.tsx index 8b9e557965c..702516591d3 100644 --- a/packages/framework/use-styling/src/useStyling.samples.test.tsx +++ b/packages/framework/use-styling/src/useStyling.samples.test.tsx @@ -5,9 +5,9 @@ import { Text, View } from 'react-native'; import * as renderer from 'react-test-renderer'; -import { buildProps } from './buildProps'; -import type { ThemeHelper, UseStylingOptions } from './buildUseStyling'; -import { buildUseStyling } from './buildUseStyling'; +import { buildProps } from './buildProps.ts'; +import type { ThemeHelper, UseStylingOptions } from './buildUseStyling.ts'; +import { buildUseStyling } from './buildUseStyling.ts'; /** * Sample super simple theming implementation, shared by all the samples. This is intended to be illustrative, diff --git a/packages/framework/use-tokens/package.json b/packages/framework/use-tokens/package.json index 99dd6d73312..55f4112e9c4 100644 --- a/packages/framework/use-tokens/package.json +++ b/packages/framework/use-tokens/package.json @@ -10,21 +10,21 @@ "url": "https://github.com/microsoft/fluentui-react-native", "directory": "packages/framework/use-tokens" }, - "main": "lib-commonjs/index.js", - "module": "lib/index.js", + "type": "module", + "main": "./lib/index.js", + "module": "./lib/index.js", "types": "lib/index.d.ts", "exports": { ".": { "types": "./lib/index.d.ts", "import": "./lib/index.js", - "require": "./lib-commonjs/index.js", + "require": "./lib/index.js", "default": "./src/index.ts" } }, "scripts": { - "build": "fluentui-scripts build", - "build-cjs": "tsgo --outDir lib-commonjs", - "build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "build": "tsgo", + "build-core": "tsgo", "clean": "fluentui-scripts clean", "depcheck": "fluentui-scripts depcheck", "format": "fluentui-scripts format", diff --git a/packages/framework/use-tokens/src/applyPropsToTokens.test.ts b/packages/framework/use-tokens/src/applyPropsToTokens.test.ts index 3e209bf6115..d03b29c9a3b 100644 --- a/packages/framework/use-tokens/src/applyPropsToTokens.test.ts +++ b/packages/framework/use-tokens/src/applyPropsToTokens.test.ts @@ -1,6 +1,6 @@ import { getTypedMemoCache } from '@fluentui-react-native/framework-base'; -import { applyPropsToTokens } from './applyPropsToTokens'; +import { applyPropsToTokens } from './applyPropsToTokens.ts'; interface Tokens { uno?: string; diff --git a/packages/framework/use-tokens/src/applyTokenLayers.test.ts b/packages/framework/use-tokens/src/applyTokenLayers.test.ts index c957a7afbb8..bdbb3672bcd 100644 --- a/packages/framework/use-tokens/src/applyTokenLayers.test.ts +++ b/packages/framework/use-tokens/src/applyTokenLayers.test.ts @@ -1,6 +1,6 @@ import { getMemoCache } from '@fluentui-react-native/framework-base'; -import { applyTokenLayers } from './applyTokenLayers'; +import { applyTokenLayers } from './applyTokenLayers.ts'; type Tokens = { a?: string; diff --git a/packages/framework/use-tokens/src/buildUseTokens.test.ts b/packages/framework/use-tokens/src/buildUseTokens.test.ts index 6fdfcfc9f01..2010809f117 100644 --- a/packages/framework/use-tokens/src/buildUseTokens.test.ts +++ b/packages/framework/use-tokens/src/buildUseTokens.test.ts @@ -1,4 +1,4 @@ -import { buildUseTokens } from './buildUseTokens'; +import { buildUseTokens } from './buildUseTokens.ts'; interface Tokens { a?: string; diff --git a/packages/framework/use-tokens/src/customizable.ts b/packages/framework/use-tokens/src/customizable.ts index 31e1e1b9e02..59378bf15c2 100644 --- a/packages/framework/use-tokens/src/customizable.ts +++ b/packages/framework/use-tokens/src/customizable.ts @@ -1,6 +1,6 @@ import type React from 'react'; -import type { TokenSettings, UseTokens } from './buildUseTokens'; +import type { TokenSettings, UseTokens } from './buildUseTokens.ts'; import type { FurnJSX } from '@fluentui-react-native/framework-base'; /** diff --git a/packages/framework/use-tokens/src/index.ts b/packages/framework/use-tokens/src/index.ts index 71d47668a65..3c22100eb00 100644 --- a/packages/framework/use-tokens/src/index.ts +++ b/packages/framework/use-tokens/src/index.ts @@ -1,8 +1,8 @@ -export { applyPropsToTokens } from './applyPropsToTokens'; -export { applyTokenLayers } from './applyTokenLayers'; -export type { HasLayer } from './applyTokenLayers'; -export { buildUseTokens } from './buildUseTokens'; -export type { GetComponentInfo, TokenSettings, TokensFromTheme, UseTokens, UseTokensCore } from './buildUseTokens'; -export { customizable } from './customizable'; -export type { CustomizableComponent, InjectableComponent } from './customizable'; -export { patchTokens } from './patchTokens'; +export { applyPropsToTokens } from './applyPropsToTokens.ts'; +export { applyTokenLayers } from './applyTokenLayers.ts'; +export type { HasLayer } from './applyTokenLayers.ts'; +export { buildUseTokens } from './buildUseTokens.ts'; +export type { GetComponentInfo, TokenSettings, TokensFromTheme, UseTokens, UseTokensCore } from './buildUseTokens.ts'; +export { customizable } from './customizable.ts'; +export type { CustomizableComponent, InjectableComponent } from './customizable.ts'; +export { patchTokens } from './patchTokens.ts'; diff --git a/packages/framework/use-tokens/src/patchTokens.test.ts b/packages/framework/use-tokens/src/patchTokens.test.ts index 8a333e4ddd1..9174164d3d4 100644 --- a/packages/framework/use-tokens/src/patchTokens.test.ts +++ b/packages/framework/use-tokens/src/patchTokens.test.ts @@ -1,6 +1,6 @@ import { getMemoCache } from '@fluentui-react-native/framework-base'; -import { patchTokens } from './patchTokens'; +import { patchTokens } from './patchTokens.ts'; interface Tokens { uno?: string; diff --git a/packages/framework/use-tokens/src/useTokens.samples.test.tsx b/packages/framework/use-tokens/src/useTokens.samples.test.tsx index a7bdfd1961e..521d12fb4c7 100644 --- a/packages/framework/use-tokens/src/useTokens.samples.test.tsx +++ b/packages/framework/use-tokens/src/useTokens.samples.test.tsx @@ -7,7 +7,7 @@ import { immutableMerge } from '@fluentui-react-native/framework-base'; import { mergeStyles } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; -import { buildUseTokens } from './buildUseTokens'; +import { buildUseTokens } from './buildUseTokens.ts'; /** * Sample super simple theming implementation, shared by all the samples. This is intended to be illustrative, diff --git a/scripts/configs/tsconfig.json b/scripts/configs/tsconfig.json deleted file mode 100644 index 38ec9340717..00000000000 --- a/scripts/configs/tsconfig.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "compilerOptions": { - "outDir": "./lib", - "target": "es2022", - "lib": ["ES2022"], - "module": "node16", - "moduleResolution": "node16", - "declaration": true, - "declarationMap": true, - "strict": true, - "strictBindCallApply": false, - "forceConsistentCasingInFileNames": true, - "strictNullChecks": false, - "noImplicitAny": false, - "noImplicitReturns": true, - "noImplicitThis": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "esModuleInterop": true, - "skipLibCheck": true, - "skipDefaultLibCheck": true, - "sourceMap": true, - "jsx": "react-jsx", - "resolveJsonModule": true, - "types": ["jest", "node"] - }, - "include": ["src"] -} diff --git a/scripts/configs/tsconfig/tsconfig.strict.json b/scripts/configs/tsconfig/tsconfig.strict.json index c3a0917d60f..c10837972fd 100644 --- a/scripts/configs/tsconfig/tsconfig.strict.json +++ b/scripts/configs/tsconfig/tsconfig.strict.json @@ -6,7 +6,7 @@ "module": "nodenext", "moduleResolution": "nodenext", "outDir": "lib", - "rootDir": "src", + "rewriteRelativeImportExtensions": true, "jsx": "react-jsx", "types": ["jest", "node"] } diff --git a/scripts/src/tasks/lintPackage.ts b/scripts/src/tasks/lintPackage.ts index 2221277e82e..b1be13baa04 100644 --- a/scripts/src/tasks/lintPackage.ts +++ b/scripts/src/tasks/lintPackage.ts @@ -66,8 +66,12 @@ export class LintPackageCommand extends Command { this.checkPrivateVersion(); this.checkManifest(); this.checkScripts(); - this.checkEntryPoints(buildConfig); - this.checkBuildConfig(buildConfig); + if (!buildConfig.typescript.checkScript && this.projRoot.manifest.type === 'module') { + this.checkModuleConfig(); + } else { + this.checkEntryPoints(buildConfig); + this.checkBuildConfig(buildConfig); + } this.checkDependencies(); this.checkDevDeps(); this.checkPeerDeps(); @@ -97,6 +101,42 @@ export class LintPackageCommand extends Command { } } + private checkModuleConfig() { + const manifest = this.projRoot.manifest; + const scripts = manifest.scripts || {}; + this.errorIf(scripts.build !== 'tsgo', 'Directly call tsgo for build script instead of using build-core', () => { + this.projRoot.updateRecordEntry('scripts', 'build', 'tsgo'); + }); + this.errorIf(scripts['build-core'] !== 'tsgo', 'Directly call tsgo for module packages', () => { + this.projRoot.updateRecordEntry('scripts', 'build-core', 'tsgo'); + }); + this.errorIf(scripts['build-cjs'] !== undefined, 'Module packages should not have a build-cjs script', () => { + this.projRoot.updateRecordEntry('scripts', 'build-cjs', undefined); + }); + if (manifest.main !== './lib/index.js' || manifest.module !== './lib/index.js') { + this.errorIf(true, 'Module packages should have main and module point to ./lib/index.js', () => { + this.projRoot.setManifestEntry('main', './lib/index.js'); + this.projRoot.setManifestEntry('module', './lib/index.js'); + }); + } + const defaultExport = manifest.exports?.['.']; + if (defaultExport) { + if (typeof defaultExport === 'string' || defaultExport.import !== './lib/index.js' || defaultExport.require !== './lib/index.js') { + this.errorIf(true, 'Module packages should have default export point to ./lib/index.js', () => { + this.projRoot.setManifestEntry('exports', { + ...manifest.exports, + '.': { + types: './lib/index.d.ts', + import: './lib/index.js', + require: './lib/index.js', + default: './src/index.ts', + }, + }); + }); + } + } + } + private async startDependencyCheck() { const runner = new DepCheckRunner({ verbose: false,