console-common npm package
Console Common Components and Utilities
Local development
The project comes with yarn 3 configured.
Code generation:
REST API
yarn generate:rest
DIRECTORY_SERVICE_URL='https://directory.eng.aserto.com' yarn generate:rest
GraphQL
yarn generate:gql
or
DIRECTORY_SERVICE_URL='https://directory.eng.aserto.com' yarn generate:gql
Building
yarn build
- uses rollup
to build the library, see rollup.config.js
. Everything is bundled in the dist
folder.
yarn push
- uses yalc
to push the library to the local registry. To consume the packages you will need to run yalc link @aserto/console-common
in your project. After you do that you will see a .yalc
folder in the root of your project, which is the local registry that yalc will push to when running yarn push
in the console-common directory.
The library also provides a dev mode where it watches for file changes and updates the package in the local registry.
yarn dev
You can use this command after you have run yalc link @aserto/console-common
in your project
Consuming
yalc local dev
To add a dependency to the local package use yalc link @aserto/console-common
in the client application.
import { Directory } from '@aserto/console-common'
Using console-common from gitbub
Update project package.json(make sure you console-common is not linked locally(yarn unlink:console-common
))
"@aserto/console-common": "aserto-dev/console-common#git_ref"
yarn install
Troubleshooting
Module not found: Error: Can't resolve '@aserto/console-common
-> run rm -rf .yalc && yarn link:console-common && yarn install
Force reinstall -> run rm -rf node_modules/@aserto && yarn cache clean && rm -rf .yarn/cache && yarn install
Jest setup
{
"moduleNameMapper": {
"monaco-editor": "<rootDir>/node_modules/monaco-editor/esm/vs/editor/editor.api.js"
},
"transformIgnorePatterns": [
"node_modules/(?!@aserto)/"
],
"transform": {
"^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": [
"babel-jest",
{
"presets": [
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript"
],
"plugins": [
"babel-plugin-transform-import-meta"
]
}
]
}
}
Examples
Passing a configuration:
import { InternalConfigProvider } from '@aserto/console-common'
<InternalConfigProvider config={config}>
{children}
</InternalConfigProvider>
Feature Flags:
import { FeatureFlagsProvider } from '@aserto/console-common'
<FeatureFlagsProvider
featureFlags={{
isGraphQLEnabled: false,
hasTemplates: false,
hasAssertions: true,
}}
>
{children}
</FeatureFlagsProvider>
const { isGraphQLEnabled } = useFeatureFlags()
Passing an identity:
import { GenericIdentityProvider } from '@aserto/console-common'
<GenericIdentityProvider
identity={{
getAccessToken: getAccessToken || (() => Promise.resolve('')),
logout: logout || (() => {}),
}}
>
{children}
</GenericIdentityProvider>
Passing a profile
import { InternalProfileProvider } from '@aserto/console-common'
<InternalProfileProvider profile={{ tenantId: tenant?.id }}>
{children}
</InternalProfileProvider>
Testing
This lib uses jest
for testing, see jest.config.js
yarn test
Release
yarn release_prep
- creates a new branch, release_prep/${version}, bumps to the next minor version, commits and pushes changes
yarn release
- tags the latest commit with the version from package.json and pushes the changes