function getInputs()

in src/main.ts [61:117]


function getInputs(): IActionInputs {
    core.debug('Get action inputs.');

    const connectionString = core.getInput('connection-string', { required: true });
    const connectionConfig = new SqlConnectionConfig(connectionString);

    let filePath = core.getInput('path', { required: true });
    filePath = AzureSqlActionHelper.resolveFilePath(filePath);

    // Optional inputs
    const action = core.getInput('action');

    switch (path.extname(filePath).toLowerCase()) {
        case Constants.sqlFileExtension:
            return {
                actionType: ActionType.SqlAction,
                connectionConfig: connectionConfig,
                filePath: filePath,
                additionalArguments: core.getInput('arguments') || undefined,
                skipFirewallCheck: core.getBooleanInput('skip-firewall-check')
            };

        case Constants.dacpacExtension:
            if (!action) {
                throw new Error('The action input must be specified when using a .dacpac file.');
            }

            return {
                actionType: ActionType.DacpacAction,
                connectionConfig: connectionConfig,
                filePath: filePath,
                sqlpackageAction: AzureSqlActionHelper.getSqlpackageActionTypeFromString(action),
                sqlpackagePath: core.getInput('sqlpackage-path') || undefined,
                additionalArguments: core.getInput('arguments') || undefined,
                skipFirewallCheck: core.getBooleanInput('skip-firewall-check')
            } as IDacpacActionInputs;

        case Constants.sqlprojExtension:
            if (!action) {
                throw new Error('The action input must be specified when using a .sqlproj file.');
            }

            return {
                actionType: ActionType.BuildAndPublish,
                connectionConfig: connectionConfig,
                filePath: filePath,
                buildArguments: core.getInput('build-arguments') || undefined,
                sqlpackageAction: AzureSqlActionHelper.getSqlpackageActionTypeFromString(action),
                sqlpackagePath: core.getInput('sqlpackage-path') || undefined,
                additionalArguments: core.getInput('arguments') || undefined,
                skipFirewallCheck: core.getBooleanInput('skip-firewall-check')
            } as IBuildAndPublishInputs;

        default:
            throw new Error(`Invalid file type provided as input ${filePath}. File must be a .sql, .dacpac, or .sqlproj file.`)
    }
}