Open ananzh opened 1 year ago
Hi @ananzh, I have couple of question to clarify:
@ananzh I found that in some files we use just import _ from 'lodash'( example: OpenSearch-Dashboards/test/functional/apps/visualize/_charttypes.ts), then calling method using .remove() my question is does this affects our runtime or memory space? I believe we need to import exact method which we are using in the file to reduce ambiguity? What is the reason behind not specifying specific method using, and defining that later?
also in some files we import from lodash and don't use its methods for example in OpenSearch-Dashboards/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx
@Aigerim-ai Thanks for the doc, this is an awesome start!
Thank you @Aigerim-ai for organizing a doc with the functions you found so far!
I'd like to help, just to double-check the functions in the files and edit the doc a little bit (by changing the absolute path to the relative path, so it is more general)
Thank you @nurSaadat let's work on this issue together!
Thank you for finding this issue @ananzh
I wrote a Python script that allows to find all instances of loadash functions:
import os
def search_directory(directory_path, search_string):
excluded_dirs = {"plugins", "node_modules"} # Directories to exclude from the search
result = []
for root, dirs, files in os.walk(directory_path):
# Exclude directories that match any of the excluded directories
dirs[:] = [d for d in dirs if d not in excluded_dirs]
files[:] = [f for f in files if f.endswith(('.ts', '.js'))]
for file_name in files:
file_path = os.path.join(root, file_name)
with open(file_path, "r") as f:
for line_num, line in enumerate(f, start=1):
if search_string in line:
result.append(file_path)
return result
def search_files(files, search_str):
separator = "=" * 20
# Loop over the files
for file in files:
# Open the file and search for the string
print("Found in {0}: ".format(file))
with open(file, 'r') as f:
for line_num, line in enumerate(f, start=1):
if search_str in line:
print("line {0}:{1}".format(line_num, line.rstrip()))
print(separator)
# Usage example
files_with_lodash = search_directory("./OpenSearch-Dashboards", "import _ from 'lodash'")
search_files(files_with_lodash, "_.")
Our team plans to use it to find and replace all function occurrences.
Update: Realized, that the search shouldn't exclude "plugins" folder. I wanted to exclude the plugins that I have installed manually, but it excluded other folders that should be present.
Also, not every function starts with _. (underscore and dot). Named imports are still undetected. I realized it after comparing manually collected list of functions with the one which was generated using my code.
Currently, I want my code to be able to detect all functions :+1:
[Proposal] replace lodash methods and other usage to native built-in JavaScript methods #3661
Hi @ananzh, I have couple of question to clarify:
- should I also define what method does?
- Lodash function means(differenciate with Lodash methods), functions which use Lodash method? could you provide me example of Lodash function, I found in Lodash documentation examples https://lodash.com/docs/3.10.1#after, but there are not so many of them
@Aigerim-ai For Q#1, you could propose and update methods/solutions in the proposal issue https://github.com/opensearch-project/OpenSearch-Dashboards/issues/3661
For Q#2, you could search from 'lodash'
in the code base to see what lodash functions we used in our repo.
I found that in some files we use just import _ from 'lodash'( example: OpenSearch-Dashboards/test/functional/apps/visualize/_charttypes.ts), then calling method using .remove() my question is does this affects our runtime or memory space? I believe we need to import exact method which we are using in the file to reduce ambiguity? What is the reason behind not specifying specific method using, and defining that later?
@Aigerim-ai Thank you for checking and helping here. I think you are correct. Importing the entire lodash
library instead of importing only the specific method will affect the bundle size. We have multiple files using diff methods fromlodash
and Webpack will only include one instance of lodash
in the final bundle. However, even though there's only one instance of lodash
in the final bundle, it is still the entire library, which can lead to a larger bundle size and slower load times.
Since we forked this repo, I am not quite sure why we are bundling the entire package. But these legacy code are very old and have some errors, like what you found here (import from lodash and don't use its methods). I have no idea why the code is written like this.... maybe they are written before the practice of importing specific methods was widely adopted or maybe because given a lot of different methods are used the bundle size is not so different.
This is great progress and kudos to both @Aigerim-ai and @nurSaadat .
@nurSaadat love this script and it could also be used to find usage of other old packages. I would suggest you add some step and create an issue, for example Find package usage using Python script
and make it general. This is good knowledge share which can greatly help others.
@Aigerim-ai I checked the doc file you shared. It seems you already done the research task by categorizing the lodash usage. If you want to summarize and add a comment in the research task with all the usages instead of using a doc file, it is better but not requried.
Would anyone of you like to move on to Proposal task https://github.com/opensearch-project/OpenSearch-Dashboards/issues/3661?
Hi there! listing all of the methods which are used in the project
_.cloneDeepWith( value, customizer )
OpenSearch-Dashboards/test/functional/services/common/browser.ts
_.keyBy( collection, iteratee )
OpenSearch-Dashboards/test/functional/page_objects/management/saved_objects_page.tsOpenSearch-Dashboards/test/functional/apps/management/_import_objects.js
_.remove(array, function)
OpenSearch-Dashboards/test/functional/apps/visualize/_chart_types.ts
_.get(object, path, [defaultValue])
OpenSearch-Dashboards/test/common/services/deployment.tsOpenSearch-Dashboards/test/api_integration/apis/dql_telemetry/dql_telemetry.jsOpenSearch-Dashboards/src/plugins/visualize/public/application/utils/migrate_app_state.tsOpenSearch-Dashboards/src/plugins/visualizations/server/saved_objects/visualization_migrations.tsOpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.tsOpenSearch-Dashboards/src/plugins/visualizations/public/legacy/vis_update_state.jsOpenSearch-Dashboards/src/plugins/visualizations/public/legacy/build_pipeline.tsOpenSearch-Dashboards/src/plugins/visualizations/public/expressions/visualization_function.tsOpenSearch-Dashboards/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsOpenSearch-Dashboards/src/plugins/visualizations/public/components/visualization.tsx
.uniq(array).map( collection, iteratee )
OpenSearch-Dashboards/test/api_integration/apis/telemetry/telemetry_local.js
_.set(object, path, value)Â -> @elastic/safer-lodash-set
OpenSearch-Dashboards/test/api_integration/apis/saved_objects/migrations.tsOpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.tsOpenSearch-Dashboards/src/plugins/visualizations/public/legacy/vis_update_state.js
_.omit( object, paths )
OpenSearch-Dashboards/test/api_integration/apis/saved_objects/migrations.tsOpenSearch-Dashboards/test/api_integration/apis/saved_objects/bulk_update.jsOpenSearch-Dashboards/src/plugins/visualize/public/application/utils/migrate_app_state.tsOpenSearch-Dashboards/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts
_.sortBy(collection, iteratees)
OpenSearch-Dashboards/test/api_integration/apis/saved_objects/bulk_update.jsOpenSearch-Dashboards/packages/osd-ui-framework/src/services/sort/sortable_properties.js
_.isNull(value)
OpenSearch-Dashboards/tasks/licenses_csv_report.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/line_chart.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/column_chart.js
_.isUndefined(value)
OpenSearch-Dashboards/tasks/licenses_csv_report.jsOpenSearch-Dashboards/src/plugins/visualizations/public/expressions/vis.ts
_.assign( dest_object, src_obj )
OpenSearch-Dashboards/src/test_utils/get_url.js
_.pickBy( object, predicate )
OpenSearch-Dashboards/src/test_utils/get_url.js
_.pick( object, paths )
OpenSearch-Dashboards/src/test_utils/get_url.js
_.template( string, options )
OpenSearch-Dashboards/src/setup_node_env/harden/lodash_template.js
_.cloneDeep( value )
OpenSearch-Dashboards/src/plugins/visualize/public/application/utils/use/use_visualize_app_state.tsxOpenSearch-Dashboards/src/plugins/visualize/public/application/utils/get_visualization_instance.tsOpenSearch-Dashboards/src/plugins/visualizations/server/saved_objects/visualization_migrations.tsOpenSearch-Dashboards/src/plugins/visualizations/public/legacy/vis_update_state.test.jsOpenSearch-Dashboards/src/plugins/visualizations/public/vis_types/react_vis_type.test.tsOpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.tsOpenSearch-Dashboards/src/plugins/visualizations/public/legacy/vis_update_state.jsOpenSearch-Dashboards/src/plugins/visualizations/public/expressions/vis.tsOpenSearch-Dashboards/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsOpenSearch-Dashboards/src/plugins/visualizations/public/vis.ts
_.isEqual( value1, value2)
OpenSearch-Dashboards/src/plugins/visualize/public/application/utils/use/use_visualize_app_state.tsxOpenSearch-Dashboards/src/plugins/visualize/public/application/utils/use/use_editor_updates.tsOpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.tsOpenSearch-Dashboards/src/plugins/visualizations/public/legacy/vis_update_state.test.jsOpenSearch-Dashboards/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts
_.has(object, path)
OpenSearch-Dashboards/src/plugins/visualize/public/application/utils/migrate_legacy_query.tsOpenSearch-Dashboards/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts
_.isFunction( value )
OpenSearch-Dashboards/src/plugins/visualize/public/application/utils/create_visualize_app_state.tsOpenSearch-Dashboards/src/plugins/visualizations/public/expressions/vis.tsOpenSearch-Dashboards/src/plugins/visualizations/public/vis.tsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/heatmap_chart.test.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/column_chart.test.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/area_chart.test.js
_.omitBy( object, predicate )
OpenSearch-Dashboards/src/plugins/visualize/public/application/utils/create_visualize_app_state.ts
_.union(*arrays)
OpenSearch-Dashboards/src/plugins/visualize/public/application/utils/create_visualize_app_state.ts
.countBy(collection, [iteratee=.identity])
OpenSearch-Dashboards/src/plugins/visualizations/server/usage_collector/get_usage_collector.ts
_.groupBy( collection, iteratee )
OpenSearch-Dashboards/src/plugins/visualizations/server/usage_collector/get_usage_collector.ts
_.mapValues( object, iteratee )
OpenSearch-Dashboards/src/plugins/visualizations/server/usage_collector/get_usage_collector.ts
_.max
OpenSearch-Dashboards/src/plugins/visualizations/server/usage_collector/get_usage_collector.ts
_.min
OpenSearch-Dashboards/src/plugins/visualizations/server/usage_collector/get_usage_collector.tsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/line_chart.js
_.value
OpenSearch-Dashboards/src/plugins/visualizations/server/usage_collector/get_usage_collector.ts
_.flow( funcs )
OpenSearch-Dashboards/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts
_.orderBy(collection, iteratees, orders)
OpenSearch-Dashboards/src/plugins/visualizations/public/wizard/type_selection/type_selection.tsx
_.defaultsDeep(object, [sources])
OpenSearch-Dashboards/src/plugins/visualizations/public/vis_types/base_vis_type.tsOpenSearch-Dashboards/src/plugins/visualizations/public/expressions/vis.tsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/heatmap_chart.test.js
_.isPlainObject
OpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.ts
_.isString
OpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.ts
_.merge
OpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.ts
_.mergeWith
OpenSearch-Dashboards/src/plugins/visualizations/public/persisted_state/persisted_state.ts
_.defaults
OpenSearch-Dashboards/src/plugins/visualizations/public/vis.tsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/line_chart.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/line_chart.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/heatmap_chart.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/column_chart.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/_point_series.js
_.noop
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/line_chart.test.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/heatmap_chart.test.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/column_chart.test.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/area_chart.test.js
_.find
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/heatmap_chart.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/column_chart.test.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/_point_series.jsOpenSearch-Dashboards/src/cli/cli.js
_.isNumber
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/column_chart.test.jsOpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/area_chart.test.js
_.forOwn
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series/area_chart.test.js
_.last
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/gauges/meter.js
_.isObject
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/vis_types.test.jsOpenSearch-Dashboards/packages/osd-ui-framework/src/components/table/listing_table/listing_table_row.jsOpenSearch-Dashboards/packages/osd-ui-framework/src/components/table/listing_table/listing_table.js
_.uniqueId
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series.js
_.identity
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series.js
_.each
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/point_series.js
_.bind
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/visualizations/_chart.js
_.forEach
Â
_.flattenDeep
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/axis/y_axis.test.js
_.isDate
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/axis/x_axis.test.js
_.times
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/axis/axis_scale.js
_.reduce
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/axis/axis_scale.js
_.isNaN
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/axis/axis_scale.js
_.filter
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/handler.js
_.memoize
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/handler.js
_.first
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/dispatch.test.js
_.pull
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/dispatch.js
_.rest
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/dispatch.js
_.size
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/dispatch.jsOpenSearch-Dashboards/src/cli/help.js
_.reduce
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/dispatch.js
_.uniqBy
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/data.js
_.clone
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/data.js
_.toArray
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/data.js
_.escape
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/lib/chart_title.js
_.uniq
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/helpers/point_series/_init_x_axis.ts
_.partial
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/zero_injection/zero_injection.test.js
_.keys
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/zero_injection/zero_injection.test.js
_.findIndex
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/zero_injection/zero_fill_data_array.js
_.constant
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/tooltip/tooltip.js
_.once
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/tooltip/tooltip.js
_.random
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/tooltip/position_tooltip.test.js
_.drop
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/tooltip/position_tooltip.test.js
_.mergeWith
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/tooltip/position_tooltip.js
_.forEachRight
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/tooltip/_hierarchical_tooltip_formatter.js
_.repeat
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/tooltip/_hierarchical_tooltip_formatter.js
_.every
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/legend/legend.tsx
_.findLast
OpenSearch-Dashboards/src/plugins/vis_default_editor/public/components/sidebar/data_tab.tsx
_.compact
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/legend/legend.tsx
_.chain
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/vislib/components/labels/labels.test.js
_.upperFirst
OpenSearch-Dashboards/src/plugins/vis_type_vislib/public/components/options/metrics_axes/utils.ts
_.flatten
OpenSearch-Dashboards/src/plugins/vis_type_vega/public/lib/extract_index_pattern.ts
_.isPlainObject
OpenSearch-Dashboards/src/plugins/vis_type_vega/public/data_model/vega_parser.ts
_.sum
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/server/lib/vis_data/response_processors/table/_series_agg.js
_.zip
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/server/lib/vis_data/response_processors/table/_series_agg.js
_.startsWith
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/server/lib/vis_data/response_processors/series/time_shift.js
_.isEmpty
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/server/lib/vis_data/response_processors/annotations/buckets.js
_.includes
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_sibling_agg_value.js
._gt, .gte, .lt
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/public/application/components/vis_types/top_n/vis.js
_.snakeCase
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_vars.js
_.debounce
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/public/application/components/vis_editor.js
_.isBoolean
OpenSearch-Dashboards/src/plugins/vis_type_timeseries/public/application/components/add_delete_buttons.tsx
_.mapValues
OpenSearch-Dashboards/src/plugins/vis_type_timeline/server/series_functions/opensearch/lib/agg_response_to_series_list.js
_.fill
OpenSearch-Dashboards/src/plugins/vis_type_timeline/server/series_functions/aggregate/index.js
_.fromPairs
OpenSearch-Dashboards/src/plugins/vis_type_timeline/server/lib/load_functions.js
_.extend
OpenSearch-Dashboards/src/plugins/vis_type_timeline/server/lib/functions_md.js
_.without
OpenSearch-Dashboards/src/plugins/vis_type_timeline/server/lib/functions_md.js
_.difference
OpenSearch-Dashboards/src/plugins/vis_type_timeline/server/handlers/lib/validate_arg.js
_.throttle
OpenSearch-Dashboards/src/plugins/vis_type_tagcloud/public/components/tag_cloud_chart.tsx
_.findLastIndex
OpenSearch-Dashboards/src/plugins/timeline/public/directives/cells/collection.ts
_.words
OpenSearch-Dashboards/src/plugins/timeline/public/directives/saved_object_finder.js
_.capitalize
OpenSearch-Dashboards/src/plugins/timeline/public/directives/saved_object_finder.js
_.assignIn
OpenSearch-Dashboards/src/plugins/timeline/public/app.js
_.round
OpenSearch-Dashboards/src/plugins/tile_map/public/tile_map_visualization.js
_.trim
Â
_.trimStart
OpenSearch-Dashboards/src/plugins/data/common/field_formats/field_format.test.ts
_.trimEnd
OpenSearch-Dashboards/src/plugins/data/common/field_formats/field_format.test.ts
_.take
OpenSearch-Dashboards/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx
_.getField
OpenSearch-Dashboards/src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx
_.mapKeys
OpenSearch-Dashboards/src/plugins/saved_objects_management/public/lib/case_conversion.ts
_.padStart
OpenSearch-Dashboards/src/plugins/opensearch_ui_shared/public/components/cron_editor/cron_editor.js
_.pad
OpenSearch-Dashboards/src/legacy/server/logging/log_format_string.js
_.transform
OpenSearch-Dashboards/src/plugins/opensearch_dashboards_utils/common/url/encode_uri_query.ts
_.escapeRegExp
OpenSearch-Dashboards/src/plugins/opensearch_dashboards_utils/common/field_wildcard.ts
_.parseInt
OpenSearch-Dashboards/src/plugins/opensearch_dashboards_legacy/public/paginate/paginate.js
_.intersection
OpenSearch-Dashboards/src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsxOpenSearch-Dashboards/src/cli/cli.js
_.zipObject
OpenSearch-Dashboards/src/plugins/expressions/common/expression_types/specs/datatable.ts
_.shuffle
OpenSearch-Dashboards/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.test.js
_.hasIn
OpenSearch-Dashboards/src/plugins/data/public/search/expressions/opensearchaggs.ts
_.trimEnd
OpenSearch-Dashboards/src/plugins/data/public/search/search_interceptor.ts
_.partition
OpenSearch-Dashboards/src/plugins/data/public/query/timefilter/lib/extract_time_filter.ts
.take, .remove
OpenSearch-Dashboards/src/plugins/data/public/query/persisted_log/persisted_log.ts
_.reduceRight
OpenSearch-Dashboards/src/plugins/data/public/query/filter_manager/lib/map_filter.ts
_.findKey
OpenSearch-Dashboards/src/plugins/data/common/search/tabify/buckets.ts
_.setWith ->@elastic/safer-lodash-set
OpenSearch-Dashboards/src/plugins/data/common/search/search_source/search_source.ts
_.startCase
OpenSearch-Dashboards/src/plugins/data/common/search/aggs/metrics/lib/make_nested_label.ts
_.dropRight
OpenSearch-Dashboards/src/plugins/data/common/search/aggs/metrics/top_hit.test.ts
_.reject
OpenSearch-Dashboards/src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts
_.truncate
OpenSearch-Dashboards/src/plugins/data/common/field_formats/converters/truncate.ts
_.head
OpenSearch-Dashboards/src/plugins/console/server/lib/opensearch_proxy_config.ts
_.some
OpenSearch-Dashboards/src/plugins/console/public/lib/autocomplete/components/list_component.js
_.sampleSize
OpenSearch-Dashboards/src/plugins/charts/public/services/colors/mapped_colors.ts
_.toPath
OpenSearch-Dashboards/src/legacy/utils/unset.ts
_.range
OpenSearch-Dashboards/src/fixtures/agg_resp/geohash_grid.js
_.delay
OpenSearch-Dashboards/src/cli_plugin/install/rename.js
_.padEnd
OpenSearch-Dashboards/src/cli/help.js
_.wrap
OpenSearch-Dashboards/src/cli/command.js
@Aigerim-ai @nurSaadat @ananzh I would to bit contribute in this journey to replace Lodash with JS native functions. How I can start here?
Goal for this task: