Skip to content

Fix wrong imports#13601

Merged
rodrigok merged 1 commit intodevelopfrom
fix/wrong-imports
Mar 4, 2019
Merged

Fix wrong imports#13601
rodrigok merged 1 commit intodevelopfrom
fix/wrong-imports

Conversation

@rodrigok
Copy link
Member

@rodrigok rodrigok commented Mar 2, 2019

Problem found when testing #13598 and tying to send an audio.

I've created a script to check all imports:

const fs = require('fs');
const glob = require('glob');

const packagesToMove = {
	'rocketchat:cors': 'rocketchat-cors',
	'rocketchat:sms': 'rocketchat-sms',
	'rocketchat:2fa': 'rocketchat-2fa',
	'rocketchat:accounts': 'rocketchat-accounts',
	'rocketchat:analytics': 'rocketchat-analytics',
	'rocketchat:api': 'rocketchat-api',
	'rocketchat:assets': 'rocketchat-assets',
	'rocketchat:authorization': 'rocketchat-authorization',
	'rocketchat:autolinker': 'rocketchat-autolinker',
	'rocketchat:autotranslate': 'rocketchat-autotranslate',
	'rocketchat:bot-helpers': 'rocketchat-bot-helpers',
	'rocketchat:cas': 'rocketchat-cas',
	'rocketchat:channel-settings': 'rocketchat-channel-settings',
	'rocketchat:channel-settings-mail-messages': 'rocketchat-channel-settings-mail-messages',
	'rocketchat:cloud': 'rocketchat-cloud',
	'rocketchat:colors': 'rocketchat-colors',
	'rocketchat:crowd': 'rocketchat-crowd',
	'rocketchat:custom-oauth': 'rocketchat-custom-oauth',
	'rocketchat:custom-sounds': 'rocketchat-custom-sounds',
	'rocketchat:dolphin': 'rocketchat-dolphin',
	'rocketchat:drupal': 'rocketchat-drupal',
	'rocketchat:emoji': 'rocketchat-emoji',
	'rocketchat:emoji-custom': 'rocketchat-emoji-custom',
	'rocketchat:emoji-emojione': 'rocketchat-emoji-emojione',
	'rocketchat:error-handler': 'rocketchat-error-handler',
	'rocketchat:favico': 'rocketchat-favico',
	'rocketchat:file': 'rocketchat-file',
	'rocketchat:file-upload': 'rocketchat-file-upload',
	'rocketchat:github-enterprise': 'rocketchat-github-enterprise',
	'rocketchat:gitlab': 'rocketchat-gitlab',
	'rocketchat:google-vision': 'rocketchat-google-vision',
	'rocketchat:grant': 'rocketchat-grant',
	'rocketchat:grant-facebook': 'rocketchat-grant-facebook',
	'rocketchat:grant-github': 'rocketchat-grant-github',
	'rocketchat:grant-google': 'rocketchat-grant-google',
	'rocketchat:graphql': 'rocketchat-graphql',
	'rocketchat:highlight-words': 'rocketchat-highlight-words',
	'rocketchat:iframe-login': 'rocketchat-iframe-login',
	'rocketchat:importer': 'rocketchat-importer',
	'rocketchat:importer-csv': 'rocketchat-importer-csv',
	'rocketchat:importer-hipchat': 'rocketchat-importer-hipchat',
	'rocketchat:importer-hipchat-enterprise': 'rocketchat-importer-hipchat-enterprise',
	'rocketchat:importer-slack': 'rocketchat-importer-slack',
	'rocketchat:importer-slack-users': 'rocketchat-importer-slack-users',
	'rocketchat:integrations': 'rocketchat-integrations',
	'rocketchat:irc': 'rocketchat-irc',
	'rocketchat:issuelinks': 'rocketchat-issuelinks',
	'rocketchat:katex': 'rocketchat-katex',
	'rocketchat:ldap': 'rocketchat-ldap',
	'rocketchat:lib': 'rocketchat-lib',
	'rocketchat:livestream': 'rocketchat-livestream',
	'rocketchat:logger': 'rocketchat-logger',
	'rocketchat:login-token': 'rocketchat-token-login',
	'rocketchat:mailer': 'rocketchat-mailer',
	'rocketchat:mapview': 'rocketchat-mapview',
	'rocketchat:markdown': 'rocketchat-markdown',
	'rocketchat:mentions': 'rocketchat-mentions',
	'rocketchat:mentions-flextab': 'rocketchat-mentions-flextab',
	'rocketchat:message-action': 'rocketchat-message-action',
	'rocketchat:message-attachments': 'rocketchat-message-attachments',
	'rocketchat:message-mark-as-unread': 'rocketchat-message-mark-as-unread',
	'rocketchat:message-pin': 'rocketchat-message-pin',
	'rocketchat:message-snippet': 'rocketchat-message-snippet',
	'rocketchat:message-star': 'rocketchat-message-star',
	'rocketchat:migrations': 'rocketchat-migrations',
	'rocketchat:oauth2-server-config': 'rocketchat-oauth2-server-config',
	'rocketchat:oembed': 'rocketchat-oembed',
	'rocketchat:otr': 'rocketchat-otr',
	'rocketchat:push-notifications': 'rocketchat-push-notifications',
	'rocketchat:retention-policy': 'rocketchat-retention-policy',
	'rocketchat:apps': 'rocketchat-apps',
	'rocketchat:sandstorm': 'rocketchat-sandstorm',
	'rocketchat:setup-wizard': 'rocketchat-setup-wizard',
	'rocketchat:slackbridge': 'rocketchat-slackbridge',
	'rocketchat:slashcommands-archive': 'rocketchat-slashcommands-archiveroom',
	'rocketchat:slashcommands-asciiarts': 'rocketchat-slashcommand-asciiarts',
	'rocketchat:slashcommands-create': 'rocketchat-slashcommands-create',
	'rocketchat:slashcommands-help': 'rocketchat-slashcommands-help',
	'rocketchat:slashcommands-hide': 'rocketchat-slashcommands-hide',
	'rocketchat:slashcommands-invite': 'rocketchat-slashcommands-invite',
	'rocketchat:slashcommands-invite-all': 'rocketchat-slashcommands-inviteall',
	'rocketchat:slashcommands-join': 'rocketchat-slashcommands-join',
	'rocketchat:slashcommands-kick': 'rocketchat-slashcommands-kick',
	'rocketchat:slashcommands-leave': 'rocketchat-slashcommands-leave',
	'rocketchat:slashcommands-me': 'rocketchat-slashcommands-me',
	'rocketchat:slashcommands-msg': 'rocketchat-slashcommands-msg',
	'rocketchat:slashcommands-mute': 'rocketchat-slashcommands-mute',
	'rocketchat:slashcommands-open': 'rocketchat-slashcommands-open',
	'rocketchat:slashcommands-topic': 'rocketchat-slashcommands-topic',
	'rocketchat:slashcommands-unarchive': 'rocketchat-slashcommands-unarchiveroom',
	'rocketchat:slider': 'rocketchat-slider',
	'rocketchat:smarsh-connector': 'rocketchat-smarsh-connector',
	'rocketchat:spotify': 'rocketchat-spotify',
	'rocketchat:statistics': 'rocketchat-statistics',
	'rocketchat:theme': 'rocketchat_theme',
	'rocketchat:tokenpass': 'rocketchat-tokenpass',
	'rocketchat:tooltip': 'rocketchat-tooltip',
	'rocketchat:ui': 'rocketchat-ui',
	'rocketchat:ui-account': 'rocketchat-ui-account',
	'rocketchat:ui-admin': 'rocketchat-ui-admin',
	'rocketchat:ui-clean-history': 'rocketchat-ui-clean-history',
	'rocketchat:ui-flextab': 'rocketchat-ui-flextab',
	'rocketchat:ui-login': 'rocketchat-ui-login',
	'rocketchat:ui-master': 'rocketchat-ui-master',
	'rocketchat:ui-message': 'rocketchat-ui-message',
	'rocketchat:ui-sidenav': 'rocketchat-ui-sidenav',
	'rocketchat:ui-vrecord': 'rocketchat-ui-vrecord',
	'rocketchat:user-data-download': 'rocketchat-user-data-download',
	'rocketchat:videobridge': 'rocketchat-videobridge',
	'rocketchat:webdav': 'rocketchat-webdav',
	'rocketchat:webrtc': 'rocketchat-webrtc',
	'rocketchat:wordpress': 'rocketchat-wordpress',
	'rocketchat:nrr': 'rocketchat-nrr',
	'steffo:meteor-accounts-saml': 'meteor-accounts-saml',
	'rocketchat:e2e': 'rocketchat-e2e',
	'rocketchat:blockstack': 'rocketchat-blockstack',
	'rocketchat:version-check': 'rocketchat-version-check',
	'rocketchat:search': 'rocketchat-search',
	'chatpal:search': 'chatpal-search',
	'rocketchat:lazy-load': 'rocketchat-lazy-load',
	'rocketchat:bigbluebutton': 'rocketchat-bigbluebutton',
	'rocketchat:mailmessages': 'rocketchat-mail-messages',
	'rocketchat:utils': 'rocketchat-utils',
	'rocketchat:settings': 'rocketchat-settings',
	'rocketchat:models': 'rocketchat-models',
	'rocketchat:metrics': 'rocketchat-metrics',
	'rocketchat:callbacks': 'rocketchat-callbacks',
	'rocketchat:notifications': 'rocketchat-notifications',
	'rocketchat:promises': 'rocketchat-promises',
	'rocketchat:ui-utils': 'rocketchat-ui-utils',
	'rocketchat:ui-cached-collection': 'rocketchat-ui-cached-collection',
	'rocketchat:action-links': 'rocketchat-action-links',
	'rocketchat:reactions': 'rocketchat-reactions',
};

function process(variables, name, filePath) {
	variables = variables.replace(/\sas\s\w+/g, '').replace(/[\s\t]/g, '').replace(/,$/, '').split(',');

	const folder = packagesToMove[name];
	if (!folder) {
		return;
	}

	let file = '';
	try {
		file += fs.readFileSync(`packages/${ folder }/client/index.js`).toString();
	} catch (error) {
		// ignore-lint
	}

	try {
		file += fs.readFileSync(`packages/${ folder }/server/index.js`).toString();
	} catch (error) {
		// ignore-lint
	}

	try {
		file += fs.readFileSync(`packages/${ folder }/client/lib/index.js`).toString();
	} catch (error) {
		// ignore-lint
	}

	try {
		file += fs.readFileSync(`packages/${ folder }/server/lib/index.js`).toString();
	} catch (error) {
		// ignore-lint
	}

	try {
		file += fs.readFileSync(`packages/${ folder }/server/functions/index.js`).toString();
	} catch (error) {
		// ignore-lint
	}

	for (const variable of variables) {
		if (!file.includes(variable)) {
			console.log(`Wrong import of ${ variable } at ${ filePath }`);
		}
	}
}

const files = glob.sync('@(packages|imports|client|lib|server)/**/*.js');
files.forEach((filePath) => {
	let file = fs.readFileSync(filePath).toString();

	if (file.match(/((from|import) 'meteor\/rocketchat)|(await import\('meteor\/rocketchat)/g)) {
		file = file.replace(/import \{\s([\w,\s]+)\s\}\s?from 'meteor\/(rocketchat.+)?'/g, (str, variables, name) => {
			process(variables, name, filePath);
		});

		file = file.replace(/\{\s([\w,\s]+)\s\}\s?=\s?(await import\()'meteor\/(rocketchat.+)?'/g, (str, variables, p1, name) => {
			process(variables, name, filePath);
		});
	}
});

@rodrigok rodrigok merged commit 5ec74ad into develop Mar 4, 2019
@rodrigok rodrigok deleted the fix/wrong-imports branch March 4, 2019 12:12
@rodrigok rodrigok mentioned this pull request Apr 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments