You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					38 lines
				
				839 B
			
		
		
			
		
	
	
					38 lines
				
				839 B
			| 
								 
											3 years ago
										 
									 | 
							
								# @jridgewell/set-array
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								> Like a Set, but provides the index of the `key` in the backing array
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is designed to allow synchronizing a second array with the contents of the backing array, like
							 | 
						||
| 
								 | 
							
								how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, and there
							 | 
						||
| 
								 | 
							
								are never duplicates.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Installation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								npm install @jridgewell/set-array
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								import { SetArray, get, put, pop } from '@jridgewell/set-array';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const sa = new SetArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								let index = put(sa, 'first');
							 | 
						||
| 
								 | 
							
								assert.strictEqual(index, 0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								index = put(sa, 'second');
							 | 
						||
| 
								 | 
							
								assert.strictEqual(index, 1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								assert.deepEqual(sa.array, [ 'first', 'second' ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								index = get(sa, 'first');
							 | 
						||
| 
								 | 
							
								assert.strictEqual(index, 0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								pop(sa);
							 | 
						||
| 
								 | 
							
								index = get(sa, 'second');
							 | 
						||
| 
								 | 
							
								assert.strictEqual(index, undefined);
							 | 
						||
| 
								 | 
							
								assert.deepEqual(sa.array, [ 'first' ]);
							 | 
						||
| 
								 | 
							
								```
							 |