Sha256: 8917b0c77a57c97d3d73dac1053dcae2886ab71871bbbc85080ff44d8f2945ab

Contents?: true

Size: 704 Bytes

Versions: 4

Compression:

Stored size: 704 Bytes

Contents

export default function extractNames(node) {
	const names = [];
	extractors[node.type](names, node);
	return names;
}

const extractors = {
	Identifier(names, node) {
		names.push(node);
	},

	ObjectPattern(names, node) {
		for (const prop of node.properties) {
			extractors[prop.type](names, prop);
		}
	},

	Property(names, node) {
		extractors[node.value.type](names, node.value);
	},

	ArrayPattern(names, node) {
		for (const element of node.elements) {
			if (element) extractors[element.type](names, element);
		}
	},

	RestElement(names, node) {
		extractors[node.argument.type](names, node.argument);
	},

	AssignmentPattern(names, node) {
		extractors[node.left.type](names, node.left);
	}
};

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jass-0.9.5 vendor/node_modules/buble/src/program/extractNames.js
jass-0.9.4 vendor/node_modules/buble/src/program/extractNames.js
jass-0.9.3 vendor/node_modules/buble/src/program/extractNames.js
jass-0.9.1 vendor/node_modules/buble/src/program/extractNames.js